@soleri/forge 9.0.0 → 9.0.1
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/dist/scaffold-filetree.js +15 -1
- package/dist/scaffold-filetree.js.map +1 -1
- package/dist/skills/brain-debrief/SKILL.md +66 -0
- package/dist/skills/brainstorming/SKILL.md +85 -0
- package/dist/skills/code-patrol/SKILL.md +86 -0
- package/dist/skills/context-resume/SKILL.md +92 -0
- package/dist/skills/executing-plans/SKILL.md +87 -0
- package/dist/skills/fix-and-learn/SKILL.md +98 -0
- package/dist/skills/health-check/SKILL.md +131 -0
- package/dist/skills/knowledge-harvest/SKILL.md +93 -0
- package/dist/skills/onboard-me/SKILL.md +118 -0
- package/dist/skills/retrospective/SKILL.md +95 -0
- package/dist/skills/second-opinion/SKILL.md +97 -0
- package/dist/skills/systematic-debugging/SKILL.md +99 -0
- package/dist/skills/test-driven-development/SKILL.md +91 -0
- package/dist/skills/vault-capture/SKILL.md +82 -0
- package/dist/skills/vault-navigator/SKILL.md +80 -0
- package/dist/skills/verification-before-completion/SKILL.md +82 -0
- package/dist/skills/writing-plans/SKILL.md +105 -0
- package/package.json +1 -1
- package/src/scaffold-filetree.ts +16 -1
- package/src/skills/brain-debrief/SKILL.md +66 -0
- package/src/skills/brainstorming/SKILL.md +85 -0
- package/src/skills/code-patrol/SKILL.md +86 -0
- package/src/skills/context-resume/SKILL.md +92 -0
- package/src/skills/executing-plans/SKILL.md +87 -0
- package/src/skills/fix-and-learn/SKILL.md +98 -0
- package/src/skills/health-check/SKILL.md +131 -0
- package/src/skills/knowledge-harvest/SKILL.md +93 -0
- package/src/skills/onboard-me/SKILL.md +118 -0
- package/src/skills/retrospective/SKILL.md +95 -0
- package/src/skills/second-opinion/SKILL.md +97 -0
- package/src/skills/systematic-debugging/SKILL.md +99 -0
- package/src/skills/test-driven-development/SKILL.md +91 -0
- package/src/skills/vault-capture/SKILL.md +82 -0
- package/src/skills/vault-navigator/SKILL.md +80 -0
- package/src/skills/verification-before-completion/SKILL.md +82 -0
- package/src/skills/writing-plans/SKILL.md +105 -0
- package/dist/skills/agent-dev.md +0 -122
- package/dist/skills/agent-guide.md +0 -110
- package/dist/skills/agent-persona.md +0 -66
- package/dist/skills/brain-debrief.md +0 -214
- package/dist/skills/brainstorming.md +0 -180
- package/dist/skills/code-patrol.md +0 -178
- package/dist/skills/context-resume.md +0 -146
- package/dist/skills/deliver-and-ship.md +0 -123
- package/dist/skills/env-setup.md +0 -151
- package/dist/skills/executing-plans.md +0 -216
- package/dist/skills/fix-and-learn.md +0 -167
- package/dist/skills/health-check.md +0 -231
- package/dist/skills/knowledge-harvest.md +0 -185
- package/dist/skills/onboard-me.md +0 -198
- package/dist/skills/retrospective.md +0 -205
- package/dist/skills/second-opinion.md +0 -149
- package/dist/skills/systematic-debugging.md +0 -241
- package/dist/skills/test-driven-development.md +0 -281
- package/dist/skills/vault-capture.md +0 -170
- package/dist/skills/vault-curate.md +0 -107
- package/dist/skills/vault-navigator.md +0 -140
- package/dist/skills/verification-before-completion.md +0 -182
- package/dist/skills/writing-plans.md +0 -215
- package/src/skills/agent-dev.md +0 -122
- package/src/skills/agent-guide.md +0 -110
- package/src/skills/agent-persona.md +0 -66
- package/src/skills/brain-debrief.md +0 -214
- package/src/skills/brainstorming.md +0 -180
- package/src/skills/code-patrol.md +0 -178
- package/src/skills/context-resume.md +0 -146
- package/src/skills/deliver-and-ship.md +0 -123
- package/src/skills/env-setup.md +0 -151
- package/src/skills/executing-plans.md +0 -216
- package/src/skills/fix-and-learn.md +0 -167
- package/src/skills/health-check.md +0 -231
- package/src/skills/knowledge-harvest.md +0 -185
- package/src/skills/onboard-me.md +0 -198
- package/src/skills/retrospective.md +0 -205
- package/src/skills/second-opinion.md +0 -149
- package/src/skills/systematic-debugging.md +0 -241
- package/src/skills/test-driven-development.md +0 -281
- package/src/skills/vault-capture.md +0 -170
- package/src/skills/vault-curate.md +0 -107
- package/src/skills/vault-navigator.md +0 -140
- package/src/skills/verification-before-completion.md +0 -182
- package/src/skills/writing-plans.md +0 -215
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test-driven-development
|
|
3
|
+
description: Use when implementing any feature or bugfix — write failing tests before implementation code.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Test-Driven Development (TDD)
|
|
7
|
+
|
|
8
|
+
**Core principle:** If you didn't watch the test fail, you don't know if it tests the right thing.
|
|
9
|
+
|
|
10
|
+
## Before You Start — Search First
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
ernesto_core op:search_intelligent
|
|
14
|
+
params: { query: "<what you're about to test>" }
|
|
15
|
+
ernesto_core op:brain_strengths
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
If vault has testing guidance for this domain, follow it.
|
|
19
|
+
|
|
20
|
+
## Start a TDD Loop
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
ernesto_core op:loop_start
|
|
24
|
+
params: { prompt: "TDD: <feature>", mode: "custom" }
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## The Iron Law
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Write code before the test? Delete it. Start over. No exceptions.
|
|
34
|
+
|
|
35
|
+
## Red-Green-Refactor
|
|
36
|
+
|
|
37
|
+
### RED — Write Failing Test
|
|
38
|
+
|
|
39
|
+
One behavior, clear name, real code (no mocks unless unavoidable). Run test, confirm it **fails** for the expected reason (feature missing, not typos). Track: `op:loop_iterate`.
|
|
40
|
+
|
|
41
|
+
### GREEN — Minimal Code
|
|
42
|
+
|
|
43
|
+
Simplest code to pass the test. Don't add features beyond the test. Run test, confirm it **passes** and other tests still pass. Track: `op:loop_iterate`.
|
|
44
|
+
|
|
45
|
+
### REFACTOR — Clean Up
|
|
46
|
+
|
|
47
|
+
After green only: remove duplication, improve names, extract helpers. Keep tests green. Don't add behavior.
|
|
48
|
+
|
|
49
|
+
### Repeat
|
|
50
|
+
|
|
51
|
+
Next failing test for next behavior.
|
|
52
|
+
|
|
53
|
+
## Verification Checklist
|
|
54
|
+
|
|
55
|
+
- [ ] Every new function has a test
|
|
56
|
+
- [ ] Watched each test fail before implementing
|
|
57
|
+
- [ ] Failed for expected reason (not typo)
|
|
58
|
+
- [ ] Wrote minimal code to pass
|
|
59
|
+
- [ ] All tests pass, output pristine
|
|
60
|
+
- [ ] Mocks only where unavoidable
|
|
61
|
+
- [ ] Edge cases and errors covered
|
|
62
|
+
|
|
63
|
+
## After TDD
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
ernesto_core op:loop_complete
|
|
67
|
+
ernesto_core op:capture_quick
|
|
68
|
+
params: { title: "<testing pattern>", description: "<what you learned>" }
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Common Mistakes
|
|
72
|
+
|
|
73
|
+
- Writing implementation before tests ("I'll test after")
|
|
74
|
+
- Keeping pre-test code as "reference" (delete means delete)
|
|
75
|
+
- Test passes immediately (testing existing behavior, not new)
|
|
76
|
+
- Multiple behaviors in one test ("and" in name means split it)
|
|
77
|
+
|
|
78
|
+
| Problem | Solution |
|
|
79
|
+
|---------|----------|
|
|
80
|
+
| Don't know how to test | Write wished-for API first |
|
|
81
|
+
| Must mock everything | Code too coupled — use DI |
|
|
82
|
+
| Test setup huge | Extract helpers or simplify design |
|
|
83
|
+
|
|
84
|
+
## Quick Reference
|
|
85
|
+
|
|
86
|
+
| Op | When to Use |
|
|
87
|
+
|----|-------------|
|
|
88
|
+
| `search_intelligent` | Find testing patterns |
|
|
89
|
+
| `brain_strengths` | Proven testing approaches |
|
|
90
|
+
| `loop_start` / `loop_iterate` / `loop_complete` | TDD cycle tracking |
|
|
91
|
+
| `capture_quick` | Capture new testing patterns |
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
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.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Vault Capture — Persist Knowledge
|
|
7
|
+
|
|
8
|
+
Capture patterns, anti-patterns, workflows, and principles to the vault. Captured knowledge compounds — it informs future searches, brain recommendations, and team reviews.
|
|
9
|
+
|
|
10
|
+
## Steps
|
|
11
|
+
|
|
12
|
+
### 1. Check for Duplicates
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
ernesto_core op:search_intelligent
|
|
16
|
+
params: { query: "<knowledge title or description>" }
|
|
17
|
+
ernesto_core op:curator_detect_duplicates
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
If similar entry exists, update it instead of creating a duplicate.
|
|
21
|
+
|
|
22
|
+
### 2. Classify the Knowledge
|
|
23
|
+
|
|
24
|
+
| Type | Description |
|
|
25
|
+
|------|-------------|
|
|
26
|
+
| **pattern** | Works and should be repeated |
|
|
27
|
+
| **anti-pattern** | Fails and should be avoided |
|
|
28
|
+
| **workflow** | Steps for a specific task |
|
|
29
|
+
| **principle** | Guiding rule or heuristic |
|
|
30
|
+
| **decision** | Architectural choice with rationale |
|
|
31
|
+
|
|
32
|
+
### 3. Capture
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
ernesto_core op:capture_knowledge
|
|
36
|
+
params: {
|
|
37
|
+
title: "<clear, searchable name>",
|
|
38
|
+
description: "<what it is and when it applies>",
|
|
39
|
+
type: "<pattern|anti-pattern|workflow|principle|decision>",
|
|
40
|
+
category: "<domain>",
|
|
41
|
+
tags: ["<tag1>", "<tag2>"],
|
|
42
|
+
example: "<code or before/after>",
|
|
43
|
+
why: "<reasoning>"
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
For quick captures: `ernesto_core op:capture_quick params: { title: "<name>", description: "<details>" }`
|
|
48
|
+
|
|
49
|
+
### 4. Post-Capture Quality
|
|
50
|
+
|
|
51
|
+
- `op:curator_groom params: { entryId: "<id>" }` — normalize tags
|
|
52
|
+
- `op:curator_enrich params: { entryId: "<id>" }` — LLM enrichment
|
|
53
|
+
- `op:curator_contradictions` — check for conflicts
|
|
54
|
+
|
|
55
|
+
### 5. Governance (if enabled)
|
|
56
|
+
|
|
57
|
+
If capture returns a `proposalId`, entry is queued: `op:governance_proposals params: { action: "list" }`.
|
|
58
|
+
|
|
59
|
+
### 6. Promote to Global (Optional)
|
|
60
|
+
|
|
61
|
+
For cross-project knowledge: `op:memory_promote_to_global params: { entryId: "<id>" }`.
|
|
62
|
+
|
|
63
|
+
### 7. Verify
|
|
64
|
+
|
|
65
|
+
`op:admin_health` and `op:admin_vault_analytics` to confirm storage and quality.
|
|
66
|
+
|
|
67
|
+
## Common Mistakes
|
|
68
|
+
|
|
69
|
+
- Not checking for duplicates before capturing
|
|
70
|
+
- Missing the `why` field (makes entries not actionable)
|
|
71
|
+
- Skipping post-capture grooming (tags stay unnormalized)
|
|
72
|
+
|
|
73
|
+
## Quick Reference
|
|
74
|
+
|
|
75
|
+
| Op | When to Use |
|
|
76
|
+
|----|-------------|
|
|
77
|
+
| `search_intelligent` | Check for duplicates |
|
|
78
|
+
| `capture_knowledge` / `capture_quick` | Persist to vault |
|
|
79
|
+
| `curator_groom` / `curator_enrich` | Post-capture quality |
|
|
80
|
+
| `curator_contradictions` | Find conflicts |
|
|
81
|
+
| `memory_promote_to_global` | Share cross-project |
|
|
82
|
+
| `admin_health` | Verify health |
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
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.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Vault Navigator — Knowledge Oracle
|
|
7
|
+
|
|
8
|
+
Navigate the vault intelligently. Picks the right search strategy based on what the user needs.
|
|
9
|
+
|
|
10
|
+
## Search Strategy Decision Tree
|
|
11
|
+
|
|
12
|
+
### "Have we seen this?" / "Best practice for X"
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
ernesto_core op:search_intelligent
|
|
16
|
+
params: { query: "<question>" }
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
If results are weak, fall back to `op:search` with explicit filters (type, category, tags, severity).
|
|
20
|
+
|
|
21
|
+
### "Show me everything about X" (Exploration)
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
ernesto_core op:vault_tags
|
|
25
|
+
ernesto_core op:vault_domains
|
|
26
|
+
ernesto_core op:vault_recent
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### "What's stale?" / "What needs updating?"
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
ernesto_core op:vault_age_report
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### "What do other projects do?"
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
ernesto_core op:memory_cross_project_search
|
|
39
|
+
params: { query: "<topic>", crossProject: true }
|
|
40
|
+
ernesto_core op:project_linked_projects
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### "Has brain learned about X?"
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
ernesto_core op:brain_strengths
|
|
47
|
+
ernesto_core op:brain_global_patterns
|
|
48
|
+
params: { domain: "<domain>" }
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Broad exploration ("What do I know about X?")
|
|
52
|
+
|
|
53
|
+
Chain: `search_intelligent` -> `vault_tags` / `vault_domains` -> `memory_cross_project_search` -> `brain_strengths`. Label each finding with its source.
|
|
54
|
+
|
|
55
|
+
## Presenting Results
|
|
56
|
+
|
|
57
|
+
Always include: **Source** (vault/memory/brain), **Confidence** (score), **Relevance** (why it matches), **Next step** (how to apply).
|
|
58
|
+
|
|
59
|
+
## Fallback: Web Search
|
|
60
|
+
|
|
61
|
+
If all vault strategies return nothing, search the web. If web finds something useful, offer to capture: `op:capture_quick`.
|
|
62
|
+
|
|
63
|
+
## Common Mistakes
|
|
64
|
+
|
|
65
|
+
- Using only one search strategy instead of trying multiple
|
|
66
|
+
- Not labeling result sources (user can't judge confidence)
|
|
67
|
+
- Saying "nothing found" without trying web search fallback
|
|
68
|
+
|
|
69
|
+
## Quick Reference
|
|
70
|
+
|
|
71
|
+
| Op | When to Use |
|
|
72
|
+
|----|-------------|
|
|
73
|
+
| `search_intelligent` | Default semantic search |
|
|
74
|
+
| `search` | Structured search with filters |
|
|
75
|
+
| `vault_tags` / `vault_domains` | Browse knowledge landscape |
|
|
76
|
+
| `vault_recent` | Recently modified entries |
|
|
77
|
+
| `vault_age_report` | Stale entries |
|
|
78
|
+
| `memory_cross_project_search` | Cross-project search |
|
|
79
|
+
| `brain_strengths` / `brain_global_patterns` | Proven patterns |
|
|
80
|
+
| `capture_quick` | Capture web findings |
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
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.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Verification Before Completion
|
|
7
|
+
|
|
8
|
+
**Core principle:** Evidence before claims, always.
|
|
9
|
+
|
|
10
|
+
## The Iron Law
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
If you haven't run the verification command in this message, you cannot claim it passes.
|
|
17
|
+
|
|
18
|
+
## The Gate Function
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
1. IDENTIFY: What command proves this claim?
|
|
22
|
+
2. RUN: Execute the FULL command (fresh, complete)
|
|
23
|
+
3. READ: Full output, check exit code, count failures
|
|
24
|
+
4. VERIFY: Does output confirm the claim?
|
|
25
|
+
- NO → State actual status with evidence
|
|
26
|
+
- YES → State claim WITH evidence
|
|
27
|
+
5. AGENT CHECK: Run system diagnostics
|
|
28
|
+
6. ONLY THEN: Make the claim
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Agent System Checks
|
|
32
|
+
|
|
33
|
+
After passing verification commands:
|
|
34
|
+
|
|
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
|
+
|
|
39
|
+
If any check reports problems, address before claiming completion.
|
|
40
|
+
|
|
41
|
+
## Common Failures
|
|
42
|
+
|
|
43
|
+
| Claim | Requires | Not Sufficient |
|
|
44
|
+
|-------|----------|----------------|
|
|
45
|
+
| Tests pass | Test output: 0 failures | Previous run, "should pass" |
|
|
46
|
+
| Build succeeds | Build command: exit 0 | Linter passing |
|
|
47
|
+
| Bug fixed | Original symptom passes | "Code changed, assumed fixed" |
|
|
48
|
+
| Requirements met | Line-by-line checklist | Tests passing alone |
|
|
49
|
+
|
|
50
|
+
## Red Flags — STOP
|
|
51
|
+
|
|
52
|
+
- Using "should", "probably", "seems to"
|
|
53
|
+
- Expressing satisfaction before verification
|
|
54
|
+
- About to commit/push/PR without verification
|
|
55
|
+
- Relying on partial verification
|
|
56
|
+
|
|
57
|
+
| Excuse | Reality |
|
|
58
|
+
|--------|---------|
|
|
59
|
+
| "Should work now" | RUN the verification |
|
|
60
|
+
| "I'm confident" | Confidence is not evidence |
|
|
61
|
+
| "Just this once" | No exceptions |
|
|
62
|
+
| "Partial check is enough" | Partial proves nothing |
|
|
63
|
+
|
|
64
|
+
## After Verification
|
|
65
|
+
|
|
66
|
+
Capture session summary: `ernesto_core op:session_capture params: { summary: "<what was accomplished>" }`
|
|
67
|
+
|
|
68
|
+
## Common Mistakes
|
|
69
|
+
|
|
70
|
+
- Claiming "tests pass" based on a previous run
|
|
71
|
+
- Trusting agent success reports without independent verification
|
|
72
|
+
- Running linter but not build (linter does not check compilation)
|
|
73
|
+
- Skipping the red-green cycle for regression tests
|
|
74
|
+
|
|
75
|
+
## Quick Reference
|
|
76
|
+
|
|
77
|
+
| Op | When to Use |
|
|
78
|
+
|----|-------------|
|
|
79
|
+
| `admin_health` | Quick system health check |
|
|
80
|
+
| `admin_diagnostic` | Comprehensive diagnostic |
|
|
81
|
+
| `admin_vault_analytics` | Knowledge quality metrics |
|
|
82
|
+
| `session_capture` | Persist verified completion context |
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
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.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Writing Plans
|
|
7
|
+
|
|
8
|
+
Write implementation plans assuming the engineer has zero codebase context. Document everything: which files to touch, code, testing, expected output. Bite-sized tasks. DRY. YAGNI. TDD. Frequent commits.
|
|
9
|
+
|
|
10
|
+
**Announce at start:** "I'm using the writing-plans skill to create the implementation plan."
|
|
11
|
+
|
|
12
|
+
**Save plans to:** `docs/plans/YYYY-MM-DD-<feature-name>.md`
|
|
13
|
+
|
|
14
|
+
## Before Writing — Search First
|
|
15
|
+
|
|
16
|
+
### 1. Vault First
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
ernesto_core op:search_intelligent
|
|
20
|
+
params: { query: "<feature being planned>" }
|
|
21
|
+
ernesto_core op:brain_strengths
|
|
22
|
+
ernesto_core op:vault_domains
|
|
23
|
+
ernesto_core op:vault_tags
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### 2. Web Search Second
|
|
27
|
+
|
|
28
|
+
If vault lacks guidance: libraries, reference implementations, API docs, known pitfalls.
|
|
29
|
+
|
|
30
|
+
### 3. Then Write the Plan
|
|
31
|
+
|
|
32
|
+
Incorporate vault insights and web findings. Reference specific entries.
|
|
33
|
+
|
|
34
|
+
## Create a Tracked Plan
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
ernesto_core op:create_plan
|
|
38
|
+
params: {
|
|
39
|
+
objective: "<one-sentence goal>",
|
|
40
|
+
scope: { included: [...], excluded: [...] },
|
|
41
|
+
steps: [{ title: "Step 1", description: "details" }, ...]
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Grade and Improve
|
|
46
|
+
|
|
47
|
+
```
|
|
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
|
+
```
|
|
52
|
+
|
|
53
|
+
Iterate with: `op:plan_iterate params: { planId: "<id>", feedback: "<improvement>" }`
|
|
54
|
+
|
|
55
|
+
## Split into Tasks
|
|
56
|
+
|
|
57
|
+
After approval: `ernesto_core op:plan_split params: { planId: "<id>" }`
|
|
58
|
+
|
|
59
|
+
## Task Granularity
|
|
60
|
+
|
|
61
|
+
Each step is one action (2-5 minutes): write failing test, run it, implement, run tests, commit.
|
|
62
|
+
|
|
63
|
+
## Plan Document Header
|
|
64
|
+
|
|
65
|
+
```markdown
|
|
66
|
+
# [Feature] Implementation Plan
|
|
67
|
+
|
|
68
|
+
> **For Claude:** REQUIRED SUB-SKILL: Use executing-plans to implement this plan task-by-task.
|
|
69
|
+
|
|
70
|
+
**Goal:** [One sentence]
|
|
71
|
+
**Architecture:** [2-3 sentences]
|
|
72
|
+
**Tech Stack:** [Key technologies]
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Task Structure
|
|
76
|
+
|
|
77
|
+
- Files: Create / Modify / Test paths
|
|
78
|
+
- Steps: Write failing test (code) -> verify fail (expected output) -> implement (code) -> verify pass (expected output) -> commit (exact commands)
|
|
79
|
+
|
|
80
|
+
## After Approval
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
ernesto_core op:approve_plan params: { planId: "<id>" }
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Offer execution choice: subagent-driven (this session) or parallel session with executing-plans.
|
|
87
|
+
|
|
88
|
+
## Common Mistakes
|
|
89
|
+
|
|
90
|
+
- Writing plans from scratch without searching vault first
|
|
91
|
+
- Vague steps like "add validation" instead of exact code
|
|
92
|
+
- Missing test steps in the plan
|
|
93
|
+
- Not grading the plan before presenting to user
|
|
94
|
+
|
|
95
|
+
## Quick Reference
|
|
96
|
+
|
|
97
|
+
| Op | When to Use |
|
|
98
|
+
|----|-------------|
|
|
99
|
+
| `search_intelligent` | Find patterns before planning |
|
|
100
|
+
| `brain_strengths` | Proven approaches |
|
|
101
|
+
| `create_plan` | Create tracked plan |
|
|
102
|
+
| `plan_grade` / `plan_auto_improve` | Grade and improve |
|
|
103
|
+
| `plan_iterate` | Iterate with feedback |
|
|
104
|
+
| `plan_split` | Split into tasks |
|
|
105
|
+
| `approve_plan` | Lock in approved plan |
|
package/package.json
CHANGED
package/src/scaffold-filetree.ts
CHANGED
|
@@ -308,7 +308,22 @@ export function scaffoldFileTree(input: AgentYamlInput, outputDir: string): File
|
|
|
308
308
|
writeFile(agentDir, `workflows/${wf.name}/tools.yaml`, wf.tools, filesCreated);
|
|
309
309
|
}
|
|
310
310
|
|
|
311
|
-
// ─── 8.
|
|
311
|
+
// ─── 8. Copy bundled skills ─────────────────────────────────
|
|
312
|
+
const skillsSrcDir = join(dirname(fileURLToPath(import.meta.url)), 'skills');
|
|
313
|
+
if (existsSync(skillsSrcDir)) {
|
|
314
|
+
const skillDirs = readdirSync(skillsSrcDir, { withFileTypes: true })
|
|
315
|
+
.filter((d) => d.isDirectory())
|
|
316
|
+
.map((d) => d.name);
|
|
317
|
+
for (const skillName of skillDirs) {
|
|
318
|
+
const skillFile = join(skillsSrcDir, skillName, 'SKILL.md');
|
|
319
|
+
if (existsSync(skillFile)) {
|
|
320
|
+
mkdirSync(join(agentDir, 'skills', skillName), { recursive: true });
|
|
321
|
+
writeFile(agentDir, `skills/${skillName}/SKILL.md`, readFileSync(skillFile, 'utf-8'), filesCreated);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
// ─── 9. Write knowledge bundles (seed from starter packs if available) ──
|
|
312
327
|
const starterPacksDir = resolveStarterPacksDir();
|
|
313
328
|
let totalSeeded = 0;
|
|
314
329
|
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: brain-debrief
|
|
3
|
+
description: Use when the user wants to see accumulated knowledge, pattern strengths, cross-project insights, learning velocity, or an intelligence report from the brain.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Brain Debrief — Intelligence Report
|
|
7
|
+
|
|
8
|
+
Surface what the brain has learned across sessions and projects. Turns raw vault data into actionable intelligence.
|
|
9
|
+
|
|
10
|
+
## Orchestration by Query Type
|
|
11
|
+
|
|
12
|
+
### "What have I learned?" (General debrief)
|
|
13
|
+
|
|
14
|
+
1. `ernesto_core op:brain_stats` — total sessions, patterns, quality scores
|
|
15
|
+
2. `ernesto_core op:brain_strengths` — patterns ranked by strength (focus >= 70)
|
|
16
|
+
3. `ernesto_core op:memory_topics` — knowledge clusters
|
|
17
|
+
4. `ernesto_core op:vault_age_report` — stale entries needing refresh
|
|
18
|
+
5. `ernesto_core op:curator_health_audit` — vault quality score
|
|
19
|
+
|
|
20
|
+
Present: top 5 patterns, top 3 anti-patterns, stale entries, coverage gaps.
|
|
21
|
+
|
|
22
|
+
### "What's working across projects?" (Cross-project)
|
|
23
|
+
|
|
24
|
+
1. `ernesto_core op:brain_global_patterns` — promoted patterns
|
|
25
|
+
2. `ernesto_core op:brain_recommend params: { projectName: "<project>" }` — similarity-based recommendations
|
|
26
|
+
3. `ernesto_core op:project_linked_projects` — connected projects
|
|
27
|
+
4. `ernesto_core op:memory_cross_project_search params: { query: "<topic>", crossProject: true }`
|
|
28
|
+
|
|
29
|
+
### "Am I getting smarter?" (Learning velocity)
|
|
30
|
+
|
|
31
|
+
Compare `brain_stats` for 7-day vs 30-day periods. Check `memory_stats`, `admin_vault_analytics`, `admin_search_insights`. Present: new patterns, strength changes, growing vs stagnant domains.
|
|
32
|
+
|
|
33
|
+
### "Build fresh intelligence" (Rebuild)
|
|
34
|
+
|
|
35
|
+
1. `ernesto_core op:brain_build_intelligence` — full pipeline rebuild
|
|
36
|
+
2. `ernesto_core op:curator_consolidate` — vault cleanup
|
|
37
|
+
3. Show updated `brain_stats`
|
|
38
|
+
|
|
39
|
+
### "Export what I know" (Portability)
|
|
40
|
+
|
|
41
|
+
Use `brain_export`, `memory_export`, `vault_backup`. Import with corresponding `_import` ops.
|
|
42
|
+
|
|
43
|
+
## Presenting Intelligence
|
|
44
|
+
|
|
45
|
+
Format as a report with: Strengths, Risks (recurring anti-patterns), Gaps, Stale entries, Quality score, Recommendations, Search Misses.
|
|
46
|
+
|
|
47
|
+
## Common Mistakes
|
|
48
|
+
|
|
49
|
+
- Presenting raw tool output instead of synthesized insights
|
|
50
|
+
- Skipping the stale entry check (vault_age_report)
|
|
51
|
+
- Not comparing periods when reporting learning velocity
|
|
52
|
+
|
|
53
|
+
## Quick Reference
|
|
54
|
+
|
|
55
|
+
| Op | When to Use |
|
|
56
|
+
|----|-------------|
|
|
57
|
+
| `brain_stats` | Aggregate metrics |
|
|
58
|
+
| `brain_strengths` | Proven patterns ranked |
|
|
59
|
+
| `brain_global_patterns` | Cross-project patterns |
|
|
60
|
+
| `brain_recommend` | Project-similarity recommendations |
|
|
61
|
+
| `brain_build_intelligence` | Rebuild intelligence pipeline |
|
|
62
|
+
| `memory_topics` / `memory_stats` | Knowledge clusters and health |
|
|
63
|
+
| `vault_age_report` | Stale entries |
|
|
64
|
+
| `curator_health_audit` | Vault quality score |
|
|
65
|
+
| `admin_vault_analytics` | Knowledge quality metrics |
|
|
66
|
+
| `admin_search_insights` | Search miss analysis |
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: brainstorming
|
|
3
|
+
description: Use when creating features, building components, adding functionality, or modifying behavior — explores intent and design before implementation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Brainstorming Ideas Into Designs
|
|
7
|
+
|
|
8
|
+
Turn ideas into fully formed designs through collaborative dialogue. Understand project context, ask questions one at a time, present a design, get approval.
|
|
9
|
+
|
|
10
|
+
<HARD-GATE>
|
|
11
|
+
Do NOT invoke any implementation skill, write any code, scaffold any project, or take any implementation action until you have presented a design and the user has approved it. This applies to EVERY project regardless of perceived simplicity.
|
|
12
|
+
</HARD-GATE>
|
|
13
|
+
|
|
14
|
+
## Checklist
|
|
15
|
+
|
|
16
|
+
Complete in order:
|
|
17
|
+
|
|
18
|
+
1. **Classify intent** — `ernesto_core op:route_intent`
|
|
19
|
+
2. **Search vault for prior art** — `ernesto_core op:search_intelligent`
|
|
20
|
+
3. **Search web for existing solutions** — don't build what already exists
|
|
21
|
+
4. **Explore project context** — check files, docs, recent commits
|
|
22
|
+
5. **Ask clarifying questions** — one at a time, purpose/constraints/success criteria
|
|
23
|
+
6. **Propose 2-3 approaches** — with trade-offs and your recommendation
|
|
24
|
+
7. **Present design** — in sections scaled to complexity, get approval after each
|
|
25
|
+
8. **Capture design decision** — persist to vault
|
|
26
|
+
9. **Write design doc** — save to `docs/plans/YYYY-MM-DD-<topic>-design.md` and commit
|
|
27
|
+
10. **Transition** — invoke writing-plans skill (the ONLY next skill)
|
|
28
|
+
|
|
29
|
+
## Search Before Designing
|
|
30
|
+
|
|
31
|
+
### Vault First
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
ernesto_core op:search_intelligent
|
|
35
|
+
params: { query: "<the feature or idea>" }
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Also check: `op:vault_tags`, `op:vault_domains`, `op:brain_strengths`, `op:memory_cross_project_search` with `crossProject: true`.
|
|
39
|
+
|
|
40
|
+
### Web Search Second
|
|
41
|
+
|
|
42
|
+
If vault has no prior art, search web for existing libraries, reference implementations, best practices, known pitfalls.
|
|
43
|
+
|
|
44
|
+
Present findings: "Before we design this, here's what I found..."
|
|
45
|
+
|
|
46
|
+
## The Process
|
|
47
|
+
|
|
48
|
+
- **Understanding**: Check project state, ask one question per message, prefer multiple choice
|
|
49
|
+
- **Exploring**: Propose 2-3 approaches, lead with recommendation, reference vault patterns and web findings
|
|
50
|
+
- **Presenting**: Scale each section to complexity, ask after each section, cover architecture/components/data flow/error handling/testing
|
|
51
|
+
|
|
52
|
+
## After the Design
|
|
53
|
+
|
|
54
|
+
**Capture the decision:**
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
ernesto_core op:capture_knowledge
|
|
58
|
+
params: {
|
|
59
|
+
title: "<feature> — design decision",
|
|
60
|
+
description: "<chosen approach, rationale, rejected alternatives>",
|
|
61
|
+
type: "decision",
|
|
62
|
+
category: "<domain>",
|
|
63
|
+
tags: ["design-decision"]
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Write validated design to `docs/plans/YYYY-MM-DD-<topic>-design.md` and commit. Then invoke writing-plans.
|
|
68
|
+
|
|
69
|
+
## Common Mistakes
|
|
70
|
+
|
|
71
|
+
- Skipping vault search and reinventing solved problems
|
|
72
|
+
- Jumping to implementation without design approval
|
|
73
|
+
- Asking multiple questions per message (overwhelming)
|
|
74
|
+
- Treating "simple" projects as too simple to need a design
|
|
75
|
+
|
|
76
|
+
## Quick Reference
|
|
77
|
+
|
|
78
|
+
| Op | When to Use |
|
|
79
|
+
|----|-------------|
|
|
80
|
+
| `route_intent` | Classify work type |
|
|
81
|
+
| `search_intelligent` | Search vault for prior art |
|
|
82
|
+
| `vault_tags` / `vault_domains` | Browse knowledge landscape |
|
|
83
|
+
| `brain_strengths` | Check proven patterns |
|
|
84
|
+
| `memory_cross_project_search` | Check other projects |
|
|
85
|
+
| `capture_knowledge` | Persist design decision |
|