@soleri/forge 9.0.1 → 9.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/compose-claude-md.js +1 -1
  2. package/dist/compose-claude-md.js.map +1 -1
  3. package/dist/scaffold-filetree.js +8 -13
  4. package/dist/scaffold-filetree.js.map +1 -1
  5. package/dist/skills/brain-debrief/SKILL.md +16 -12
  6. package/dist/skills/brainstorming/SKILL.md +9 -5
  7. package/dist/skills/code-patrol/SKILL.md +7 -7
  8. package/dist/skills/context-resume/SKILL.md +14 -11
  9. package/dist/skills/deep-review/SKILL.md +186 -0
  10. package/dist/skills/executing-plans/SKILL.md +13 -9
  11. package/dist/skills/fix-and-learn/SKILL.md +12 -8
  12. package/dist/skills/health-check/SKILL.md +21 -17
  13. package/dist/skills/knowledge-harvest/SKILL.md +10 -6
  14. package/dist/skills/onboard-me/SKILL.md +19 -16
  15. package/dist/skills/parallel-execute/SKILL.md +277 -0
  16. package/dist/skills/retrospective/SKILL.md +18 -15
  17. package/dist/skills/second-opinion/SKILL.md +6 -6
  18. package/dist/skills/systematic-debugging/SKILL.md +12 -8
  19. package/dist/skills/test-driven-development/SKILL.md +5 -5
  20. package/dist/skills/vault-capture/SKILL.md +9 -5
  21. package/dist/skills/vault-navigator/SKILL.md +14 -10
  22. package/dist/skills/vault-smells/SKILL.md +251 -0
  23. package/dist/skills/verification-before-completion/SKILL.md +8 -5
  24. package/dist/skills/writing-plans/SKILL.md +14 -11
  25. package/dist/templates/agents-md.js +2 -2
  26. package/dist/templates/agents-md.js.map +1 -1
  27. package/dist/templates/claude-md-template.js +2 -2
  28. package/dist/templates/claude-md-template.js.map +1 -1
  29. package/dist/templates/shared-rules.js +35 -1
  30. package/dist/templates/shared-rules.js.map +1 -1
  31. package/dist/templates/skills.js +28 -6
  32. package/dist/templates/skills.js.map +1 -1
  33. package/dist/types.d.ts +1 -1
  34. package/dist/types.js +6 -2
  35. package/dist/types.js.map +1 -1
  36. package/package.json +1 -1
  37. package/src/__tests__/scaffolder.test.ts +17 -35
  38. package/src/compose-claude-md.ts +1 -1
  39. package/src/scaffold-filetree.ts +9 -13
  40. package/src/skills/brain-debrief/SKILL.md +16 -12
  41. package/src/skills/brainstorming/SKILL.md +9 -5
  42. package/src/skills/code-patrol/SKILL.md +7 -7
  43. package/src/skills/context-resume/SKILL.md +14 -11
  44. package/src/skills/deep-review/SKILL.md +186 -0
  45. package/src/skills/executing-plans/SKILL.md +13 -9
  46. package/src/skills/fix-and-learn/SKILL.md +12 -8
  47. package/src/skills/health-check/SKILL.md +21 -17
  48. package/src/skills/knowledge-harvest/SKILL.md +10 -6
  49. package/src/skills/onboard-me/SKILL.md +19 -16
  50. package/src/skills/parallel-execute/SKILL.md +277 -0
  51. package/src/skills/retrospective/SKILL.md +18 -15
  52. package/src/skills/second-opinion/SKILL.md +6 -6
  53. package/src/skills/systematic-debugging/SKILL.md +12 -8
  54. package/src/skills/test-driven-development/SKILL.md +5 -5
  55. package/src/skills/vault-capture/SKILL.md +9 -5
  56. package/src/skills/vault-navigator/SKILL.md +14 -10
  57. package/src/skills/vault-smells/SKILL.md +251 -0
  58. package/src/skills/verification-before-completion/SKILL.md +8 -5
  59. package/src/skills/writing-plans/SKILL.md +14 -11
  60. package/src/templates/agents-md.ts +2 -2
  61. package/src/templates/claude-md-template.ts +2 -2
  62. package/src/templates/shared-rules.ts +36 -1
  63. package/src/templates/skills.ts +27 -6
  64. package/src/types.ts +7 -2
@@ -12,7 +12,7 @@ Get an informed recommendation that synthesizes vault knowledge, brain patterns,
12
12
  ### 1. Understand the Decision
13
13
 
14
14
  ```
15
- ernesto_core op:route_intent
15
+ YOUR_AGENT_core op:route_intent
16
16
  params: { prompt: "<user's question>" }
17
17
  ```
18
18
 
@@ -20,20 +20,20 @@ ernesto_core op:route_intent
20
20
 
21
21
  **Vault** — previous decisions, patterns, anti-patterns:
22
22
  ```
23
- ernesto_core op:search_intelligent
23
+ YOUR_AGENT_core op:search_intelligent
24
24
  params: { query: "<the decision or options>" }
25
25
  ```
26
26
 
27
27
  **Brain** — proven approaches:
28
28
  ```
29
- ernesto_core op:brain_strengths
30
- ernesto_core op:brain_recommend
29
+ YOUR_AGENT_core op:brain_strengths
30
+ YOUR_AGENT_core op:brain_recommend
31
31
  params: { projectName: "<current project>" }
32
32
  ```
33
33
 
34
34
  **Cross-project** — what other projects chose:
35
35
  ```
36
- ernesto_core op:memory_cross_project_search
36
+ YOUR_AGENT_core op:memory_cross_project_search
37
37
  params: { query: "<topic>", crossProject: true }
38
38
  ```
39
39
 
@@ -69,7 +69,7 @@ ernesto_core op:memory_cross_project_search
69
69
  ### 4. Capture the Decision
70
70
 
71
71
  ```
72
- ernesto_core op:capture_knowledge
72
+ YOUR_AGENT_core op:capture_knowledge
73
73
  params: {
74
74
  title: "<decision title>",
75
75
  description: "<chosen option, rationale, rejected alternatives>",
@@ -1,6 +1,10 @@
1
1
  ---
2
2
  name: systematic-debugging
3
- description: Use when encountering any bug, test failure, or unexpected behavior — before proposing fixes.
3
+ description: >
4
+ Use as the FIRST response when something is broken — "bug", "failing test", "not working",
5
+ "debug this", "error", "crash", "unexpected behavior", "weird issue". Diagnoses root cause
6
+ before proposing fixes. After root cause is found, hand off to fix-and-learn for repair and
7
+ knowledge capture.
4
8
  ---
5
9
 
6
10
  # Systematic Debugging
@@ -12,10 +16,10 @@ description: Use when encountering any bug, test failure, or unexpected behavior
12
16
  **BEFORE touching any code:**
13
17
 
14
18
  ```
15
- ernesto_core op:search_intelligent
19
+ YOUR_AGENT_core op:search_intelligent
16
20
  params: { query: "<bug or error message>" }
17
- ernesto_core op:brain_strengths
18
- ernesto_core op:memory_search
21
+ YOUR_AGENT_core op:brain_strengths
22
+ YOUR_AGENT_core op:memory_search
19
23
  params: { query: "<error or symptom>" }
20
24
  ```
21
25
 
@@ -26,7 +30,7 @@ Only if vault and web produce no answer, proceed to Phase 1.
26
30
  ## Start a Debug Loop
27
31
 
28
32
  ```
29
- ernesto_core op:loop_start
33
+ YOUR_AGENT_core op:loop_start
30
34
  params: { prompt: "Debug: <bug>", mode: "custom" }
31
35
  ```
32
36
 
@@ -60,8 +64,8 @@ Form single hypothesis, test minimally (one variable at a time), verify before c
60
64
  ## Phase 5: Capture the Learning
61
65
 
62
66
  ```
63
- ernesto_core op:loop_complete
64
- ernesto_core op:capture_knowledge
67
+ YOUR_AGENT_core op:loop_complete
68
+ YOUR_AGENT_core op:capture_knowledge
65
69
  params: {
66
70
  title: "<bug>",
67
71
  description: "<root cause, solution, what made it hard to find>",
@@ -69,7 +73,7 @@ ernesto_core op:capture_knowledge
69
73
  category: "<domain>",
70
74
  tags: ["<relevant>"]
71
75
  }
72
- ernesto_core op:session_capture
76
+ YOUR_AGENT_core op:session_capture
73
77
  ```
74
78
 
75
79
  ## Red Flags — STOP and Return to Phase 1
@@ -10,9 +10,9 @@ description: Use when implementing any feature or bugfix — write failing tests
10
10
  ## Before You Start — Search First
11
11
 
12
12
  ```
13
- ernesto_core op:search_intelligent
13
+ YOUR_AGENT_core op:search_intelligent
14
14
  params: { query: "<what you're about to test>" }
15
- ernesto_core op:brain_strengths
15
+ YOUR_AGENT_core op:brain_strengths
16
16
  ```
17
17
 
18
18
  If vault has testing guidance for this domain, follow it.
@@ -20,7 +20,7 @@ If vault has testing guidance for this domain, follow it.
20
20
  ## Start a TDD Loop
21
21
 
22
22
  ```
23
- ernesto_core op:loop_start
23
+ YOUR_AGENT_core op:loop_start
24
24
  params: { prompt: "TDD: <feature>", mode: "custom" }
25
25
  ```
26
26
 
@@ -63,8 +63,8 @@ Next failing test for next behavior.
63
63
  ## After TDD
64
64
 
65
65
  ```
66
- ernesto_core op:loop_complete
67
- ernesto_core op:capture_quick
66
+ YOUR_AGENT_core op:loop_complete
67
+ YOUR_AGENT_core op:capture_quick
68
68
  params: { title: "<testing pattern>", description: "<what you learned>" }
69
69
  ```
70
70
 
@@ -1,6 +1,10 @@
1
1
  ---
2
2
  name: vault-capture
3
- description: Use when persisting a pattern, anti-pattern, workflow, decision, or principle to the knowledge base — after discovering something worth remembering.
3
+ description: >
4
+ Use to capture a SINGLE known pattern, anti-pattern, workflow, decision, or principle to the
5
+ vault. Triggers on "save this", "capture this", "remember this pattern", "add to vault". The
6
+ user already knows what to capture. For bulk extraction from documents, code, or PRs, use
7
+ knowledge-harvest instead.
4
8
  ---
5
9
 
6
10
  # Vault Capture — Persist Knowledge
@@ -12,9 +16,9 @@ Capture patterns, anti-patterns, workflows, and principles to the vault. Capture
12
16
  ### 1. Check for Duplicates
13
17
 
14
18
  ```
15
- ernesto_core op:search_intelligent
19
+ YOUR_AGENT_core op:search_intelligent
16
20
  params: { query: "<knowledge title or description>" }
17
- ernesto_core op:curator_detect_duplicates
21
+ YOUR_AGENT_core op:curator_detect_duplicates
18
22
  ```
19
23
 
20
24
  If similar entry exists, update it instead of creating a duplicate.
@@ -32,7 +36,7 @@ If similar entry exists, update it instead of creating a duplicate.
32
36
  ### 3. Capture
33
37
 
34
38
  ```
35
- ernesto_core op:capture_knowledge
39
+ YOUR_AGENT_core op:capture_knowledge
36
40
  params: {
37
41
  title: "<clear, searchable name>",
38
42
  description: "<what it is and when it applies>",
@@ -44,7 +48,7 @@ ernesto_core op:capture_knowledge
44
48
  }
45
49
  ```
46
50
 
47
- For quick captures: `ernesto_core op:capture_quick params: { title: "<name>", description: "<details>" }`
51
+ For quick captures: `YOUR_AGENT_core op:capture_quick params: { title: "<name>", description: "<details>" }`
48
52
 
49
53
  ### 4. Post-Capture Quality
50
54
 
@@ -1,6 +1,10 @@
1
1
  ---
2
2
  name: vault-navigator
3
- description: Use when querying the knowledge base for existing solutions, patterns, best practices, or prior art before building something new.
3
+ description: >
4
+ Use when the user asks "search the vault", "find patterns for", "have we seen this before",
5
+ "what does the vault say about", "best practice for", "check vault", "vault search", or wants
6
+ to query the knowledge base for existing solutions and prior art. For saving a new entry, use
7
+ vault-capture instead.
4
8
  ---
5
9
 
6
10
  # Vault Navigator — Knowledge Oracle
@@ -12,7 +16,7 @@ Navigate the vault intelligently. Picks the right search strategy based on what
12
16
  ### "Have we seen this?" / "Best practice for X"
13
17
 
14
18
  ```
15
- ernesto_core op:search_intelligent
19
+ YOUR_AGENT_core op:search_intelligent
16
20
  params: { query: "<question>" }
17
21
  ```
18
22
 
@@ -21,30 +25,30 @@ If results are weak, fall back to `op:search` with explicit filters (type, categ
21
25
  ### "Show me everything about X" (Exploration)
22
26
 
23
27
  ```
24
- ernesto_core op:vault_tags
25
- ernesto_core op:vault_domains
26
- ernesto_core op:vault_recent
28
+ YOUR_AGENT_core op:vault_tags
29
+ YOUR_AGENT_core op:vault_domains
30
+ YOUR_AGENT_core op:vault_recent
27
31
  ```
28
32
 
29
33
  ### "What's stale?" / "What needs updating?"
30
34
 
31
35
  ```
32
- ernesto_core op:vault_age_report
36
+ YOUR_AGENT_core op:vault_age_report
33
37
  ```
34
38
 
35
39
  ### "What do other projects do?"
36
40
 
37
41
  ```
38
- ernesto_core op:memory_cross_project_search
42
+ YOUR_AGENT_core op:memory_cross_project_search
39
43
  params: { query: "<topic>", crossProject: true }
40
- ernesto_core op:project_linked_projects
44
+ YOUR_AGENT_core op:project_linked_projects
41
45
  ```
42
46
 
43
47
  ### "Has brain learned about X?"
44
48
 
45
49
  ```
46
- ernesto_core op:brain_strengths
47
- ernesto_core op:brain_global_patterns
50
+ YOUR_AGENT_core op:brain_strengths
51
+ YOUR_AGENT_core op:brain_global_patterns
48
52
  params: { domain: "<domain>" }
49
53
  ```
50
54
 
@@ -0,0 +1,251 @@
1
+ ---
2
+ name: vault-smells
3
+ description: >
4
+ Use for deep knowledge quality analysis — finding contradictions, stale patterns, orphaned entries,
5
+ weak links, knowledge decay, and structural issues in the vault. Triggers on "vault smells",
6
+ "knowledge quality", "vault analysis", "find contradictions", "stale patterns", "knowledge debt",
7
+ "vault deep check", "is my vault healthy". Goes deeper than health-check (which is operational).
8
+ For code review, use deep-review instead.
9
+ ---
10
+
11
+ # Vault Smells — Knowledge Quality Deep Analysis
12
+
13
+ Detects structural problems in the knowledge base that degrade decision quality over time. Goes beyond operational health (is the DB up?) into knowledge integrity (is the knowledge trustworthy?).
14
+
15
+ ## Smell Categories
16
+
17
+ ### 1. Contradiction Smells
18
+
19
+ Entries that give conflicting guidance. The most dangerous smell — leads to inconsistent decisions.
20
+
21
+ ```
22
+ YOUR_AGENT_core op:curator_contradictions
23
+ ```
24
+
25
+ **What to look for:**
26
+ - Two patterns that recommend opposite approaches for the same situation
27
+ - An anti-pattern that contradicts an active pattern
28
+ - Entries from different time periods with conflicting advice (the older one may be stale)
29
+
30
+ **Resolution:** Present contradictions to user. One must win — archive the loser or scope them to different contexts.
31
+
32
+ ### 2. Staleness Smells
33
+
34
+ Knowledge that was true once but may not be anymore.
35
+
36
+ ```
37
+ YOUR_AGENT_core op:vault_age_report
38
+ ```
39
+
40
+ **Indicators:**
41
+ - Entries >60 days without access or update
42
+ - Patterns referencing APIs, libraries, or versions that have changed
43
+ - Entries tagged with technologies the project no longer uses
44
+ - Confidence scores that haven't been reinforced by brain feedback
45
+
46
+ **Action:** Flag for review. Don't auto-delete — stale doesn't mean wrong.
47
+
48
+ ### 3. Orphan Smells
49
+
50
+ Entries with no connections to the rest of the knowledge graph.
51
+
52
+ ```
53
+ YOUR_AGENT_core op:admin_vault_analytics
54
+ YOUR_AGENT_core op:curator_detect_duplicates
55
+ ```
56
+
57
+ **Indicators:**
58
+ - Entries with zero inbound or outbound links
59
+ - Entries never returned in search results (check search insights)
60
+ - Entries with no tags or only generic tags
61
+ - Entries that were captured but never groomed
62
+
63
+ **Why it matters:** Orphans don't surface when needed. They're knowledge that exists but can't be found. In a Zettelkasten, an unlinked note is a dead note.
64
+
65
+ **Action:** Link, merge, or archive. Every entry should connect to at least one other.
66
+
67
+ ### 4. Duplication Smells
68
+
69
+ Multiple entries covering the same ground with slight variations.
70
+
71
+ ```
72
+ YOUR_AGENT_core op:curator_detect_duplicates
73
+ ```
74
+
75
+ **Indicators:**
76
+ - High similarity scores between entries
77
+ - Same tags and category but different titles
78
+ - Entries captured in different sessions about the same topic
79
+ - Parallel entries — one as pattern, one as anti-pattern for the same concept
80
+
81
+ **Action:** Merge the best parts into one authoritative entry. Archive the rest.
82
+
83
+ ### 5. Shallow Entry Smells
84
+
85
+ Entries that exist but lack substance — captured in a hurry, never enriched.
86
+
87
+ ```
88
+ YOUR_AGENT_core op:curator_health_audit
89
+ ```
90
+
91
+ **Indicators:**
92
+ - Description under 50 characters
93
+ - No examples or context
94
+ - Missing "why" — only states "what" without rationale
95
+ - No tags beyond the auto-generated ones
96
+ - Quality score below 40
97
+
98
+ **Action:** Enrich with context, examples, and rationale — or archive if no longer relevant.
99
+
100
+ ### 6. Category Drift Smells
101
+
102
+ The taxonomy has grown inconsistent over time.
103
+
104
+ ```
105
+ YOUR_AGENT_core op:vault_domains
106
+ YOUR_AGENT_core op:vault_tags
107
+ ```
108
+
109
+ **Indicators:**
110
+ - Near-duplicate categories (e.g., "error-handling" and "errors" and "exception-handling")
111
+ - Categories with only 1-2 entries (too granular)
112
+ - Tags used inconsistently (same concept, different tag names)
113
+ - Entries miscategorized (architecture pattern filed under "testing")
114
+
115
+ **Action:** Normalize with `op:curator_groom_all`. Merge overlapping categories.
116
+
117
+ ### 7. Confidence Decay Smells
118
+
119
+ Brain patterns losing strength without reinforcement.
120
+
121
+ ```
122
+ YOUR_AGENT_core op:brain_strengths
123
+ ```
124
+
125
+ **Indicators:**
126
+ - Patterns with high initial strength that have decayed below 0.3
127
+ - Patterns that were strong but haven't received positive feedback in >30 days
128
+ - Patterns with mixed feedback (both positive and negative) — unresolved
129
+
130
+ **Action:** Review with user. Reinforce valid patterns, retire invalid ones.
131
+
132
+ ### 8. Knowledge Gap Smells
133
+
134
+ Areas where the vault *should* have knowledge but doesn't.
135
+
136
+ ```
137
+ YOUR_AGENT_core op:admin_search_insights
138
+ ```
139
+
140
+ **Indicators:**
141
+ - Repeated search queries that return no results
142
+ - Domains the project uses but vault has no entries for
143
+ - Anti-patterns captured without corresponding patterns (what to do instead?)
144
+ - Patterns without linked anti-patterns (what to avoid?)
145
+
146
+ **Action:** Create targeted entries to fill gaps. Use knowledge-harvest skill on relevant docs/code.
147
+
148
+ ## Running the Analysis
149
+
150
+ ### Step 1: Gather Data
151
+
152
+ ```
153
+ YOUR_AGENT_core op:admin_health
154
+ YOUR_AGENT_core op:admin_vault_analytics
155
+ YOUR_AGENT_core op:curator_health_audit
156
+ YOUR_AGENT_core op:curator_contradictions
157
+ YOUR_AGENT_core op:curator_detect_duplicates
158
+ YOUR_AGENT_core op:vault_age_report
159
+ YOUR_AGENT_core op:vault_domains
160
+ YOUR_AGENT_core op:vault_tags
161
+ YOUR_AGENT_core op:brain_strengths
162
+ YOUR_AGENT_core op:admin_search_insights
163
+ ```
164
+
165
+ ### Step 2: Classify Smells
166
+
167
+ For each smell category, assess severity:
168
+
169
+ | Severity | Meaning |
170
+ |----------|---------|
171
+ | 🟢 Clean | No issues in this category |
172
+ | 🟡 Minor | 1-3 instances, low impact |
173
+ | 🟠 Moderate | Multiple instances, degrading quality |
174
+ | 🔴 Critical | Widespread, actively causing bad decisions |
175
+
176
+ ### Step 3: Present the Report
177
+
178
+ ```
179
+ ## Vault Smell Report
180
+
181
+ ### Overview
182
+ | Metric | Value |
183
+ |--------|-------|
184
+ | Total entries | X |
185
+ | Overall health score | X/100 |
186
+ | Smells found | X across Y categories |
187
+
188
+ ### Smell Summary
189
+ | Category | Severity | Count | Impact |
190
+ |----------|----------|-------|--------|
191
+ | Contradictions | 🔴/🟠/🟡/🟢 | X | Inconsistent decisions |
192
+ | Staleness | 🔴/🟠/🟡/🟢 | X | Outdated guidance |
193
+ | Orphans | 🔴/🟠/🟡/🟢 | X | Unfindable knowledge |
194
+ | Duplicates | 🔴/🟠/🟡/🟢 | X | Noise, conflicting versions |
195
+ | Shallow entries | 🔴/🟠/🟡/🟢 | X | Low-value knowledge |
196
+ | Category drift | 🔴/🟠/🟡/🟢 | X | Poor discoverability |
197
+ | Confidence decay | 🔴/🟠/🟡/🟢 | X | Unreliable recommendations |
198
+ | Knowledge gaps | 🔴/🟠/🟡/🟢 | X | Blind spots |
199
+
200
+ ### Critical Findings
201
+ [Top 3 most impactful issues with specific entries/examples]
202
+
203
+ ### Recommended Actions
204
+ | Priority | Action | Effort | Impact |
205
+ |----------|--------|--------|--------|
206
+ | 1 | [most impactful fix] | Low/Med/High | High |
207
+ | 2 | [second] | Low/Med/High | Med |
208
+ | 3 | [third] | Low/Med/High | Med |
209
+
210
+ ### Trend (if prior reports exist)
211
+ | Metric | Last Check | Now | Direction |
212
+ |--------|-----------|-----|-----------|
213
+ | Health score | X | Y | ↑/↓/→ |
214
+ | Smell count | X | Y | ↑/↓/→ |
215
+ ```
216
+
217
+ ### Step 4: Fix (with user approval)
218
+
219
+ Do NOT auto-fix. Present findings, get approval, then:
220
+
221
+ - Contradictions → `op:curator_resolve_contradiction`
222
+ - Duplicates → `op:curator_groom` (merge)
223
+ - Orphans → link or archive
224
+ - Shallow entries → enrich or archive
225
+ - Category drift → `op:curator_groom_all` (normalize)
226
+ - Gaps → `op:capture_knowledge` (fill)
227
+
228
+ After fixes: `op:brain_build_intelligence` to rebuild with clean data.
229
+
230
+ ## Common Mistakes
231
+
232
+ - Auto-fixing without presenting findings first (user may disagree)
233
+ - Treating all smells as equally urgent (contradictions >> orphans)
234
+ - Deleting stale entries without checking if they're still valid
235
+ - Running this too frequently (monthly is usually enough)
236
+ - Not rebuilding brain intelligence after major cleanup
237
+
238
+ ## Quick Reference
239
+
240
+ | Smell | Detection Op | Fix Op |
241
+ |-------|-------------|--------|
242
+ | Contradictions | `curator_contradictions` | `curator_resolve_contradiction` |
243
+ | Staleness | `vault_age_report` | Review + archive/update |
244
+ | Orphans | `admin_vault_analytics` | Link or archive |
245
+ | Duplicates | `curator_detect_duplicates` | `curator_groom` (merge) |
246
+ | Shallow entries | `curator_health_audit` | Enrich or archive |
247
+ | Category drift | `vault_domains` + `vault_tags` | `curator_groom_all` |
248
+ | Confidence decay | `brain_strengths` | Reinforce or retire |
249
+ | Knowledge gaps | `admin_search_insights` | `capture_knowledge` |
250
+
251
+ **Related skills:** health-check (operational status), vault-curate (active cleanup), knowledge-harvest (fill gaps)
@@ -1,6 +1,9 @@
1
1
  ---
2
2
  name: verification-before-completion
3
- description: Use when about to claim work is complete, fixed, or passing — before committing, creating PRs, or moving to the next task.
3
+ description: >
4
+ Use as an internal quality gate before claiming any task is done — run tests, check output,
5
+ verify behavior. This is a mid-workflow checkpoint, not a shipping gate. For actual deployment
6
+ and release workflows, use deliver-and-ship instead.
4
7
  ---
5
8
 
6
9
  # Verification Before Completion
@@ -32,9 +35,9 @@ If you haven't run the verification command in this message, you cannot claim it
32
35
 
33
36
  After passing verification commands:
34
37
 
35
- - `ernesto_core op:admin_health` — catches vault corruption, stale caches
36
- - `ernesto_core op:admin_diagnostic` — module status, database integrity, config validity
37
- - `ernesto_core op:admin_vault_analytics` — knowledge quality metrics
38
+ - `YOUR_AGENT_core op:admin_health` — catches vault corruption, stale caches
39
+ - `YOUR_AGENT_core op:admin_diagnostic` — module status, database integrity, config validity
40
+ - `YOUR_AGENT_core op:admin_vault_analytics` — knowledge quality metrics
38
41
 
39
42
  If any check reports problems, address before claiming completion.
40
43
 
@@ -63,7 +66,7 @@ If any check reports problems, address before claiming completion.
63
66
 
64
67
  ## After Verification
65
68
 
66
- Capture session summary: `ernesto_core op:session_capture params: { summary: "<what was accomplished>" }`
69
+ Capture session summary: `YOUR_AGENT_core op:session_capture params: { summary: "<what was accomplished>" }`
67
70
 
68
71
  ## Common Mistakes
69
72
 
@@ -1,6 +1,9 @@
1
1
  ---
2
2
  name: writing-plans
3
- description: Use when there is a spec or requirements for a multi-step task and an implementation plan needs to be written before touching code.
3
+ description: >
4
+ Use when the user has clear requirements or a spec and needs a structured implementation plan —
5
+ "create a plan", "break this down", "plan the implementation". Requirements are already known.
6
+ For open-ended exploration when requirements are unclear, use brainstorming instead.
4
7
  ---
5
8
 
6
9
  # Writing Plans
@@ -16,11 +19,11 @@ Write implementation plans assuming the engineer has zero codebase context. Docu
16
19
  ### 1. Vault First
17
20
 
18
21
  ```
19
- ernesto_core op:search_intelligent
22
+ YOUR_AGENT_core op:search_intelligent
20
23
  params: { query: "<feature being planned>" }
21
- ernesto_core op:brain_strengths
22
- ernesto_core op:vault_domains
23
- ernesto_core op:vault_tags
24
+ YOUR_AGENT_core op:brain_strengths
25
+ YOUR_AGENT_core op:vault_domains
26
+ YOUR_AGENT_core op:vault_tags
24
27
  ```
25
28
 
26
29
  ### 2. Web Search Second
@@ -34,7 +37,7 @@ Incorporate vault insights and web findings. Reference specific entries.
34
37
  ## Create a Tracked Plan
35
38
 
36
39
  ```
37
- ernesto_core op:create_plan
40
+ YOUR_AGENT_core op:create_plan
38
41
  params: {
39
42
  objective: "<one-sentence goal>",
40
43
  scope: { included: [...], excluded: [...] },
@@ -45,16 +48,16 @@ ernesto_core op:create_plan
45
48
  ## Grade and Improve
46
49
 
47
50
  ```
48
- ernesto_core op:plan_grade params: { planId: "<id>" }
49
- ernesto_core op:plan_auto_improve params: { planId: "<id>" }
50
- ernesto_core op:plan_meets_grade params: { planId: "<id>", targetGrade: "A" }
51
+ YOUR_AGENT_core op:plan_grade params: { planId: "<id>" }
52
+ YOUR_AGENT_core op:plan_auto_improve params: { planId: "<id>" }
53
+ YOUR_AGENT_core op:plan_meets_grade params: { planId: "<id>", targetGrade: "A" }
51
54
  ```
52
55
 
53
56
  Iterate with: `op:plan_iterate params: { planId: "<id>", feedback: "<improvement>" }`
54
57
 
55
58
  ## Split into Tasks
56
59
 
57
- After approval: `ernesto_core op:plan_split params: { planId: "<id>" }`
60
+ After approval: `YOUR_AGENT_core op:plan_split params: { planId: "<id>" }`
58
61
 
59
62
  ## Task Granularity
60
63
 
@@ -80,7 +83,7 @@ Each step is one action (2-5 minutes): write failing test, run it, implement, ru
80
83
  ## After Approval
81
84
 
82
85
  ```
83
- ernesto_core op:approve_plan params: { planId: "<id>" }
86
+ YOUR_AGENT_core op:approve_plan params: { planId: "<id>" }
84
87
  ```
85
88
 
86
89
  Offer execution choice: subagent-driven (this session) or parallel session with executing-plans.
@@ -61,13 +61,13 @@ When the user asks about your capabilities or you need to check what you've lear
61
61
  ## Session Start
62
62
 
63
63
  Do NOT call any tools automatically on session start. Just greet the user in character.
64
- Only call ${bt}${tp}_orchestrate op:register${bt} or ${bt}${tp}_core op:activate${bt} when you actually need project context or capability discovery — not on every message.
64
+ Only call ${bt}${tp}_orchestrate op:session_start${bt} or ${bt}${tp}_core op:activate${bt} when you actually need project context or capability discovery — not on every message.
65
65
 
66
66
  ## Essential Tools
67
67
 
68
68
  | Facade | Key Ops |
69
69
  |--------|---------|
70
- | ${bt}${tp}_core${bt} | ${bt}health${bt}, ${bt}search${bt}, ${bt}identity${bt}, ${bt}register${bt}, ${bt}activate${bt} |
70
+ | ${bt}${tp}_core${bt} | ${bt}health${bt}, ${bt}search${bt}, ${bt}identity${bt}, ${bt}session_start${bt}, ${bt}activate${bt} |
71
71
  ${domainRows}
72
72
  | ${bt}${tp}_vault${bt} | ${bt}search_intelligent${bt}, ${bt}capture_knowledge${bt}, ${bt}capture_quick${bt}, ${bt}search_feedback${bt} |
73
73
  | ${bt}${tp}_vault${bt} (keeper) | ${bt}knowledge_audit${bt}, ${bt}knowledge_health${bt}, ${bt}knowledge_merge${bt}, ${bt}knowledge_reorganize${bt} |
@@ -66,7 +66,7 @@ export function generateClaudeMdTemplate(config: AgentConfig): string {
66
66
  // ─── Session Start ─────────────────────────────────────
67
67
  '## Session Start',
68
68
  '',
69
- `On every new session: ${bt}${toolPrefix}_orchestrate op:register params:{ projectPath: "." }${bt}`,
69
+ `On every new session: ${bt}${toolPrefix}_orchestrate op:session_start params:{ projectPath: "." }${bt}`,
70
70
  '',
71
71
  ];
72
72
 
@@ -77,7 +77,7 @@ export function generateClaudeMdTemplate(config: AgentConfig): string {
77
77
  '',
78
78
  '| Facade | Key Ops |',
79
79
  '|--------|---------|',
80
- `| ${bt}${toolPrefix}_core${bt} | ${bt}health${bt}, ${bt}search${bt}, ${bt}identity${bt}, ${bt}register${bt}, ${bt}activate${bt} |`,
80
+ `| ${bt}${toolPrefix}_core${bt} | ${bt}health${bt}, ${bt}search${bt}, ${bt}identity${bt}, ${bt}session_start${bt}, ${bt}activate${bt} |`,
81
81
  );
82
82
 
83
83
  // Domain facades — one row per domain
@@ -119,6 +119,7 @@ const ENGINE_RULES_LINES: string[] = [
119
119
  '## Planning',
120
120
  '<!-- soleri:planning -->',
121
121
  '',
122
+ '- **MANDATORY**: Create a formal plan (`op:create_plan`) for every work task. Memory and vault knowledge alone are not sufficient — plans must be persisted and graded.',
122
123
  '- Use `op:create_plan` before writing ANY code. Show the plan, wait for approval.',
123
124
  '- Two-gate approval: Gate 1 (`op:approve_plan`), Gate 2 (`op:plan_split`). Never skip either.',
124
125
  '- Wait for explicit "yes" / "approve" before proceeding past each gate.',
@@ -127,6 +128,15 @@ const ENGINE_RULES_LINES: string[] = [
127
128
  '- On session start: check for plans in `executing`/`reconciling` state and remind.',
128
129
  '- Exceptions: read-only operations, user says "just do it", single-line fixes.',
129
130
  '',
131
+ '### Grade Gate',
132
+ '',
133
+ '**MANDATORY**: Plans must grade **A or higher** before approval. The engine enforces this programmatically.',
134
+ '',
135
+ '- `op:approve_plan` will **reject** any plan with a latest grade below A (score < 90).',
136
+ '- If rejected, iterate on the plan (`op:create_plan`) to address the gaps, then re-grade (`op:plan_grade`) before approving.',
137
+ '- The threshold is configurable per-agent via `engine.minGradeForApproval` in `agent.yaml` (default: `A`).',
138
+ '- Plans with no grade check are allowed through for backward compatibility.',
139
+ '',
130
140
  '### Lifecycle States',
131
141
  '',
132
142
  '| State | Expires | Next Action |',
@@ -339,7 +349,7 @@ const ENGINE_RULES_LINES: string[] = [
339
349
  '### Session Start Protocol',
340
350
  '',
341
351
  'Do NOT call tools automatically on session start — just greet the user in character.',
342
- 'Call `op:register` only when you need project context for a task (not on every message).',
352
+ 'Call `op:session_start` only when you need project context for a task (not on every message).',
343
353
  'Call `op:activate` only when checking evolved capabilities or recovering session state.',
344
354
  '',
345
355
  '### Context Compaction',
@@ -418,5 +428,30 @@ const ENGINE_RULES_LINES: string[] = [
418
428
  '| Template drift suspected | `soleri agent diff` to see what changed |',
419
429
  '',
420
430
 
431
+ // ─── Verification Protocol ─────────────────────────────────
432
+ '## Verification Protocol',
433
+ '<!-- soleri:verification-protocol -->',
434
+ '',
435
+ '**MANDATORY** when modifying existing code: prove before you fix.',
436
+ '',
437
+ '### The Rule',
438
+ '',
439
+ '1. **Find** — identify the issue in existing code',
440
+ '2. **Prove** — reproduce the issue (test case, error log, stack trace)',
441
+ '3. **Fix** — only after the issue is proven reproducible',
442
+ '',
443
+ '### Anti-pattern',
444
+ '',
445
+ '- Fixing code "just in case" or for aesthetics without a proven issue',
446
+ '- Claiming a bug exists without reproduction evidence',
447
+ '- Refactoring working code under the guise of a bug fix',
448
+ '',
449
+ '### Scope',
450
+ '',
451
+ '- Applies ONLY to tasks that modify existing code',
452
+ '- Does NOT apply to new code, new files, or greenfield features',
453
+ '- Advisory only — flags warnings, never blocks execution',
454
+ '',
455
+
421
456
  `<!-- /${ENGINE_MARKER} -->`,
422
457
  ];