| 名称 | “skill-card-generator” |
| 描述 | “仅用于为指定的现有智能体技能目录生成或更新治理技能卡。请勿用于解释、列出、比较或讨论技能能力。” |
| 开源协议 | CC-BY-4.0 AND Apache-2.0 compatibility: “任何可以运行Python脚本并写入文件的智能体” metadata: |
| 作者 | “Trustworthy AI Projects trustworthyaiprojects@nvidia.com” tags: - skill-card - governance - documentation - trustworthy-ai domain: documentation permissions: file_read: - “target_skill_directory” - “references/” - “scripts/” file_write: - “target_skill_directory” - “/tmp/” shell: allowed_scripts: - “scripts/discover_assets.py” - “scripts/render_card.py” - “scripts/validate_submission.py” |
生成技能卡
要分析的技能目录:$ARGUMENTS
目的
为现有智能体技能创建一份草稿性质的 NVIDIA 治理技能卡。该技能会收集源信号,引导智能体构建基于事实的 JSON 上下文,渲染出确定性的 Markdown 卡片,并检查在提交前是否已移除人工审查标记。
在以下情况下使用:
- 已存在某个技能目录并需要新的治理卡。
- 某个变更后的技能需要刷新其现有卡片。
- 技能所有者正在准备法律/安全审查材料。
请勿用于:
- 解释、列出、比较或讨论技能及其能力。
- 创建或重写源技能本身。
- 为模型、数据集、容器或完整系统等非技能资产生成卡片。
- 签署、发布或批准技能卡。
- 替代人工法律、安全或所有者审查。
前提条件
- 具备 Python 3。
- 在运行
render_card.py之前,已安装jinja2。 - 目标路径是包含
SKILL.md或skill.md的技能目录。 - 智能体能够写入临时上下文 JSON 文件与渲染后的卡片输出。
- 运行时权限允许从
target_skill_directory以及本技能的references/和scripts/目录读取;仅能写入目标技能目录或/tmp/;且仅可执行下方列出的三个脚本。
操作步骤
- 首先,在运行任何脚本之前,完整阅读本
SKILL.md。 - 从
$ARGUMENTS解析目标技能目录;如果省略,则使用当前工作目录。 - 保持在声明的权限范围内。不要读取
.env、凭据文件、隐藏身份验证文件夹或无关仓库文件;不要写入目标技能目录或/tmp/以外的路径。 - 对目标运行
scripts/discover_assets.py。优先使用结构化信号摘要;如果输出被截断,仅读取目标文件或小段摘录。 - 先从结构化信号摘要构建上下文 JSON,仅在需要时再从提取的文件内容中补充。
- 只填入两个字段:
requires_api_key_or_credential和credential_types来填充credential_requirements。分类应基于 SKILL.md 中的文字说明,而非仅脚本检查。对于credential_types,使用references/style-guide.md中的受控词汇表。绝不包含凭据值、赋值或原始环境变量名。 - 每个上下文字段都要遵循
references/style-guide.md。只有当没有来源支持真实值时,才使用HUMAN-REQUIRED。 - 使用
scripts/render_card.py渲染卡片,并在继续之前修复任何架构错误。 - 人工审查卡片,移除已解析的 VERIFY 和 SELECT 标记,然后运行
scripts/validate_submission.py。 - 完成前,确认渲染后的卡片中没有未渲染的
{{ ... }}或{% ... %}模板片段。
可用脚本
| 脚本 | 用途 | 参数 |
|---|---|---|
scripts/discover_assets.py |
将技能文件、仓库信号、样式指南和模板提取为一份发现报告。 | <skill_directory> |
scripts/render_card.py |
验证上下文 JSON,并从 Jinja 模板渲染技能卡。 | --context <context.json> --template <skill-card.md.j2> --out <output.md> |
scripts/validate_submission.py |
若渲染卡片中仍包含 VERIFY 或 SELECT 审查标记,则该工具执行失败。 | <rendered-card.md> |
示例
发现目标技能的信号:
run_script("scripts/discover_assets.py", args=["/path/to/target-skill"])
从已完成的上下文渲染卡片:
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"
]
)
在提交前验证已审查的卡片:
run_script("scripts/validate_submission.py", args=["/path/to/target-skill/target-skill-card.md"])
限制
- 生成的卡片为草稿,必须由人工所有者进行审查。
- 发现范围仅限于目标路径下可见的本地文件与仓库元数据。
- 渲染器仅校验必需的上下文形状,不校验字段值的法律或安全正确性。
- 预设的限制与风险目录只是起点;删除不适用的条目。
故障排查
| 错误 | 原因 | 解决方案 |
|---|---|---|
directory not found |
目标路径错误或未挂载到工作区。 | 使用技能目录的绝对路径重新运行发现。 |
jinja2 not installed |
缺少渲染器依赖。 | 安装 jinja2,然后重新运行 render_card.py。 |
Context validation failed |
必需字段缺失或类型错误。 | 使用 references/style-guide.md 修复上下文 JSON。 |
| 未解决的标记失败 | 审查后仍残留 VERIFY 或 SELECT 标记。 | 确认已标记的每个字段,修剪目录条目,然后重新运行 validate_submission.py。 |
本技能包含的文件
SKILL.md- 本文件(编排)references/style-guide.md- 每个上下文字段的指导references/skill-card.md.j2- 确切的卡片布局references/Skill Card Generator License.txt- 此技能包的许可文本references/catalog/limitations.json- 预设的技术限制目录references/catalog/risks.json- 预设的风险管理目录scripts/discover_assets.py- 发现和信号提取scripts/render_card.py- 带上下文验证的 Jinja 渲染器scripts/validate_submission.py- 预提交标记验证器