Generate Skill Card
Skill directory to analyze: $ARGUMENTS
Purpose
Create a draft NVIDIA governance skill card for an existing agent skill. The skill gathers source signals, guides the agent to build a grounded JSON context, renders a deterministic markdown card, and checks that human-review markers were removed before submission.
Use this when:
- A skill directory already exists and needs a new governance card.
- A changed skill needs its existing card refreshed.
- A skill owner is preparing NVCARPS or legal/safety review material.
Do NOT use for:
- Explaining, listing, comparing, or discussing skills or skill capabilities.
- Creating or rewriting the source skill itself.
- Generating cards for non-skill assets such as models, datasets, containers, or full systems.
- Signing, publishing, or approving a skill card.
- Replacing required human legal, safety, or owner review.
Prerequisites
- Python 3 is available.
jinja2is installed before runningrender_card.py.- The target path is a skill directory containing
SKILL.mdorskill.md. - The agent can write a temporary context JSON file and the rendered card output.
- Runtime permissions allow reads from
target_skill_directoryplus this skill'sreferences/andscripts/, writes only to the target skill directory or/tmp/, and shell execution only for the three scripts listed below.
Instructions
- First, read this
SKILL.mdcompletely before running any script. - Resolve the target skill directory from
$ARGUMENTS; if omitted, use the current working directory. - Stay within the declared permission scope. Do not read
.env, credential files, hidden auth folders, or unrelated repo files; do not write outside the target skill directory or/tmp/. - Run
scripts/discover_assets.pyagainst the target. Use the structured signal summary first; if output is truncated, read only targeted files or small excerpts. - Build a context JSON file from the structured signal summary first, then from extracted file contents only when needed.
- Follow
references/style-guide.mdfor every context field. UseHUMAN-REQUIREDonly when no source supports a truthful value. - Render the card with
scripts/render_card.pyand fix any schema errors before proceeding. - Review the card manually, remove resolved VERIFY and SELECT markers, then run
scripts/validate_submission.py. - Before finishing, confirm the rendered card has no unrendered
{{ ... }}or{% ... %}template fragments.
Available Scripts
| Script | Purpose | Arguments |
|---|---|---|
scripts/discover_assets.py | Extracts skill files, repo signals, style guide, and template into one discovery report. | <skill_directory> |
scripts/render_card.py | Validates context JSON and renders the skill card from the Jinja template. | --context <context.json> --template <skill-card.md.j2> --out <output.md> |
scripts/validate_submission.py | Fails if the rendered card still contains VERIFY or SELECT review markers. | <rendered-card.md> |
Examples
Discover signals for a target skill:
run_script("scripts/discover_assets.py", args=["/path/to/target-skill"])
Render a card from the completed context:
run_script(
"scripts/render_card.py",
args=[
"--context", "/tmp/target-skill-context.json",
"--template", "references/skill-card.md.j2",
"--out", "/path/to/target-skill/target-skill-card.md"
]
)
Validate the reviewed card before submission:
run_script("scripts/validate_submission.py", args=["/path/to/target-skill/target-skill-card.md"])
Limitations
- The generated card is a draft and must be reviewed by a human owner.
- Discovery is limited to local files and repo metadata visible from the target path.
- The renderer validates required context shape, not the legal or safety correctness of field values.
- Canned limitation and risk catalogs are starting points; remove entries that do not apply.
Troubleshooting
| Error | Cause | Solution |
|---|---|---|
directory not found | The target path is wrong or not mounted in the workspace. | Re-run discovery with the absolute path to the skill directory. |
jinja2 not installed | The renderer dependency is missing. | Install jinja2, then re-run render_card.py. |
Context validation failed | Required fields are missing or typed incorrectly. | Fix the context JSON using references/style-guide.md. |
| Unresolved marker failure | VERIFY or SELECT markers remain after review. | Confirm each marked field, prune catalog entries, then re-run validate_submission.py. |
Files in this skill
SKILL.md- this file (orchestration)references/style-guide.md- per-context-field guidancereferences/skill-card.md.j2- exact card layoutreferences/Skill Card Generator License.txt- license text for this skill packagereferences/catalog/limitations.json- canned technical-limitations catalogreferences/catalog/risks.json- canned risk-management catalogscripts/discover_assets.py- discovery and signal extractionscripts/render_card.py- Jinja renderer with context validationscripts/validate_submission.py- pre-submission marker validator