Loading...
Loading...
Compare original and translation side by side
/pm-skill-iterate/pm-skill-iterate/pm-skill-builder/pm-skill-iterate/pm-skill-builder/pm-skill-iterate/pm-skill-builder/pm-skill-iteratescripts/lint-skills-frontmatter.sh/pm-skill-builder/pm-skill-iteratescripts/lint-skills-frontmatter.shdeliver-prdskills/deliver-prd/SKILL.md/prdskills/{name}/undefineddeliver-prdskills/deliver-prd/SKILL.md/prdskills/{name}/undefinedskills/{input}/
**Batch mode:** If the input is `--all`, run Tier 1 structural checks
across all skills and produce a summary table (see Step 5). Do not run
Tier 2 in batch mode.skills/{input}/
**批量模式**:若输入为`--all`,则对所有技能运行层级1的结构检查,并生成汇总表格(见步骤5)。批量模式下不运行层级2检查。| File | Required | Purpose |
|---|---|---|
| yes | Frontmatter + instructions |
| yes | Output template |
| yes | Worked example |
| no | Version history (if present) |
commands/{command-name}.md| 文件 | 是否必填 | 用途 |
|---|---|---|
| 是 | 前置元数据 + 操作说明 |
| 是 | 输出模板 |
| 是 | 示例案例 |
| 否 | 版本历史(若存在) |
commands/{command-name}.mdPASSFAIL| Check ID | What to check | Pass condition |
|---|---|---|
| Frontmatter | Exact string match |
| Frontmatter | Non-empty value |
| Description word count | 20-100 words |
| Frontmatter | Non-empty, valid SemVer |
| Frontmatter | Non-empty, ISO date |
| Frontmatter | Non-empty value |
| Phase/classification consistency | Domain has |
| | File present |
| TEMPLATE.md has sufficient structure | ≥3 |
| | File present |
| Command file exists in | File present and references correct skill path |
| AGENTS.md has an entry for this skill | Entry exists with matching |
PASSFAIL| 检查ID | 检查内容 | 通过条件 |
|---|---|---|
| 前置元数据 | 完全字符串匹配 |
| 前置元数据 | 值非空 |
| 描述字数 | 20-100词 |
| 前置元数据 | 值非空且符合SemVer规范 |
| 前置元数据 | 值非空且为ISO格式日期 |
| 前置元数据 | 值非空 |
| 阶段/分类一致性 | 领域类技能包含 |
| | 文件已存在 |
| TEMPLATE.md具有足够结构 | 包含≥3个 |
| | 文件已存在 |
| 命令文件存在于 | 文件存在且引用正确的技能路径 |
| AGENTS.md中存在该技能的条目 | 条目存在且 |
PASSWARNINFOWARNFAIL| Check ID | What to assess | How to assess | Max severity |
|---|---|---|---|
| SKILL.md references the template | Check for explicit reference to | WARN |
| Quality checklist items are testable | Read each checklist item. Flag items that are vague ("is good quality") vs. specific ("metrics are measurable"). WARN if ≥2 items are vague. | WARN |
| EXAMPLE.md fills all template sections | Compare | WARN |
| EXAMPLE.md follows TEMPLATE.md structure | Compare section header ordering. WARN if EXAMPLE.md has sections in a different order or uses different header names than TEMPLATE.md. | WARN |
| Description tells when to use the skill | Check for a trigger phrase like "Use when..." or "Use for..." in the frontmatter description. WARN if the description only says what the skill does without indicating when to use it. | WARN |
| Instructions are numbered and imperative | Check for | WARN |
| No leftover scaffolding in any shipped file | Scan SKILL.md, TEMPLATE.md, and EXAMPLE.md for: | FAIL |
| "When NOT to Use" section present in SKILL.md | Check for a section with "When NOT to Use" or similar heading. INFO only . this is present in 1/27 shipped skills and is not yet a convention. | INFO |
/pm-skill-builderPASSWARNINFOWARNFAIL| 检查ID | 评估内容 | 评估方式 | 最高严重度 |
|---|---|---|---|
| SKILL.md是否引用模板 | 检查Output章节中是否明确提及 | WARN |
| 质量检查清单项是否可测试 | 读取每个检查清单项,标记模糊表述(如"质量良好")与明确表述(如"指标可量化")。若≥2项为模糊表述则标记为WARN。 | WARN |
| EXAMPLE.md是否填充模板所有章节 | 对比TEMPLATE.md与EXAMPLE.md中的 | WARN |
| EXAMPLE.md是否遵循TEMPLATE.md结构 | 对比章节标题顺序。若EXAMPLE.md章节顺序或标题名称与TEMPLATE.md不一致则标记为WARN。 | WARN |
| 描述是否说明技能的使用时机 | 检查前置元数据描述中是否包含"Use when..."或"Use for..."等触发短语。若描述仅说明技能功能而未提及使用时机则标记为WARN。 | WARN |
| 操作说明是否采用编号式祈使句 | 检查Instructions章节中是否包含 | WARN |
| 已发布文件中无残留脚手架内容 | 扫描SKILL.md、TEMPLATE.md和EXAMPLE.md,查找 | FAIL |
| SKILL.md中是否包含"When NOT to Use"章节 | 检查是否存在标题为"When NOT to Use"或类似的章节。仅作INFO标记——目前已发布的27个技能中仅有1个包含此章节,尚未成为规范。 | INFO |
/pm-skill-builder/pm-skill-iterateundefined/pm-skill-iterateundefinedTier 2 findings are heuristic quality assessments and may require human review.
Tier 2 findings are heuristic quality assessments and may require human review.
**Report rules:**
- **Result** = worst severity found: any FAIL → `FAIL`, else any WARN → `WARN`, else `PASS`.
- **Structural Checks**: one line per Tier 1 check. STATUS is `PASS` or `FAIL`.
- **Quality Checks**: one line per Tier 2 check. STATUS is `PASS`, `WARN`, or `INFO`.
- **Recommendations**: only include checks that did NOT pass. Each recommendation
includes the check ID, the target file path, and a specific action.
- If all checks pass, the Recommendations section should say: "No issues found."
- Omit passing checks from Recommendations . only list findings that need action.
**Batch mode output** (when input is `--all`):
Run Tier 1 structural checks only across all skills. Produce a summary table:
**报告规则**:
- **Result** = 检查到的最高严重度:存在任意FAIL → `FAIL`,否则存在任意WARN → `WARN`,否则`PASS`。
- **Structural Checks**:每个层级1检查对应一行。STATUS为`PASS`或`FAIL`。
- **Quality Checks**:每个层级2检查对应一行。STATUS为`PASS`、`WARN`或`INFO`。
- **Recommendations**:仅包含未通过的检查。每条建议需包含检查ID、目标文件路径和具体操作。
- 若所有检查通过,Recommendations章节应显示:"No issues found."
- 已通过的检查不列入Recommendations——仅列出需要处理的问题。
**批量模式输出**(输入为`--all`时):
仅对所有技能运行层级1结构检查,生成汇总表格:
| Skill | Result | Errors | Warnings |
|---|---|---|---|
| deliver-prd | PASS | 0 | 0 |
| define-hypothesis | WARN | 0 | 1 |
| foundation-persona | FAIL | 1 | 0 |
| ... |
/pm-skill-validate {skill}undefined| Skill | Result | Errors | Warnings |
|---|---|---|---|
| deliver-prd | PASS | 0 | 0 |
| define-hypothesis | WARN | 0 | 1 |
| foundation-persona | FAIL | 1 | 0 |
| ... |
/pm-skill-validate {skill}undefinedskills/{name}/SKILL.mdskills/{name}/references/TEMPLATE.mdskills/{name}/references/EXAMPLE.mdskills/{name}/SKILL.mdskills/{name}/references/TEMPLATE.mdskills/{name}/references/EXAMPLE.md## Summary## Structural Checks## Quality Checks## RecommendationsSTATUS | TIER | CHECK-ID | messageSTATUS | CHECK-ID | Target: pathAction: descriptionReport schema: v1## Summary## Structural Checks## Quality Checks## RecommendationsSTATUS | TIER | CHECK-ID | messageSTATUS | CHECK-ID | Target: pathAction: descriptionReport schema: v1references/EXAMPLE.mdreferences/EXAMPLE.md