bmad-module-skill-forge 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/README.md +3 -2
  2. package/docs/agents.md +3 -0
  3. package/docs/concepts.md +24 -6
  4. package/docs/examples.md +31 -2
  5. package/docs/getting-started.md +11 -0
  6. package/docs/{architecture.md → how-it-works.md} +49 -25
  7. package/docs/index.md +2 -2
  8. package/docs/workflows.md +6 -6
  9. package/package.json +2 -2
  10. package/src/agents/forger.agent.yaml +1 -1
  11. package/src/forger/forge-tier.yaml +17 -1
  12. package/src/forger/preferences.yaml +1 -1
  13. package/src/knowledge/agentskills-spec.md +25 -0
  14. package/src/knowledge/ccc-bridge.md +110 -0
  15. package/src/knowledge/confidence-tiers.md +3 -3
  16. package/src/knowledge/manual-section-integrity.md +8 -0
  17. package/src/knowledge/overview.md +4 -2
  18. package/src/knowledge/progressive-capability.md +12 -4
  19. package/src/knowledge/provenance-tracking.md +13 -0
  20. package/src/knowledge/qmd-registry.md +14 -0
  21. package/src/knowledge/skf-knowledge-index.csv +5 -3
  22. package/src/knowledge/skill-lifecycle.md +2 -2
  23. package/src/knowledge/split-body-strategy.md +41 -0
  24. package/src/module-help.csv +1 -1
  25. package/src/module.yaml +1 -1
  26. package/src/workflows/README.md +1 -1
  27. package/src/workflows/analyze-source/data/skill-brief-schema.md +3 -1
  28. package/src/workflows/analyze-source/data/unit-detection-heuristics.md +27 -0
  29. package/src/workflows/analyze-source/steps-c/step-01-init.md +2 -2
  30. package/src/workflows/analyze-source/steps-c/step-02-scan-project.md +1 -1
  31. package/src/workflows/analyze-source/steps-c/step-03-identify-units.md +1 -1
  32. package/src/workflows/analyze-source/steps-c/step-04-map-and-detect.md +9 -4
  33. package/src/workflows/analyze-source/steps-c/step-05-recommend.md +1 -1
  34. package/src/workflows/analyze-source/steps-c/step-06-generate-briefs.md +1 -1
  35. package/src/workflows/analyze-source/validation-report.md +2 -2
  36. package/src/workflows/analyze-source/workflow-plan-analyze-source.md +1 -1
  37. package/src/workflows/audit-skill/data/drift-report-template.md +6 -6
  38. package/src/workflows/audit-skill/steps-c/step-01-init.md +4 -2
  39. package/src/workflows/audit-skill/steps-c/step-02-re-index.md +18 -1
  40. package/src/workflows/audit-skill/steps-c/step-03-structural-diff.md +14 -0
  41. package/src/workflows/audit-skill/steps-c/step-04-semantic-diff.md +5 -5
  42. package/src/workflows/audit-skill/validation-report.md +3 -3
  43. package/src/workflows/audit-skill/workflow-plan-audit-skill.md +2 -2
  44. package/src/workflows/audit-skill/workflow.md +1 -1
  45. package/src/workflows/brief-skill/data/scope-templates.md +4 -0
  46. package/src/workflows/brief-skill/data/skill-brief-schema.md +7 -3
  47. package/src/workflows/brief-skill/steps-c/step-01-gather-intent.md +3 -3
  48. package/src/workflows/brief-skill/steps-c/step-02-analyze-target.md +15 -0
  49. package/src/workflows/brief-skill/steps-c/step-03-scope-definition.md +12 -0
  50. package/src/workflows/create-skill/data/compile-assembly-rules.md +43 -2
  51. package/src/workflows/create-skill/data/extraction-patterns-tracing.md +110 -0
  52. package/src/workflows/create-skill/data/extraction-patterns.md +41 -39
  53. package/src/workflows/create-skill/data/skill-sections.md +31 -5
  54. package/src/workflows/create-skill/steps-c/step-01-load-brief.md +5 -3
  55. package/src/workflows/create-skill/steps-c/step-02-ecosystem-check.md +2 -2
  56. package/src/workflows/create-skill/steps-c/step-02b-ccc-discover.md +157 -0
  57. package/src/workflows/create-skill/steps-c/step-03-extract.md +32 -2
  58. package/src/workflows/create-skill/steps-c/step-03b-fetch-temporal.md +5 -5
  59. package/src/workflows/create-skill/steps-c/step-04-enrich.md +8 -8
  60. package/src/workflows/create-skill/steps-c/step-05-compile.md +6 -2
  61. package/src/workflows/create-skill/steps-c/step-06-validate.md +8 -9
  62. package/src/workflows/create-skill/steps-c/step-07-generate-artifacts.md +46 -1
  63. package/src/workflows/create-skill/steps-c/step-08-report.md +1 -0
  64. package/src/workflows/create-skill/validation-report.md +1 -1
  65. package/src/workflows/create-skill/workflow-plan-create-skill.md +4 -2
  66. package/src/workflows/create-skill/workflow.md +1 -1
  67. package/src/workflows/create-stack-skill/data/stack-skill-template.md +1 -1
  68. package/src/workflows/create-stack-skill/steps-c/step-01-init.md +3 -2
  69. package/src/workflows/create-stack-skill/steps-c/step-05-detect-integrations.md +10 -0
  70. package/src/workflows/create-stack-skill/steps-c/step-06-compile-stack.md +2 -2
  71. package/src/workflows/create-stack-skill/steps-c/step-08-validate.md +1 -1
  72. package/src/workflows/create-stack-skill/validation-report.md +1 -1
  73. package/src/workflows/create-stack-skill/workflow-plan-create-stack-skill.md +2 -2
  74. package/src/workflows/create-stack-skill/workflow.md +1 -1
  75. package/src/workflows/export-skill/data/snippet-format.md +1 -1
  76. package/src/workflows/export-skill/steps-c/step-01-load-skill.md +1 -1
  77. package/src/workflows/export-skill/steps-c/step-02-package.md +8 -4
  78. package/src/workflows/export-skill/steps-c/step-03-generate-snippet.md +3 -1
  79. package/src/workflows/export-skill/workflow-plan-export-skill.md +1 -1
  80. package/src/workflows/quick-skill/data/skill-template.md +8 -0
  81. package/src/workflows/quick-skill/steps-c/step-02-ecosystem-check.md +1 -3
  82. package/src/workflows/quick-skill/steps-c/step-04-compile.md +3 -2
  83. package/src/workflows/setup-forge/data/tier-rules.md +16 -6
  84. package/src/workflows/setup-forge/steps-c/step-01-detect-and-tier.md +32 -15
  85. package/src/workflows/setup-forge/steps-c/step-01b-ccc-index.md +148 -0
  86. package/src/workflows/setup-forge/steps-c/step-02-write-config.md +24 -6
  87. package/src/workflows/setup-forge/steps-c/step-03-auto-index.md +29 -6
  88. package/src/workflows/setup-forge/steps-c/step-04-report.md +14 -2
  89. package/src/workflows/setup-forge/validation-report.md +1 -1
  90. package/src/workflows/setup-forge/workflow-plan-setup-forge.md +11 -9
  91. package/src/workflows/setup-forge/workflow.md +1 -1
  92. package/src/workflows/test-skill/data/scoring-rules.md +14 -0
  93. package/src/workflows/test-skill/steps-c/step-01-init.md +2 -2
  94. package/src/workflows/test-skill/steps-c/step-03-coverage-check.md +3 -1
  95. package/src/workflows/test-skill/steps-c/step-04-coherence-check.md +4 -1
  96. package/src/workflows/test-skill/steps-c/step-04b-external-validators.md +7 -3
  97. package/src/workflows/test-skill/steps-c/step-05-score.md +1 -1
  98. package/src/workflows/test-skill/steps-c/step-06-report.md +27 -0
  99. package/src/workflows/test-skill/templates/test-report-template.md +3 -0
  100. package/src/workflows/test-skill/validation-report.md +2 -2
  101. package/src/workflows/test-skill/workflow-plan-test-skill.md +2 -2
  102. package/src/workflows/update-skill/steps-c/step-01-init.md +3 -2
  103. package/src/workflows/update-skill/steps-c/step-02-detect-changes.md +11 -0
  104. package/src/workflows/update-skill/steps-c/step-03-re-extract.md +19 -2
  105. package/src/workflows/update-skill/steps-c/step-04-merge.md +8 -0
  106. package/src/workflows/update-skill/steps-c/step-05-validate.md +1 -1
  107. package/src/workflows/update-skill/steps-c/step-06-write.md +7 -2
  108. package/src/workflows/update-skill/validation-report.md +1 -1
  109. package/src/workflows/update-skill/workflow-plan-update-skill.md +1 -1
  110. package/tools/cli/commands/status.js +2 -1
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: 'step-03-auto-index'
3
- description: 'Verify and clean QMD collections against the forge-tier.yaml registry (Deep tier only)'
3
+ description: 'Verify and clean QMD collections against the forge-tier.yaml registry (Deep tier only) and CCC index registry hygiene (Forge+/Deep)'
4
4
 
5
5
  nextStepFile: './step-04-report.md'
6
6
  ---
@@ -11,7 +11,7 @@ nextStepFile: './step-04-report.md'
11
11
 
12
12
  If the detected tier is Deep, verify the health of existing QMD collections by cross-referencing them against the `qmd_collections` registry in `forge-tier.yaml`. Identify orphaned collections (in QMD but not in registry) and stale registry entries (in registry but collection missing from QMD). Prompt the user before removing orphaned collections.
13
13
 
14
- For Quick and Forge tiers, skip silently and proceed.
14
+ For Quick and Forge tiers (without ccc), skip silently and proceed. For Forge+ tier, skip QMD hygiene but the step routes correctly to the next step.
15
15
 
16
16
  ## MANDATORY EXECUTION RULES (READ FIRST):
17
17
 
@@ -41,7 +41,7 @@ For Quick and Forge tiers, skip silently and proceed.
41
41
  - 🎯 Follow the MANDATORY SEQUENCE exactly
42
42
  - 💾 QMD hygiene only verifies and cleans — it does NOT index new content
43
43
  - 📖 Use {calculated_tier} from step-01 context
44
- - 🚫 FORBIDDEN to attempt hygiene for Quick or Forge tiers
44
+ - 🚫 FORBIDDEN to attempt QMD hygiene for Quick, Forge, or Forge+ tiers (Forge+ has no qmd)
45
45
 
46
46
  ## CONTEXT BOUNDARIES:
47
47
 
@@ -59,7 +59,9 @@ For Quick and Forge tiers, skip silently and proceed.
59
59
 
60
60
  Read `{calculated_tier}` from context.
61
61
 
62
- **If tier is NOT Deep:** Proceed directly to section 6 (Auto-Proceed) — no output, no messaging.
62
+ **If tier is Quick or Forge:** Proceed directly to section 6 (Auto-Proceed) — no output, no messaging.
63
+
64
+ **If tier is Forge+:** Skip QMD hygiene (qmd is not available at Forge+). Proceed directly to section 5b (CCC Index Registry Hygiene) — no QMD output, no messaging.
63
65
 
64
66
  **If tier IS Deep:** Continue to section 2.
65
67
 
@@ -132,6 +134,26 @@ Update forge-tier.yaml with the cleaned registry.
132
134
 
133
135
  **If no stale entries:** Skip this section silently.
134
136
 
137
+ ### 5b. CCC Index Registry Hygiene (Forge+ and Deep with ccc)
138
+
139
+ **IF `tools.ccc` is true in forge-tier.yaml (regardless of whether QMD hygiene ran):**
140
+
141
+ Read the `ccc_index_registry` array from forge-tier.yaml.
142
+
143
+ For each entry, verify the indexed path still exists on disk:
144
+
145
+ **Healthy** — path exists: no action needed.
146
+
147
+ **Stale** — path does not exist (source directory removed or moved):
148
+ - Remove the stale entry from `ccc_index_registry`
149
+ - Log: "Removed stale CCC index registry entry: {path} (path no longer exists)"
150
+
151
+ Update forge-tier.yaml with the cleaned registry.
152
+
153
+ Store `{ccc_registry_stale_cleaned: count}` in context for step-04 reporting.
154
+
155
+ **IF `tools.ccc` is false:** Skip this section silently.
156
+
135
157
  ### 6. Store Hygiene Results and Auto-Proceed
136
158
 
137
159
  Store in context for step-04 reporting:
@@ -141,6 +163,7 @@ Store in context for step-04 reporting:
141
163
  {hygiene_orphaned_removed: count}
142
164
  {hygiene_orphaned_kept: count}
143
165
  {hygiene_stale_cleaned: count}
166
+ {ccc_registry_stale_cleaned: count}
144
167
  ```
145
168
 
146
169
  "**Proceeding to forge status report...**"
@@ -170,7 +193,7 @@ ONLY WHEN the hygiene check has been performed (or skipped for non-Deep tiers) w
170
193
  - Orphaned collections flagged and user prompted before removal
171
194
  - Stale registry entries cleaned from forge-tier.yaml
172
195
  - Hygiene results stored for step-04 reporting
173
- - Quick/Forge tier: skipped silently with no negative messaging
196
+ - Quick/Forge/Forge+ tier: skipped silently with no negative messaging
174
197
  - Workflow continues regardless of hygiene outcome
175
198
  - Auto-proceeded to step-04
176
199
 
@@ -178,7 +201,7 @@ ONLY WHEN the hygiene check has been performed (or skipped for non-Deep tiers) w
178
201
 
179
202
  - Creating new QMD collections (that's create-skill's responsibility)
180
203
  - Silently deleting collections without user prompt
181
- - Attempting QMD hygiene for Quick or Forge tiers
204
+ - Attempting QMD hygiene for Quick, Forge, or Forge+ tiers
182
205
  - Displaying "skipped" or "missing" messages for non-Deep tiers
183
206
  - Halting the workflow due to QMD hygiene failure
184
207
  - Indexing project directories (old auto-index behavior — removed)
@@ -43,7 +43,8 @@ Display the forge status report with positive capability framing, report tier ch
43
43
 
44
44
  - Available: {detected_tools}, {calculated_tier}, {previous_tier}, {tier_override} from step-01
45
45
  - Available: tool version strings from step-01
46
- - Available: {hygiene_result}, {hygiene_healthy}, {hygiene_orphaned_removed}, {hygiene_orphaned_kept}, {hygiene_stale_cleaned} from step-03
46
+ - Available: {hygiene_result}, {hygiene_healthy}, {hygiene_orphaned_removed}, {hygiene_orphaned_kept}, {hygiene_stale_cleaned}, {ccc_registry_stale_cleaned} from step-03
47
+ - Available: {ccc_index_result} from step-01b (values: "fresh", "created", "failed", "none")
47
48
  - Focus: report display only — no file modifications
48
49
  - Dependencies: steps 01-03 must have completed
49
50
 
@@ -75,13 +76,24 @@ Load and read {tierRulesData} for the tier capability descriptions and re-run me
75
76
  {hygiene_healthy} collection(s) healthy
76
77
  {if hygiene_orphaned_removed > 0: {hygiene_orphaned_removed} orphaned collection(s) removed}
77
78
  {if hygiene_orphaned_kept > 0: {hygiene_orphaned_kept} orphaned collection(s) kept}
78
- {if hygiene_stale_cleaned > 0: {hygiene_stale_cleaned} stale registry entry/entries cleaned}
79
+ {if hygiene_stale_cleaned > 0: {hygiene_stale_cleaned} stale QMD registry entry/entries cleaned}
80
+ {end if}
81
+
82
+ {if ccc_registry_stale_cleaned > 0:}
83
+ CCC Registry: {ccc_registry_stale_cleaned} stale entry/entries cleaned
79
84
  {end if}
80
85
 
81
86
  {if hygiene_result is "completed" and hygiene_healthy is 0:}
82
87
  QMD Registry: empty — collections are created automatically when you run [CS] Create Skill.
83
88
  {end if}
84
89
 
90
+ {if tools.ccc is true:}
91
+ CCC Index:
92
+ {if ccc_index_result is "fresh": up to date — semantic discovery ready}
93
+ {if ccc_index_result is "created": indexed this run — semantic discovery ready}
94
+ {if ccc_index_result is "failed": indexing failed — semantic discovery unavailable this session}
95
+ {end if}
96
+
85
97
  {if tier_override is active:}
86
98
  Note: Tier override active (set in preferences.yaml)
87
99
 
@@ -403,7 +403,7 @@ No subprocess optimization needed. The workflow is appropriately simple and sequ
403
403
  |-------------|------------|---------|
404
404
  | Initialize forge environment | Yes — all 4 steps address this | High |
405
405
  | Detect tools (ast-grep, gh, qmd) | Yes — step-01 verifies all 3 | High |
406
- | Set tier (Quick/Forge/Deep) | Yes — step-01 calculates, step-02 writes | High |
406
+ | Set tier (Quick/Forge/Forge+/Deep) | Yes — step-01 calculates, step-02 writes | High |
407
407
  | Auto-index project | Yes — step-03 (Deep tier only) | High |
408
408
 
409
409
  #### Classification Attributes
@@ -32,7 +32,7 @@ Initialize forge environment, detect tools, set tier, auto-index project
32
32
  ### Original Steps (Complete List)
33
33
 
34
34
  **Step 1:** detect-tools - Check for gh, ast-grep, QMD availability
35
- **Step 2:** determine-tier - Set Quick/Forge/Deep based on tools found
35
+ **Step 2:** determine-tier - Set Quick/Forge/Forge+/Deep based on tools found
36
36
  **Step 3:** create-config - Generate forge-config.yaml with tier and tool flags
37
37
  **Step 4:** auto-index - Index current project as QMD collection (Deep only)
38
38
  **Step 5:** report - Display forge status, tier, and capabilities
@@ -65,7 +65,7 @@ Initialize forge environment, detect tools, set tier, auto-index project
65
65
 
66
66
  **What works well in original:**
67
67
  - Clear 5-step decomposition with logical progression
68
- - Well-defined progressive tier system (Quick/Forge/Deep)
68
+ - Well-defined progressive tier system (Quick/Forge/Forge+/Deep)
69
69
  - Three distinct output artifacts with clear purposes
70
70
  - Correctly identified as foundation workflow all others depend on
71
71
 
@@ -104,9 +104,9 @@ Initialize forge environment, detect tools, set tier, auto-index project
104
104
 
105
105
  **Structure Implications:**
106
106
  - Simple `steps-c/` folder only, no edit/validate modes
107
- - No `step-01b-continue.md` needed
107
+ - step-01b added for CCC index verification (Forge+ integration)
108
108
  - No document template — output is config files written directly
109
- - Standard init step without continuation logic
109
+ - Standard init step with step-01b bridge to config writing
110
110
 
111
111
  ---
112
112
 
@@ -179,7 +179,7 @@ Initialize forge environment, detect tools, set tier, auto-index project
179
179
  - Frequency: Single execution per run (idempotent, safe to re-run)
180
180
 
181
181
  **Success Criteria:**
182
- - All 3 tools (ast-grep, gh, qmd) verified via version/status commands, results accurately recorded
182
+ - All 4 tools (ast-grep, gh, qmd, ccc) verified via version/status commands, results accurately recorded
183
183
  - Correct tier assigned from tool availability (or tier_override respected if set)
184
184
  - forge-tier.yaml written with tools, tier, and tier_detected_at timestamp
185
185
  - preferences.yaml exists with defaults (created on first run, preserved on re-run)
@@ -233,6 +233,7 @@ setup-forge/
233
233
  │ └── tier-rules.md # Tier calculation rules + capability descriptions
234
234
  └── steps-c/
235
235
  ├── step-01-detect-and-tier.md
236
+ ├── step-01b-ccc-index.md
236
237
  ├── step-02-write-config.md
237
238
  ├── step-03-auto-index.md
238
239
  └── step-04-report.md
@@ -244,9 +245,10 @@ No templates/ directory (non-document workflow).
244
245
 
245
246
  | Step | File | Type | Menu | Goal |
246
247
  |------|------|------|------|------|
247
- | 01 | step-01-detect-and-tier.md | Init (Non-Continuable) | Auto-proceed | Verify 3 tools functional, check tier_override, calculate tier, read previous tier |
248
+ | 01 | step-01-detect-and-tier.md | Init (Non-Continuable) | Auto-proceed | Verify 4 tools functional (ast-grep, gh, qmd, ccc), check tier_override, calculate tier, read previous tier |
249
+ | 01b | step-01b-ccc-index.md | Middle (Simple + Conditional) | Auto-proceed | Verify/create CCC index for Forge+/Deep tiers when ccc available, skip silently otherwise |
248
250
  | 02 | step-02-write-config.md | Middle (Simple) | Auto-proceed | Write forge-tier.yaml, create preferences.yaml defaults if missing, ensure forge-data/ exists |
249
- | 03 | step-03-auto-index.md | Middle (Simple + Conditional) | Auto-proceed | QMD index project (Deep only), skip gracefully otherwise |
251
+ | 03 | step-03-auto-index.md | Middle (Simple + Conditional) | Auto-proceed | QMD index project (Deep only) + CCC registry hygiene, skip gracefully otherwise |
250
252
  | 04 | step-04-report.md | Final Step | None | Display status with positive framing, handle --update-spec, report tier changes |
251
253
 
252
254
  ### Step Detail: step-01-detect-and-tier
@@ -384,8 +386,8 @@ step-01 ──→ step-02 ──→ step-03 ──→ step-04
384
386
  - Type: Init (Non-Continuable)
385
387
  - Input Discovery: No
386
388
  - Menu: Auto-proceed (Pattern 3)
387
- - Next Step: step-02-write-config.md
388
- - No step-01b needed (single-session)
389
+ - Next Step: step-01b-ccc-index.md
390
+ - step-01b handles CCC index verification before config writing
389
391
 
390
392
  **Supporting Files:**
391
393
  - data/tier-rules.md (created in foundation step)
@@ -7,7 +7,7 @@ installed_path: '{project-root}/_bmad/skf/workflows/skillforge/setup-forge'
7
7
 
8
8
  # Setup Forge
9
9
 
10
- **Goal:** Initialize the forge environment by detecting available tools, determining the capability tier (Quick/Forge/Deep), writing persistent configuration, and optionally indexing the project for deep search.
10
+ **Goal:** Initialize the forge environment by detecting available tools, determining the capability tier (Quick/Forge/Forge+/Deep), writing persistent configuration, and optionally indexing the project for deep search.
11
11
 
12
12
  **Your Role:** You are a system executor performing environment resolution. This is a fully autonomous workflow — no user interaction is required during execution. Run each step in sequence, write configuration files, and report results at completion.
13
13
 
@@ -27,6 +27,10 @@ When running in naive mode (no coherence category):
27
27
 
28
28
  When neither skill-check nor tessl is available, redistribute the 10% external validation weight proportionally to the other active categories. When only one tool is available, use that tool's score as the external validation score.
29
29
 
30
+ ## tessl and Split-Body Interaction
31
+
32
+ tessl evaluates SKILL.md body content only — it does not read `references/*.md` files. After split-body extraction, the tessl content score will drop significantly (e.g., 65% to 38%) because Tier 2 content is no longer inline. This is expected behavior and does not reflect actual content quality. When reporting scores for a split-body skill, note: "tessl content score reflects post-split inline content only. Use the pre-split tessl score as the content quality baseline."
33
+
30
34
  ## Tier-Dependent Scoring
31
35
 
32
36
  ### Quick Tier (no tools)
@@ -41,6 +45,11 @@ When neither skill-check nor tessl is available, redistribute the 10% external v
41
45
  - Type Coverage: AST-verified type completeness
42
46
  - Full scoring formula applied
43
47
 
48
+ ### Forge+ Tier (ast-grep + ccc)
49
+ - Same scoring as Forge tier — ccc provides pre-ranking but does not change scoring weights
50
+ - Improved extraction coverage (from ccc pre-discovery) may increase T1 count, but scoring formula is identical to Forge
51
+ - Full scoring formula applied
52
+
44
53
  ### Deep Tier (ast-grep + gh + QMD)
45
54
  - All Forge tier checks plus:
46
55
  - Cross-repository reference verification
@@ -78,5 +87,10 @@ If no integration patterns exist, combined coherence equals reference validity.
78
87
  | High | Signature mismatch between source and SKILL.md |
79
88
  | Medium | Missing type or interface documentation |
80
89
  | Medium | Migration section present/absent mismatch with T2-future annotation data (Deep tier) |
90
+ | Medium | Script/asset directory exists but no Scripts & Assets section in SKILL.md |
91
+ | Medium | Scripts & Assets section references file not found in scripts/ or assets/ directory |
92
+ | Low | Script/asset file present without provenance entry in provenance-map.json file_entries |
81
93
  | Low | Missing optional metadata or examples |
94
+ | Low | Description trigger optimization recommended (third-person voice, negative triggers, or keyword coverage gaps) |
82
95
  | Info | Style suggestions, non-blocking observations |
96
+ | Info | Discovery testing not performed — realistic prompt testing recommended before export |
@@ -112,7 +112,7 @@ Log each issue as a pre-check finding. Continue with testing — frontmatter iss
112
112
  Read `{sidecarFile}` to determine available analysis depth.
113
113
 
114
114
  **If forge-tier.yaml exists:**
115
- - Read `tier` value (Quick, Forge, or Deep)
115
+ - Read `tier` value (Quick, Forge, Forge+, or Deep)
116
116
  - Read tool availability flags (ast_grep, gh_cli, qmd)
117
117
 
118
118
  **If forge-tier.yaml missing:**
@@ -124,7 +124,7 @@ Default to Quick tier and continue.
124
124
 
125
125
  ### 4b. Apply Tier Override (if set)
126
126
 
127
- Read `{sidecar_path}/preferences.yaml`. If `tier_override` is set and is a valid tier value (Quick, Forge, or Deep), update `detected_tier` to the override value for use in subsequent steps and output documents.
127
+ Read `{sidecar_path}/preferences.yaml`. If `tier_override` is set and is a valid tier value (Quick, Forge, Forge+, or Deep), update `detected_tier` to the override value for use in subsequent steps and output documents.
128
128
 
129
129
  ### 5. Load Skill Metadata
130
130
 
@@ -85,6 +85,8 @@ Read SKILL.md and extract all documented items:
85
85
 
86
86
  Build the **documented inventory** — a list of everything the SKILL.md claims the source provides.
87
87
 
88
+ **Split-body traversal:** If a `references/` directory exists alongside SKILL.md and SKILL.md's `## Full` headings are absent or stubs (not a stack skill's structural references), extend the documented inventory scan to include all `references/*.md` files. After split-body, Tier 2 content (Full API Reference, Full Type Definitions) lives in reference files — the inventory must reflect the full skill content regardless of where it resides.
89
+
88
90
  ### 2. Analyze Source Code (Tier-Dependent)
89
91
 
90
92
  Start from the package entry point (see 0b) and identify the public API surface. Then analyze those exports at the appropriate tier depth.
@@ -223,7 +225,7 @@ ONLY WHEN all source files have been analyzed, the Coverage Analysis section has
223
225
 
224
226
  ### ✅ SUCCESS:
225
227
 
226
- - All source files analyzed at appropriate tier depth
228
+ - All source files analyzed at appropriate tier depth; split-body references/ traversed when present
227
229
  - Every finding has file:line citation (Forge/Deep) or file-level reference (Quick)
228
230
  - Per-export status table complete
229
231
  - Category scores calculated per scoring rules
@@ -72,6 +72,7 @@ Perform lightweight structural checks:
72
72
  - Section headers are properly formatted
73
73
  - Code examples have language annotations
74
74
  - No broken markdown (unclosed code blocks, malformed tables)
75
+ - If `scripts/` or `assets/` directory exists alongside SKILL.md, a "Scripts & Assets" section (Section 7b) should be present
75
76
 
76
77
  **Internal consistency:**
77
78
  - Exports referenced in usage examples match exports listed in exports section
@@ -101,6 +102,7 @@ Scan SKILL.md for all cross-references:
101
102
  - Skill references (`See SKILL.md for {other-skill}`, `Integrates with {package}`)
102
103
  - Type imports (`import { Type } from './module'`)
103
104
  - Integration pattern references (middleware chains, plugin hooks, shared state)
105
+ - Script/asset references (`scripts/{file}`, `assets/{file}`) in SKILL.md body
104
106
 
105
107
  Launch a subprocess to grep/regex SKILL.md for reference patterns and return all found references with line numbers as structured JSON (`references_found[]` with line, type, target fields). If subprocess unavailable, scan in main thread.
106
108
 
@@ -114,6 +116,7 @@ DO NOT BE LAZY — For EACH reference found, launch a subprocess that:
114
116
  - Type imports: type is actually exported from the referenced module
115
117
  - Skill references: referenced skill exists in skills output folder
116
118
  - Integration patterns: documented pattern matches actual implementation
119
+ - Script/asset references: verify the referenced file exists in the skill's `scripts/` or `assets/` directory
117
120
  3. Returns structured validation JSON per reference (reference, line, target_exists, type_match, signature_match, issues[])
118
121
 
119
122
  If subprocess unavailable, validate each reference in main thread.
@@ -147,7 +150,7 @@ Build integration completeness findings:
147
150
 
148
151
  **Only execute if forge tier is Deep.** Skip silently for Quick/Forge tiers.
149
152
 
150
- Check whether SKILL.md contains a "Migration & Deprecation Warnings" section (Section 4b). Then check the skill's `evidence-report.md` (at `forge-data/{skill_name}/evidence-report.md`) for T2-future annotation counts.
153
+ Check whether SKILL.md contains a "Migration & Deprecation Warnings" section (Section 4b). Then check the skill's `evidence-report.md` (at `{forge_data_folder}/{skill_name}/evidence-report.md`) for T2-future annotation counts.
151
154
 
152
155
  - **If T2-future annotations > 0 AND Section 4b is absent:** Flag as Medium severity gap: "Migration section missing — T2-future annotations exist but Section 4b is not present in SKILL.md Tier 1."
153
156
  - **If T2-future annotations = 0 AND Section 4b is present:** Flag as Medium severity gap: "Migration section unexpected — Section 4b is present but no T2-future annotations were produced."
@@ -58,9 +58,13 @@ Read {outputFile} frontmatter to get the skill directory path (`skillDir`).
58
58
 
59
59
  ### 1b. Check for Recent Validation Results (Auto-Reuse)
60
60
 
61
- Before running external validators, check if `{forge_data_folder}/{skill_name}/evidence-report.md` contains validation results (a `## Validation Results` section with quality scores). If recent results exist (from a create-skill run that just completed), auto-reuse them — skip re-running validators and use the existing scores from the evidence report. Record: "External validation: reused from create-skill evidence report." Skip to section 5 (append results).
61
+ Before running external validators, check if `{forge_data_folder}/{skill_name}/evidence-report.md` contains validation results (a `## Validation Results` section with quality scores).
62
62
 
63
- If no evidence report exists or it contains no validation section, proceed to section 2 (fresh run).
63
+ **Staleness check:** Compare the evidence report's generation date against SKILL.md's last-modified timestamp (or `metadata.json` `generation_date`). If SKILL.md was modified after the evidence report was generated (e.g., after update-skill), the cached results are stale — skip auto-reuse and proceed to section 2 for a fresh run.
64
+
65
+ If recent, non-stale results exist (from a create-skill run that just completed), auto-reuse them — skip re-running validators and use the existing scores. Record: "External validation: reused from create-skill evidence report." Skip to section 5 (append results).
66
+
67
+ If no evidence report exists, it contains no validation section, or results are stale, proceed to section 2 (fresh run).
64
68
 
65
69
  ### 2. Run skill-check
66
70
 
@@ -118,7 +122,7 @@ Store in context: `tessl_description_score`, `tessl_content_score`, `tessl_avera
118
122
 
119
123
  **If tessl content score < 70%:** Flag a warning:
120
124
 
121
- "**Content quality warning:** tessl scored content at {score}%. This often indicates SKILL.md lacks inline actionable content (e.g., after split-body). Consider inlining Quick Start and common workflows directly in SKILL.md."
125
+ "**Content quality warning:** tessl scored content at {score}%. This often indicates SKILL.md lacks inline actionable content (e.g., after split-body). If this is a split-body skill, the score drop is expected — tessl evaluates only SKILL.md body, not `references/*.md` (see scoring-rules.md). Consider using selective split to keep actionable content inline."
122
126
 
123
127
  **If tessl fails entirely:** Record `tessl_score: N/A`, log warning, continue.
124
128
 
@@ -5,7 +5,7 @@ description: 'Calculate completeness score from coverage and coherence findings'
5
5
  nextStepFile: './step-06-report.md'
6
6
  outputFile: '{forge_data_folder}/{skill_name}/test-report-{skill_name}.md'
7
7
  scoringRulesFile: '../data/scoring-rules.md'
8
- sourceAccessProtocol: '../data/{sourceAccessProtocol}'
8
+ sourceAccessProtocol: '../data/source-access-protocol.md'
9
9
  ---
10
10
 
11
11
  # Step 5: Score
@@ -83,8 +83,13 @@ Load `{scoringRulesFile}` for gap severity classification:
83
83
  | **High** | Signature mismatch between source and SKILL.md |
84
84
  | **Medium** | Missing type or interface documentation |
85
85
  | **Medium** | Migration section present/absent mismatch with T2-future annotation data (Deep tier) |
86
+ | **Medium** | Script/asset directory exists but no Scripts & Assets section in SKILL.md |
87
+ | **Medium** | Scripts & Assets section references file not found in scripts/ or assets/ directory |
88
+ | **Low** | Script/asset file present without provenance entry in provenance-map.json file_entries |
86
89
  | **Low** | Missing optional metadata or examples |
90
+ | **Low** | Description trigger optimization recommended (third-person voice, negative triggers, or keyword coverage gaps) |
87
91
  | **Info** | Style suggestions, non-blocking observations |
92
+ | **Info** | Discovery testing not performed — realistic prompt testing recommended before export |
88
93
 
89
94
  ### 3. Classify and Order Gaps
90
95
 
@@ -98,6 +103,25 @@ Load the Gap Report section format from `{outputFormatsFile}`. Count gaps by sev
98
103
 
99
104
  If no gaps found, append a clean pass message recommending **export-skill** workflow.
100
105
 
106
+ ### 4b. Discovery and Description Quality Recommendations
107
+
108
+ After gap enumeration, append a **Discovery Quality** subsection to the gap report. Use the `Gap Entry Format` from `{outputFormatsFile}` for any Low/Info entries. The prose recommendations below are appended after the gap entries:
109
+
110
+ **Description optimization:** If tessl `description_score` (from step 04b) is below 90%, or if skill-check flagged description issues, recommend description improvements:
111
+ - Check that the description uses third-person voice consistently
112
+ - Check for specific trigger keywords that match how users would phrase requests
113
+ - Check for negative triggers ("NOT for: ...") to prevent false matches
114
+ - Check for alternative skill references for excluded use cases
115
+
116
+ **Discovery testing recommendation:** Regardless of pass/fail, always append:
117
+
118
+ "**Discovery testing recommended.** Before export, test the skill with 3-5 realistic prompts phrased the way real users actually talk — with casual language, typos, incomplete context, and implicit references. A skill tested only with clean prompts may fail to trigger in production. Example realistic prompt patterns:
119
+ - Vague: 'can you help me with this csv file my boss sent'
120
+ - Implicit: 'why did revenue drop last quarter'
121
+ - Abbreviated: 'run the {skill-name} thing on this data'"
122
+
123
+ Record discovery testing status as Info-level in the gap table. This is advisory — it does not affect the score.
124
+
101
125
  ### 5. Finalize Output Document
102
126
 
103
127
  Update `{outputFile}` frontmatter:
@@ -132,6 +156,8 @@ Update `{outputFile}` frontmatter:
132
156
 
133
157
  ---
134
158
 
159
+ **See Discovery Quality section in the report for description optimization and realistic prompt testing recommendations.**
160
+
135
161
  **Test report finalized.**"
136
162
 
137
163
  ### 7. Present MENU OPTIONS
@@ -163,6 +189,7 @@ This is the final step of the test-skill workflow. When the user selects C, the
163
189
  - Gaps classified by severity using scoring rules
164
190
  - Gaps ordered by severity (Critical first)
165
191
  - Every gap has a specific, actionable remediation suggestion
192
+ - Discovery quality section appended with description optimization and testing recommendations
166
193
  - Remediation summary with counts and effort estimates
167
194
  - Output document finalized with all stepsCompleted
168
195
  - Correct next workflow recommended (export-skill or update-skill)
@@ -6,6 +6,7 @@ testMode: ''
6
6
  forgeTier: ''
7
7
  testResult: ''
8
8
  score: ''
9
+ threshold: ''
9
10
  analysisConfidence: ''
10
11
  testDate: ''
11
12
  stepsCompleted: []
@@ -20,6 +21,8 @@ nextWorkflow: ''
20
21
 
21
22
  ## Coherence Analysis
22
23
 
24
+ ## External Validation
25
+
23
26
  ## Completeness Score
24
27
 
25
28
  ## Gap Report
@@ -247,7 +247,7 @@ Each step has explicit CONTEXT BOUNDARIES with FORBIDDEN markers preventing scop
247
247
 
248
248
  ### Error Handling: Good
249
249
 
250
- - step-01: Three-tier handling (hard stop for missing SKILL.md, warning for missing metadata.json, graceful default for missing forge-tier.yaml). Checks `preferences.yaml` for `tier_override` after loading forge tier.
250
+ - step-01: Four-tier handling (hard stop for missing SKILL.md, warning for missing metadata.json, graceful default for missing forge-tier.yaml). Checks `preferences.yaml` for `tier_override` after loading forge tier.
251
251
  - step-03/04: Subprocess fallback rules at multiple locations
252
252
  - step-06: Zero-gaps clean pass path
253
253
 
@@ -299,7 +299,7 @@ Subprocess optimization correctly concentrated in steps 03 and 04 (heavy analysi
299
299
  ### Strengths:
300
300
 
301
301
  1. Rigorous traceability (zero hallucination with file:line citations)
302
- 2. Three-tier depth scaling (Quick/Forge/Deep)
302
+ 2. Four-tier depth scaling (Quick/Forge/Forge+/Deep)
303
303
  3. Clean separation of concerns with explicit FORBIDDEN markers
304
304
  4. Well-designed subprocess optimization with structured return formats
305
305
  5. Actionable remediation quality rules with good/bad examples
@@ -76,7 +76,7 @@ Cognitive completeness verification — Verifies that a skill is complete enough
76
76
  - No frontmatter configuration for steps
77
77
  - No data files, templates, or output format specifications
78
78
  - Batch mode mechanics are unspecified
79
- - No forge tier awareness — coverage depth must scale with Quick/Forge/Deep tiers
79
+ - No forge tier awareness — coverage depth must scale with Quick/Forge/Forge+/Deep tiers
80
80
  - No reference to forge-tier.yaml sidecar state for tier detection
81
81
  - Zero hallucination principle not encoded — scoring must trace to AST citations
82
82
 
@@ -274,7 +274,7 @@ Ferris (Audit mode): methodical, precise, evidence-based. Zero hallucination —
274
274
  workflowType: 'test-skill'
275
275
  skillName: '{skill_name}'
276
276
  testMode: '{naive|contextual}'
277
- forgeTier: '{Quick|Forge|Deep}'
277
+ forgeTier: '{Quick|Forge|Forge+|Deep}'
278
278
  testResult: '{pass|fail}'
279
279
  score: '{N%}'
280
280
  threshold: '{N%}'
@@ -89,14 +89,15 @@ Search for the test report at `{forge_data_folder}/{skill_name}/test-report-{ski
89
89
  ### 3. Load Forge Tier Configuration
90
90
 
91
91
  **Load `{sidecar_path}/forge-tier.yaml`:**
92
- - Extract: `tier` (Quick, Forge, or Deep), available tools
92
+ - Extract: `tier` (Quick, Forge, Forge+, or Deep), available tools
93
93
  - If missing: **ABORT** — "No forge-tier.yaml found. Run setup-forge first to detect available tools."
94
94
 
95
- **Apply tier override:** Read `{sidecar_path}/preferences.yaml`. If `tier_override` is set and is a valid tier value (Quick, Forge, or Deep), use it instead of the detected tier.
95
+ **Apply tier override:** Read `{sidecar_path}/preferences.yaml`. If `tier_override` is set and is a valid tier value (Quick, Forge, Forge+, or Deep), use it instead of the detected tier.
96
96
 
97
97
  **Determine analysis capabilities:**
98
98
  - **Quick:** text pattern matching only → T1-low confidence
99
99
  - **Forge:** AST structural extraction → T1 confidence
100
+ - **Forge+:** AST structural extraction + CCC semantic ranking → T1 confidence (with ccc signals)
100
101
  - **Deep:** AST + QMD semantic enrichment → T1 + T2 confidence
101
102
 
102
103
  ### 4. Load Provenance Map
@@ -112,6 +112,14 @@ Launch subprocesses in parallel that compare source state against provenance map
112
112
  - Cross-reference deleted files/exports with added files/exports
113
113
  - If content similarity > 80%: classify as RENAMED instead of deleted+added
114
114
 
115
+ **Category D — Script/asset file changes:**
116
+ - Compare `file_entries` from provenance-map.json against current source files
117
+ - For each file_entry: compute current SHA-256 content hash, compare against stored hash
118
+ - Files with changed hashes → MODIFIED_FILE
119
+ - Files in provenance but missing from source → DELETED_FILE
120
+ - Files in source matching detection patterns (scripts/, bin/, assets/, templates/) but not in provenance → NEW_FILE
121
+ - Files in `scripts/[MANUAL]/` or `assets/[MANUAL]/` → SKIP (user-authored, preserved)
122
+
115
123
  Aggregate all subprocess results into a unified change manifest.
116
124
 
117
125
  **If degraded mode (no provenance map):**
@@ -136,6 +144,9 @@ Change Manifest:
136
144
  exports_renamed: [count]
137
145
  exports_moved: [count]
138
146
 
147
+ scripts_modified, scripts_added, scripts_deleted: {counts}
148
+ assets_modified, assets_added, assets_deleted: {counts}
149
+
139
150
  Per-file detail:
140
151
  {file_path}:
141
152
  status: MODIFIED|ADDED|DELETED|MOVED
@@ -103,7 +103,7 @@ Perform tier-aware extraction on only the changed files identified in step 02, p
103
103
  DO NOT BE LAZY — For EACH file in the change manifest with status MODIFIED, ADDED, or RENAMED, launch a subprocess that:
104
104
 
105
105
  1. Loads the source file
106
- 2. Performs tier-appropriate extraction (Quick/Forge/Deep)
106
+ 2. Performs tier-appropriate extraction (Quick/Forge/Forge+/Deep)
107
107
  3. For each export found:
108
108
  - Record: export name, type (function/class/type/constant), signature
109
109
  - Record: file path, start line, end line
@@ -119,6 +119,23 @@ DO NOT BE LAZY — For EACH file in the change manifest with status MODIFIED, AD
119
119
 
120
120
  **Re-export tracing (Forge/Deep only):** After extracting changed files, check if any public exports from the package entry point (`__init__.py`, `index.ts`, `lib.rs`) are unresolved — particularly when a changed file is part of a module re-export chain. Follow the **Re-Export Tracing** protocol in `{extractionPatternsData}` to trace unresolved symbols to their actual definition files.
121
121
 
122
+ ### 2b. CCC Semantic Ranking (Forge+ and Deep with ccc)
123
+
124
+ **IF `tools.ccc` is true in forge-tier.yaml:**
125
+
126
+ Before aggregating extraction results, use CCC to assess semantic significance of changes:
127
+
128
+ 1. Run `ccc_bridge.search("{skill_name}", source_root, top_k=15)` to get the skill's most semantically central files
129
+ 2. Cross-reference the change manifest files with CCC results
130
+ 3. Files appearing in BOTH the change manifest AND CCC's top results are **semantically significant changes** — flag them for priority in the merge step
131
+ 4. Store `{ccc_significant_changes: [{file, score}]}` in context
132
+
133
+ This helps the merge step (section 4) prioritize which changes are most likely to affect the skill's core content vs. peripheral modifications.
134
+
135
+ CCC failures: skip ranking silently, all changes treated equally.
136
+
137
+ **IF `tools.ccc` is false:** Skip this section silently.
138
+
122
139
  ### 3. Deep Tier QMD Enrichment (Conditional)
123
140
 
124
141
  **ONLY if forge_tier == Deep:**
@@ -200,7 +217,7 @@ ONLY WHEN all changed files have been extracted and results compiled will you lo
200
217
  - Every changed file from manifest extracted with tier-appropriate method
201
218
  - All exports labeled with confidence tier (T1/T1-low/T2)
202
219
  - AST file:line citations on every extracted export
203
- - QMD enrichment performed for Deep tier (skipped with notice for Quick/Forge)
220
+ - QMD enrichment performed for Deep tier (skipped with notice for Quick/Forge/Forge+)
204
221
  - Extraction results compiled with per-file detail
205
222
  - Summary displayed before auto-proceeding
206
223
  - No unchanged files extracted
@@ -100,6 +100,14 @@ Follow the merge priority order from {mergeConflictRulesFile}:
100
100
  - Place before any [MANUAL] blocks at section boundary
101
101
  - No conflicts expected (new content, no existing [MANUAL])
102
102
 
103
+ **Priority 6 — Process script/asset file changes (from Category D in change manifest):**
104
+ - MODIFIED_FILE: queue file for re-copy from source, update `file_entries` content_hash
105
+ - DELETED_FILE: queue file for removal from `scripts/` or `assets/`, remove from `file_entries`
106
+ - NEW_FILE: queue file for copy from source, add to `file_entries`
107
+ - Files in `scripts/[MANUAL]/` or `assets/[MANUAL]/` are never modified (user-authored)
108
+ - Update Section 7b manifest table to reflect changes
109
+ - Update `metadata.json` `scripts[]`/`assets[]` arrays and `stats.scripts_count`/`stats.assets_count`
110
+
103
111
  ### 4. Check for Conflicts
104
112
 
105
113
  Scan all merge operations for flagged conflicts:
@@ -73,7 +73,7 @@ Launch subprocesses in parallel for each validation category, aggregating result
73
73
 
74
74
  **If available**, run: `npx skill-check check <skill-dir> --fix --format json --no-security-scan`
75
75
 
76
- Parse JSON output for quality score (0-100), auto-fixed issues, and remaining diagnostics. If `body.max_lines` reported, run: `npx skill-check split-body <skill-dir> --write`
76
+ Parse JSON output for quality score (0-100), auto-fixed issues, and remaining diagnostics. If `body.max_lines` reported, prefer selective split: extract only the largest Tier 2 section(s) to `references/`, keeping all Tier 1 content inline (selective split preserves agent accuracy — inline passive context achieves 100% task accuracy vs 79% for on-demand retrieval per Vercel research). Fall back to `npx skill-check split-body <skill-dir> --write` only if selective split is not feasible. After any split, verify `#quick-start` and `#key-types` anchors still resolve in SKILL.md.
77
77
 
78
78
  **If unavailable**, perform manual check: validate merged SKILL.md structure, verify required sections (exports, usage patterns, conventions), verify export entries have name/type/signature/file:line reference, flag missing sections.
79
79
 
@@ -96,6 +96,11 @@ Write to `{forge_data_folder}/{skill_name}/provenance-map.json`:
96
96
  **For new exports:**
97
97
  - Add new entry with full structured fields: `export_name`, `export_type`, `params[]`, `return_type`, `source_file`, `source_line`, `confidence`, `extraction_method`, `ast_node_type`
98
98
 
99
+ **For script/asset file changes (if `file_entries` exists):**
100
+ - MODIFIED_FILE: copy updated file to `scripts/` or `assets/`, update `content_hash` in `file_entries`
101
+ - DELETED_FILE: remove file from `scripts/` or `assets/`, remove entry from `file_entries`
102
+ - NEW_FILE: copy file to `scripts/` or `assets/`, add entry to `file_entries` with `file_name`, `file_type`, `source_file`, `confidence: "T1-low"`, `extraction_method: "file-copy"`, `content_hash`
103
+
99
104
  **Add update operation metadata:**
100
105
  ```json
101
106
  {
@@ -110,7 +115,7 @@ Write to `{forge_data_folder}/{skill_name}/provenance-map.json`:
110
115
 
111
116
  ### 4. Write Updated evidence-report.md
112
117
 
113
- Append update operation section to `{forge_data_folder}/{skill_name}/evidence-report.md`:
118
+ Append update operation section to `{forge_data_folder}/{skill_name}/evidence-report.md` (create the file with a standard header if it does not yet exist):
114
119
 
115
120
  ```markdown
116
121
  ## Update Operation — {current_date}
@@ -177,7 +182,7 @@ External tool checks deferred from step-05 now run against the written files:
177
182
 
178
183
  **If skill-check available:**
179
184
  - Run: `npx skill-check check {skills_output_folder}/{skill_name} --fix --format json --no-security-scan`
180
- - If `body.max_lines` reported, run: `npx skill-check split-body {skills_output_folder}/{skill_name} --write`
185
+ - If `body.max_lines` reported, prefer selective split — extract only the largest Tier 2 section(s) to `references/`, keeping Tier 1 inline (inline passive context achieves 100% task accuracy vs 79% for on-demand retrieval). Fall back to `npx skill-check split-body {skills_output_folder}/{skill_name} --write` if not feasible. Verify anchors resolve after split.
181
186
  - Run: `npx skill-check diff` if original version was preserved
182
187
  - Run: `npx skill-check check {skills_output_folder}/{skill_name} --format json` for security scan
183
188
 
@@ -413,7 +413,7 @@ This workflow is a well-architected surgical pipeline that achieves its goal of
413
413
 
414
414
  1. **Zero-hallucination principle** enforced throughout — every statement must trace to actual artifacts
415
415
  2. **[MANUAL] section preservation** treated as highest priority with multiple safeguards (inventory in step-01, preservation in step-04, integrity verification in step-05, write verification in step-06)
416
- 3. **Tier-aware extraction** well-implemented across Quick/Forge/Deep with graceful degradation
416
+ 3. **Tier-aware extraction** well-implemented across Quick/Forge/Forge+/Deep with graceful degradation
417
417
  4. **Subprocess optimization** strategically placed at the right steps (02-parallel, 03-per-file, 03-QMD, 05-parallel)
418
418
  5. **Error handling** is comprehensive (missing artifacts → abort with helpful message, missing provenance → degraded mode, [MANUAL] conflicts → user resolution)
419
419
  6. **Workflow chaining** properly integrated with input/output contracts
@@ -125,7 +125,7 @@ Document-producing workflow that outputs:
125
125
 
126
126
  ### Missing Features to Add During Conversion
127
127
 
128
- 1. Tier-aware re-extraction (Quick/Forge/Deep graceful degradation)
128
+ 1. Tier-aware re-extraction (Quick/Forge/Forge+/Deep graceful degradation)
129
129
  2. Degraded mode for missing provenance map (fallback to full re-extraction)
130
130
  3. Stack skill multi-file update support
131
131
  4. Batch mode with checkpoint resume