bmad-module-skill-forge 0.5.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 +2 -1
- package/docs/agents.md +3 -0
- package/docs/concepts.md +23 -5
- package/docs/examples.md +30 -1
- package/docs/getting-started.md +11 -0
- package/docs/how-it-works.md +49 -25
- package/docs/index.md +1 -1
- 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/ccc-bridge.md +110 -0
- package/src/knowledge/confidence-tiers.md +3 -3
- package/src/knowledge/overview.md +2 -1
- package/src/knowledge/progressive-capability.md +12 -4
- package/src/knowledge/qmd-registry.md +14 -0
- package/src/knowledge/skf-knowledge-index.csv +2 -1
- 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 +1 -1
- package/src/workflows/analyze-source/data/unit-detection-heuristics.md +1 -0
- package/src/workflows/analyze-source/steps-c/step-01-init.md +2 -2
- package/src/workflows/analyze-source/steps-c/step-04-map-and-detect.md +7 -3
- 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 +2 -2
- package/src/workflows/audit-skill/steps-c/step-02-re-index.md +18 -1
- 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/skill-brief-schema.md +3 -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/create-skill/data/extraction-patterns.md +37 -1
- package/src/workflows/create-skill/data/skill-sections.md +2 -2
- 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 +10 -1
- 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-06-validate.md +1 -1
- package/src/workflows/create-skill/steps-c/step-07-generate-artifacts.md +32 -0
- 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-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/steps-c/step-01-load-skill.md +1 -1
- package/src/workflows/export-skill/steps-c/step-02-package.md +1 -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/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 +5 -0
- package/src/workflows/test-skill/steps-c/step-01-init.md +2 -2
- 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-03-re-extract.md +19 -2
- package/src/workflows/update-skill/steps-c/step-05-validate.md +1 -1
- package/src/workflows/update-skill/steps-c/step-06-write.md +2 -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
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: 'step-01-detect-and-tier'
|
|
3
3
|
description: 'Detect available tools and determine forge capability tier'
|
|
4
4
|
|
|
5
|
-
nextStepFile: './step-
|
|
5
|
+
nextStepFile: './step-01b-ccc-index.md'
|
|
6
6
|
tierRulesData: '../data/tier-rules.md'
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -10,7 +10,7 @@ tierRulesData: '../data/tier-rules.md'
|
|
|
10
10
|
|
|
11
11
|
## STEP GOAL:
|
|
12
12
|
|
|
13
|
-
Verify availability of the
|
|
13
|
+
Verify availability of the four forge tools (ast-grep, gh, qmd, ccc), read any existing configuration for re-run comparison, check for tier override, and calculate the capability tier.
|
|
14
14
|
|
|
15
15
|
## MANDATORY EXECUTION RULES (READ FIRST):
|
|
16
16
|
|
|
@@ -30,7 +30,7 @@ Verify availability of the three forge tools (ast-grep, gh, qmd), read any exist
|
|
|
30
30
|
|
|
31
31
|
- 🎯 Focus only on tool detection and tier calculation
|
|
32
32
|
- 🚫 FORBIDDEN to write any files — that is step-02's job
|
|
33
|
-
- 🚫 FORBIDDEN to skip any tool check — all
|
|
33
|
+
- 🚫 FORBIDDEN to skip any tool check — all 4 must be verified
|
|
34
34
|
- 💬 Tool command failures are NOT errors — they indicate unavailability
|
|
35
35
|
|
|
36
36
|
## EXECUTION PROTOCOLS:
|
|
@@ -38,7 +38,7 @@ Verify availability of the three forge tools (ast-grep, gh, qmd), read any exist
|
|
|
38
38
|
- 🎯 Follow the MANDATORY SEQUENCE exactly
|
|
39
39
|
- 💾 Store all results in memory for step-02
|
|
40
40
|
- 📖 Load tier-rules.md for calculation reference
|
|
41
|
-
- 🚫 FORBIDDEN to proceed without checking all
|
|
41
|
+
- 🚫 FORBIDDEN to proceed without checking all 4 tools
|
|
42
42
|
|
|
43
43
|
## CONTEXT BOUNDARIES:
|
|
44
44
|
|
|
@@ -95,22 +95,38 @@ Check if the `SNYK_TOKEN` environment variable is set:
|
|
|
95
95
|
|
|
96
96
|
This is informational only — security scan availability does NOT affect the tier level. It is recorded in forge-tier.yaml so that create-skill's validation step can report actionable guidance when security scanning is unavailable.
|
|
97
97
|
|
|
98
|
-
### 7.
|
|
98
|
+
### 7. Verify Tool: ccc (cocoindex-code)
|
|
99
99
|
|
|
100
|
-
**
|
|
100
|
+
**Step A — Binary existence:** Run `ccc --help`
|
|
101
|
+
|
|
102
|
+
- If exits 0: binary confirmed. Continue to Step B.
|
|
103
|
+
- If fails (command not found or error): record `{ccc: false}`. Skip Step B.
|
|
104
|
+
|
|
105
|
+
**Step B — Daemon health:** Run `ccc doctor`
|
|
106
|
+
|
|
107
|
+
- If daemon is running and model check OK: record `{ccc: true}` and store version string from output
|
|
108
|
+
- If daemon is not running: record `{ccc: true, ccc_daemon: "stopped"}` — binary available, daemon needs starting. Step-01b will handle this.
|
|
109
|
+
- If error or timeout: record `{ccc: true, ccc_daemon: "error"}` — binary works but daemon has issues.
|
|
110
|
+
|
|
111
|
+
ccc availability gates the Forge+ tier and enhances Deep tier when present.
|
|
112
|
+
|
|
113
|
+
### 8. Calculate Tier
|
|
114
|
+
|
|
115
|
+
**If `{tier_override}` is set and valid (Quick, Forge, Forge+, or Deep):**
|
|
101
116
|
- Use `{tier_override}` as `{calculated_tier}`
|
|
102
117
|
- Note that override is active for the report step
|
|
103
118
|
|
|
104
|
-
**If no override, apply tier rules from {tierRulesData}:**
|
|
119
|
+
**If no override, apply tier rules from {tierRulesData} in order — the first matching rule wins. Do not continue checking once a match is found:**
|
|
105
120
|
- `{ast_grep}` AND `{gh_cli}` AND `{qmd}` all true → **Deep**
|
|
106
|
-
- `{ast_grep}` true (regardless of gh/qmd) → **Forge
|
|
121
|
+
- `{ast_grep}` AND `{ccc}` both true (regardless of gh/qmd) → **Forge+**
|
|
122
|
+
- `{ast_grep}` true (regardless of ccc/gh/qmd) → **Forge**
|
|
107
123
|
- Otherwise → **Quick**
|
|
108
124
|
|
|
109
125
|
**If `{tier_override}` is set but invalid:** ignore it, use detected tier, flag for warning in report.
|
|
110
126
|
|
|
111
|
-
###
|
|
127
|
+
### 9. Auto-Proceed
|
|
112
128
|
|
|
113
|
-
"**Proceeding to
|
|
129
|
+
"**Proceeding to CCC index check...**"
|
|
114
130
|
|
|
115
131
|
#### Menu Handling Logic:
|
|
116
132
|
|
|
@@ -123,7 +139,7 @@ This is informational only — security scan availability does NOT affect the ti
|
|
|
123
139
|
|
|
124
140
|
## CRITICAL STEP COMPLETION NOTE
|
|
125
141
|
|
|
126
|
-
ONLY WHEN all
|
|
142
|
+
ONLY WHEN all 4 core tools have been verified, optional security scan checked, and the tier calculated will you load and read fully `{nextStepFile}` to execute the CCC index check step.
|
|
127
143
|
|
|
128
144
|
---
|
|
129
145
|
|
|
@@ -131,19 +147,20 @@ ONLY WHEN all 3 core tools have been verified, optional security scan checked, a
|
|
|
131
147
|
|
|
132
148
|
### ✅ SUCCESS:
|
|
133
149
|
|
|
134
|
-
- All
|
|
150
|
+
- All 4 tools checked via verification commands (not existence checks)
|
|
135
151
|
- Existing forge-tier.yaml read for re-run comparison (if present)
|
|
136
152
|
- Existing preferences.yaml read for tier_override (if present)
|
|
137
153
|
- Tier correctly calculated from tool results or override applied
|
|
138
|
-
- All results stored in context for step-02
|
|
139
|
-
- Auto-proceeded to step-
|
|
154
|
+
- All results stored in context for step-01b and step-02
|
|
155
|
+
- Auto-proceeded to step-01b
|
|
140
156
|
|
|
141
157
|
### ❌ SYSTEM FAILURE:
|
|
142
158
|
|
|
143
|
-
- Skipping any tool verification
|
|
159
|
+
- Skipping any tool verification (ast-grep, gh, qmd, ccc — all 4 must be checked)
|
|
144
160
|
- Using `which` or `command -v` instead of verification commands
|
|
145
161
|
- Assuming tool availability without running the command
|
|
146
162
|
- Writing files in this step (that is step-02)
|
|
147
163
|
- Not checking for existing configuration on re-runs
|
|
164
|
+
- Not checking ccc availability (both binary and daemon health)
|
|
148
165
|
|
|
149
166
|
**Master Rule:** Every tool MUST be verified empirically. No assumptions, no shortcuts.
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-01b-ccc-index'
|
|
3
|
+
description: 'Ensure ccc project index exists — Forge+ and Deep tiers when ccc is available'
|
|
4
|
+
|
|
5
|
+
nextStepFile: './step-02-write-config.md'
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Step 1b: CCC Index Verification
|
|
9
|
+
|
|
10
|
+
## STEP GOAL:
|
|
11
|
+
|
|
12
|
+
If ccc is available (`{ccc: true}` from step-01), verify that the ccc index exists for the project root. If no index exists, create it. Store index state in context for step-02 to write into forge-tier.yaml.
|
|
13
|
+
|
|
14
|
+
For Quick and Forge tiers, or when ccc is unavailable, skip silently and proceed.
|
|
15
|
+
|
|
16
|
+
## MANDATORY EXECUTION RULES (READ FIRST):
|
|
17
|
+
|
|
18
|
+
### Universal Rules:
|
|
19
|
+
|
|
20
|
+
- 📖 CRITICAL: Read the complete step file before taking any action
|
|
21
|
+
- 🔄 CRITICAL: When loading next step, ensure entire file is read
|
|
22
|
+
- 🎯 Execute all operations autonomously — no user interaction
|
|
23
|
+
|
|
24
|
+
### Role Reinforcement:
|
|
25
|
+
|
|
26
|
+
- ✅ You are a system executor verifying the ccc index state
|
|
27
|
+
- ✅ ccc indexing failure is never a workflow error — degrade gracefully
|
|
28
|
+
- ✅ No negative messaging for tiers that skip this step
|
|
29
|
+
|
|
30
|
+
### Step-Specific Rules:
|
|
31
|
+
|
|
32
|
+
- 🎯 Focus only on ccc index verification and creation
|
|
33
|
+
- 🚫 FORBIDDEN to display skip messages for Quick/Forge tiers
|
|
34
|
+
- 🚫 FORBIDDEN to fail the workflow if ccc indexing fails
|
|
35
|
+
- 🚫 FORBIDDEN to re-index if ccc index already exists and is fresh (< staleness threshold)
|
|
36
|
+
|
|
37
|
+
## EXECUTION PROTOCOLS:
|
|
38
|
+
|
|
39
|
+
- 🎯 Follow the MANDATORY SEQUENCE exactly
|
|
40
|
+
- 💾 Store ccc index state in context for step-02
|
|
41
|
+
- 🚫 FORBIDDEN to write forge-tier.yaml — that is step-02's job
|
|
42
|
+
|
|
43
|
+
## CONTEXT BOUNDARIES:
|
|
44
|
+
|
|
45
|
+
- Available: {ccc} boolean and {ccc_daemon} status from step-01
|
|
46
|
+
- Available: {calculated_tier} from step-01
|
|
47
|
+
- Available: existing forge-tier.yaml may contain prior `ccc_index` state
|
|
48
|
+
- Focus: ccc index state verification and creation only
|
|
49
|
+
- Dependencies: step-01 must have completed with tool detection results
|
|
50
|
+
|
|
51
|
+
## MANDATORY SEQUENCE
|
|
52
|
+
|
|
53
|
+
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise.
|
|
54
|
+
|
|
55
|
+
### 1. Check Eligibility
|
|
56
|
+
|
|
57
|
+
Read `{ccc}` from step-01 context.
|
|
58
|
+
|
|
59
|
+
**If `{ccc}` is false:** Set `{ccc_index_result: "none", ccc_indexed_path: null, ccc_last_indexed: null}`. Proceed directly to section 4 (Auto-Proceed) — no output, no messaging.
|
|
60
|
+
|
|
61
|
+
**If `{ccc}` is true:** Continue to section 2.
|
|
62
|
+
|
|
63
|
+
### 2. Check Existing Index State
|
|
64
|
+
|
|
65
|
+
Read existing forge-tier.yaml at `{project-root}/_bmad/_memory/forger-sidecar/forge-tier.yaml` (if it exists from a previous run).
|
|
66
|
+
|
|
67
|
+
Check the `ccc_index` section:
|
|
68
|
+
- If `ccc_index.indexed_path` matches `{project-root}` AND `ccc_index.status` is `"fresh"`:
|
|
69
|
+
- Check freshness: if `ccc_index.last_indexed` is within `staleness_threshold_hours` (default 24h) of now → index is fresh
|
|
70
|
+
- Store `{ccc_index_result: "fresh", ccc_indexed_path: {project-root}, ccc_last_indexed: {existing timestamp}}`
|
|
71
|
+
- Proceed to section 4
|
|
72
|
+
|
|
73
|
+
- If `ccc_index.indexed_path` matches `{project-root}` but timestamp is older than threshold:
|
|
74
|
+
- Store `{ccc_index_result: "stale", ccc_indexed_path: {existing path}, ccc_last_indexed: {existing timestamp}}` — proceed to section 3 for re-index
|
|
75
|
+
|
|
76
|
+
- If `ccc_index` is missing, has null values, or path doesn't match:
|
|
77
|
+
- Proceed to section 3 for initial index
|
|
78
|
+
|
|
79
|
+
### 3. Create or Refresh CCC Index
|
|
80
|
+
|
|
81
|
+
**If `{ccc_daemon}` is `"stopped"` or undefined (healthy daemon where no explicit state was recorded):**
|
|
82
|
+
|
|
83
|
+
The `ccc index` command auto-starts the daemon when needed. Proceed with indexing below.
|
|
84
|
+
|
|
85
|
+
**If `{ccc_daemon}` is `"error"`:**
|
|
86
|
+
|
|
87
|
+
Attempt indexing anyway — errors will be caught below.
|
|
88
|
+
|
|
89
|
+
Run:
|
|
90
|
+
```bash
|
|
91
|
+
ccc init {project-root}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**If init fails** (project may already be initialized): continue — this is not an error.
|
|
95
|
+
|
|
96
|
+
Then run:
|
|
97
|
+
```bash
|
|
98
|
+
ccc index
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**If succeeds:**
|
|
102
|
+
- Run `ccc status` to get file count
|
|
103
|
+
- Store `{ccc_index_result: "created", ccc_indexed_path: {project-root}, ccc_last_indexed: {current ISO timestamp}, ccc_file_count: {count from status}}`
|
|
104
|
+
- Display: "**CCC index created.** {file_count} files indexed for semantic discovery."
|
|
105
|
+
|
|
106
|
+
**If fails:**
|
|
107
|
+
- Store `{ccc_index_result: "failed", ccc_indexed_path: null, ccc_last_indexed: null}`
|
|
108
|
+
- Display: "CCC indexing failed: {error}. Extraction will use direct AST scanning — semantic pre-ranking unavailable this session."
|
|
109
|
+
- Continue — this is NOT a workflow error
|
|
110
|
+
|
|
111
|
+
### 4. Auto-Proceed
|
|
112
|
+
|
|
113
|
+
"**Proceeding to write configuration...**"
|
|
114
|
+
|
|
115
|
+
#### Menu Handling Logic:
|
|
116
|
+
|
|
117
|
+
- After ccc index check completes (or is skipped), immediately load, read entire file, then execute {nextStepFile}
|
|
118
|
+
|
|
119
|
+
#### EXECUTION RULES:
|
|
120
|
+
|
|
121
|
+
- This is an auto-proceed step with no user choices
|
|
122
|
+
- Proceed directly to next step after ccc index verification
|
|
123
|
+
|
|
124
|
+
## CRITICAL STEP COMPLETION NOTE
|
|
125
|
+
|
|
126
|
+
ONLY WHEN ccc index verification is complete (or step is skipped for ccc unavailable) will you load and read fully `{nextStepFile}` to execute the configuration write step.
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
|
131
|
+
|
|
132
|
+
### ✅ SUCCESS:
|
|
133
|
+
|
|
134
|
+
- ccc unavailable: skipped silently with no output, context variables set to null/none
|
|
135
|
+
- ccc available with fresh index: verified freshness, skipped re-index, context variables set
|
|
136
|
+
- ccc available with stale/missing index: index created, context variables set with fresh timestamp
|
|
137
|
+
- ccc indexing fails: logged gracefully, workflow continues, context variables set to failed/null
|
|
138
|
+
- Auto-proceeded to step-02
|
|
139
|
+
|
|
140
|
+
### ❌ SYSTEM FAILURE:
|
|
141
|
+
|
|
142
|
+
- Displaying skip messages when ccc is unavailable
|
|
143
|
+
- Halting the workflow on ccc index failure
|
|
144
|
+
- Re-indexing when index is already fresh and path matches
|
|
145
|
+
- Writing forge-tier.yaml (that is step-02's responsibility)
|
|
146
|
+
- Not storing ccc index context variables for step-02
|
|
147
|
+
|
|
148
|
+
**Master Rule:** CCC indexing is always best-effort. Failures degrade gracefully. The workflow never halts over ccc issues.
|
|
@@ -63,18 +63,32 @@ tools:
|
|
|
63
63
|
ast_grep: {true/false from detection}
|
|
64
64
|
gh_cli: {true/false from detection}
|
|
65
65
|
qmd: {true/false from detection}
|
|
66
|
+
ccc: {true/false from detection}
|
|
67
|
+
ccc_daemon: {ccc_daemon from step-01 if available: "healthy"|"stopped"|"error", or ~}
|
|
66
68
|
security_scan: {true/false — true when SNYK_TOKEN is set}
|
|
67
69
|
|
|
68
70
|
# Capability tier (derived from tool availability)
|
|
69
|
-
# Quick = no tools
|
|
71
|
+
# Quick = no tools | Forge = + ast-grep | Forge+ = + ast-grep + ccc | Deep = + ast-grep + gh + QMD
|
|
70
72
|
tier: {calculated_tier}
|
|
71
73
|
tier_detected_at: {current ISO timestamp}
|
|
72
74
|
|
|
75
|
+
# CCC semantic index state (managed by setup-forge step-01b and extraction workflows)
|
|
76
|
+
ccc_index:
|
|
77
|
+
indexed_path: {ccc_indexed_path from step-01b, or ~}
|
|
78
|
+
last_indexed: {ccc_last_indexed from step-01b, or ~}
|
|
79
|
+
status: {ccc_index_status from step-01b: "fresh"|"created"|"none"|"failed"}
|
|
80
|
+
staleness_threshold_hours: 24
|
|
81
|
+
|
|
82
|
+
# CCC index registry (tracks which source paths have been indexed for skill workflows)
|
|
83
|
+
ccc_index_registry: []
|
|
84
|
+
|
|
73
85
|
# QMD collection registry (populated by create-skill, consumed by audit/update-skill)
|
|
74
86
|
# Each entry tracks a QMD collection created during skill workflows
|
|
75
87
|
qmd_collections: []
|
|
76
88
|
```
|
|
77
89
|
|
|
90
|
+
**Note on re-runs:** The `qmd_collections` and `ccc_index_registry` arrays must be preserved across re-runs. Before overwriting forge-tier.yaml, read the existing `qmd_collections` and `ccc_index_registry` arrays and re-inject them into the new write. These arrays are populated by create-skill workflows and must not be reset.
|
|
91
|
+
|
|
78
92
|
**This file is ALWAYS overwritten** on every run — it reflects current tool state.
|
|
79
93
|
|
|
80
94
|
If the write fails, report the error and halt the workflow.
|
|
@@ -90,15 +104,19 @@ Check if `{project-root}/_bmad/_memory/forger-sidecar/preferences.yaml` exists:
|
|
|
90
104
|
# Created by setup-forge workflow on first run
|
|
91
105
|
# Edit this file to customize Ferris behavior
|
|
92
106
|
|
|
93
|
-
# Override detected tier (set to Quick, Forge, or Deep to force a tier)
|
|
107
|
+
# Override detected tier (set to Quick, Forge, Forge+, or Deep to force a tier)
|
|
94
108
|
tier_override: ~
|
|
95
109
|
|
|
96
110
|
# Passive context injection (set to false to skip snippet generation and CLAUDE.md updates during export)
|
|
97
111
|
passive_context: true
|
|
98
112
|
|
|
99
|
-
#
|
|
100
|
-
|
|
101
|
-
|
|
113
|
+
# Language defaults
|
|
114
|
+
output_language: ~
|
|
115
|
+
skill_format_version: ~
|
|
116
|
+
|
|
117
|
+
# Output preferences
|
|
118
|
+
citation_style: ~
|
|
119
|
+
confidence_display: ~
|
|
102
120
|
```
|
|
103
121
|
|
|
104
122
|
**If it DOES exist:** Do not modify. Preserve entirely.
|
|
@@ -133,7 +151,7 @@ ONLY WHEN forge-tier.yaml has been written successfully and preferences.yaml exi
|
|
|
133
151
|
|
|
134
152
|
### ✅ SUCCESS:
|
|
135
153
|
|
|
136
|
-
- forge-tier.yaml written with accurate tool booleans, tier, timestamp, and
|
|
154
|
+
- forge-tier.yaml written with accurate tool booleans (including ccc), tier, timestamp, ccc_index state, and preserved qmd_collections/ccc_index_registry arrays
|
|
137
155
|
- preferences.yaml exists (created with defaults on first run, preserved on re-run)
|
|
138
156
|
- forge-data/ directory exists (created or pre-existing)
|
|
139
157
|
- Auto-proceeded to step-03
|
|
@@ -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
|
|
|
@@ -45,6 +45,11 @@ tessl evaluates SKILL.md body content only — it does not read `references/*.md
|
|
|
45
45
|
- Type Coverage: AST-verified type completeness
|
|
46
46
|
- Full scoring formula applied
|
|
47
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
|
+
|
|
48
53
|
### Deep Tier (ast-grep + gh + QMD)
|
|
49
54
|
- All Forge tier checks plus:
|
|
50
55
|
- Cross-repository reference verification
|
|
@@ -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
|
|
|
@@ -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
|