@jamie-tam/forge 6.0.0 → 6.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.
- package/README.md +77 -59
- package/agents/dreamer.md +10 -7
- package/agents/gotcha-hunter.md +1 -1
- package/agents/prototype-codifier.md +2 -2
- package/commands/{forge.md → discover.md} +13 -9
- package/commands/dream.md +71 -0
- package/commands/feature.md +57 -10
- package/commands/{evolve.md → forge-evolve.md} +3 -3
- package/commands/greenfield.md +5 -5
- package/commands/note.md +64 -0
- package/commands/{task-force.md → parallel.md} +15 -15
- package/commands/resume.md +2 -2
- package/commands/setup.md +18 -17
- package/commands/status.md +2 -2
- package/commands/wrap.md +130 -0
- package/dist/__tests__/hooks.test.js +334 -0
- package/dist/__tests__/init.test.js +110 -0
- package/dist/__tests__/work-manifest.test.js +48 -14
- package/dist/cli.js +0 -0
- package/dist/hooks.js +88 -6
- package/dist/init.js +39 -1
- package/dist/uninstall.js +11 -5
- package/dist/work-manifest.js +63 -24
- package/hooks/config/gate-requirements.json +1 -1
- package/hooks/hooks.json +14 -1
- package/hooks/scripts/gate-enforcer.sh +51 -6
- package/hooks/scripts/pre-compact.sh +120 -55
- package/hooks/scripts/session-start.sh +43 -4
- package/hooks/scripts/telemetry.sh +32 -2
- package/hooks/templates/CLAUDE.md.template +6 -3
- package/package.json +1 -1
- package/references/common/phases.md +8 -6
- package/references/common/skill-authoring.md +1 -1
- package/rules/common/forge-system.md +64 -6
- package/rules/common/quality-gates.md +2 -0
- package/skills/build-prototype/SKILL.md +4 -4
- package/skills/build-tdd/SKILL.md +14 -0
- package/skills/concept-slides/SKILL.md +11 -11
- package/skills/deliver-deploy/SKILL.md +10 -1
- package/skills/harden/SKILL.md +22 -8
- package/skills/iterate-prototype/SKILL.md +22 -0
- package/skills/quality-test-execution/SKILL.md +26 -1
- package/skills/quality-test-plan/SKILL.md +21 -1
- package/skills/support-debug/SKILL.md +1 -1
- package/skills/support-dream/SKILL.md +8 -7
- package/skills/support-gotcha/SKILL.md +3 -3
- package/skills/{support-task-force → support-parallel}/SKILL.md +22 -22
- package/skills/{support-task-force → support-parallel}/references/dispatch-pattern.md +10 -10
- package/skills/{support-task-force → support-parallel}/references/synthesis-template.md +10 -10
- package/skills/support-skill-validator/SKILL.md +5 -5
- package/skills/support-skill-validator/references/validation-checks.md +1 -1
- package/skills/support-system-guide/SKILL.md +4 -3
- package/skills/support-wiki-lint/scripts/lint.mjs +52 -0
- package/templates/README.md +1 -1
- package/templates/aiwiki/CLAUDE.md.template +48 -22
- package/templates/aiwiki/schemas/session.md +134 -49
- package/templates/manifests/bugfix.yaml +1 -1
- package/templates/manifests/feature.yaml +1 -1
- package/templates/manifests/greenfield.yaml +1 -1
- package/templates/manifests/hotfix.yaml +1 -1
- package/templates/manifests/refactor.yaml +1 -1
- package/templates/manifests/v5/SCHEMA.md +14 -17
- package/templates/manifests/v5/feature.yaml +1 -1
- package/templates/manifests/v6/SCHEMA.md +14 -10
- package/commands/abort.md +0 -25
- package/dist/__tests__/active-manifest.test.js +0 -272
- package/dist/__tests__/gate-check.test.js +0 -384
- package/dist/active-manifest.js +0 -229
- package/dist/gate-check.js +0 -326
package/README.md
CHANGED
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
**A production-grade `.claude` harness for prototype-driven AI development**
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
Source: [github.com/lps-ai/forge](https://github.com/lps-ai/forge) · Changelog: [CHANGELOG.md](CHANGELOG.md) · License: [MIT](LICENSE)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
> ⚠️ **Experimental — early access.** This npm package is still experimental and needs a lot of adjustment. It was published to npm for convenience (so `npx @jamie-tam/forge init` works), but forge is **not feature-complete and not well-tested yet**. Expect breaking changes between versions, rough edges, half-finished commands, and gaps that dogfooding hasn't surfaced. Names, command surfaces, manifest schemas, and skill boundaries are all still in motion. If you try it: pin a version, expect to update often, and please file issues at [github.com/lps-ai/forge/issues](https://github.com/lps-ai/forge/issues) — every real-world signal helps stabilize the next release.
|
|
8
10
|
|
|
9
11
|
---
|
|
10
12
|
|
|
@@ -25,10 +27,10 @@ The v6 schema (`templates/manifests/v6/SCHEMA.md`) adds `phase_plan:` at the top
|
|
|
25
27
|
|
|
26
28
|
## Key Features
|
|
27
29
|
|
|
28
|
-
- **
|
|
29
|
-
- **
|
|
30
|
-
- **17 specialized agents** with explicit phase-context (prototype-builder for Phase 4, builder for Phase 6, plus architects, reviewers, hunters, dreamers)
|
|
31
|
-
- **8 common rules**
|
|
30
|
+
- **31 skills** spanning the prototype-driven pipeline plus production-grade quality gates
|
|
31
|
+
- **15 commands** for discovery, setup, workflows, knowledge capture, evolution, and validation
|
|
32
|
+
- **17 specialized agents** with explicit phase-context (prototype-builder for Phase 3-4, builder for Phase 6, plus architects, reviewers, hunters, dreamers)
|
|
33
|
+
- **8 common rules** auto-loaded every session (one — `testing.md` — is paths-conditional, loading only on test files and source code) + **8 common references** for skill authoring, agent coordination, and workflow protocol
|
|
32
34
|
- **Work manifests** with `phase_plan` (preflight intent), `phases` (gate state), `slice_graph` (build decomposition), and `artifacts` (phase outputs + lock signals)
|
|
33
35
|
- **`aiwiki/` typed pages** with LINT on every write + async dream consolidation
|
|
34
36
|
- **Quality gates** at the prototype-to-production transition where they catch real bugs, not premature plan-phase gates
|
|
@@ -43,9 +45,9 @@ npx @jamie-tam/forge init
|
|
|
43
45
|
```
|
|
44
46
|
|
|
45
47
|
This installs everything into your project's `.claude/` directory:
|
|
46
|
-
- **Rules** —
|
|
47
|
-
- **Skills** —
|
|
48
|
-
- **Commands** —
|
|
48
|
+
- **Rules** — 8 common rules auto-loaded every session (one is paths-conditional) + language-specific rules layered per detected stack
|
|
49
|
+
- **Skills** — 31 atomic skills covering the prototype-driven pipeline + production gates
|
|
50
|
+
- **Commands** — 15 slash commands for discovery, setup, workflows, knowledge capture, evolution, and validation
|
|
49
51
|
- **Agents** — 17 specialized subagents with MCP server access (context7, playwright)
|
|
50
52
|
- **Hooks** — gate-enforcer, wiki-lint, telemetry, state preservation, session checkpoints
|
|
51
53
|
- **CLAUDE.md** — project configuration template
|
|
@@ -145,41 +147,48 @@ Forge detects these tools automatically and offers integration when available. W
|
|
|
145
147
|
## Architecture
|
|
146
148
|
|
|
147
149
|
```
|
|
148
|
-
Commands (workflows) Skills (prefix-grouped) Rules (
|
|
149
|
-
--------------------- -----------------------
|
|
150
|
-
/
|
|
151
|
-
/setup build-wireframe [Phase 2]
|
|
152
|
-
/feature build-prototype [Phase 3]
|
|
153
|
-
/greenfield iterate-prototype [Phase 4]
|
|
154
|
-
/bugfix harden [Phase 5]
|
|
155
|
-
/refactor build-scaffold
|
|
156
|
-
/hotfix build-tdd [Phase 6]
|
|
157
|
-
/
|
|
158
|
-
/
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
150
|
+
Commands (workflows) Skills (prefix-grouped) Rules (auto-loaded)
|
|
151
|
+
--------------------- ----------------------- -------------------
|
|
152
|
+
/discover (discovery) concept-slides [Phase 1] common/forge-system
|
|
153
|
+
/setup build-wireframe [Phase 2] common/security
|
|
154
|
+
/feature build-prototype [Phase 3] common/guardrails
|
|
155
|
+
/greenfield iterate-prototype [Phase 4] common/verification
|
|
156
|
+
/bugfix harden [Phase 5] common/skill-selection
|
|
157
|
+
/refactor build-scaffold common/quality-gates
|
|
158
|
+
/hotfix build-tdd [Phase 6] common/git-workflow
|
|
159
|
+
/note (capture) build-pr-workflow common/testing (paths-conditional)
|
|
160
|
+
/dream (capture) quality-code-review
|
|
161
|
+
/wrap (capture) quality-test-plan
|
|
162
|
+
/parallel (parallel) quality-test-execution References (load on demand)
|
|
163
|
+
/status quality-security-audit ----------------------------
|
|
164
|
+
/resume quality-uiux common/
|
|
165
|
+
/forge-evolve deliver-deploy [Phase 7] agent-coordination
|
|
166
|
+
/validate deliver-db-migration io-protocol
|
|
167
|
+
deliver-onboarding skill-authoring
|
|
168
|
+
Work Manifests (v6) discover-requirements skill-compliance
|
|
169
|
+
------------------- discover-codebase-analysis phases (canonical vocab)
|
|
170
|
+
.forge/work/ plan-brainstorm coding-standards
|
|
171
|
+
{type}/ plan-architecture quality-gates
|
|
172
|
+
{name}/ plan-design-system feature-tracking
|
|
173
|
+
manifest.yaml plan-task-decompose typescript/ python/ react/
|
|
174
|
+
schema_version: "6" support-system-guide [extensible]
|
|
175
|
+
phase_plan: {…} support-debug
|
|
176
|
+
phases: {…} support-gotcha Protocols (read on demand)
|
|
177
|
+
slice_graph: {…} support-wiki-lint --------------------------
|
|
178
|
+
artifacts: {…} support-wiki-bootstrap protocols/codex.md
|
|
179
|
+
support-dream protocols/graphify.md
|
|
180
|
+
aiwiki/ (knowledge layer) support-parallel
|
|
181
|
+
------------------------- support-runtime-reachability Hooks
|
|
182
|
+
decisions/ support-skill-validator ------
|
|
183
|
+
gotchas/ gate-enforcer
|
|
184
|
+
conventions/ wiki-lint
|
|
185
|
+
architecture/ session-start / pre-compact
|
|
186
|
+
sessions/ (per-session) telemetry
|
|
187
|
+
raw/ (free-form notes)
|
|
188
|
+
oracles/ (prototype contracts)
|
|
189
|
+
proposed/ (dream queue)
|
|
190
|
+
schemas/
|
|
191
|
+
CLAUDE.md (usage rules)
|
|
183
192
|
```
|
|
184
193
|
|
|
185
194
|
---
|
|
@@ -188,15 +197,21 @@ aiwiki/ (knowledge layer) support-system-guide Protocols (re
|
|
|
188
197
|
|
|
189
198
|
| Command | Description | When to Use |
|
|
190
199
|
|---------|-------------|-------------|
|
|
191
|
-
| `/
|
|
200
|
+
| `/discover` | One-screen orientation -- installed capabilities, active work, suggested next | Run this first if you're new, or any time you want an overview |
|
|
192
201
|
| `/setup` | Detect project stack, install matching language rules, and fill the project profile | Right after `npx @jamie-tam/forge init` |
|
|
193
|
-
| `/feature` | Full feature workflow with quality gates at
|
|
202
|
+
| `/feature` | Full feature workflow with quality gates at the codify-to-production transition (Phase 5+) | Adding a feature to an existing codebase |
|
|
194
203
|
| `/greenfield` | New project from zero -- includes scaffolding and onboarding docs | Starting a brand-new project |
|
|
195
204
|
| `/bugfix` | Systematic debug, TDD fix, code review, and PR | Something is broken and needs fixing |
|
|
196
205
|
| `/refactor` | Analyze, plan approach, restructure with tests, PR | Code needs cleanup without new functionality |
|
|
197
206
|
| `/hotfix` | Emergency compressed flow -- debug, minimal test, deploy | Production is down, need a fix now |
|
|
198
|
-
| `/
|
|
199
|
-
| `/
|
|
207
|
+
| `/note` | Append an ad-hoc research note or brainstorm to `aiwiki/raw/{date}.md` | Phase 1-2 research, half-formed thoughts, anything that doesn't yet fit a typed page |
|
|
208
|
+
| `/dream` | Manually trigger aiwiki consolidation (merge duplicates, promote raw → typed, prune stale) | After a refactor, branch merge, or whenever `aiwiki/` feels noisy. Auto-fires at phase-close + PreCompact too. |
|
|
209
|
+
| `/wrap` | Capture & finalize the current Claude session — fills `aiwiki/sessions/{date}-{id}.md` with Files touched / Decisions / Gotchas / Open questions / Next steps | At the natural end of a working session, before a long break, or before switching focus mid-day. Next session-start hook reads it. |
|
|
210
|
+
| `/parallel` | Dispatch parallel agents for a punch list of ad-hoc tasks; phase-aware sizing | Multiple independent small tasks to crunch in one pass |
|
|
211
|
+
| `/status` | List in-flight `.forge/work` items and their current phase | Check what's open before starting new work |
|
|
212
|
+
| `/resume` | Continue a paused work item from its current phase | Pick up a `.forge/work` item left mid-flow |
|
|
213
|
+
| `/forge-evolve` | Review gotchas, improve skills, validate changes | Improving the system itself after a project cycle |
|
|
214
|
+
| `/validate` | Run 5 consistency checks across all skills, rules, and commands | After customizing skills or running `/forge-evolve` |
|
|
200
215
|
|
|
201
216
|
---
|
|
202
217
|
|
|
@@ -210,7 +225,7 @@ aiwiki/ (knowledge layer) support-system-guide Protocols (re
|
|
|
210
225
|
| `build-wireframe` | 2 | Single-HTML annotated wireframe with click-through demo and callouts; backend-heavy products get a verification-UI sketch |
|
|
211
226
|
| `build-prototype` | 3 | Vite + React + TS + Tailwind v4 + Zustand v5 scaffold with parallel partition builders |
|
|
212
227
|
| `iterate-prototype` | 4 | Polish loop with feedback file + 5-cycle drift checks; captures gotchas + conventions as side effects |
|
|
213
|
-
| `harden` | 5 | Codifies the locked prototype into architecture files + ADRs (
|
|
228
|
+
| `harden` | 5 | Codifies the locked prototype into architecture files + ADRs (adversarial objections surfaced inline in each ADR `review:` block) + slice graph + tasks |
|
|
214
229
|
|
|
215
230
|
### Discover & Plan (fallback for non-prototype work)
|
|
216
231
|
|
|
@@ -257,7 +272,9 @@ aiwiki/ (knowledge layer) support-system-guide Protocols (re
|
|
|
257
272
|
| `support-debug` | Systematic 4-phase debugging with 3-fix threshold and fact-checking |
|
|
258
273
|
| `support-gotcha` | Self-learning from mistakes — captures lessons to `aiwiki/gotchas/`, auto-promotes after N=3 occurrences |
|
|
259
274
|
| `support-wiki-lint` | Validates `aiwiki/` page schemas + citations on every write (hook-driven); backfills `@<sha7>` citation hashes |
|
|
275
|
+
| `support-wiki-bootstrap` | Scaffold `aiwiki/` (typed-page subdirs, schemas, CLAUDE.md, INDEX) once before workflows write to it |
|
|
260
276
|
| `support-dream` | Async wiki consolidation (merge/promote/prune) at phase-close / pre-compact / manual. Writes to `aiwiki/proposed/` for user review |
|
|
277
|
+
| `support-parallel` | Run parallel agents for a user-supplied punch list; phase-aware crew sizing, command-routing for command-shaped items |
|
|
261
278
|
| `support-runtime-reachability` | Detects orphaned exports (code with no production caller) — the gate that catches "tests pass but feature isn't wired up" |
|
|
262
279
|
| `support-skill-validator` | Validate skill consistency: conflicts, I/O gaps, overlaps, gate coverage, drift |
|
|
263
280
|
|
|
@@ -270,31 +287,32 @@ A standard-size `/feature "add auth"` on an existing prototype-driven codebase f
|
|
|
270
287
|
```
|
|
271
288
|
User: /feature "add auth"
|
|
272
289
|
|
|
|
273
|
-
+--
|
|
290
|
+
+-- Preflight 0: Repo-state detection
|
|
274
291
|
| Prototype mode? → offer redirect to iterate-prototype
|
|
275
292
|
| Production mode? → proceed
|
|
276
|
-
+--
|
|
277
|
-
+--
|
|
278
|
-
+--
|
|
293
|
+
+-- Preflight 1: Preflight checks (git clean, tests pass)
|
|
294
|
+
+-- Preflight 2: aiwiki/ scaffold if missing
|
|
295
|
+
+-- Preflight 3: phase_plan — preflight planner proposes per-phase
|
|
279
296
|
| active / active-light / skipped status; user confirms
|
|
280
297
|
+-- Create/resume manifest (.forge/work/feature/add-auth/manifest.yaml)
|
|
281
298
|
|
|
|
282
|
-
+-- Phase
|
|
299
|
+
+-- Phase 1: [concept-slides] (if active)
|
|
283
300
|
| Low-fidelity deck — what is this feature, where it sits
|
|
284
301
|
| === GATE: concept locked → artifacts.concept.locked_at ===
|
|
285
302
|
|
|
|
286
|
-
+-- Phase
|
|
303
|
+
+-- Phase 2: [build-wireframe] (if active)
|
|
287
304
|
| Single-HTML mini-wireframe for the feature's screens
|
|
288
305
|
| === GATE: wireframe locked → artifacts.wireframe.locked_at ===
|
|
289
306
|
|
|
|
290
|
-
+-- Phase 4: [build-prototype] + [iterate-prototype] (if active)
|
|
307
|
+
+-- Phase 3-4: [build-prototype] + [iterate-prototype] (if active)
|
|
291
308
|
| Working prototype skin into existing app; iterate to satisfaction
|
|
292
309
|
| Side effects: capture gotchas + conventions to aiwiki/
|
|
293
310
|
| === GATE: prototype locked → artifacts.prototype.locked_at ===
|
|
294
311
|
|
|
|
295
312
|
+-- Phase 5: [harden] (if active)
|
|
296
|
-
| Codify prototype → aiwiki/architecture/, ADRs (
|
|
297
|
-
|
|
|
313
|
+
| Codify prototype → aiwiki/architecture/, ADRs (adversarial objections
|
|
314
|
+
| in each ADR `review:` block), slice graph in manifest.
|
|
315
|
+
| Dream consolidates phase 3-4 captures.
|
|
298
316
|
| === GATE: codify locked + user approves dream proposal ===
|
|
299
317
|
|
|
|
300
318
|
+-- Phase 6: [build-pr-workflow] worktree → per-slice:
|
package/agents/dreamer.md
CHANGED
|
@@ -61,11 +61,14 @@ Apply operations in this order:
|
|
|
61
61
|
3. **Prune stale** — for each entry whose cited code no longer exists OR whose decision is superseded:
|
|
62
62
|
- Mark for deletion in the manifest's `operations` (`op: prune`)
|
|
63
63
|
- Do NOT write a "tombstone" file; absence in proposed/ means delete on accept
|
|
64
|
-
4. **
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
|
|
64
|
+
4. **Refine the active session file (PreCompact and phase-close triggers)** — locate `aiwiki/sessions/{date}-{session_id_short}.md`:
|
|
65
|
+
- **The file is expected to be present.** `hooks/scripts/pre-compact.sh` creates it lazily on first PreCompact fire; `/wrap`, `/dream`, and `harden` also create it lazily if absent. By the time you run, one of those has fired during this session — so the file exists.
|
|
66
|
+
- **If it is truly missing** (no in-session writer fired before you, no `aiwiki/sessions/{today}-*.md` matches), this is a non-fatal anomaly: log it in the dream manifest's `lint_warnings` as `session_file_missing: true` and proceed with raw + typed page consolidation only. Do NOT fabricate a session file — let the next writer (pre-compact, /wrap, harden) create it cleanly.
|
|
67
|
+
- **If it exists**: read it. The `## Checkpoints` section is append-only event log written by pre-compact and dream itself. Your refinement work targets:
|
|
68
|
+
- **Trim `## Checkpoints`**: if more than 10 entries, summarize older ones into a single "## Checkpoint summary {date-range}" entry. Preserve any `Status: unconsumed` entries as-is.
|
|
69
|
+
- **Pre-populate index sections** (`## Files touched`, `## Decisions made`, `## Gotchas surfaced`, `## Open questions`, `## Next steps`) from git diff + aiwiki writes during this session. Mark each line with a `<!-- dream-suggested -->` HTML comment so `/wrap` knows what dream proposed vs what the user wrote.
|
|
70
|
+
- **Do NOT set `status: done`** — that's `/wrap`'s responsibility. Leave `status: active`.
|
|
71
|
+
- Write the refined version to `aiwiki/proposed/{dream_id}/sessions/{date}-{session_id_short}.md`.
|
|
69
72
|
|
|
70
73
|
### Phase 4: Prune & index
|
|
71
74
|
|
|
@@ -94,7 +97,7 @@ Apply operations in this order:
|
|
|
94
97
|
- ANY file in `aiwiki/` (input store untouched)
|
|
95
98
|
- ANY file in `.forge/work/` (operational state, not knowledge)
|
|
96
99
|
- Tombstone files for prunes (manifest's `operations` log records the prune; absence in proposed/ means delete on accept)
|
|
97
|
-
- A fresh `aiwiki/sessions/{
|
|
100
|
+
- A fresh `aiwiki/sessions/{date}-{session_id_short}.md` if it doesn't exist — let the next pre-compact / /wrap / harden writer create it cleanly. If it's truly missing when you run, log `session_file_missing: true` in the dream manifest's `lint_warnings` and skip session-file refinement (no failure, no speculation-write)
|
|
98
101
|
- Any file outside `aiwiki/proposed/{dream_id}/`
|
|
99
102
|
|
|
100
103
|
## Provider Mode (for `anthropic-managed` only)
|
|
@@ -111,7 +114,7 @@ If dispatched with `provider: anthropic-managed`:
|
|
|
111
114
|
|
|
112
115
|
| Mistake | Fix |
|
|
113
116
|
|---|---|
|
|
114
|
-
| Recreating `aiwiki/sessions/{
|
|
117
|
+
| Recreating `aiwiki/sessions/{date}-{session_id_short}.md` instead of refining the existing one | The session file is expected to exist (pre-compact / /wrap / harden creates it lazily). If absent when you run, log `session_file_missing: true` in the manifest and skip session refinement — don't fabricate a session file. The next writer will create it cleanly. |
|
|
115
118
|
| Promoting a raw entry that doesn't satisfy the target schema | Validate against schema first; failures go into `lint_warnings`, not into `aiwiki/proposed/{type}/` |
|
|
116
119
|
| Merging unrelated typed pages because they share a keyword | Merge requires shared root cause / topic, not surface-level term overlap |
|
|
117
120
|
| Pruning an entry without checking if the citation still resolves | Re-check the cited file/symbol before marking prune; LINT staleness != prune trigger |
|
package/agents/gotcha-hunter.md
CHANGED
|
@@ -98,7 +98,7 @@ If a relevant gotcha has status `promotion-pending`, note it explicitly:
|
|
|
98
98
|
[!] PROMOTION-PENDING — {title}
|
|
99
99
|
This gotcha was auto-drafted at the 3rd occurrence and is awaiting
|
|
100
100
|
session-start review. The proposed rule targets {target_rule_file}.
|
|
101
|
-
Resolve at session-start or via /evolve before promoting more lessons.
|
|
101
|
+
Resolve at session-start or via /forge-evolve before promoting more lessons.
|
|
102
102
|
```
|
|
103
103
|
|
|
104
104
|
### Step 5: Summary
|
|
@@ -153,7 +153,7 @@ For every production delta whose answer is non-obvious OR has tradeoffs, draft a
|
|
|
153
153
|
Each draft has:
|
|
154
154
|
- `status: proposed` (will be changed to `accepted` or dropped after review)
|
|
155
155
|
- All required schema sections (Context, Decision, Alternatives if non-obvious, Consequences, Review)
|
|
156
|
-
- The `review` block is left empty — the harden skill's
|
|
156
|
+
- The `review` block is left empty — the harden skill's Step 2 fills it via adversarial review (run inline by Claude, or dispatched to Codex in verify mode if configured) and writes the resulting objections + verdict into the `review:` block before promoting the ADR to `accepted`
|
|
157
157
|
|
|
158
158
|
DO NOT skip an ADR because the answer "feels obvious." If it's a trigger-list decision, it needs the record.
|
|
159
159
|
|
|
@@ -187,7 +187,7 @@ Nothing. You return the structured proposal. The `harden` skill writes the files
|
|
|
187
187
|
| Generating architecture by reasoning about what production should look like | Every claim cites a prototype file; if you can't cite, the claim is premature — drop it or mark it as a delta question for the user |
|
|
188
188
|
| One giant architecture.md across all subsystems | Split by topic; multiple <400 line files beat one 1500-line file |
|
|
189
189
|
| Skipping ADRs for "obvious" trigger-list decisions | Trigger list is strict; if it's on the list, the ADR exists regardless of how obvious you find the answer |
|
|
190
|
-
| Pre-filling the ADR `review` block with imagined objections | Leave it empty; the harden skill's Step 2 runs adversarial review (
|
|
190
|
+
| Pre-filling the ADR `review` block with imagined objections | Leave it empty; the harden skill's Step 2 runs adversarial review (inline or via Codex verify mode) to populate it |
|
|
191
191
|
| Slice graph with vague acceptance criteria like "implementation is complete" | Each criterion is testable: "all routes return JSON with the documented error shape", not "errors are handled" |
|
|
192
192
|
| Promoting Phase 4 raw entries to typed pages | Not your job — dream consolidates raw at phase close |
|
|
193
193
|
| Modifying the prototype to fix issues you noticed | The prototype is locked; if there's a real issue, surface it as a finding, do not edit |
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: discover
|
|
3
3
|
description: "Discovery command — show installed forge capabilities, current project state, in-flight work, and the most useful next action. Run this when you're new to a forge-enabled project, or any time you want a one-screen overview."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# /
|
|
6
|
+
# /discover — Discovery
|
|
7
7
|
|
|
8
8
|
Give the user a single-screen orientation to forge in this project. Five sections, in order. Keep each section terse — drill-downs go to skills (`support-system-guide` for routing) or rules (`.claude/rules/common/forge-system.md` for system structure).
|
|
9
9
|
|
|
@@ -26,7 +26,7 @@ Read the `## Project Profile` block from `CLAUDE.md` and present its yaml compac
|
|
|
26
26
|
|
|
27
27
|
## Section 3 — Active work
|
|
28
28
|
|
|
29
|
-
Glob `.forge/work/*/*/manifest.yaml`. Exclude items whose top-level `status` is `completed
|
|
29
|
+
Glob `.forge/work/*/*/manifest.yaml`. Exclude items whose top-level `status` is `completed` or `escalated`. For each remaining item, infer the current phase from the first phase or gate that is not complete/locked/skipped/not-applicable. Print a compact table:
|
|
30
30
|
|
|
31
31
|
```markdown
|
|
32
32
|
| Type | Name | Phase | Manifest |
|
|
@@ -46,7 +46,7 @@ Pick **one** suggestion based on the state observed in sections 2 and 3. Use thi
|
|
|
46
46
|
| Profile has `{detected ...}` placeholders | `/setup` |
|
|
47
47
|
| One in-flight item | `/resume {type}/{name}` (cite the matching item) |
|
|
48
48
|
| Multiple in-flight items, all recent | `/status` (then user picks) |
|
|
49
|
-
| Stale in-flight items (manifest `mtime` older than 30 days AND no commit on `{branch}` in 30 days — check via `git log -1 --since='30 days ago' {branch}`) | Surface them: "Item X has been idle since {date} —
|
|
49
|
+
| Stale in-flight items (manifest `mtime` older than 30 days AND no commit on `{branch}` in 30 days — check via `git log -1 --since='30 days ago' {branch}`) | Surface them: "Item X has been idle since {date} — `/resume` to continue, or delete `.forge/work/{type}/{name}/` to drop it." |
|
|
50
50
|
| Profile filled, no work items, `pocs/` exists | `/greenfield` (resume the prototype-driven flow) |
|
|
51
51
|
| Profile filled, no work items, no `pocs/` | `/feature <name>` or `/greenfield <name>` — ask the user which |
|
|
52
52
|
|
|
@@ -67,26 +67,30 @@ Workflow commands
|
|
|
67
67
|
State commands
|
|
68
68
|
/status list in-flight work
|
|
69
69
|
/resume <name> continue an in-flight item
|
|
70
|
-
|
|
70
|
+
|
|
71
|
+
Knowledge commands
|
|
72
|
+
/note <text> append a research note / brainstorm to aiwiki/raw/{date}.md
|
|
73
|
+
/dream [scope] consolidate aiwiki — merge duplicates, promote raw → typed, prune stale
|
|
74
|
+
/wrap [focus] capture & finalize current session into aiwiki/sessions/{date}-{id}.md
|
|
71
75
|
|
|
72
76
|
System commands
|
|
73
77
|
/setup detect stack, fill project profile, scaffold .forge/ + aiwiki/
|
|
74
78
|
/validate check skill/rule consistency
|
|
75
|
-
/evolve
|
|
76
|
-
/
|
|
79
|
+
/forge-evolve improve the forge harness itself
|
|
80
|
+
/parallel <list> parallel agents for a punch list of ad-hoc tasks
|
|
77
81
|
```
|
|
78
82
|
|
|
79
83
|
End with one drill-down line: **For routing a specific intent or unsure which command to use, invoke the `support-system-guide` skill. For system structure (skills, agents, .forge/ layout), see `.claude/rules/common/forge-system.md`.**
|
|
80
84
|
|
|
81
85
|
## When to use
|
|
82
86
|
|
|
83
|
-
- User invokes `/
|
|
87
|
+
- User invokes `/discover` explicitly
|
|
84
88
|
- User asks "what's in this project?", "show me forge", or "what can forge do here?"
|
|
85
89
|
- Periodic check-in — useful at the start of a session to see if anything is in flight before starting new work
|
|
86
90
|
|
|
87
91
|
## Do NOT
|
|
88
92
|
|
|
89
|
-
- Do NOT invoke this on every session start — `support-system-guide` is the auto-triggering orientation skill. `/
|
|
93
|
+
- Do NOT invoke this on every session start — `support-system-guide` is the auto-triggering orientation skill. `/discover` is the explicit on-demand version.
|
|
90
94
|
- Do NOT duplicate the long skill/group descriptions inline — drill-downs to `support-system-guide` keep this command compact.
|
|
91
95
|
- Do NOT modify anything. This is a read-only discovery command.
|
|
92
96
|
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dream
|
|
3
|
+
description: "Manually trigger aiwiki consolidation. Merges duplicate notes, promotes raw → typed pages, prunes stale entries. Output is written to aiwiki/proposed/{dream_id}/ for review — input store is never modified. Use after a major refactor, a long session, or whenever aiwiki/ feels noisy. Optional argument: scope (default = full aiwiki/; alternatives = aiwiki/raw/, aiwiki/gotchas/, etc.)."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /dream — Consolidate aiwiki
|
|
7
|
+
|
|
8
|
+
Manual trigger for `support-dream`. Produces a reviewable consolidation proposal in `aiwiki/proposed/{dream_id}/`; you accept or reject via the web view (`forge wiki ui`) or CLI (`forge wiki review {dream_id}`).
|
|
9
|
+
|
|
10
|
+
This is the user-driven trigger. Dream also fires automatically:
|
|
11
|
+
- **PreCompact** — `hooks/scripts/pre-compact.sh` appends a `**Dream directive (unconsumed)**` block to the active session file's `## Checkpoints` section (`aiwiki/sessions/{date}-{session_id_short}.md`, created lazily). The post-compact agent reads the session file, finds the directive, and invokes `support-dream`.
|
|
12
|
+
- **Phase-close** — `iterate-prototype`, `harden`, `build-pr-workflow`, and `deliver-deploy` dispatch `support-dream` after writing their respective `artifacts.{phase}.locked_at` lock signal.
|
|
13
|
+
|
|
14
|
+
The manual `/dream` invocation is the escape hatch for between-trigger consolidation.
|
|
15
|
+
|
|
16
|
+
## Steps
|
|
17
|
+
|
|
18
|
+
1. **Parse scope** from the user's argument:
|
|
19
|
+
- No argument → scope is the full `aiwiki/` tree.
|
|
20
|
+
- One token (`raw`, `gotchas`, `decisions`, `conventions`, `architecture`, `sessions`) → scope is `aiwiki/{token}/`.
|
|
21
|
+
- Multiple tokens or explicit path → scope is the union of those paths.
|
|
22
|
+
2. **Verify aiwiki exists.** If `aiwiki/` is missing, dispatch `support-wiki-bootstrap` first.
|
|
23
|
+
3. **Check for pending dreams.** If `aiwiki/proposed/{dream_id}/` directories already exist with `review_status: pending` in their manifest, surface them to the user and ask whether to queue a new dream or review the pending ones first. Do not silently overwrite.
|
|
24
|
+
4. **Invoke `support-dream` skill** with the parsed scope and `trigger: manual`. The skill dispatches the `dreamer` subagent and writes the proposed output.
|
|
25
|
+
5. **Report to the user**: new `dream_id`, list of `changed_pages` / `new_pages` / `deleted_pages` counts, lint status, and the path to review:
|
|
26
|
+
```
|
|
27
|
+
Dream complete: 2026-05-18-1742-manual
|
|
28
|
+
Proposals: aiwiki/proposed/2026-05-18-1742-manual/
|
|
29
|
+
Changed: 3 New: 1 Deleted: 0 Lint: passed
|
|
30
|
+
Review: `forge wiki review 2026-05-18-1742-manual` or open `forge wiki ui`
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Example
|
|
34
|
+
|
|
35
|
+
User: `/dream`
|
|
36
|
+
→ Full aiwiki consolidation, dispatched as `trigger: manual`.
|
|
37
|
+
|
|
38
|
+
User: `/dream raw gotchas`
|
|
39
|
+
→ Scope limited to `aiwiki/raw/` + `aiwiki/gotchas/`.
|
|
40
|
+
|
|
41
|
+
User: `/dream after the auth refactor`
|
|
42
|
+
→ Free-form description folded into `trigger_detail`; scope defaults to full aiwiki.
|
|
43
|
+
|
|
44
|
+
## When to use
|
|
45
|
+
|
|
46
|
+
- After a **major refactor** or **branch merge** brought in lots of new wiki entries.
|
|
47
|
+
- When `aiwiki/raw/` has accumulated unclassified notes from `/note` invocations.
|
|
48
|
+
- When you suspect **duplicate gotchas** across recent debugging sessions.
|
|
49
|
+
- Before **handoff** to a new contributor — get the wiki into curated shape first.
|
|
50
|
+
- When `forge wiki status` shows no pending dreams but the aiwiki feels noisy.
|
|
51
|
+
|
|
52
|
+
## When NOT to use
|
|
53
|
+
|
|
54
|
+
- A dream is already pending review (`forge wiki status` lists it). Review the existing one first; queueing a new dream against the same source state produces overlapping proposals.
|
|
55
|
+
- `aiwiki/` has no recent activity — there's nothing to consolidate; the cycle would no-op.
|
|
56
|
+
- You want to **edit a single page**. Edit it directly. Dream is for *merging / promoting / pruning across pages*, not per-page revision.
|
|
57
|
+
|
|
58
|
+
## I/O Contract
|
|
59
|
+
|
|
60
|
+
| Field | Value |
|
|
61
|
+
|---|---|
|
|
62
|
+
| **Requires** | `aiwiki/` (scaffolded by `/setup`), `aiwiki/schemas/` |
|
|
63
|
+
| **Produces** | `aiwiki/proposed/{dream_id}/` (mirror structure) + `.dream-manifest.json` |
|
|
64
|
+
| **Dispatches** | `support-dream` skill → `dreamer` subagent |
|
|
65
|
+
| **Review surface** | `forge wiki ui` (web view at 127.0.0.1:8765) or `forge wiki review/accept/reject` CLI |
|
|
66
|
+
|
|
67
|
+
## Do NOT
|
|
68
|
+
|
|
69
|
+
- Do NOT modify `aiwiki/` directly inside this flow — that is `support-dream`'s invariant.
|
|
70
|
+
- Do NOT queue a new dream while one is pending review against the same source state.
|
|
71
|
+
- Do NOT skip the lint pass — `support-dream` runs lint on the proposed output before marking the dream complete.
|
package/commands/feature.md
CHANGED
|
@@ -58,8 +58,48 @@ If production mode is detected (or the user chose "no continue"), proceed to Ste
|
|
|
58
58
|
|
|
59
59
|
REQUIRED SUB-SKILL: Use **support-wiki-bootstrap** to ensure aiwiki/ exists.
|
|
60
60
|
|
|
61
|
+
## Step 0c: Trivial-Scope Fast Path
|
|
62
|
+
|
|
63
|
+
Before stepping through phase planning, detect whether the work is bugfix-sized. If so, offer a single-confirmation fast path that collapses Steps 1–6 (planning, discover, concept, wireframe, design-system, prototype, codify) and jumps straight to worktree → production-build → tests → review → PR.
|
|
64
|
+
|
|
65
|
+
**Detection signals (any one is sufficient):**
|
|
66
|
+
- `--size trivial` flag passed
|
|
67
|
+
- Description matches obvious trivial patterns: "fix typo", "change copy", "tweak <colour|spacing|padding|margin>", "rename X to Y", "bump version", "update dep", "add log line"
|
|
68
|
+
- User has explicitly scoped to a single file path in the description
|
|
69
|
+
|
|
70
|
+
**If a trivial signal fires, offer:**
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
This looks like trivial-scope work (signal: <list matched signals>).
|
|
74
|
+
|
|
75
|
+
Fast path: skip Steps 1–6 (phase planning + discover + concept + wireframe + design-system + prototype + codify) and jump to:
|
|
76
|
+
|
|
77
|
+
Step 7 Worktree
|
|
78
|
+
Step 8 Production-build (build-tdd with --size trivial → focused regression test)
|
|
79
|
+
Step 9 Test plan + execution (trivial: unit tests for changed code, no E2E/load)
|
|
80
|
+
Step 10 Final code review
|
|
81
|
+
Step 11 Create PR
|
|
82
|
+
Step 13 Gotcha capture (if anything surprising emerged)
|
|
83
|
+
|
|
84
|
+
Manifest will be created with phase_plan:
|
|
85
|
+
concept, wireframe, plan-design-system, prototype, iterate, codify,
|
|
86
|
+
discover-codebase, uiux-review, onboarding: skipped
|
|
87
|
+
production-build, test-plan, code-review-final, deliver, gotchas: active
|
|
88
|
+
|
|
89
|
+
Confirm fast path? [Y]es / [n]o use standard /feature flow / [a]bort
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
User responses:
|
|
93
|
+
- **Y / yes**: create the manifest with the trivial `phase_plan` above, then jump directly to Step 7 (skip Steps 1–6).
|
|
94
|
+
- **n / no**: proceed to Step 1 with the standard flow. User must accept the planning ceremony explicitly.
|
|
95
|
+
- **a / abort**: stop without action.
|
|
96
|
+
|
|
97
|
+
If no trivial signal fires (or the user chose "no continue"), proceed to Step 1.
|
|
98
|
+
|
|
61
99
|
## Step 1: Manifest + Phase Planning
|
|
62
100
|
|
|
101
|
+
**Skip if Step 0c's fast path was taken** — the manifest was already created with the trivial phase_plan and the flow has jumped to Step 7.
|
|
102
|
+
|
|
63
103
|
Check if `.forge/work/feature/{name}/manifest.yaml` exists.
|
|
64
104
|
|
|
65
105
|
**If it exists**: Resume from the last incomplete phase. Skip phases marked `locked` or `skipped`. If `status: escalated` or `status: completed`, do NOT resume — surface `successor_path` and ask the user.
|
|
@@ -82,17 +122,19 @@ For trivial features, multiple phases collapse — sometimes the entire workflow
|
|
|
82
122
|
|
|
83
123
|
User can override any phase decision (e.g. "actually let's do a wireframe — I want to see the layout").
|
|
84
124
|
|
|
85
|
-
## Step 2: Discover — Codebase Analysis
|
|
125
|
+
## Step 2: Discover — Codebase Analysis — if active
|
|
126
|
+
|
|
127
|
+
**Skip if** `phase_plan.discover-codebase: skipped` (the Step 0c fast path or explicit user override). For trivial-scope work that touches a single file the user has already named, codebase analysis is overhead; the trivial fast path skips it deliberately.
|
|
86
128
|
|
|
87
|
-
REQUIRED SUB-SKILL: Use **discover-codebase-analysis**.
|
|
129
|
+
**Otherwise:** REQUIRED SUB-SKILL: Use **discover-codebase-analysis**.
|
|
88
130
|
|
|
89
|
-
For features on existing codebases, this is non-optional — production code grows from the prototype, and the prototype skins into the existing app. Without codebase analysis, the prototype-builder will reinvent patterns that already exist.
|
|
131
|
+
For non-trivial features on existing codebases, this is non-optional — production code grows from the prototype, and the prototype skins into the existing app. Without codebase analysis, the prototype-builder will reinvent patterns that already exist.
|
|
90
132
|
|
|
91
133
|
### GATE: Codebase Analysis Approved
|
|
92
134
|
|
|
93
135
|
User reviews. Update manifest: `discover.codebase-analysis.{status: complete, gate-passed: true}`.
|
|
94
136
|
|
|
95
|
-
## Step 3: Concept (Phase
|
|
137
|
+
## Step 3: Concept (Phase 1) — if active
|
|
96
138
|
|
|
97
139
|
REQUIRED SUB-SKILL: Use **concept-slides**.
|
|
98
140
|
|
|
@@ -102,7 +144,7 @@ For features, often a 1-3 slide mini-deck — what the feature is, where it sits
|
|
|
102
144
|
|
|
103
145
|
Update manifest: `artifacts.concept.{deck_path, locked_at}`. Presence of `locked_at` is the lock signal that downstream phases check.
|
|
104
146
|
|
|
105
|
-
## Step 4: Wireframe (Phase
|
|
147
|
+
## Step 4: Wireframe (Phase 2) — if active
|
|
106
148
|
|
|
107
149
|
REQUIRED SUB-SKILL: Use **build-wireframe**.
|
|
108
150
|
|
|
@@ -124,7 +166,7 @@ Backend-only features (API endpoints, schema changes, internal refactors) skip t
|
|
|
124
166
|
|
|
125
167
|
Update manifest: `artifacts.design-system.{path, approved_at}`.
|
|
126
168
|
|
|
127
|
-
## Step 5: Prototype (Phase
|
|
169
|
+
## Step 5: Prototype (Phase 3) — if active
|
|
128
170
|
|
|
129
171
|
REQUIRED SUB-SKILL: Use **build-prototype**, then **iterate-prototype** for polish.
|
|
130
172
|
|
|
@@ -144,7 +186,7 @@ REQUIRED SUB-SKILL: Use **harden**.
|
|
|
144
186
|
|
|
145
187
|
For features, often produces an architecture-delta (extending existing `aiwiki/architecture/{topic}.md` rather than creating new), 0-3 ADRs, and a focused slice graph (the production tasks specific to this feature).
|
|
146
188
|
|
|
147
|
-
For features touching `--size major` complexity (auth, payments, PII, schema changes): adversarial review is mandatory on every ADR.
|
|
189
|
+
For features touching `--size major` complexity (auth, payments, PII, schema changes): adversarial review is mandatory on every ADR. Surface adversarial objections inline in the ADR `review:` block during harden Step 2 and have the user sign off explicitly before the ADR is marked `accepted`. If Codex is configured (`protocols/codex.md`), the review pass may be dispatched to Codex in verify mode.
|
|
148
190
|
|
|
149
191
|
### GATE: Codified Plan Approved
|
|
150
192
|
|
|
@@ -164,7 +206,12 @@ Execute the slice graph from Phase 5. Per slice:
|
|
|
164
206
|
2. REQUIRED SUB-SKILL: Use **quality-code-review**
|
|
165
207
|
3. Fix any Critical or Important findings
|
|
166
208
|
4. Per-slice user-confirm
|
|
167
|
-
5. Per-slice dream
|
|
209
|
+
5. **Per-slice dream (auto-fire on slice close).** After the slice's gates pass (`gate-passed: true` on the slice's `code-review` + `runtime-reach`), invoke the **support-dream** skill with:
|
|
210
|
+
- **scope:** `aiwiki/gotchas/`, `aiwiki/conventions/` (any subfolders the slice's builder + reviewer subagents wrote to; check git diff on `aiwiki/` since the slice started for a precise list)
|
|
211
|
+
- **trigger:** `phase-close`
|
|
212
|
+
- **trigger_detail:** `"Phase 6 per-slice — {slice_id}"`
|
|
213
|
+
Dream output goes to `aiwiki/proposed/{dream_id}/`. Surface the id + review path to the user. The next slice can start while the proposal is pending review (per-slice dreams do NOT block forward motion — only phase-close gates do).
|
|
214
|
+
**Skip when:** the slice's build wrote nothing to `aiwiki/` (pure code change with no new gotcha or convention). No-op dreams add noise.
|
|
168
215
|
|
|
169
216
|
For `--size major` features: also escalate to `quality-security-audit` on slices that touch auth/payments/PII.
|
|
170
217
|
|
|
@@ -172,7 +219,7 @@ Optional: `/autopilot production` for Ralph-loop hands-off slice execution *(pla
|
|
|
172
219
|
|
|
173
220
|
### GATE: All Slices Complete
|
|
174
221
|
|
|
175
|
-
All slices `gate-passed: true`. Update manifest: `artifacts.production-build.locked_at` (the slice terminal state + the production code ARE the production-build artifacts).
|
|
222
|
+
All slices `gate-passed: true`. Update manifest: `artifacts.production-build.locked_at` (the slice terminal state + the production code ARE the production-build artifacts). Any pending per-slice dream proposals from Step 8.5 must be reviewed before Phase 7 (deliver) starts — Phase 7's retrospective dream depends on a consolidated wiki state.
|
|
176
223
|
|
|
177
224
|
## Step 9: Test Plan + Execution
|
|
178
225
|
|
|
@@ -219,7 +266,7 @@ REQUIRED SUB-SKILL: Use **deliver-onboarding**.
|
|
|
219
266
|
## Step 13: Support — Record Lessons
|
|
220
267
|
|
|
221
268
|
REQUIRED SUB-SKILL: Use **support-gotcha**.
|
|
222
|
-
Final dream cycle consolidates all
|
|
269
|
+
Final dream cycle consolidates all wiki captures from the previous phases.
|
|
223
270
|
|
|
224
271
|
Update manifest: `status: completed`.
|
|
225
272
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: evolve
|
|
3
|
-
description: "Review lessons learned and improve the skill system. Run after completing a feature or project."
|
|
2
|
+
name: forge-evolve
|
|
3
|
+
description: "Review lessons learned from accumulated gotchas and improve the forge skill system itself. Run after completing a feature or project. Operates on the forge harness — not on user project code."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# /evolve — Self-Improvement Review
|
|
6
|
+
# /forge-evolve — Self-Improvement Review
|
|
7
7
|
|
|
8
8
|
You are reviewing lessons learned and improving the forge skill system itself. This is how the system gets smarter over time. Run this after completing a feature, project, or periodically to process accumulated gotchas.
|
|
9
9
|
|
package/commands/greenfield.md
CHANGED
|
@@ -55,7 +55,7 @@ If the user provided detailed requirements upfront, this step extracts and struc
|
|
|
55
55
|
|
|
56
56
|
REQUIRED SUB-SKILL: Use **discover-requirements** (only if user has substantive existing requirements docs).
|
|
57
57
|
|
|
58
|
-
## Step 3: Concept (Phase
|
|
58
|
+
## Step 3: Concept (Phase 1)
|
|
59
59
|
|
|
60
60
|
REQUIRED SUB-SKILL: Use **concept-slides**.
|
|
61
61
|
|
|
@@ -65,7 +65,7 @@ Produces a low-fidelity marp deck at `decks/{project-name}/slides.md` with hook,
|
|
|
65
65
|
|
|
66
66
|
User reviews the rendered deck (HTML), gives feedback, locks when satisfied. Update manifest: `artifacts.concept.{deck_path, locked_at}`.
|
|
67
67
|
|
|
68
|
-
## Step 4: Wireframe (Phase
|
|
68
|
+
## Step 4: Wireframe (Phase 2)
|
|
69
69
|
|
|
70
70
|
REQUIRED SUB-SKILL: Use **build-wireframe**.
|
|
71
71
|
|
|
@@ -85,7 +85,7 @@ Backend-only / CLI projects without a frontend skip this step entirely (no desig
|
|
|
85
85
|
|
|
86
86
|
User approves the design tokens written to `DESIGN.md`. Update manifest: `artifacts.design-system.{path, approved_at}`.
|
|
87
87
|
|
|
88
|
-
## Step 5: Prototype (Phase
|
|
88
|
+
## Step 5: Prototype (Phase 3)
|
|
89
89
|
|
|
90
90
|
REQUIRED SUB-SKILL: Use **build-prototype** for initial scaffold, then **iterate-prototype** for the polish loop.
|
|
91
91
|
|
|
@@ -105,7 +105,7 @@ REQUIRED SUB-SKILL: Use **harden**.
|
|
|
105
105
|
|
|
106
106
|
Codifies the locked prototype into production-ready plans:
|
|
107
107
|
- `aiwiki/architecture/{topic}.md` — one or more focused architecture files
|
|
108
|
-
- `aiwiki/decisions/{nnnn}-{slug}.md` — ADRs (adversarial review
|
|
108
|
+
- `aiwiki/decisions/{nnnn}-{slug}.md` — ADRs (adversarial review runs inline at harden Step 2, surfacing objections in each ADR's `review:` block; optionally dispatched to Codex in verify mode when configured)
|
|
109
109
|
- `aiwiki/conventions/` — production-surface conventions
|
|
110
110
|
- `aiwiki/gotchas/` — Phase 4 gotchas with production addenda
|
|
111
111
|
- Slice graph + `tasks.md` in manifest
|
|
@@ -144,7 +144,7 @@ ALL tests pass. Coverage meets thresholds (minimum 80%, 100% for critical paths)
|
|
|
144
144
|
|
|
145
145
|
## Step 8.5: UI/UX Review (if applicable)
|
|
146
146
|
|
|
147
|
-
If the project has a frontend (per
|
|
147
|
+
If the project has a frontend (per Step 1 phase planning):
|
|
148
148
|
|
|
149
149
|
REQUIRED SUB-SKILL: Use **quality-uiux**.
|
|
150
150
|
Validates production implementation matches the locked wireframe + design tokens.
|