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.
- package/README.md +3 -2
- package/docs/agents.md +3 -0
- package/docs/concepts.md +24 -6
- package/docs/examples.md +31 -2
- package/docs/getting-started.md +11 -0
- package/docs/{architecture.md → how-it-works.md} +49 -25
- package/docs/index.md +2 -2
- package/docs/workflows.md +6 -6
- package/package.json +2 -2
- package/src/agents/forger.agent.yaml +1 -1
- package/src/forger/forge-tier.yaml +17 -1
- package/src/forger/preferences.yaml +1 -1
- package/src/knowledge/agentskills-spec.md +25 -0
- package/src/knowledge/ccc-bridge.md +110 -0
- package/src/knowledge/confidence-tiers.md +3 -3
- package/src/knowledge/manual-section-integrity.md +8 -0
- package/src/knowledge/overview.md +4 -2
- package/src/knowledge/progressive-capability.md +12 -4
- package/src/knowledge/provenance-tracking.md +13 -0
- package/src/knowledge/qmd-registry.md +14 -0
- package/src/knowledge/skf-knowledge-index.csv +5 -3
- package/src/knowledge/skill-lifecycle.md +2 -2
- package/src/knowledge/split-body-strategy.md +41 -0
- package/src/module-help.csv +1 -1
- package/src/module.yaml +1 -1
- package/src/workflows/README.md +1 -1
- package/src/workflows/analyze-source/data/skill-brief-schema.md +3 -1
- package/src/workflows/analyze-source/data/unit-detection-heuristics.md +27 -0
- package/src/workflows/analyze-source/steps-c/step-01-init.md +2 -2
- package/src/workflows/analyze-source/steps-c/step-02-scan-project.md +1 -1
- package/src/workflows/analyze-source/steps-c/step-03-identify-units.md +1 -1
- package/src/workflows/analyze-source/steps-c/step-04-map-and-detect.md +9 -4
- package/src/workflows/analyze-source/steps-c/step-05-recommend.md +1 -1
- package/src/workflows/analyze-source/steps-c/step-06-generate-briefs.md +1 -1
- package/src/workflows/analyze-source/validation-report.md +2 -2
- package/src/workflows/analyze-source/workflow-plan-analyze-source.md +1 -1
- package/src/workflows/audit-skill/data/drift-report-template.md +6 -6
- package/src/workflows/audit-skill/steps-c/step-01-init.md +4 -2
- package/src/workflows/audit-skill/steps-c/step-02-re-index.md +18 -1
- package/src/workflows/audit-skill/steps-c/step-03-structural-diff.md +14 -0
- package/src/workflows/audit-skill/steps-c/step-04-semantic-diff.md +5 -5
- package/src/workflows/audit-skill/validation-report.md +3 -3
- package/src/workflows/audit-skill/workflow-plan-audit-skill.md +2 -2
- package/src/workflows/audit-skill/workflow.md +1 -1
- package/src/workflows/brief-skill/data/scope-templates.md +4 -0
- package/src/workflows/brief-skill/data/skill-brief-schema.md +7 -3
- package/src/workflows/brief-skill/steps-c/step-01-gather-intent.md +3 -3
- package/src/workflows/brief-skill/steps-c/step-02-analyze-target.md +15 -0
- package/src/workflows/brief-skill/steps-c/step-03-scope-definition.md +12 -0
- package/src/workflows/create-skill/data/compile-assembly-rules.md +43 -2
- package/src/workflows/create-skill/data/extraction-patterns-tracing.md +110 -0
- package/src/workflows/create-skill/data/extraction-patterns.md +41 -39
- package/src/workflows/create-skill/data/skill-sections.md +31 -5
- package/src/workflows/create-skill/steps-c/step-01-load-brief.md +5 -3
- package/src/workflows/create-skill/steps-c/step-02-ecosystem-check.md +2 -2
- package/src/workflows/create-skill/steps-c/step-02b-ccc-discover.md +157 -0
- package/src/workflows/create-skill/steps-c/step-03-extract.md +32 -2
- package/src/workflows/create-skill/steps-c/step-03b-fetch-temporal.md +5 -5
- package/src/workflows/create-skill/steps-c/step-04-enrich.md +8 -8
- package/src/workflows/create-skill/steps-c/step-05-compile.md +6 -2
- package/src/workflows/create-skill/steps-c/step-06-validate.md +8 -9
- package/src/workflows/create-skill/steps-c/step-07-generate-artifacts.md +46 -1
- package/src/workflows/create-skill/steps-c/step-08-report.md +1 -0
- package/src/workflows/create-skill/validation-report.md +1 -1
- package/src/workflows/create-skill/workflow-plan-create-skill.md +4 -2
- package/src/workflows/create-skill/workflow.md +1 -1
- package/src/workflows/create-stack-skill/data/stack-skill-template.md +1 -1
- package/src/workflows/create-stack-skill/steps-c/step-01-init.md +3 -2
- package/src/workflows/create-stack-skill/steps-c/step-05-detect-integrations.md +10 -0
- package/src/workflows/create-stack-skill/steps-c/step-06-compile-stack.md +2 -2
- package/src/workflows/create-stack-skill/steps-c/step-08-validate.md +1 -1
- package/src/workflows/create-stack-skill/validation-report.md +1 -1
- package/src/workflows/create-stack-skill/workflow-plan-create-stack-skill.md +2 -2
- package/src/workflows/create-stack-skill/workflow.md +1 -1
- package/src/workflows/export-skill/data/snippet-format.md +1 -1
- package/src/workflows/export-skill/steps-c/step-01-load-skill.md +1 -1
- package/src/workflows/export-skill/steps-c/step-02-package.md +8 -4
- package/src/workflows/export-skill/steps-c/step-03-generate-snippet.md +3 -1
- package/src/workflows/export-skill/workflow-plan-export-skill.md +1 -1
- package/src/workflows/quick-skill/data/skill-template.md +8 -0
- package/src/workflows/quick-skill/steps-c/step-02-ecosystem-check.md +1 -3
- package/src/workflows/quick-skill/steps-c/step-04-compile.md +3 -2
- package/src/workflows/setup-forge/data/tier-rules.md +16 -6
- package/src/workflows/setup-forge/steps-c/step-01-detect-and-tier.md +32 -15
- package/src/workflows/setup-forge/steps-c/step-01b-ccc-index.md +148 -0
- package/src/workflows/setup-forge/steps-c/step-02-write-config.md +24 -6
- package/src/workflows/setup-forge/steps-c/step-03-auto-index.md +29 -6
- package/src/workflows/setup-forge/steps-c/step-04-report.md +14 -2
- package/src/workflows/setup-forge/validation-report.md +1 -1
- package/src/workflows/setup-forge/workflow-plan-setup-forge.md +11 -9
- package/src/workflows/setup-forge/workflow.md +1 -1
- package/src/workflows/test-skill/data/scoring-rules.md +14 -0
- package/src/workflows/test-skill/steps-c/step-01-init.md +2 -2
- package/src/workflows/test-skill/steps-c/step-03-coverage-check.md +3 -1
- package/src/workflows/test-skill/steps-c/step-04-coherence-check.md +4 -1
- package/src/workflows/test-skill/steps-c/step-04b-external-validators.md +7 -3
- package/src/workflows/test-skill/steps-c/step-05-score.md +1 -1
- package/src/workflows/test-skill/steps-c/step-06-report.md +27 -0
- package/src/workflows/test-skill/templates/test-report-template.md +3 -0
- package/src/workflows/test-skill/validation-report.md +2 -2
- package/src/workflows/test-skill/workflow-plan-test-skill.md +2 -2
- package/src/workflows/update-skill/steps-c/step-01-init.md +3 -2
- package/src/workflows/update-skill/steps-c/step-02-detect-changes.md +11 -0
- package/src/workflows/update-skill/steps-c/step-03-re-extract.md +19 -2
- package/src/workflows/update-skill/steps-c/step-04-merge.md +8 -0
- package/src/workflows/update-skill/steps-c/step-05-validate.md +1 -1
- package/src/workflows/update-skill/steps-c/step-06-write.md +7 -2
- package/src/workflows/update-skill/validation-report.md +1 -1
- package/src/workflows/update-skill/workflow-plan-update-skill.md +1 -1
- 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
|
|
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
|
-
-
|
|
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
|
|
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
|
|
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
|
|
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-
|
|
388
|
-
-
|
|
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 `
|
|
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).
|
|
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
|
-
|
|
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).
|
|
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/
|
|
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:
|
|
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.
|
|
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,
|
|
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,
|
|
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
|