jetson-link-docs
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesejetson-link-docs
jetson-link-docs
Overview
概述
This skill writes the block of the active Jetson /
IGX target-platform profile YAML so downstream skills
(, , camera / pcie /
uphy, etc.) can resolve doc paths by name. It walks the user through
every document slot in the profile schema, tries to auto-bind each
slot to a file under via case-insensitive
glob matching, and writes the resulting paths back into the active
profile.
documents:/jetson-generate-kb/jetson-customize-pinmux<documents.root_path>/Scope is registering pointers only — this skill does not fetch
or download. The files must already exist on disk under
.
<documents.root_path>/此技能会写入当前Jetson/IGX目标平台配置文件YAML中的区块,以便下游技能(如、、摄像头/PCIe/uphy相关技能等)能够通过名称解析文档路径。它会引导用户完成配置文件schema中的每个文档槽位,尝试通过不区分大小写的glob匹配将每个槽位自动绑定到下的文件,并将最终路径写回到当前配置文件中。
documents:/jetson-generate-kb/jetson-customize-pinmux<documents.root_path>/本技能的作用范围仅为注册文件指针——不会获取或下载文档。文件必须已存储在对应的本地磁盘路径下。
<documents.root_path>/When to invoke
调用时机
- After finishes and the user has documents on disk to register.
/jetson-init-target - The user wants to add, change, or remove document references on an existing profile.
- A downstream skill (e.g. ) reports "no documents recorded" and the user wants to fix that.
jetson-generate-kb
- 在技能执行完成,且用户已将文档存储到本地磁盘需要注册时。
/jetson-init-target - 用户需要在现有配置文件中添加、修改或移除文档引用时。
- 下游技能(如)提示“未记录文档”,用户需要修复该问题时。
jetson-generate-kb
Procedure
操作流程
Resolve the active target
确定当前目标
Resolve the active profile + per the contract in
.
Cache the loaded profile in memory — this skill mutates it in
the "Write the block back to the profile" step.
<workspace>../../context/target-platform-contract.mddocuments:根据中的约定,确定当前配置文件及路径。将加载的配置文件缓存到内存中——本技能会在“将区块写回配置文件”步骤中修改该配置文件。
../../context/target-platform-contract.md<workspace>documents:Load the document-slot schema
加载文档槽位schema
Load
.
Parse the block. Each per-document field is marked
. Use the marker description as prompt text
verbatim. Match markers with the regex
after YAML parsing strips
surrounding quotes.
../../references/platform_template.yamldocuments:<OPTIONAL: description>^<(REQUIRED|OPTIONAL|DERIVED):\s*(.*)>$Skip and
entirely when the active profile has no block —
both are meaningless without one. This filter applies through the "Scan and auto-match" and "Manual prompts for unmatched fields" steps.
custom_carrier_schematiccustom_carrier_pinmux_xlscustom_carrier:加载。解析其中的区块。每个文档字段都标记为。直接使用标记中的描述作为提示文本。在YAML解析去除引号后,使用正则表达式匹配标记。
../../references/platform_template.yamldocuments:<OPTIONAL: description>^<(REQUIRED|OPTIONAL|DERIVED):\s*(.*)>$如果当前配置文件中没有区块,则完全跳过和字段——没有自定义载板时这两个字段毫无意义。此过滤规则适用于“扫描并自动匹配”和“未匹配字段的手动提示”步骤。
custom_carrier:custom_carrier_schematiccustom_carrier_pinmux_xlsResolve documents.root_path
documents.root_path解析documents.root_path
documents.root_pathDefault: . If the profile already records
, use it. Otherwise, if
exists, use it (the field is omitted from the written profile —
downstream skills fall back to the workspace default). If neither is
available, prompt the user for an absolute path, or accept Enter /
to skip the auto-scan. A user-provided path that doesn't
exist is treated as skipped (warn, don't refuse — the field is
OPTIONAL); manual prompts in the "Manual prompts for unmatched fields" step still run.
<workspace>/Documentsdocuments.root_path<workspace>/Documents/cancel默认路径:。如果配置文件中已记录,则使用该路径。否则,如果存在,则使用该路径(此字段不会写入配置文件——下游技能会回退到工作区默认路径)。如果两者都不可用,则提示用户输入绝对路径,或接受回车/以跳过自动扫描。用户提供的路径若不存在,将视为跳过(仅发出警告,不拒绝——该字段为可选);“未匹配字段的手动提示”步骤仍会执行。
<workspace>/Documentsdocuments.root_path<workspace>/Documents/cancelResolve the product token
解析产品令牌
Read the Product Token column from
for the row matching . The token is a
case-insensitive glob fragment (e.g. , )
consumed by the fallback patterns in the "Scan and auto-match" step.
../../references/bsp-platforms-catalogue.mdreference_devkit.name*orin*nano**agx*thor*If has no row in the catalogue, log a warning
and proceed without a product-token fallback — the "Scan and auto-match" step still works
with strictly SKU-keyed matching.
reference_devkit.nameFor custom carriers, derive from
using this recipe: lowercase, replace each space with , wrap in
on both ends. E.g. "Acme Vision X1" → .
<custom-token>custom_carrier.name***acme*vision*x1*从中读取与匹配行的Product Token列。该令牌是一个不区分大小写的glob片段(例如、),供“扫描并自动匹配”步骤中的回退模式使用。
../../references/bsp-platforms-catalogue.mdreference_devkit.name*orin*nano**agx*thor*如果在目录中没有对应行,记录警告并继续执行,不使用产品令牌回退——“扫描并自动匹配”步骤仍可通过严格的SKU匹配正常工作。
reference_devkit.name对于自定义载板,根据按照以下规则生成:转为小写,将每个空格替换为,两端用包裹。例如,“Acme Vision X1” → 。
custom_carrier.name<custom-token>***acme*vision*x1*Scan and auto-match
扫描并自动匹配
Skip this step entirely if did not resolve in
the "Resolve " step (no scan target → no auto-suggest; fall through to manual
prompts in the "Manual prompts for unmatched fields" step).
documents.root_pathdocuments.root_pathScan the directory once (one level deep) and try to auto-match each
remaining field using the case-insensitive globs below.
Use the lower-case / /
strings from the profile in the SKU column.
<OPTIONAL:…>module.idcarrier.idcustom_carrier.id| Field | SKU glob (primary) | Product-token glob (fallback) |
|---|---|---|
| | (no fallback — pattern is product-agnostic) |
| | (no fallback — same) |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
<token><custom-token>custom_carrier.name*如果在“解析”步骤中未解析出路径,则完全跳过此步骤(无扫描目标→无自动建议;直接进入“未匹配字段的手动提示”步骤)。
documents.root_path扫描目录一次(仅一级深度),尝试使用以下不区分大小写的glob自动匹配每个剩余的字段。使用配置文件中//的小写字符串作为SKU列的值。
<OPTIONAL:…>module.idcarrier.idcustom_carrier.id| 字段 | SKU glob(优先) | 产品令牌glob(回退) |
|---|---|---|
| | (无回退——模式与产品无关) |
| | (无回退——同上) |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
<token><custom-token>custom_carrier.name*Match policy per field
每个字段的匹配规则
For each field that has auto-match results:
- Take the union of hits across the SKU glob and the product- token glob, then deduplicate by absolute path — a file matched by both globs counts once.
- Exactly 1 unique hit → show the path and prompt
. On
use this? (yes/no, default yes), record it and skip the manual prompt for that field. Onyes, fall through to the manual prompt in the "Manual prompts for unmatched fields" step.no - 0 hits → skip auto-suggest entirely for that field; fall through to the "Manual prompts for unmatched fields" step.
- 2+ unique hits → present them as a numbered list in the "Manual prompts for unmatched fields" step so
the user can pick by number rather than typing a path; include a
option. Never silently bind a multi-hit candidate.
skip / NA - Never silently bind without user confirmation — wrong-schematic / wrong-pinmux bindings are real and costly.
If is folder-organised one level deeper than
flat (NVIDIA archives often are: , ,
, etc.), the file globs may return zero hits even when the
right documents exist. v0.2 only scans one level deep — when 0 hits
is suspicious ( exists but no fields auto-bound),
surface the limitation to the user and offer to fall through to
manual prompts.
documents.root_pathSchematics/Design-Guides/Pinmux/documents.root_path对于每个有自动匹配结果的字段:
- 取SKU glob和产品令牌glob匹配结果的并集,然后按绝对路径去重——同一个文件被两个glob匹配到仅算一次。
- 恰好1个唯一匹配结果 → 显示路径并提示。如果选择
use this? (yes/no, default yes),记录该路径并跳过该字段的手动提示。如果选择yes,进入“未匹配字段的手动提示”步骤。no - 0个匹配结果 → 完全跳过该字段的自动建议;进入“未匹配字段的手动提示”步骤。
- 2个及以上唯一匹配结果 → 在“未匹配字段的手动提示”步骤中以编号列表形式展示,用户可通过编号选择,而非手动输入路径;同时提供选项。绝不自动绑定多个匹配结果中的任意一个。
skip / NA - 绝不自动绑定,必须经用户确认——绑定错误的原理图/Pinmux会造成严重损失。
如果的文件夹结构比扁平结构深一级(NVIDIA归档文件通常如此:、、等),则文件glob可能返回0个匹配结果,即使正确的文档存在。v0.2版本仅扫描一级深度——当出现可疑的0匹配结果(存在但无字段自动绑定)时,向用户说明此限制,并提供进入手动提示步骤的选项。
documents.root_pathSchematics/Design-Guides/Pinmux/documents.root_pathManual prompts for unmatched fields
未匹配字段的手动提示
For every field that wasn't auto-bound (and wasn't filtered out in
the "Load the document-slot schema" step), prompt using the marker description from the "Load the document-slot schema" step as prompt
text, in document order. Accept Enter and interchangeably as
"skip this field". When the "Match policy per field" step produced 2+ candidate hits for a
field, present them as a numbered list with a option
rather than asking for a free-text path.
NAskip / NAValidate that user-provided paths exist on disk (warn if not, but do
not refuse — the user may be recording a planned path). URLs (values
starting with , , or ) are accepted
verbatim and not validated.
http://https://ftp://对于所有未自动绑定的字段(以及未在“加载文档槽位schema”步骤中被过滤的字段),按照文档顺序,使用“加载文档槽位schema”步骤中的标记描述作为提示文本。接受回车和作为“跳过此字段”的等价输入。如果“每个字段的匹配规则”步骤中某个字段产生了2个及以上候选匹配结果,则以编号列表形式展示,并提供选项,而非要求用户输入自由文本路径。
NAskip / NA验证用户提供的路径是否存在于磁盘(若不存在则发出警告,但不拒绝——用户可能记录的是计划路径)。URL(以、或开头的值)将直接接受,不进行验证。
http://https://ftp://Write the documents:
block back to the profile
documents:将documents:
区块写回配置文件
documents:Edit in place. Preserve all other
top-level blocks (, ,
, ) and their comments verbatim. Write only the
fields the user provided — omit skipped / fields entirely (no
placeholders, no empty keys).
target-platform/<active>.yamlreference_devkit:custom_carrier:bsp_image:source:NANAEdge behavior: when every field was skipped (including
), drop the block entirely from
the profile — never write or a block of values.
When only was provided (no per-document
binding), record it alone — the path has value as a hint for future
re-runs. On re-run with an existing block, merge:
existing bindings are preserved unless the user picks a new file or
; newly bound fields are added.
documents.root_pathdocuments:documents: {}NAdocuments.root_pathdocuments:NA直接编辑文件。保留所有其他顶级区块(、、、)及其注释不变。仅写入用户提供的字段——完全省略跳过/的字段(不保留占位符,不保留空键)。
target-platform/<active>.yamlreference_devkit:custom_carrier:bsp_image:source:NANA边缘情况:如果所有字段都被跳过(包括),则从配置文件中完全删除区块——绝不写入或包含值的区块。如果仅提供了(无单个文档绑定),则仅记录该路径——该路径可作为后续重新运行的提示。重新运行时,如果已有区块,则进行合并:除非用户选择新文件或,否则保留现有绑定;添加新绑定的字段。
documents.root_pathdocuments:documents: {}NAdocuments.root_pathdocuments:NAConfirm
确认
Print a summary:
- Profile path written.
- — resolved value (or "default — omitted").
documents.root_path - Auto-bound fields: count + per-field one-line list.
- Manually entered fields: count + list.
- Skipped fields: count.
- A reminder that re-reads
jetson-generate-kband should be re-run if a KB exists.documents.*
If a downstream skill triggered this run, tell the user to re-issue
their original request; do not silently re-trigger it.
打印摘要:
- 写入的配置文件路径。
- ——解析后的值(或“默认值——已省略”)。
documents.root_path - 自动绑定字段:数量+每个字段的单行列表。
- 手动输入字段:数量+列表。
- 跳过的字段:数量。
- 提醒用户会重新读取
jetson-generate-kb字段,若已有知识库则需重新运行该技能。documents.*
如果是下游技能触发了本次运行,告知用户重新发出原始请求;不自动重新触发下游技能。
Gotchas
注意事项
- Active profile must exist. This skill writes back to whichever
profile is active. If no profile is active, refuse and route to
/
jetson-set-target.jetson-init-target - Product-token globs are intentionally broad. A token like
matches both Orin-Nano-specific docs and combined Orin-NX/Nano docs (e.g.
*orin*nano*). That is usually correct for module-side docs (NVIDIA ships combined manuals), but verify on schematic / pinmux / spec fields where wrong-product binding is costly.Jetson-Orin-NX-Nano-Design-Guide_… - Update when adding new product rows. The Product Token column is consumed by the "Resolve the product token" step; a missing token degrades the auto-scan to SKU-only matching (the skill warns and continues, but doc-rich
bsp-platforms-catalogue.mdscans will degrade silently from "5 auto-binds" to "fewer auto- binds").documents.root_path - Use a round-tripping YAML loader. the "Write the block back to the profile" step mutates an existing YAML file. Plain
documents:+yaml.safe_loadloses comments, block ordering, and quoting style — useyaml.safe_dumpor equivalent so hand-edited fields and comments survive.ruamel.yaml - Re-runnable. Re-running merges new bindings; existing bindings are preserved unless the user explicitly changes them. Safe to invoke as part of a profile refresh.
- 必须存在当前配置文件。此技能会写回到当前激活的配置文件中。如果没有激活的配置文件,拒绝执行并引导至/
jetson-set-target技能。jetson-init-target - 产品令牌glob故意设置为宽泛匹配。类似的令牌会同时匹配Orin-Nano专用文档和Orin-NX/Nano组合文档(例如
*orin*nano*)。对于模块端文档,这通常是正确的(NVIDIA发布的是组合手册),但在原理图/Pinmux/规格字段中需进行验证,因为绑定错误产品的文档会造成严重损失。Jetson-Orin-NX-Nano-Design-Guide_… - 添加新产品行时更新。Product Token列会被“解析产品令牌”步骤使用;缺少令牌会使自动扫描降级为仅SKU匹配(技能会发出警告并继续执行,但文档丰富的
bsp-platforms-catalogue.md扫描会从“自动绑定5个字段”静默降级为“自动绑定更少字段”)。documents.root_path - 使用支持往返的YAML加载器。“将区块写回配置文件”步骤会修改现有YAML文件。普通的
documents:+yaml.safe_load会丢失注释、区块顺序和引用格式——使用yaml.safe_dump或类似工具,确保手动编辑的字段和注释得以保留。ruamel.yaml - 可重复运行。重新运行会合并新的绑定;除非用户明确修改,否则保留现有绑定。可安全地作为配置文件刷新流程的一部分调用。
Prerequisites
前置条件
- Active target profile resolved per
.
../../context/target-platform-contract.md - Documents available either under the recorded , under default
documents.root_path, or as user-provided paths / URLs during manual prompts. A missing root only disables auto-scan; it is not a hard prerequisite.<workspace>/Documents/ - or another round-tripping YAML writer for the profile edit step.
ruamel.yaml
- 根据解析出当前目标配置文件。
../../context/target-platform-contract.md - 文档已存储在已记录的下、默认的
documents.root_path下,或可在手动提示步骤中由用户提供路径/URL。缺少根路径仅会禁用自动扫描;并非硬性前置条件。<workspace>/Documents/ - 配置文件编辑步骤需使用或其他支持往返的YAML写入工具。
ruamel.yaml
Limitations
限制
- Registers pointers only; never downloads, copies, or renames files.
- Per-document field set is fixed to the schema in
— no ad-hoc keys.
../../references/platform_template.yaml - Glob matching is filename-only; bad filenames in
will under-bind and require manual selection.
documents.root_path
- 仅注册指针;绝不下载、复制或重命名文件。
- 单个文档字段集固定为中的schema——不支持临时键。
../../references/platform_template.yaml - Glob匹配仅基于文件名;中的文件名不符合规则会导致自动绑定失败,需要手动选择。
documents.root_path
Troubleshooting
故障排除
- missing — auto-scan is skipped. Provide an absolute root path, enter individual document paths / URLs manually, or skip the fields you do not want to bind.
documents.root_path - Multiple files match a single slot — the skill stops and prompts;
pick or rename the file. Example: two
files → keep the active version, rename the stale one.
Jetson-Linux-Developer-Guide*.pdf - Profile comments lost after write — a non-round-tripping YAML
writer was used; switch to and rerun against a fresh pristine copy.
ruamel.yaml - Validation fails because a binding points outside
—
documents.root_pathare relative paths only; move the file under the root and retry.documents.*
- 缺失——自动扫描被跳过。提供绝对根路径,手动输入单个文档路径/URL,或跳过不需要绑定的字段。
documents.root_path - 多个文件匹配单个槽位——技能会停止并提示;选择或重命名文件。示例:两个文件→保留当前版本,重命名旧版本。
Jetson-Linux-Developer-Guide*.pdf - 写入后配置文件注释丢失——使用了不支持往返的YAML加载器;切换到并针对原始干净副本重新运行。
ruamel.yaml - 验证失败,因为绑定指向外部——
documents.root_path仅支持相对路径;将文件移动到根路径下并重试。documents.*
References
参考资料
- — target-platform contract; this skill consumes and mutates the active profile.
../../context/target-platform-contract.md - — source of the Product Token column for the "Resolve the product token" step.
../../references/bsp-platforms-catalogue.md - — schema for the
../../references/platform_template.yamlblock (source of truth for prompts and field list).documents: - — sibling skill that authors target identity (
../jetson-init-target/SKILL.md, optionalreference_devkit:).custom_carrier: - — sibling skill that authors
../jetson-init-image/SKILL.md.bsp_image: - — sibling skill: clones shared repos and handles
../jetson-init-source/SKILL.mdoverrides.source.root_path - — sibling skill: consumes the
../jetson-generate-kb/SKILL.mdblock this skill writes.documents:
- ——目标平台约定;此技能会读取并修改当前配置文件。
../../context/target-platform-contract.md - ——“解析产品令牌”步骤中Product Token列的来源。
../../references/bsp-platforms-catalogue.md - ——
../../references/platform_template.yaml区块的schema(提示文本和字段列表的权威来源)。documents: - ——兄弟技能,用于生成目标标识(
../jetson-init-target/SKILL.md、可选的reference_devkit:)。custom_carrier: - ——兄弟技能,用于生成
../jetson-init-image/SKILL.md。bsp_image: - ——兄弟技能:克隆共享仓库并处理
../jetson-init-source/SKILL.md覆盖。source.root_path - ——兄弟技能:读取此技能写入的
../jetson-generate-kb/SKILL.md区块。documents: