skill-card-generator
bởi nvidia
Chỉ sử dụng để tạo hoặc cập nhật thẻ kỹ năng quản trị cho một thư mục kỹ năng tác nhân hiện có được chỉ định. Không sử dụng để giải thích, liệt kê, so sánh hoặc…
npx skills add https://github.com/nvidia/skills --skill skill-card-generatorGenerate 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 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.
- Populate
credential_requirementswith only two fields:requires_api_key_or_credentialandcredential_types. Ground the classification in SKILL.md prose documentation — not script inspection alone. Forcredential_types, use the controlled vocabulary inreferences/style-guide.md. Never include credential values, assignments, or raw environment variable names. - 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