Readable HLS Generator
Use this skill for local AMD-Xilinx/Vitis HLS C/C++ kernel generation, modification, review, comment-only annotation, and validation. It covers readable high-level synthesis delivery paths and HLS debug situations when the root cause still traces back to Vitis HLS code, pragmas, interfaces, configuration, or generated reports. Python implementation exists only as internal HLS machinery under scripts/python/cli, scripts/python/config, scripts/python/generation, scripts/python/hls_quality_gate, scripts/python/remote, scripts/python/task_dispatcher, scripts/python/validation, and scripts/python/workflow; the stable local facade is scripts/python/integration/hls_adapter.py. Repo-local Python code governance is out of scope for this skill and must be handled by readable-python-generator.
Capability Routes
- Create: start from a confirmed HLS spec or scaffold one, then generate readable HLS C/C++ kernel artifacts.
- Write: modify HLS kernels, pragmas, interfaces, DATAFLOW regions, or Vitis project configuration from an explicit behavior contract.
- Review: inspect HLS C/C++ artifacts, Vitis reports, pragmas, interfaces, and generated RTL-facing evidence without rewriting code.
- Annotate: perform comment-only HLS rewrites with Chinese semantic comments and AST/token fingerprint preservation against a baseline.
- Validate: run static HLS checks locally, then use Vitis csim/cosim and remote board acceptance when the requested readiness requires real tool evidence.
Workflow
- On first trigger in a Codex session, run
python -m scripts.python.cli.readable_hls_generator deps check --json from this skill directory. If it reports blocked_dependency, ask the user whether to install the listed required dependencies before continuing. Recommended dependencies warn only; do not treat them as blockers outside the capability path that explicitly requires them.
- Start from a confirmed HLS JSON spec or create one with the scaffold command.
- Use the facade for local integrations:
run_hls_workflow(...) for full staged execution or resume.
render_hls_prompt(...) when a caller owns the model call.
validate_hls_artifacts(...) before using generated files downstream.
- Require a confirmed requirement contract before generation:
pipeline_required, streamability, interface_family, interface_profile, confirmed_by_user, and confirmation_notes. When throughput targets, numeric strategy, task parallelism, or device portability are in scope, confirm those constraints before code generation.
- Run the fixed default HLS pipeline:
requirements -> codegen_plan -> tests -> hls. Treat remote_toolchain_request.json and remote_vitis_acceptance.py as explicit follow-up acceptance helpers, not default generation stages.
- Treat generated HLS C/C++ Chinese comment placement as a hard gate: file headers, blank-line-separated lower blocks, function contracts, type contracts, includes, macros, HLS pragmas, loops, variable declarations/assignments, function calls, return statements, datapath steps, vector hashes, and testbench PASS/FAIL behavior must have a blank line plus an immediate Chinese purpose comment where required. Generic, template-like, English, or misplaced comments block validation.
- For comment-only HLS rewrites, validate with the AST guard: compare non-comment token fingerprints and normalized AST fingerprints against the baseline artifact tree. Use
--baseline-path in the CLI or baseline_path= in the facade when validating comment-only changes.
- Keep final hardware-facing artifacts limited to HLS C/C++ headers, sources, C++ testbenches,
.cfg files, vectors, and reports. This skill no longer generates or validates Python reference models, and it no longer ships a repo-local Python quality gate.
- Validate with AMD-Xilinx tooling. Static-only validation reports
static_only=true and vitis_executed=false; do not claim tool execution unless vitis-run or vitis_hls actually ran. Missing local tools block run/acceptance paths with a remote-server request so the caller can ask the user to choose an erie-remote-ssh server with Vitis available.
- For Vitis development, simulation, cosim, and debug guidance, follow
runtime_config.json skill routing: prefer vitis-developer when installed, otherwise fall back to vitis-hls-synthesis.
Local Commands
For source-repository validation only, run the bundled smoke validator from the repository root:
python .\tests\smoke\run_smoke.py
Use the functional CLI from the skill directory or another workspace. Pick an explicit writable output directory when you need generated specs, prompts, or validation JSON:
python -m scripts.python.cli.readable_hls_generator config --path
python -m scripts.python.cli.readable_hls_generator selfcheck --json
python -m scripts.python.cli.readable_hls_generator deps check --json
python -m scripts.python.cli.readable_hls_generator deps request --out <output-dir>\skill_dependency_request.json
python -m scripts.python.cli.readable_hls_generator scaffold --target hls --name vector_scale --out <output-dir>\hls\spec.json
python -m scripts.python.cli.readable_hls_generator prompt --target hls --spec <output-dir>\hls\spec.json --out <output-dir>\hls\prompt.md --confirm-requirements --confirmation-notes "<user-confirmed HLS contract>"
python -m scripts.python.cli.readable_hls_generator validate --target hls --spec <output-dir>\hls\spec.json --path <output-dir>\hls\generated --readiness static --no-external
python -m scripts.python.cli.readable_hls_generator validate --target hls --spec <output-dir>\hls\spec.json --path <output-dir>\hls\commented --baseline-path <output-dir>\hls\baseline --readiness static --no-external
python -m scripts.python.cli.readable_hls_generator readability-gate --target hls --path <output-dir>\hls\generated --profile kernel --style current-project --json
python -m scripts.python.cli.readable_hls_generator comment-plan --target hls --path <output-dir>\hls\commented --baseline-path <output-dir>\hls\baseline --out <output-dir>\hls\reports\hls_comment_rewrite_plan.json
When local vitis-run/vitis_hls is missing, inspect the workflow's remote_toolchain_request.json, ask the user to choose a configured erie-remote-ssh build server and, when needed, a separate validation server, then use the remote acceptance helper:
python .\scripts\python\remote\remote_vitis_acceptance.py --mode link --server <erie-server>
python .\scripts\python\remote\remote_vitis_acceptance.py --mode vitis --server <erie-server> --profile <configured-profile> --readiness <execute|implement|cosim>
python .\scripts\python\remote\remote_vitis_acceptance.py --mode vitis --build-server <erie-build-server> --validate-server <erie-validate-server> --vitis-version <shared-version> --readiness <execute|implement|cosim>
python .\scripts\python\remote\remote_vitis_acceptance.py --mode board --server <erie-server> --platform-name <platform-name> --remote-platform-root <remote-platform-root> --remote-xpfm <remote-xpfm> --example-spec <board-runnable-example> --comment-language zh --json
python .\scripts\python\validation\confidence_loop.py --server <erie-server> --vitis-version <shared-version> --readiness cosim --remote-parallelism 3 --json-out ..\..\reports\confidence-loop\latest-remote.json
confidence_loop.py defaults remote review to a single canonical smoke spec. Only use --remote-coverage tier1 when you intentionally want the broader representative/high-risk matrix; otherwise do not turn routine template validation into a full remote sweep.
Remote Vitis acceptance refreshes erie software scan data. If multiple Vitis
versions are detected and no version has been saved for that server in
~/.readable-hls-generator/config.json, ask the user to choose a version and rerun with
--vitis-version <version>.
If no remote Vitis profile has been configured and no previously saved remote
selection provides the required tool path, expected tool, and target part,
stop and ask the user to configure those values before continuing. Do not guess
or fall back to a package default path.
If the user chooses a split build/validate topology, keep the server choice in
runtime arguments or user-local configuration only. Do not encode real server
ids, hostnames, usernames, ports, or board-specific server defaults into the
skill package.
Vitis remote acceptance keeps the remote validation directory by default and reports
remote_dir relative to the selected erie server workdir. Pass
--cleanup-remote only when the user explicitly wants that remote project
deleted after a successful run.
Reference Loading
- Load
references/hls-template-catalog.md before changing curated template-corpus coverage, assetization status, errata tracking, or source-gap handling.
- Load
references/integration.md when wiring the local facade into another script.
- Load
references/workflow-contracts.md when handling run directories, statuses, resume behavior, or traces.
- Load
references/configuration.md before changing generated roots, protected paths, Vitis tool commands, or timeouts.
- Load
references/vitis-hls-2024-2-script-guide.md before changing Vitis HLS .cfg parsing, Tcl rendering, pragma rules, report handling, or compatibility checks.
- Load
references/hls-optimization-patterns.md before changing optimization examples, prompt pragma policy, report-driven tuning rules, or reusable HLS pattern guidance.
- Load
references/hls-report-driven-optimization.md before changing performance-goal framing, synthesis-report interpretation, or optimization-step sequencing.
- Load
references/hls-modeling-strategy.md before changing loop-bound handling, numeric-type guidance, pointer modeling, template/vector usage, or conditional pragma policy.
- Load
references/hls-memory-burst-and-layout.md before changing AXI4 burst policy, local memory layout, lane packing, or reusable buffer guidance.
- Load
references/hls-task-parallel-strategy.md before changing task-level parallelism guidance, channel semantics, restart behavior, or stream/dataflow positioning.
- Load
references/hls-stencil-reduction-gemm-patterns.md before changing stencil/window, reduction-tree, or tiled-GEMM guidance and templates.
- Load
references/hls-advanced-library-patterns.md before changing hls_task, hls_streamofblocks, hls_directio, or hls_fence guidance and validation.
- Load
references/hls-fir-template-family.md before changing FIR pipeline, symmetric, AXIS, dataflow, or specialized FIR-family guidance and assets.
- Load
references/hls-fft-cordic-template-family.md before changing FFT/DFT scaling, twiddle, power-spectrum, CORDIC, or transform-family guidance and assets.
- Load
references/hls-stream-codec-template-family.md before changing RLE AXIS, stream-codec framing, TLAST policy, or reference-first compression guidance.
- Load
references/hls-linear-algebra-template-family.md before changing matmul, prefix scan, SpMV reference guidance, or linear-algebra family assets.
- Load
references/hls-project-structure-patterns.md before changing project structure patterns such as minimal Vitis kernel flow, host-kernel-package staging, kernel variant trees, or hotspot-file organization rules.
- Load
references/hls-device-migration-strategy.md before changing target-part migration guidance, QoR comparison rules, or floating-point/fixed-point portability advice.
- Load
references/hls-library-policy.md before changing HLS include choices, advanced HLS library usage, or generated library examples.
- Load
references/hls-comment-style.md before changing generated C/C++ or workflow Python comment language, spacing, coverage, or validation rules.
- Load
references/hls-ast-comment-guard.md before changing comment-only rewrite validation, AST provider selection, or parser fallback behavior.
- Load
references/hls_readability_rules.md before changing HGxxx rule semantics, severity defaults, profile thresholds, HLS naming rules, or comment-plan behavior.
- Load
references/hls_dispatcher.md before changing generate/modify/explain routing or comment-only rewrite policy.
- Load
references/hls_readability_gate.md before changing local readability acceptance commands or report section names.
- Load
references/remote-board-platform-upload.md before handling uploaded remote U55C platform/xpfm payloads or when board validation is blocked on a missing platform package.
- Load
references/hls-tutorial-derived-templates.md before changing family-to-template mapping policy, 2D block-transform skeletons, or report-driven optimization cues distilled from the curated reference corpus.
- Use
assets/examples/ for minimal HLS memory, burst, stencil, reduction, tiled-GEMM, lane-packed, task-graph, stream-of-blocks, free-running, fence-ordering, stream, partition, dataflow, multi-m_axi, and numeric-strategy specs.
- Use
assets/templates/ for reusable HLS JSON skeletons that already include design_requirements, interface_profile, performance, hls_profile, and confirmation notes.
Boundaries
- Do not generate handwritten Verilog or SystemVerilog.
- HLS-generated RTL/Verilog interface, export, cosim, and debug issues are in scope when they trace back to Vitis HLS code, pragmas, configuration, or reports.
- Pure handwritten Verilog/SystemVerilog debug is not led by this skill; use vivado-debug, vivado-sim, vivado-analysis, or RTL-focused skills for those tasks.
- Do not use local non-HLS hardware tools as validation substitutes.
- Do not modify files outside this repository, except for the governed source-repository validation directories
tests/ (including tests/smoke/) and reports/.
- Keep path and Vitis-tool policy in
scripts/python/config/runtime_config.json; update references/configuration.md when the policy changes.
- Keep skill dependencies in
scripts/python/config/runtime_config.json; missing required dependencies block only their matching capability path, while missing recommended dependencies remain warnings. Install only after the user confirms, then restart Codex so new skill metadata is loaded.
- If
vitis-developer is installed, dependency installation must not install vitis-hls-synthesis from FPGA-Agent-Skills; the remaining Vivado skills are still required.
- Use
erie-remote-ssh for remote SSH checks; do not copy server-list details into this skill.
- If local Vitis tools are unavailable, prefer requesting a remote erie server over weakening validation or substituting non-HLS tools. Discover and present erie server choices before connecting.
- When comment language is
auto, use Chinese (zh) by default. Do not block generation on a language-choice prompt; this project requires Chinese comments.
- Do not claim Vitis validation passed unless
vitis-run or vitis_hls actually ran.
1---2name: readable-hls-generator3description: Use when you need to create, write, review, annotate, or validate readable HLS, Vitis HLS, high-level synthesis, or HLS debug workflows.4---56# Readable HLS Generator78Use this skill for local AMD-Xilinx/Vitis HLS C/C++ kernel generation, modification, review, comment-only annotation, and validation. It covers readable high-level synthesis delivery paths and HLS debug situations when the root cause still traces back to Vitis HLS code, pragmas, interfaces, configuration, or generated reports. Python implementation exists only as internal HLS machinery under `scripts/python/cli`, `scripts/python/config`, `scripts/python/generation`, `scripts/python/hls_quality_gate`, `scripts/python/remote`, `scripts/python/task_dispatcher`, `scripts/python/validation`, and `scripts/python/workflow`; the stable local facade is `scripts/python/integration/hls_adapter.py`. Repo-local Python code governance is out of scope for this skill and must be handled by `readable-python-generator`.910## Capability Routes1112- Create: start from a confirmed HLS spec or scaffold one, then generate readable HLS C/C++ kernel artifacts.13- Write: modify HLS kernels, pragmas, interfaces, DATAFLOW regions, or Vitis project configuration from an explicit behavior contract.14- Review: inspect HLS C/C++ artifacts, Vitis reports, pragmas, interfaces, and generated RTL-facing evidence without rewriting code.15- Annotate: perform comment-only HLS rewrites with Chinese semantic comments and AST/token fingerprint preservation against a baseline.16- Validate: run static HLS checks locally, then use Vitis csim/cosim and remote board acceptance when the requested readiness requires real tool evidence.1718## Workflow19201. On first trigger in a Codex session, run `python -m scripts.python.cli.readable_hls_generator deps check --json` from this skill directory. If it reports `blocked_dependency`, ask the user whether to install the listed required dependencies before continuing. Recommended dependencies warn only; do not treat them as blockers outside the capability path that explicitly requires them.212. Start from a confirmed HLS JSON spec or create one with the scaffold command.223. Use the facade for local integrations:23 - `run_hls_workflow(...)` for full staged execution or resume.24 - `render_hls_prompt(...)` when a caller owns the model call.25 - `validate_hls_artifacts(...)` before using generated files downstream.264. Require a confirmed requirement contract before generation: `pipeline_required`, `streamability`, `interface_family`, `interface_profile`, `confirmed_by_user`, and `confirmation_notes`. When throughput targets, numeric strategy, task parallelism, or device portability are in scope, confirm those constraints before code generation.275. Run the fixed default HLS pipeline: `requirements -> codegen_plan -> tests -> hls`. Treat `remote_toolchain_request.json` and `remote_vitis_acceptance.py` as explicit follow-up acceptance helpers, not default generation stages.286. Treat generated HLS C/C++ Chinese comment placement as a hard gate: file headers, blank-line-separated lower blocks, function contracts, type contracts, includes, macros, HLS pragmas, loops, variable declarations/assignments, function calls, return statements, datapath steps, vector hashes, and testbench PASS/FAIL behavior must have a blank line plus an immediate Chinese purpose comment where required. Generic, template-like, English, or misplaced comments block validation.297. For comment-only HLS rewrites, validate with the AST guard: compare non-comment token fingerprints and normalized AST fingerprints against the baseline artifact tree. Use `--baseline-path` in the CLI or `baseline_path=` in the facade when validating comment-only changes.308. Keep final hardware-facing artifacts limited to HLS C/C++ headers, sources, C++ testbenches, `.cfg` files, vectors, and reports. This skill no longer generates or validates Python reference models, and it no longer ships a repo-local Python quality gate.319. Validate with AMD-Xilinx tooling. Static-only validation reports `static_only=true` and `vitis_executed=false`; do not claim tool execution unless `vitis-run` or `vitis_hls` actually ran. Missing local tools block run/acceptance paths with a remote-server request so the caller can ask the user to choose an `erie-remote-ssh` server with Vitis available.3210. For Vitis development, simulation, cosim, and debug guidance, follow `runtime_config.json` skill routing: prefer `vitis-developer` when installed, otherwise fall back to `vitis-hls-synthesis`.3334## Local Commands3536For source-repository validation only, run the bundled smoke validator from the repository root:3738```powershell39python .\tests\smoke\run_smoke.py40```4142Use the functional CLI from the skill directory or another workspace. Pick an explicit writable output directory when you need generated specs, prompts, or validation JSON:4344```powershell45python -m scripts.python.cli.readable_hls_generator config --path46python -m scripts.python.cli.readable_hls_generator selfcheck --json47python -m scripts.python.cli.readable_hls_generator deps check --json48python -m scripts.python.cli.readable_hls_generator deps request --out <output-dir>\skill_dependency_request.json49python -m scripts.python.cli.readable_hls_generator scaffold --target hls --name vector_scale --out <output-dir>\hls\spec.json50python -m scripts.python.cli.readable_hls_generator prompt --target hls --spec <output-dir>\hls\spec.json --out <output-dir>\hls\prompt.md --confirm-requirements --confirmation-notes "<user-confirmed HLS contract>"51python -m scripts.python.cli.readable_hls_generator validate --target hls --spec <output-dir>\hls\spec.json --path <output-dir>\hls\generated --readiness static --no-external52python -m scripts.python.cli.readable_hls_generator validate --target hls --spec <output-dir>\hls\spec.json --path <output-dir>\hls\commented --baseline-path <output-dir>\hls\baseline --readiness static --no-external53python -m scripts.python.cli.readable_hls_generator readability-gate --target hls --path <output-dir>\hls\generated --profile kernel --style current-project --json54python -m scripts.python.cli.readable_hls_generator comment-plan --target hls --path <output-dir>\hls\commented --baseline-path <output-dir>\hls\baseline --out <output-dir>\hls\reports\hls_comment_rewrite_plan.json55```5657When local `vitis-run`/`vitis_hls` is missing, inspect the workflow's `remote_toolchain_request.json`, ask the user to choose a configured `erie-remote-ssh` build server and, when needed, a separate validation server, then use the remote acceptance helper:5859```powershell60python .\scripts\python\remote\remote_vitis_acceptance.py --mode link --server <erie-server>61python .\scripts\python\remote\remote_vitis_acceptance.py --mode vitis --server <erie-server> --profile <configured-profile> --readiness <execute|implement|cosim>62python .\scripts\python\remote\remote_vitis_acceptance.py --mode vitis --build-server <erie-build-server> --validate-server <erie-validate-server> --vitis-version <shared-version> --readiness <execute|implement|cosim>63python .\scripts\python\remote\remote_vitis_acceptance.py --mode board --server <erie-server> --platform-name <platform-name> --remote-platform-root <remote-platform-root> --remote-xpfm <remote-xpfm> --example-spec <board-runnable-example> --comment-language zh --json64python .\scripts\python\validation\confidence_loop.py --server <erie-server> --vitis-version <shared-version> --readiness cosim --remote-parallelism 3 --json-out ..\..\reports\confidence-loop\latest-remote.json65```6667`confidence_loop.py` defaults remote review to a single canonical smoke spec. Only use `--remote-coverage tier1` when you intentionally want the broader representative/high-risk matrix; otherwise do not turn routine template validation into a full remote sweep.6869Remote Vitis acceptance refreshes erie software scan data. If multiple Vitis70versions are detected and no version has been saved for that server in71`~/.readable-hls-generator/config.json`, ask the user to choose a version and rerun with72`--vitis-version <version>`.7374If no remote Vitis profile has been configured and no previously saved remote75selection provides the required tool path, expected tool, and target part,76stop and ask the user to configure those values before continuing. Do not guess77or fall back to a package default path.7879If the user chooses a split build/validate topology, keep the server choice in80runtime arguments or user-local configuration only. Do not encode real server81ids, hostnames, usernames, ports, or board-specific server defaults into the82skill package.8384Vitis remote acceptance keeps the remote validation directory by default and reports85`remote_dir` relative to the selected erie server workdir. Pass86`--cleanup-remote` only when the user explicitly wants that remote project87deleted after a successful run.8889## Reference Loading9091- Load `references/hls-template-catalog.md` before changing curated template-corpus coverage, assetization status, errata tracking, or source-gap handling.92- Load `references/integration.md` when wiring the local facade into another script.93- Load `references/workflow-contracts.md` when handling run directories, statuses, resume behavior, or traces.94- Load `references/configuration.md` before changing generated roots, protected paths, Vitis tool commands, or timeouts.95- Load `references/vitis-hls-2024-2-script-guide.md` before changing Vitis HLS `.cfg` parsing, Tcl rendering, pragma rules, report handling, or compatibility checks.96- Load `references/hls-optimization-patterns.md` before changing optimization examples, prompt pragma policy, report-driven tuning rules, or reusable HLS pattern guidance.97- Load `references/hls-report-driven-optimization.md` before changing performance-goal framing, synthesis-report interpretation, or optimization-step sequencing.98- Load `references/hls-modeling-strategy.md` before changing loop-bound handling, numeric-type guidance, pointer modeling, template/vector usage, or conditional pragma policy.99- Load `references/hls-memory-burst-and-layout.md` before changing AXI4 burst policy, local memory layout, lane packing, or reusable buffer guidance.100- Load `references/hls-task-parallel-strategy.md` before changing task-level parallelism guidance, channel semantics, restart behavior, or stream/dataflow positioning.101- Load `references/hls-stencil-reduction-gemm-patterns.md` before changing stencil/window, reduction-tree, or tiled-GEMM guidance and templates.102- Load `references/hls-advanced-library-patterns.md` before changing hls_task, hls_streamofblocks, hls_directio, or hls_fence guidance and validation.103- Load `references/hls-fir-template-family.md` before changing FIR pipeline, symmetric, AXIS, dataflow, or specialized FIR-family guidance and assets.104- Load `references/hls-fft-cordic-template-family.md` before changing FFT/DFT scaling, twiddle, power-spectrum, CORDIC, or transform-family guidance and assets.105- Load `references/hls-stream-codec-template-family.md` before changing RLE AXIS, stream-codec framing, TLAST policy, or reference-first compression guidance.106- Load `references/hls-linear-algebra-template-family.md` before changing matmul, prefix scan, SpMV reference guidance, or linear-algebra family assets.107- Load `references/hls-project-structure-patterns.md` before changing project structure patterns such as minimal Vitis kernel flow, host-kernel-package staging, kernel variant trees, or hotspot-file organization rules.108- Load `references/hls-device-migration-strategy.md` before changing target-part migration guidance, QoR comparison rules, or floating-point/fixed-point portability advice.109- Load `references/hls-library-policy.md` before changing HLS include choices, advanced HLS library usage, or generated library examples.110- Load `references/hls-comment-style.md` before changing generated C/C++ or workflow Python comment language, spacing, coverage, or validation rules.111- Load `references/hls-ast-comment-guard.md` before changing comment-only rewrite validation, AST provider selection, or parser fallback behavior.112- Load `references/hls_readability_rules.md` before changing `HGxxx` rule semantics, severity defaults, profile thresholds, HLS naming rules, or comment-plan behavior.113- Load `references/hls_dispatcher.md` before changing generate/modify/explain routing or comment-only rewrite policy.114- Load `references/hls_readability_gate.md` before changing local readability acceptance commands or report section names.115- Load `references/remote-board-platform-upload.md` before handling uploaded remote U55C platform/xpfm payloads or when board validation is blocked on a missing platform package.116- Load `references/hls-tutorial-derived-templates.md` before changing family-to-template mapping policy, 2D block-transform skeletons, or report-driven optimization cues distilled from the curated reference corpus.117- Use `assets/examples/` for minimal HLS memory, burst, stencil, reduction, tiled-GEMM, lane-packed, task-graph, stream-of-blocks, free-running, fence-ordering, stream, partition, dataflow, multi-`m_axi`, and numeric-strategy specs.118- Use `assets/templates/` for reusable HLS JSON skeletons that already include `design_requirements`, `interface_profile`, `performance`, `hls_profile`, and confirmation notes.119120## Boundaries121122- Do not generate handwritten Verilog or SystemVerilog.123- HLS-generated RTL/Verilog interface, export, cosim, and debug issues are in scope when they trace back to Vitis HLS code, pragmas, configuration, or reports.124- Pure handwritten Verilog/SystemVerilog debug is not led by this skill; use vivado-debug, vivado-sim, vivado-analysis, or RTL-focused skills for those tasks.125- Do not use local non-HLS hardware tools as validation substitutes.126- Do not modify files outside this repository, except for the governed source-repository validation directories `tests/` (including `tests/smoke/`) and `reports/`.127- Keep path and Vitis-tool policy in `scripts/python/config/runtime_config.json`; update `references/configuration.md` when the policy changes.128- Keep skill dependencies in `scripts/python/config/runtime_config.json`; missing required dependencies block only their matching capability path, while missing recommended dependencies remain warnings. Install only after the user confirms, then restart Codex so new skill metadata is loaded.129- If `vitis-developer` is installed, dependency installation must not install `vitis-hls-synthesis` from FPGA-Agent-Skills; the remaining Vivado skills are still required.130- Use `erie-remote-ssh` for remote SSH checks; do not copy server-list details into this skill.131- If local Vitis tools are unavailable, prefer requesting a remote erie server over weakening validation or substituting non-HLS tools. Discover and present erie server choices before connecting.132- When comment language is `auto`, use Chinese (`zh`) by default. Do not block generation on a language-choice prompt; this project requires Chinese comments.133- Do not claim Vitis validation passed unless `vitis-run` or `vitis_hls` actually ran.