forge-orkes 0.3.9 → 0.3.11

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.
@@ -5,11 +5,11 @@ description: "Run once per project to detect brownfield/greenfield, scan tech st
5
5
 
6
6
  # Initializing: Project Setup
7
7
 
8
- This interactive workflow runs once when Forge doesn't find an existing project (no `.forge/project.yml`). First, detect whether this is a **brownfield** (existing codebase) or **greenfield** (new project) — then run the appropriate init path.
8
+ Runs once when no `.forge/project.yml` exists. Detect **brownfield** vs **greenfield**, then run the matching init path.
9
9
 
10
10
  ## Detect Project Type
11
11
 
12
- Check for signals of an existing codebase:
12
+ Check for existing codebase signals:
13
13
 
14
14
  ```
15
15
  Check: package.json OR requirements.txt OR go.mod OR Cargo.toml (dependency manifest)
@@ -18,22 +18,22 @@ Check: src/ OR app/ OR lib/ (source directories)
18
18
  Check: existing config files (tsconfig.json, .eslintrc, vite.config, etc.)
19
19
  ```
20
20
 
21
- - **2+ signals found** → **Brownfield path** (existing codebase)
22
- - **0-1 signals** → **Greenfield path** (new project)
21
+ - **2+ signals** → **Brownfield path**
22
+ - **0-1 signals** → **Greenfield path**
23
23
 
24
- Ask user to confirm: *"This looks like an [existing project / new project]. Is that right?"*
24
+ Confirm with user: *"This looks like an [existing project / new project]. Is that right?"*
25
25
 
26
26
  ---
27
27
 
28
28
  ## Brownfield Path: Discover Existing Project
29
29
 
30
- For existing codebases, **scan first, confirm with user second.** Don't ask the user to describe what you can discover.
30
+ Scan first, confirm with user second. Don't ask what you can discover.
31
31
 
32
32
  ### Discovery Step 0: Framework Detection
33
33
 
34
- Before scanning the tech stack, check for two things: (1) existing meta-prompting frameworks with project knowledge to absorb, and (2) companion tools that should be preserved alongside Forge.
34
+ Check for: (1) meta-prompting frameworks with project knowledge to absorb, (2) companion tools to preserve.
35
35
 
36
- **Meta-Framework Signatures** (contain project knowledge — candidates for absorption):
36
+ **Meta-Framework Signatures:**
37
37
 
38
38
  ```
39
39
  # GSD (Get Shit Done)
@@ -59,7 +59,7 @@ Check: CLAUDE.md with framework-like routing tables
59
59
  Check: Any structured agent/workflow system
60
60
  ```
61
61
 
62
- **Companion Tool Signatures** (not frameworks — independent tools that work alongside Forge):
62
+ **Companion Tool Signatures:**
63
63
 
64
64
  ```
65
65
  # Beads (persistent cross-session memory)
@@ -70,57 +70,58 @@ Check: bd CLI available (Bash: which bd)
70
70
  → Beads is independent — it runs alongside Forge, not inside it.
71
71
  ```
72
72
 
73
- **If a meta-framework is detected**, present the finding and offer three options:
73
+ **If a meta-framework is detected**, offer three options:
74
74
 
75
- *"I found an existing [{framework name}] setup in this project. It contains project documentation and decisions that are valuable. How would you like to handle it?"*
75
+ *"I found [{framework name}] in this project with valuable project documentation. How would you like to handle it?"*
76
76
 
77
77
  **Option A: Absorb & Convert** (recommended)
78
- Read all existing framework documentation, extract the project knowledge, and convert it into Forge's format. This means:
79
- - Project descriptions → `.forge/project.yml`
80
- - Requirements → `.forge/requirements.yml`
81
- - Roadmaps/plans → `.forge/roadmap.yml`
82
- - Context/decisions → `.forge/context.md`
83
- - Current state/progress → `.forge/state/index.yml` + `.forge/state/milestone-{id}.yml`
84
- - Constitutional rules (if any) → `.forge/constitution.md`
85
- - Design system rules (if any) → `.forge/design-system.md`
78
+ Read existing framework docs, extract project knowledge, convert to Forge format:
86
79
 
87
- Go to **Framework Absorption** below.
80
+ | Source | Target |
81
+ |--------|--------|
82
+ | Project descriptions | `.forge/project.yml` |
83
+ | Requirements | `.forge/requirements.yml` |
84
+ | Roadmaps/plans | `.forge/roadmap.yml` |
85
+ | Context/decisions | `.forge/context.md` |
86
+ | State/progress | `.forge/state/index.yml` + `.forge/state/milestone-{id}.yml` |
87
+ | Constitutional rules | `.forge/constitution.md` |
88
+ | Design system rules | `.forge/design-system.md` |
89
+
90
+ Go to **Framework Absorption** below.
88
91
 
89
92
  **Option B: Archive & Start Fresh**
90
- Move existing framework files into `.forge/archive/{framework-name}/` for reference, then run the standard brownfield discovery (which will still scan the codebase itself). The archive is preserved and can be consulted later.
93
+ Move framework files to `.forge/archive/{framework-name}/` for reference, then run standard brownfield discovery.
91
94
 
92
95
  **Option C: Keep Both (Transition Period)**
93
- Initialize Forge alongside the existing framework. Forge reads from `.forge/` while old framework files remain in place. Useful when you want to try Forge without committing. Remove the old framework later when confident.
96
+ Initialize Forge alongside the existing framework. Remove the old framework later when confident.
94
97
 
95
98
  ---
96
99
 
97
100
  ### Framework Absorption (Option A)
98
101
 
99
- When absorbing an existing framework, read its documentation and convert systematically.
100
-
101
102
  **GSD Absorption Map:**
102
103
 
103
- | GSD Source | Read | Extract | Write to Forge |
104
- |-----------|------|---------|---------------|
105
- | `PROJECT.md` | Project name, description, tech stack, goals | Structured project info | `.forge/project.yml` |
106
- | `REQUIREMENTS.md` | Feature requirements, acceptance criteria | Convert prose to YAML with IDs | `.forge/requirements.yml` |
107
- | `ROADMAP.md` | Phases, milestones, dependencies | Convert to YAML with dependency refs | `.forge/roadmap.yml` |
108
- | `STATE.md` | Current phase, progress, blockers | Machine-readable state | `.forge/state/index.yml` + `.forge/state/milestone-{id}.yml` |
109
- | `CONTEXT.md` | NON-NEGOTIABLE decisions, DEFERRED ideas | Locked decisions, deferred items | `.forge/context.md` |
110
- | `references/ui-brand.md` | Design system rules, brand guidelines | Component mappings, style rules | `.forge/design-system.md` |
111
- | `references/verification-patterns.md` | Verification approach | Inform `verifying` skill config | Constitution articles |
112
- | `references/tdd.md` | Testing approach | Inform constitution Article II | Constitution articles |
113
- | Agent customizations | Custom agent behaviors, tool restrictions | Map to Forge agent definitions | `.claude/agents/*.md` (if custom) |
104
+ | GSD Source | Extract | Write to Forge |
105
+ |-----------|---------|---------------|
106
+ | `PROJECT.md` | Project name, description, tech stack, goals | `.forge/project.yml` |
107
+ | `REQUIREMENTS.md` | Feature requirements, acceptance criteria YAML with IDs | `.forge/requirements.yml` |
108
+ | `ROADMAP.md` | Phases, milestones, dependencies YAML with refs | `.forge/roadmap.yml` |
109
+ | `STATE.md` | Current phase, progress, blockers | `.forge/state/index.yml` + `.forge/state/milestone-{id}.yml` |
110
+ | `CONTEXT.md` | NON-NEGOTIABLE decisions, DEFERRED ideas | `.forge/context.md` |
111
+ | `references/ui-brand.md` | Design system rules, brand guidelines | `.forge/design-system.md` |
112
+ | `references/verification-patterns.md` | Verification approach | Constitution articles |
113
+ | `references/tdd.md` | Testing approach | Constitution articles |
114
+ | Agent customizations | Custom behaviors, tool restrictions | `.claude/agents/*.md` (if custom) |
114
115
 
115
116
  **Spec-Kit Absorption Map:**
116
117
 
117
- | Spec-Kit Source | Read | Extract | Write to Forge |
118
- |----------------|------|---------|---------------|
119
- | `spec-driven.md` | Core methodology | Governance patterns | `.forge/constitution.md` |
120
- | `templates/spec-template.md` | Spec structure | Requirements format | `.forge/requirements.yml` |
121
- | `templates/constitution-template.md` | Constitutional articles | Immutable gates | `.forge/constitution.md` |
122
- | `extensions/` | Extension configs | Specialized skills | `.claude/skills/` (if relevant) |
123
- | Project specs (if filled in) | Project-specific decisions | Locked decisions | `.forge/context.md` |
118
+ | Spec-Kit Source | Extract | Write to Forge |
119
+ |----------------|---------|---------------|
120
+ | `spec-driven.md` | Governance patterns | `.forge/constitution.md` |
121
+ | `templates/spec-template.md` | Requirements format | `.forge/requirements.yml` |
122
+ | `templates/constitution-template.md` | Immutable gates | `.forge/constitution.md` |
123
+ | `extensions/` | Specialized skills | `.claude/skills/` (if relevant) |
124
+ | Project specs (if filled in) | Locked decisions | `.forge/context.md` |
124
125
 
125
126
  **Generic Framework Absorption:**
126
127
 
@@ -136,17 +137,17 @@ For unknown frameworks, use the `researching` skill to:
136
137
  2. For each Forge target file, synthesize content from the relevant sources
137
138
  3. Convert prose to YAML where Forge expects YAML (project, requirements, roadmap, state)
138
139
  4. Preserve markdown where Forge expects markdown (constitution, context, design-system)
139
- 5. **Never discard information** — if something doesn't map to a Forge file, note it in `.forge/context.md` under a "Carried Forward" section
140
- 6. Move original framework files to `.forge/archive/{framework-name}/`
141
- 7. Present a diff-style summary: *"Here's what I converted: [list]. And here's what I archived for reference: [list]. Anything I should handle differently?"*
140
+ 5. If something doesn't map to a Forge file, note it in `.forge/context.md` under "Carried Forward"
141
+ 6. Move originals to `.forge/archive/{framework-name}/`
142
+ 7. Present a diff-style summary: *"Here's what I converted: [list]. Archived for reference: [list]. Anything to handle differently?"*
142
143
 
143
- After absorption, **always** continue with the standard brownfield steps below (tech stack scan, design system detection, etc.). This is critical — see the verification step next.
144
+ After absorption, **always** continue with the standard brownfield steps below — see the verification step next.
144
145
 
145
146
  ### Documentation vs. Codebase Verification
146
147
 
147
- **Never trust framework documentation at face value.** Documentation drifts. The codebase is the source of truth.
148
+ **Never trust framework documentation at face value.** The codebase is the source of truth.
148
149
 
149
- After reading existing framework docs, **cross-reference every claim against the actual code**:
150
+ After reading framework docs, cross-reference every claim against actual code:
150
151
 
151
152
  ```
152
153
  For each claim in the documentation:
@@ -155,38 +156,24 @@ For each claim in the documentation:
155
156
  3. Flag any discrepancies
156
157
  ```
157
158
 
158
- **Common drift patterns to check:**
159
+ **Common drift patterns:**
159
160
 
160
161
  | Documentation Says | Verify Against |
161
162
  |-------------------|----------------|
162
- | "Tech stack: React + PostgreSQL" | `package.json` dependencies, actual imports in `src/` |
163
- | "Uses PrimeReact for all UI" | `Grep: src/ for "from 'primereact"` — are there also raw HTML tables, custom modals? |
164
- | "Tests written for all features" | `Glob: src/**/*.test.*` — actual coverage vs. claimed coverage |
165
- | "Auth uses Clerk/Auth0/etc." | `Grep: src/ for auth imports` — is there also custom auth code? |
166
- | "State management via Redux" | `package.json` + actual imports — did they switch to Zustand mid-project? |
163
+ | "Tech stack: React + PostgreSQL" | `package.json` deps, actual imports in `src/` |
164
+ | "Uses PrimeReact for all UI" | `Grep: src/ for "from 'primereact"` — any raw HTML tables, custom modals? |
165
+ | "Tests written for all features" | `Glob: src/**/*.test.*` — actual vs. claimed coverage |
166
+ | "Auth uses Clerk/Auth0/etc." | `Grep: src/ for auth imports` — custom auth code too? |
167
+ | "State management via Redux" | `package.json` + imports — switched to Zustand mid-project? |
167
168
  | "API uses REST" | `Grep: src/ for GraphQL, tRPC, WebSocket` — mixed protocols? |
168
- | Requirements list features A, B, C | Do routes/components for A, B, C actually exist? Are any partially implemented? |
169
- | Roadmap says "Phase 2 complete" | Are Phase 2 features actually wired and working, or are there stubs? |
170
-
171
- **When discrepancies are found:**
172
-
173
- Present them to the user clearly:
169
+ | Requirements list features A, B, C | Do routes/components for A, B, C exist? Partially implemented? |
170
+ | Roadmap says "Phase 2 complete" | Are Phase 2 features wired and working, or stubs? |
174
171
 
175
- *"I found some differences between the GSD documentation and the actual codebase:*
172
+ **When discrepancies are found**, present them clearly and ask whether Forge config should match the code or whether features were removed/deferred.
176
173
 
177
- - *PROJECT.md says 'PostgreSQL' but I only see SQLite in dependencies*
178
- - *REQUIREMENTS.md lists a 'notifications' feature but I can't find any notification code*
179
- - *STATE.md says Phase 2 is complete, but the dashboard component looks like a stub (returns placeholder text)*
180
- - *The docs mention PrimeReact exclusively, but I found 3 files using raw HTML tables instead of DataTable*
174
+ **Truth priority:** (1) What the code does, (2) What the user confirms, (3) What the docs say.
181
175
 
182
- *Should I update the Forge config to match what's actually in the code, or are some of these features that were removed/deferred?"*
183
-
184
- **Priority order for truth:**
185
- 1. **What the code actually does** — highest authority
186
- 2. **What the user confirms** — resolves ambiguity
187
- 3. **What the documentation says** — useful context, but may be stale
188
-
189
- Write the verified state to Forge files. For any unresolved discrepancies, add them to `.forge/context.md` under a "Needs Resolution" section so they get addressed during planning.
176
+ Write verified state to Forge files. Unresolved discrepancies go in `.forge/context.md` under "Needs Resolution".
190
177
 
191
178
  ---
192
179
 
@@ -206,11 +193,7 @@ Bash: find src/ -type f | head -50 # understand file organization
206
193
  Bash: wc -l src/**/*.{ts,tsx,js,jsx} 2>/dev/null | tail -1 # codebase size
207
194
  ```
208
195
 
209
- From this, auto-detect:
210
- - Language and framework
211
- - Build tools and test framework
212
- - Database (from dependencies or config)
213
- - Project name and description (from package.json or README)
196
+ Auto-detect: language, framework, build tools, test framework, database, project name/description.
214
197
 
215
198
  ### Discovery Step 1.5: Verification Command Detection
216
199
 
@@ -220,35 +203,28 @@ Auto-detect verification commands from the project's package manifest and config
220
203
  # Node.js projects — scan package.json scripts
221
204
  Read: package.json → scripts
222
205
 
223
- # Look for these common script names:
224
- # test, test:unit, test:integration, test:e2e
225
- # lint, lint:fix, eslint
226
- # typecheck, type-check, tsc, check-types
227
- # check (often runs multiple checks)
228
- # build (catches type errors in compiled languages)
206
+ # Look for: test, test:unit, test:integration, test:e2e,
207
+ # lint, lint:fix, eslint, typecheck, type-check, tsc,
208
+ # check-types, check, build
229
209
 
230
210
  # Python projects
231
211
  Check: Makefile, tox.ini, pyproject.toml for test/lint commands
232
- # e.g., pytest, ruff check, mypy
233
-
234
- # Go projects
235
- # Standard: go test ./..., go vet ./...
236
212
 
237
- # Rust projects
238
- # Standard: cargo test, cargo clippy
213
+ # Go projects — go test ./..., go vet ./...
214
+ # Rust projects — cargo test, cargo clippy
239
215
  ```
240
216
 
241
- **Auto-detection rules for Node.js (most common):**
217
+ **Node.js auto-detection rules:**
242
218
 
243
- | `package.json` script | Maps to verification command |
244
- |----------------------|------------------------------|
219
+ | `package.json` script | Verification command |
220
+ |----------------------|---------------------|
245
221
  | `test` or `test:unit` | `npm test` or `npm run test:unit` |
246
222
  | `lint` | `npm run lint` |
247
- | `typecheck` or `type-check` or `check-types` | `npm run typecheck` (etc.) |
223
+ | `typecheck` / `type-check` / `check-types` | `npm run typecheck` (etc.) |
248
224
  | `tsc` in scripts or `typescript` in devDeps | `npx tsc --noEmit` |
249
225
  | `eslint` in devDeps but no `lint` script | `npx eslint .` |
250
226
 
251
- **Advisory mode detection:** After identifying commands, run each one once silently to check baseline health. Commands that fail on the current codebase (before Forge changes anything) are marked `advisory: true` — they'll run but won't block execution. This prevents Forge from being blocked by pre-existing tech debt.
227
+ **Advisory mode detection:** Run each command once to check baseline health. Commands that fail on the current codebase (before Forge changes anything) get `advisory: true` — they run but don't block. This prevents pre-existing tech debt from blocking execution.
252
228
 
253
229
  ```yaml
254
230
  # Example auto-detected config:
@@ -264,14 +240,7 @@ verification:
264
240
  max_retries: 2
265
241
  ```
266
242
 
267
- Present findings to user:
268
-
269
- *"I detected these verification commands from your project:*
270
- - *`npm run lint` — passes currently*
271
- - *`npm test` — passes currently*
272
- - *`npx tsc --noEmit` — currently failing (pre-existing type errors, will run in advisory mode)*
273
-
274
- *These will run automatically after each task to catch regressions. Want to add, remove, or adjust any?"*
243
+ Present findings to user with pass/fail status and advisory flags. Ask if they want to add, remove, or adjust commands.
275
244
 
276
245
  ### Discovery Step 2: Design System Detection
277
246
 
@@ -288,11 +257,7 @@ Grep: src/ for icon usage: "pi pi-", "Material", "lucide-react"
288
257
  Glob: **/*theme*, **/*variables.scss, **/tailwind.config*, **/globals.css
289
258
  ```
290
259
 
291
- From this, auto-detect:
292
- - Component library (and version from package.json)
293
- - Icon set in use
294
- - Layout system (PrimeFlex, Tailwind, MUI Grid, etc.)
295
- - Theme approach (SCSS variables, CSS-in-JS, Tailwind config, design tokens)
260
+ Auto-detect: component library (+ version), icon set, layout system, theme approach.
296
261
 
297
262
  ### Discovery Step 3: Pattern Analysis
298
263
 
@@ -304,59 +269,54 @@ Grep: src/ for auth/session patterns
304
269
  Bash: git log --oneline -20 # commit style
305
270
 
306
271
  # Architecture patterns
307
- Bash: ls -la src/ # top-level structure (pages, components, services, etc.)
272
+ Bash: ls -la src/ # top-level structure
308
273
  Glob: src/**/index.{ts,tsx,js} # barrel exports
309
274
  Grep: src/ for "import.*from.*@/" # path aliases
310
275
  ```
311
276
 
312
277
  ### Discovery Step 4: Present Findings
313
278
 
314
- Present a structured summary to the user:
315
-
316
- *"I've scanned your codebase. Here's what I found:*
279
+ Present a structured summary:
317
280
 
318
- *Project: {name} — {description from README or package.json}*
281
+ *"Project: {name} — {description}*
319
282
  *Stack: {language} + {framework} + {database}*
320
283
  *UI: {component library} with {icon set}, layout via {layout system}*
321
- *Testing: {test framework}, {X} existing test files*
284
+ *Testing: {test framework}, {X} test files*
322
285
  *Size: ~{N} source files, ~{N}K lines*
323
- *Patterns: {commit style}, {folder structure approach}, {key conventions}*
286
+ *Patterns: {commit style}, {folder structure}, {key conventions}*
324
287
 
325
288
  *Does this look right? Anything I missed or got wrong?"*
326
289
 
327
290
  ### Discovery Step 5: Design System Mapping
328
291
 
329
292
  If a component library was detected:
330
- 1. Check `.forge/templates/design-systems/` for an existing example config
331
- 2. If found (e.g., PrimeReact) → copy it as starting point for `.forge/design-system.md`
332
- 3. If not found → use `researching` skill to build a component mapping from docs
333
- 4. **Cross-reference with actual usage**: scan the codebase for which components are already in use and prioritize those in the mapping
293
+ 1. Check `.forge/templates/design-systems/` for a starter config
294
+ 2. If found → copy as starting point for `.forge/design-system.md`
295
+ 3. If not → use `researching` skill to build a component mapping from docs
296
+ 4. Cross-reference with actual usage: scan for which components are already used
334
297
  5. Present mapping to user for validation
335
298
 
336
- If no component library detected but UI files exist:
337
- - Ask: *"I see UI code but no component library. Are you using a design system, or is this custom HTML/CSS?"*
299
+ If no library detected but UI files exist, ask: *"I see UI code but no component library. Are you using a design system, or custom HTML/CSS?"*
338
300
 
339
301
  ### Discovery Step 6: Constitutional Inference
340
302
 
341
- Based on discovered patterns, **suggest** which articles to enable:
303
+ Suggest articles based on discovered patterns:
342
304
 
343
305
  | Discovery | Suggested Articles |
344
306
  |-----------|-------------------|
345
- | Test files found | Article II: Test-First (already practicing) |
307
+ | Test files found | Article II: Test-First |
346
308
  | Component library detected | Article V: Design System Fidelity |
347
309
  | Auth/session patterns found | Article VI: Security by Default |
348
- | Established conventions detected | Article IV: Consistency (preserve them) |
349
- | package-lock.json or yarn.lock | Article I: Library-First (already using libraries) |
310
+ | Established conventions detected | Article IV: Consistency |
311
+ | package-lock.json or yarn.lock | Article I: Library-First |
350
312
  | Logging/monitoring deps | Article IX: Observability |
351
313
 
352
- Present grouped recommendations and let user confirm, add, or remove articles.
314
+ Present grouped recommendations. User confirms, adds, or removes.
353
315
 
354
316
  ---
355
317
 
356
318
  ## Greenfield Path: Build from Description
357
319
 
358
- For new projects, ask the user to describe what they're building.
359
-
360
320
  ### Greenfield Step 1: Project Basics
361
321
 
362
322
  Ask the user to describe the project. From their description, fill in `.forge/project.yml`:
@@ -368,7 +328,7 @@ Ask the user to describe the project. From their description, fill in `.forge/pr
368
328
  - Success criteria
369
329
  - Known risks
370
330
 
371
- Present a summary: *"Does this capture your project correctly? Anything to add or change?"*
331
+ Confirm: *"Does this capture your project correctly? Anything to add or change?"*
372
332
 
373
333
  ### Greenfield Step 2: Design System Setup
374
334
 
@@ -388,9 +348,9 @@ design_system:
388
348
 
389
349
  Then:
390
350
  1. Check `.forge/templates/design-systems/` for a starter config
391
- 2. If found → copy and customize for the project
351
+ 2. If found → copy and customize
392
352
  3. If not → use `researching` skill to build a component mapping from docs
393
- 4. Write the mapping to `.forge/design-system.md`
353
+ 4. Write mapping to `.forge/design-system.md`
394
354
 
395
355
  **If no** (plain HTML/CSS, utility-only, or non-UI project):
396
356
  - Set `design_system.library: none` in project.yml
@@ -399,10 +359,10 @@ Then:
399
359
 
400
360
  ### Greenfield Step 2.5: Verification Commands
401
361
 
402
- Ask: *"What verification commands should run after each task? Common options:"*
362
+ Ask: *"What verification commands should run after each task?"*
403
363
 
404
- | If your stack includes... | Suggested commands |
405
- |--------------------------|-------------------|
364
+ | Stack | Suggested commands |
365
+ |-------|-------------------|
406
366
  | TypeScript | `npx tsc --noEmit` |
407
367
  | ESLint / Biome | `npm run lint` |
408
368
  | Jest / Vitest / Mocha | `npm test` |
@@ -411,13 +371,13 @@ Ask: *"What verification commands should run after each task? Common options:"*
411
371
  | Go | `go test ./...`, `go vet ./...` |
412
372
  | Rust | `cargo test`, `cargo clippy` |
413
373
 
414
- Pre-fill based on the tech stack chosen in Step 1. User confirms or adjusts. Write to the `verification` section of `project.yml`.
374
+ Pre-fill based on the chosen tech stack. User confirms or adjusts. Write to the `verification` section of `project.yml`.
415
375
 
416
- If the user doesn't want verification gates: set `verification.commands: []` — the executing skill will skip the gate entirely.
376
+ If the user doesn't want verification gates: set `verification.commands: []`.
417
377
 
418
378
  ### Greenfield Step 3: Constitutional Setup
419
379
 
420
- Present the 9 constitutional articles grouped by domain:
380
+ Present the 9 articles grouped by domain:
421
381
 
422
382
  **Code quality** (recommended for most projects):
423
383
  - Article I: Library-First — prefer proven libraries over custom code
@@ -425,24 +385,24 @@ Present the 9 constitutional articles grouped by domain:
425
385
  - Article III: Simplicity — simplest solution wins
426
386
  - Article IV: Consistency — follow existing project patterns
427
387
 
428
- **Design & UI** (enable if project has UI):
388
+ **Design & UI** (if project has UI):
429
389
  - Article V: Design System Fidelity — use the design system, don't fight it
430
390
 
431
- **Security & data** (enable if auth, user data, or APIs involved):
391
+ **Security & data** (if auth, user data, or APIs involved):
432
392
  - Article VI: Security by Default — auth, validation, secrets are requirements
433
393
 
434
- **Architecture** (enable based on project complexity):
394
+ **Architecture** (based on project complexity):
435
395
  - Article VII: Integration-First — real dependencies before mocks
436
396
  - Article VIII: Documentation-Driven — decisions documented where code lives
437
397
  - Article IX: Observability — logging, error reporting, health checks
438
398
 
439
- Ask: *"Which of these articles apply? I'd recommend [suggest based on stack and project type]. You can also add project-specific articles."*
399
+ Ask: *"Which articles apply? I'd recommend [suggest based on stack]. You can also add project-specific articles."*
440
400
 
441
401
  ---
442
402
 
443
403
  ## Finalize Init (Both Paths)
444
404
 
445
- 1. Write `.forge/project.yml` with all gathered/discovered info (including `verification` section with detected/configured commands)
405
+ 1. Write `.forge/project.yml` with all gathered/discovered info (including `verification` section)
446
406
  2. Write `.forge/constitution.md` with selected articles
447
407
  3. Write `.forge/design-system.md` (if design system configured)
448
408
  4. Initialize milestone-aware state:
@@ -470,6 +430,6 @@ Ask: *"Which of these articles apply? I'd recommend [suggest based on stack and
470
430
  ```
471
431
  5. Copy remaining templates as needed
472
432
 
473
- Confirm: *"Project initialized. Here's what's set up: [summary]. Ready to start working?"*
433
+ Confirm: *"Project initialized: [summary]. Ready to start working?"*
474
434
 
475
- After init completes, return control to the `forge` skill for tier detection and routing.
435
+ Return control to the `forge` skill for tier detection and routing.