jetson-generate-kb
Build a per-target knowledge-base markdown next to the active profile by walking the BSP root and source tree. Use after init-image / init-source; not for editing profile fields.
Install / Use
npx skills add NVIDIA/skills --skill jetson-generate-kbInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Content & MediaSupported Platforms
Our assessment of jetson-generate-kb
jetson-generate-kb scores 92/100 on our quality scale, 202nd of 770 Content & Media skills we index (top 27%).
Its SKILL.md is 15 KB long, well organised into 26 sections with 1 code example: a thorough specification that gives an agent plenty to work with.
With 3,421 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 5 days ago, so jetson-generate-kb is actively maintained.
- It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
jetson-generate-kb compared with similar skills
All 4 of these similar skills score higher than jetson-generate-kb; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| jetson-generate-kb (this skill)by NVIDIA | 92 | 3.4k | 5d ago | SKILL.md |
| LocalAIby mudler | 100 | 49.3k | today | MCP Server |
| siyuanby siyuan-note | 100 | 46.5k | today | MCP Server |
| algorithmic-artby anthropics | 100 | 177.9k | 6d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 6d ago | SKILL.md |
Frequently asked questions
- How do I install jetson-generate-kb?
- Run
npx skills add NVIDIA/skills --skill jetson-generate-kb. The install tabs above show the steps for each supported agent. - Which AI agents does jetson-generate-kb work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is jetson-generate-kb safe to use?
- It is Apache-2.0-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is jetson-generate-kb still maintained?
- The repository was last updated 5 days ago, so jetson-generate-kb is actively maintained.
Skill content
View source on GitHubname: jetson-generate-kb description: >- Build a per-target knowledge-base markdown next to the active profile by walking the BSP root and source tree. Use after init-image / init-source; not for editing profile fields. version: 0.0.1 license: "Apache-2.0" metadata: data-classification: public author: "Jetson Team" tags: - target-platform - knowledge-base - documentation - meta domain: meta
Generate Target Knowledge Base
Overview
This skill produces a per-profile markdown reference at
target-platform/<profile-stem>.md (sibling to the profile YAML). It
bundles three things into one file so a future Claude session — or the
user — can see the shape of the active target without re-walking the
filesystem:
- BSP image layout — top-level directories under
bsp_image.root_path, presence of canonical subtrees (rootfs/,bootloader/,source/, …), and the nvpmodel variants matching the active module SKU. - Source tree layout — top-level subtrees under
source.root_path(kernel-jammy-src/,hardware/nvidia/,nvidia-oot/, etc.) and devicetree files matching the chip family. - Documents — the
documents.*references recorded in the profile, with local-path existence checks and one-line descriptions.
The KB is a snapshot, dated in its header. Re-run this skill whenever the underlying data changes — it is intentionally re-runnable and overwrites the previous KB on each run.
When to invoke
- After
jetson-init-imageprepares the BSP for a freshly authored profile. - After re-extracting a BSP archive or applying patches under
bsp_image.root_path. - After updating the source tree at
source.root_path. - After editing
bsp_image.*ordocuments.*in the profile YAML. - When a downstream skill asks "where is X in this BSP?" and you'd rather check the KB than re-walk the tree.
Procedure
Resolve the active target
Resolve the active profile per the contract in
../../context/target-platform-contract.md;
cache it in memory — the rest of the skill consumes only this
profile. Record <profile-stem> (the bare filename minus .yaml)
as the KB output filename stem.
Validate inputs
| Field | Required for KB? | If missing |
|---|---|---|
| bsp_image.root_path | yes | Refuse. A KB with no BSP root to scan is just a YAML restatement; tell the user to run jetson-init-image or hand-edit the profile. |
| source.root_path | no | Skip the source-tree section; note "source_root not recorded" in the KB. |
| documents.* | no | Render an empty Documents table with a "no documents recorded" note. |
If bsp_image.root_path is set but the directory does not exist on disk,
refuse with a clear message — do not fabricate a layout for a path
that isn't there.
BSP discovery (under bsp_image.root_path)
Run only the following cheap operations — no recursive scans, no file content reads beyond directory listings:
ls -1ofbsp_image.root_path(one level deep). Record which directories are present.- For each canonical subtree below, mark present/absent:
rootfs/,bootloader/,kernel/,source/,tools/,nv_tegra/. - Verify the active
flash_configfile exists at<bsp_image.root_path>/<flash_config>. Record its path or(missing). - List
rootfs/etc/nvpmodel/and filter to filenames matchingnvpmodel_<module.id>_<module.sku>*.conf. Record each match. Use the lower-case module id (e.g.p3767) and the YAML-quoted sku string (e.g.0001).
Source tree discovery (under source.root_path)
Skip this step entirely if source.root_path is NA or missing.
Otherwise, run only:
ls -1ofsource.root_path(one level deep).- For each canonical subtree below, mark present/absent:
kernel-jammy-src/,hardware/nvidia/,nvidia-oot/,nvgpu/,nvethernetrm/,nvdisplay/,hwpm/,kernel-devicetree/. - If
kernel-devicetree/generic-dts/dts/exists, list filenames matchingtegra<chip>*where<chip>is the chip-family numeric prefix (see chip-family map below). Record up to 30 hits; if more, record the count and a "showing first 30" note.
Chip-family map (used in the "BSP discovery" and "Source tree discovery" steps)
Derive <chip> from module.id:
| module.id | Chip family | <chip> prefix |
|---|---|---|
| p3701, p3767 | T234 — Orin | 234 |
| p3834 | T264 — Thor | 264 |
If module.id is not in this table, record the chip as
unknown (module.id=<value>) and skip the chip-prefixed devicetree
filter.
Documents pass
For each field in documents.* from the loaded profile:
- Classify the value as URL (starts with
http://,https://, orftp://) or local path (anything else). - For URLs: record verbatim. Do not fetch the URL — KB generation must remain offline. (A future skill can promote to deep indexing.)
- For local paths: check
os.path.exists. Record the path; if missing on disk, append(missing).
The one-line description for each field comes from the marker in
../../references/platform_template.yaml
— strip the <OPTIONAL: …> wrapper and use the inner text.
If the profile has no documents: block, render the section with a
single line: _No documents recorded — run jetson-link-docs or hand-edit the profile to add references._
Render and write the KB
Render the markdown using the structure below. Use today's date (YYYY-MM-DD) in the header. Always overwrite any existing KB file at the destination — do not prompt before overwriting; re-runs are the intended use.
Destination: target-platform/<profile-stem>.md.
Rendered structure
# Target knowledge base — <profile-stem>
> Generated <YYYY-MM-DD> from `<bsp_image.root_path>` (BSP version `<bsp_image.version>`).
> Re-run `jetson-generate-kb` after extracting a new BSP, applying
> patches, or editing profile fields. This file is a regenerated
> snapshot — do not hand-edit.
## Profile facts
- **Reference devkit:** `<reference_devkit.name>`
- **Module:** `<module.id>-<module.sku>` (`<chip family label>`)
- **Reference carrier:** `<carrier.id>-<carrier.sku>`
- **Custom carrier:** `<custom_carrier.name>` (`<custom_carrier.id>-<custom_carrier.sku>`) _← omit this row if Case 1_
- **Active flash conf:** `<flash_config>`
- **BSP path:** `<bsp_image.root_path>`
- **BSP version:** `<bsp_image.version>`
- **Source root:** `<source.root_path>` _← or "_not recorded_" if NA_
## BSP image layout
Top-level directories under `<bsp_image.root_path>`:
| Directory | Present | Purpose |
|---|---|---|
| `rootfs/` | ✓ / ✗ | userspace rootfs (nvpmodel, nvfan, systemd units, etc.) |
| `bootloader/` | ✓ / ✗ | firmware blobs, BCT, MB1/MB2 dts |
| `kernel/` | ✓ / ✗ | prebuilt kernel + modules |
| `source/` | ✓ / ✗ | BSP source tree (kernel, OOT drivers, DT) |
| `tools/` | ✓ / ✗ | flashing helpers, jetson-io, kernel_flash |
| `nv_tegra/` | ✓ / ✗ | nvidia firmware tarballs, kernel-supplements |
Active flash conf `<flash_config>`: present at
`<bsp_image.root_path>/<flash_config>` _or_ `(missing — verify before flashing)`.
### nvpmodel files matching the active SKU
Filtered from `rootfs/etc/nvpmodel/` by `nvpmodel_<module.id>_<module.sku>*.conf`:
- `<each match, one per line>`
The active variant at boot is selected by `nvpower.sh` from
`/proc/device-tree/compatible` plus super / safety state — see
`jetson-customize-nvpmodel` for the resolution rules.
## Source tree layout
(omit this whole section if `source.root_path` is `NA`/missing)
Top-level subtrees under `<source.root_path>`:
| Subtree | Present | Purpose |
|---|---|---|
| `kernel-jammy-src/` | ✓ / ✗ | mainline 5.x kernel sources |
| `hardware/nvidia/` | ✓ / ✗ | NVIDIA platform DTs (per chip family) |
| `nvidia-oot/` | ✓ / ✗ | NVIDIA out-of-tree kernel modules |
| `nvgpu/` | ✓ / ✗ | GPU driver |
| `nvethernetrm/` | ✓ / ✗ | ethernet driver |
| `nvdisplay/` | ✓ / ✗ | display driver |
| `hwpm/` | ✓ / ✗ | hardware performance monitor |
| `kernel-devicetree/` | ✓ / ✗ | devicetree sources |
### Devicetree files for chip family `<chip>`
(omit if `kernel-devicetree/generic-dts/dts/` is absent)
Files matching `tegra<chip>*` under `kernel-devicetree/generic-dts/dts/`:
- `<each match, one per line — cap at 30, then a "first 30 of N" note>`
## Documents
| Field | Reference |
|---|---|
| Documents root folder | `<doc_root>` _or_ _not recorded_ |
| BSP / Jetson Linux developer guide | `<bsp_developer_guide>` _or_ _not recorded_ |
| Tegra SoC Technical Reference Manual | `<soc_tech_ref_manual>` _or_ _not recorded_ |
| Jetson module data sheet | `<module_data_sheet>` _or_ _not recorded_ |
| Jetson module design guide (PDG) | `<module_design_guide>` _or_ _not recorded_ |
| Jetson module thermal design guide (TDG) | `<module_thermal_design_guide>` _or_ _not recorded_ |
| Jetson module schematic | `<module_schematic>` _or_ _not recorded_ |
| Reference carrier board specification | `<carrier_board_spec>` _or_ _not recorded_ |
| Reference carrier schematic | `<carrier_schematic>` _or_ _not recorded_ |
| Custom carrier schematic | `<custom_carrier_schematic>` _or_ _not recorded / N/A (no custom carrier)_ |
| Reference-devkit pinmux spreadsheet | `<ref_devkit_pinmux_xls>` _or_ _not recorded_ |
| Custom-carrier pinmux spreadsheet | `<custom_carrier_pinmux_xls>` _or_ _not recorded / N/A (no custom carrier)_ |
(Local paths are tagged ` (missing)` if absent on disk. URLs are
recorded verbatim and not fetched. If `doc_root` is set, also tag
` (missing)` on it if the directory itself is gone — that signals
auto-mapping in `jetson-link-docs` won't work on a re-run.)
## How to refresh this file
Re-run `jetson-generate-kb` whenever any of the following changes:
- the BSP at `<bsp_image.root_path>` is re-extracted, patched, or upgraded,
- the source tree at `<source.root_path>` changes,
- the active profile's `bsp_image.*` or `documents.*` fields are edited.
This file is overwritten on every run. Do not hand-edit it — edit the
source data (profile YAML or the BSP tree) and re-run instead.
Confirm
Print a short summary:
- Output path:
target-platform/<profile-stem>.md. - BSP top-level directory count and which canonical subtrees were present / absent.
- nvpmodel match count for the active SKU.
- Source-tree section: rendered or skipped (and why).
- Documents: count of recorded fields, count of local paths flagged
(missing).
If a downstream skill triggered this run, tell the user to re-issue their original request.
Gotchas
- The KB is a snapshot, not a live view. The dated header is authoritative — if it doesn't match today, the BSP/source/docs may have changed underneath. Re-run on demand.
- Always overwrites. No prompt before clobbering the previous KB
at
target-platform/<profile-stem>.md. This is intentional — re-runnability is the whole point. Tell the user not to hand-edit the file; edit profile YAML or the BSP and regenerate. - Refuses on
bsp_image.root_path = NA. A profile with no BSP path produces a content-free KB. Do not write one — instead, point the user at the profile YAML to fill in. - No URL fetching. Document URLs are recorded verbatim. Promoting to deep indexing (HTTP HEAD, PDF parsing) is out of scope for v0.1.
- No recursive scans. Discovery is one level deep per directory, with at most one targeted glob (nvpmodel + devicetree). Never walk the entire BSP — it's huge and slow.
- Cap devicetree listings at 30 entries to keep the KB readable. Show "first 30 of N" wh
Truncated for display — read the full file on GitHub.
Related Skills
LocalAI
49.3kLocalAI is the open-source AI engine. Run any model - LLMs, vision, voice, image, video - on any hardware. No GPU required.
siyuan
46.5kAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间,让人与智能体在此协作
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
