olympus-ai 4.0.1 → 4.0.2

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "olympus-ai",
3
- "version": "4.0.1",
3
+ "version": "4.0.2",
4
4
  "description": "Olympus: Multi-agent orchestration for Claude Code. Summon the gods of code.",
5
5
  "author": {
6
6
  "name": "mikev10",
@@ -1 +1 @@
1
- {"version":3,"file":"claude-md-merger.d.ts","sourceRoot":"","sources":["../../../src/features/workflow-engine/claude-md-merger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,eAAO,MAAM,cAAc,+BAA+B,CAAC;AAC3D,eAAO,MAAM,YAAY,6BAA6B,CAAC;AAEvD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAmBnF;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAmBhE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,CA4IzF;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,GAAG,IAAI,CAM1D"}
1
+ {"version":3,"file":"claude-md-merger.d.ts","sourceRoot":"","sources":["../../../src/features/workflow-engine/claude-md-merger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,eAAO,MAAM,cAAc,+BAA+B,CAAC;AAC3D,eAAO,MAAM,YAAY,6BAA6B,CAAC;AAEvD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAmBnF;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAmBhE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,CAgBzF;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,GAAG,IAAI,CAM1D"}
@@ -101,133 +101,9 @@ export function getAidlcRulesContent(workflowId, pathwayType) {
101
101
  - **Human-readable state**: \`aidlc-docs/${workflowId}/aidlc-state.md\`
102
102
  - **Audit log**: \`aidlc-docs/${workflowId}/audit.md\`
103
103
 
104
- ## Olympus Agent Delegation
105
-
106
- Use Olympus agents for every workflow activity — do NOT implement directly unless the
107
- task is trivial (single file, <10 lines). The delegation table below maps AI-DLC
108
- workflow activities to the correct Olympus agent:
109
-
110
- | Activity | Olympus Agent | When |
111
- |----------|--------------|------|
112
- | Strategic planning, intent interview | \`prometheus\` | Inception kickoff |
113
- | Plan review / critical evaluation | \`momus\` | After each inception stage |
114
- | Code implementation (multi-file) | \`olympian\` | Construction phase |
115
- | Complex debugging / root-cause | \`oracle\` | Failures, unexpected behaviour |
116
- | Codebase exploration / search | \`explore\` | Before coding, brownfield analysis |
117
- | Documentation, requirements writing | \`document-writer\` | Artifact generation |
118
- | Research, dependency lookup | \`librarian\` | Tech stack decisions |
119
- | UI / frontend components | \`frontend-engineer\` | User-facing features |
120
-
121
- **How to delegate:**
122
- \`\`\`
123
- Task(subagent_type="olympian", description="Implement {unit-name}", prompt="...")
124
- Task(subagent_type="oracle", description="Debug failing test", prompt="...")
125
- Task(subagent_type="explore", description="Map codebase structure", prompt="...")
126
- \`\`\`
127
-
128
- ## Rule Detail Files (On-Demand Loading)
129
-
130
- **CRITICAL**: When executing any stage, you MUST read the corresponding rule detail file BEFORE starting that stage's work. Rule files are located at:
131
- \`~/.claude/olympus/rules/\` (installed by olympus-ai)
132
-
133
- **Common rules** — MUST load at workflow start (MANDATORY):
134
- - \`~/.claude/olympus/rules/common/process-overview.md\`
135
- - \`~/.claude/olympus/rules/common/session-continuity.md\`
136
- - \`~/.claude/olympus/rules/common/content-validation.md\`
137
- - \`~/.claude/olympus/rules/common/question-format-guide.md\`
138
-
139
- **Per-stage rules** — MUST load before executing each stage (MANDATORY):
140
- - \`~/.claude/olympus/rules/inception/workspace-detection.md\`
141
- ${isGreenfield ? '' : '- `~/.claude/olympus/rules/inception/reverse-engineering.md` — brownfield only\n'}- \`~/.claude/olympus/rules/inception/requirements-analysis.md\`
142
- - \`~/.claude/olympus/rules/inception/user-stories.md\`
143
- - \`~/.claude/olympus/rules/inception/workflow-planning.md\`
144
- - \`~/.claude/olympus/rules/inception/application-design.md\`
145
- - \`~/.claude/olympus/rules/inception/units-generation.md\`
146
- - \`~/.claude/olympus/rules/construction/functional-design.md\`
147
- - \`~/.claude/olympus/rules/construction/nfr-requirements.md\`
148
- - \`~/.claude/olympus/rules/construction/nfr-design.md\`
149
- - \`~/.claude/olympus/rules/construction/infrastructure-design.md\`
150
- - \`~/.claude/olympus/rules/construction/code-generation.md\`
151
-
152
- ## Directory Layout
153
-
154
- \`\`\`
155
- aidlc-docs/{workflow-id}/ # ALL documentation here
156
- checkpoint.json # Machine-readable state (V3)
157
- aidlc-state.md # Human-readable state
158
- audit.md # Append-only interaction log
159
- manifest.json # Artifact registry
160
- inception/
161
- intent.md
162
- nfr.md
163
- requirements-questions.md # Q&A with [Answer]: tags
164
- requirements.md
165
- personas.md
166
- stories.md
167
- unit-of-work.md
168
- application-design/
169
- plans/
170
- workflow-routing.md
171
- execution-plan.md
172
- construction/
173
- {unit-name}/
174
- spec.md
175
- functional-design.md
176
- code-generation.md
177
- operations/
178
- deploy-guide.md
179
- runbook.md
180
-
181
- [project source files] # Application code — NEVER inside aidlc-docs/
182
- \`\`\`
183
-
184
- ## State Tracking Rules
185
-
186
- 1. **Dual tracking**: Every stage transition updates BOTH \`checkpoint.json\` (machine)
187
- AND \`aidlc-state.md\` (human). Never update one without the other.
188
- 2. **Audit log**: Append every user input and AI response to \`audit.md\` with ISO-8601
189
- timestamps. NEVER overwrite — always append/edit.
190
- 3. **Checkpoint persistence**: Save checkpoint after each stage completion (CCR-1).
191
- 4. **Plan-level checkboxes**: Mark plan steps \`[x]\` in the SAME interaction where work
192
- completes. No deferred updates.
193
-
194
- ## Inception Stages (in order)
195
-
196
- ${isGreenfield
197
- ? `1. Workspace Detection (always)
198
- 2. Requirements Analysis (always)
199
- 3. User Stories (conditional)
200
- 4. Workflow Planning (always)
201
- 5. Application Design (conditional)
202
- 6. Units Generation (conditional)`
203
- : `1. Workspace Detection (always)
204
- 2. Reverse Engineering (brownfield — delegate to \`explore\` + \`oracle\`)
205
- 3. Requirements Analysis (always)
206
- 4. User Stories (conditional)
207
- 5. Workflow Planning (always)
208
- 6. Application Design (conditional)
209
- 7. Units Generation (conditional)`}
210
-
211
- Each stage:
212
- - Requires explicit human approval before proceeding (**do not auto-advance**)
213
- - Produces a "REVIEW REQUIRED / WHAT'S NEXT" message after completion
214
- - Logs all interactions in \`audit.md\`
215
-
216
- ## Construction Rules
217
-
218
- - Complete each unit fully (design → code) before moving to the next unit
219
- - Delegate code generation to \`olympian\` (or \`olympian-high\` for complex units)
220
- - Use \`oracle\` for debugging failures, not re-running the same olympian prompt
221
- - Mark code generation units fulfilled in \`manifest.json\` after human approval
222
- - Run \`npm run build:all && npm test\` after each unit completes
223
-
224
- ## Must NOT Do
225
-
226
- - Claim to override or supersede other built-in workflows
227
- - Overwrite existing CLAUDE.md content outside these sentinel markers
228
- - Implement multi-file changes without delegating to an Olympus agent
229
- - Auto-advance past review gates without explicit human confirmation
230
- - Write application code inside \`aidlc-docs/\``;
104
+ All workflow stages, agent delegation, directory layout, and rules are defined in the
105
+ AI-DLC Core Workflow reference (loaded from core-workflow.md). This block only tracks
106
+ the active workflow identity above.`;
231
107
  }
232
108
  /**
233
109
  * Read and return the core-workflow.md content installed by olympus-ai.
@@ -1 +1 @@
1
- {"version":3,"file":"claude-md-merger.js","sourceRoot":"","sources":["../../../src/features/workflow-engine/claude-md-merger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-md-merger.js","sourceRoot":"","sources":["../../../src/features/workflow-engine/claude-md-merger.ts"],"names":[],"mappings":"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"}
@@ -907,140 +907,18 @@ ${a}`:n}let o=e.replace(/^\s+/,"");return o?`${n}
907
907
 
908
908
  ${o}`:n}function xd(e){if(!Od(e))return e;let t=e.indexOf(rr),n=e.indexOf(wn)+wn.length,o=e.slice(0,t).replace(/\s+$/,""),r=e.slice(n).replace(/^\s+/,"");return o&&r?`${o}
909
909
 
910
- ${r}`:o||r||""}function Pd(e,t){let n=t==="greenfield";return`# AI-DLC Workflow Rules (Olympus-Native)
910
+ ${r}`:o||r||""}function Pd(e,t){return`# AI-DLC Workflow Rules (Olympus-Native)
911
911
 
912
912
  ## Active Workflow
913
913
  - **Workflow ID**: \`${e}\`
914
- - **Pathway**: ${n?"Greenfield":"Brownfield"} (${t})
914
+ - **Pathway**: ${t==="greenfield"?"Greenfield":"Brownfield"} (${t})
915
915
  - **State file**: \`aidlc-docs/${e}/checkpoint.json\`
916
916
  - **Human-readable state**: \`aidlc-docs/${e}/aidlc-state.md\`
917
917
  - **Audit log**: \`aidlc-docs/${e}/audit.md\`
918
918
 
919
- ## Olympus Agent Delegation
920
-
921
- Use Olympus agents for every workflow activity \u2014 do NOT implement directly unless the
922
- task is trivial (single file, <10 lines). The delegation table below maps AI-DLC
923
- workflow activities to the correct Olympus agent:
924
-
925
- | Activity | Olympus Agent | When |
926
- |----------|--------------|------|
927
- | Strategic planning, intent interview | \`prometheus\` | Inception kickoff |
928
- | Plan review / critical evaluation | \`momus\` | After each inception stage |
929
- | Code implementation (multi-file) | \`olympian\` | Construction phase |
930
- | Complex debugging / root-cause | \`oracle\` | Failures, unexpected behaviour |
931
- | Codebase exploration / search | \`explore\` | Before coding, brownfield analysis |
932
- | Documentation, requirements writing | \`document-writer\` | Artifact generation |
933
- | Research, dependency lookup | \`librarian\` | Tech stack decisions |
934
- | UI / frontend components | \`frontend-engineer\` | User-facing features |
935
-
936
- **How to delegate:**
937
- \`\`\`
938
- Task(subagent_type="olympian", description="Implement {unit-name}", prompt="...")
939
- Task(subagent_type="oracle", description="Debug failing test", prompt="...")
940
- Task(subagent_type="explore", description="Map codebase structure", prompt="...")
941
- \`\`\`
942
-
943
- ## Rule Detail Files (On-Demand Loading)
944
-
945
- **CRITICAL**: When executing any stage, you MUST read the corresponding rule detail file BEFORE starting that stage's work. Rule files are located at:
946
- \`~/.claude/olympus/rules/\` (installed by olympus-ai)
947
-
948
- **Common rules** \u2014 MUST load at workflow start (MANDATORY):
949
- - \`~/.claude/olympus/rules/common/process-overview.md\`
950
- - \`~/.claude/olympus/rules/common/session-continuity.md\`
951
- - \`~/.claude/olympus/rules/common/content-validation.md\`
952
- - \`~/.claude/olympus/rules/common/question-format-guide.md\`
953
-
954
- **Per-stage rules** \u2014 MUST load before executing each stage (MANDATORY):
955
- - \`~/.claude/olympus/rules/inception/workspace-detection.md\`
956
- ${n?"":"- `~/.claude/olympus/rules/inception/reverse-engineering.md` \u2014 brownfield only\n"}- \`~/.claude/olympus/rules/inception/requirements-analysis.md\`
957
- - \`~/.claude/olympus/rules/inception/user-stories.md\`
958
- - \`~/.claude/olympus/rules/inception/workflow-planning.md\`
959
- - \`~/.claude/olympus/rules/inception/application-design.md\`
960
- - \`~/.claude/olympus/rules/inception/units-generation.md\`
961
- - \`~/.claude/olympus/rules/construction/functional-design.md\`
962
- - \`~/.claude/olympus/rules/construction/nfr-requirements.md\`
963
- - \`~/.claude/olympus/rules/construction/nfr-design.md\`
964
- - \`~/.claude/olympus/rules/construction/infrastructure-design.md\`
965
- - \`~/.claude/olympus/rules/construction/code-generation.md\`
966
-
967
- ## Directory Layout
968
-
969
- \`\`\`
970
- aidlc-docs/{workflow-id}/ # ALL documentation here
971
- checkpoint.json # Machine-readable state (V3)
972
- aidlc-state.md # Human-readable state
973
- audit.md # Append-only interaction log
974
- manifest.json # Artifact registry
975
- inception/
976
- intent.md
977
- nfr.md
978
- requirements-questions.md # Q&A with [Answer]: tags
979
- requirements.md
980
- personas.md
981
- stories.md
982
- unit-of-work.md
983
- application-design/
984
- plans/
985
- workflow-routing.md
986
- execution-plan.md
987
- construction/
988
- {unit-name}/
989
- spec.md
990
- functional-design.md
991
- code-generation.md
992
- operations/
993
- deploy-guide.md
994
- runbook.md
995
-
996
- [project source files] # Application code \u2014 NEVER inside aidlc-docs/
997
- \`\`\`
998
-
999
- ## State Tracking Rules
1000
-
1001
- 1. **Dual tracking**: Every stage transition updates BOTH \`checkpoint.json\` (machine)
1002
- AND \`aidlc-state.md\` (human). Never update one without the other.
1003
- 2. **Audit log**: Append every user input and AI response to \`audit.md\` with ISO-8601
1004
- timestamps. NEVER overwrite \u2014 always append/edit.
1005
- 3. **Checkpoint persistence**: Save checkpoint after each stage completion (CCR-1).
1006
- 4. **Plan-level checkboxes**: Mark plan steps \`[x]\` in the SAME interaction where work
1007
- completes. No deferred updates.
1008
-
1009
- ## Inception Stages (in order)
1010
-
1011
- ${n?`1. Workspace Detection (always)
1012
- 2. Requirements Analysis (always)
1013
- 3. User Stories (conditional)
1014
- 4. Workflow Planning (always)
1015
- 5. Application Design (conditional)
1016
- 6. Units Generation (conditional)`:`1. Workspace Detection (always)
1017
- 2. Reverse Engineering (brownfield \u2014 delegate to \`explore\` + \`oracle\`)
1018
- 3. Requirements Analysis (always)
1019
- 4. User Stories (conditional)
1020
- 5. Workflow Planning (always)
1021
- 6. Application Design (conditional)
1022
- 7. Units Generation (conditional)`}
1023
-
1024
- Each stage:
1025
- - Requires explicit human approval before proceeding (**do not auto-advance**)
1026
- - Produces a "REVIEW REQUIRED / WHAT'S NEXT" message after completion
1027
- - Logs all interactions in \`audit.md\`
1028
-
1029
- ## Construction Rules
1030
-
1031
- - Complete each unit fully (design \u2192 code) before moving to the next unit
1032
- - Delegate code generation to \`olympian\` (or \`olympian-high\` for complex units)
1033
- - Use \`oracle\` for debugging failures, not re-running the same olympian prompt
1034
- - Mark code generation units fulfilled in \`manifest.json\` after human approval
1035
- - Run \`npm run build:all && npm test\` after each unit completes
1036
-
1037
- ## Must NOT Do
1038
-
1039
- - Claim to override or supersede other built-in workflows
1040
- - Overwrite existing CLAUDE.md content outside these sentinel markers
1041
- - Implement multi-file changes without delegating to an Olympus agent
1042
- - Auto-advance past review gates without explicit human confirmation
1043
- - Write application code inside \`aidlc-docs/\``}var ss=["intent","unit","code-generation","complete"];function OS(e){let t=ss.indexOf(e);return t===-1||t>=ss.length-1?"complete":ss[t+1]}var cr=class{projectPath;featureName;workflowId;interruptHandler=null;constructor(t,n){this.projectPath=t,this.featureName=n;let o=n.toLowerCase().replace(/\.[a-z]{1,4}$/,"").replace(/[_\s]+/g,"-").replace(/[^a-z0-9-]/g,"").replace(/-+/g,"-").replace(/^-|-$/g,"");if(o.length>80&&(o=o.substring(0,80).replace(/-$/,"")),!o)throw new Error("Feature name produced an empty workflow ID after sanitization");this.workflowId=o}async start(t){let n={schema_version:"3.0.0",workflow_id:this.workflowId,feature_name:this.featureName,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),current_phase:"inception",current_stage:"intent",status:"in_progress",origin:"hook-init",phases:{discovery:{status:"not_started",started_at:null,completed_at:null,gate_result:null,gate_bypassed:!1,bypass_reason:null},inception:{status:"in_progress",started_at:new Date().toISOString(),completed_at:null,gate_result:null,gate_bypassed:!1,bypass_reason:null},construction:{status:"not_started",started_at:null,completed_at:null,gate_result:null,gate_bypassed:!1,bypass_reason:null},operations:{status:"not_started",started_at:null,completed_at:null,gate_result:null,gate_bypassed:!1,bypass_reason:null}},manifest_path:`aidlc-docs/${this.workflowId}/manifest.json`,trust_state_path:".olympus/trust-state.json",resume_context:{initial_prompt:t}};try{await Du(this.projectPath,this.workflowId)}catch(o){let r=o;throw console.error(`[WorkflowEngine] Failed to initialize workflow directory: ${r.message}`),new Error(`Failed to start workflow: Could not create directory structure - ${r.message}`)}try{await M(this.projectPath,n)}catch(o){let r=o;throw console.error(`[WorkflowEngine] Failed to save initial checkpoint: ${r.message}`),new Error(`Failed to start workflow: Could not save checkpoint - ${r.message}`)}try{let r=(await yn(this.projectPath)).sourceFileCount??0,i=await Ed(this.projectPath,t),s=or(t),a=await bd({projectPath:this.projectPath,workflowId:this.workflowId,intentText:t,depthAssessment:s,pathwayType:i,sourceFileCount:r}),c=await Ji(this.projectPath,this.workflowId,a),l=await R(this.projectPath,this.workflowId);if(l){l.workflow_routing_path=c,l.pathway_type=i;let u=["discovery","inception","construction","operations"];l.skipped_phases=u.filter(d=>!zi(a,d)),await M(this.projectPath,l)}if(console.log(`[WorkflowEngine] Generated Workflow Routing: pathway=${i}, depth=${a.estimated_depth}, code-generations=${a.estimated_code_generations}`),a.stages.some(u=>!u.included)){let u=a.stages.filter(d=>!d.included).map(d=>`${d.phase}/${d.stage}`);console.log(`[WorkflowEngine] Stages excluded by plan: ${u.join(", ")}`)}}catch(o){console.warn(`[WorkflowEngine] Failed to generate Workflow Routing: ${o.message}`),console.warn("[WorkflowEngine] Workflow will proceed without adaptive phase selection")}try{let r=(await R(this.projectPath,this.workflowId))?.pathway_type;if(!r){let{isBrownfield:l}=await yn(this.projectPath);r=l?"brownfield-enhancement":"greenfield"}let i=ar.join(this.projectPath,".claude","CLAUDE.md"),s=$e.existsSync(i)?$e.readFileSync(i,"utf-8"):"",a=Pd(this.workflowId,r),c=Ad(s,a);$e.mkdirSync(ar.join(this.projectPath,".claude"),{recursive:!0}),$e.writeFileSync(i,c,"utf-8"),console.log("[WorkflowEngine] Injected AI-DLC rules into .claude/CLAUDE.md")}catch(o){console.error("[WorkflowEngine] Failed to inject AI-DLC rules into CLAUDE.md:",o)}}async resume(){let t;try{t=await R(this.projectPath,this.workflowId)}catch(o){let r=o;throw console.error(`[WorkflowEngine] Failed to load checkpoint for resume: ${r.message}`),new Error(`Failed to resume workflow: Could not load checkpoint - ${r.message}`)}if(!t)throw console.error(`[WorkflowEngine] No checkpoint found for workflow: ${this.workflowId}`),console.error("[WorkflowEngine] Available workflows: Run 'olympus workflow list' to see workflows"),new Error(`No checkpoint found for workflow: ${this.workflowId}`);if(t.status==="complete")return"Workflow already complete";if(t.status==="paused"){t.status="in_progress";try{await M(this.projectPath,t)}catch(o){let r=o;throw console.error(`[WorkflowEngine] Failed to update checkpoint status: ${r.message}`),new Error(`Failed to resume workflow: Could not save checkpoint - ${r.message}`)}}this.setupInterruptHandler();let n=t.current_stage;try{await this.executeStage(n)}catch(o){let r=o;console.error(`[WorkflowEngine] Failed to execute ${n} stage: ${r.message}`);try{let i=await R(this.projectPath,this.workflowId);i&&(i.status="paused",i.resume_context={...i.resume_context,error_message:r.message,failed_stage:n},await M(this.projectPath,i),console.log("[WorkflowEngine] Workflow saved as paused. Fix the issue and resume with `/continue`"))}catch(i){console.warn("[WorkflowEngine] Failed to save error checkpoint:",i.message)}throw new Error(`Failed to execute ${n} stage: ${r.message}`)}finally{this.cleanupInterruptHandler()}return`Resumed workflow from stage: ${n}`}async pause(){let t;try{t=await R(this.projectPath,this.workflowId)}catch(n){let o=n;throw console.error(`[WorkflowEngine] Failed to load checkpoint for pause: ${o.message}`),new Error(`Failed to pause workflow: Could not load checkpoint - ${o.message}`)}if(!t)throw console.error(`[WorkflowEngine] No checkpoint found for workflow: ${this.workflowId}`),new Error(`No checkpoint found for workflow: ${this.workflowId}`);t.status="paused";try{await M(this.projectPath,t)}catch(n){let o=n;throw console.error(`[WorkflowEngine] Failed to save paused checkpoint: ${o.message}`),new Error(`Failed to pause workflow: Could not save checkpoint - ${o.message}`)}return`aidlc-docs/${this.workflowId}/checkpoint.json`}async executeStage(t){if(t==="complete")throw new Error("No execution for complete stage");let n=await R(this.projectPath,this.workflowId);if(!n)throw new Error(`No checkpoint found for workflow: ${this.workflowId}`);switch(t){case"intent":await this.executeIntentStage(n);break;case"unit":await this.executeUnitStage(n);break;case"code-generation":await this.executeCodeGenerationStage(n);break}let o=OS(t);if(n.current_stage=o,o==="complete"){n.status="complete";try{let r=ar.join(this.projectPath,".claude","CLAUDE.md");if($e.existsSync(r)){let i=$e.readFileSync(r,"utf-8"),s=xd(i);$e.writeFileSync(r,s,"utf-8"),console.log("[WorkflowEngine] Removed AI-DLC rules from .claude/CLAUDE.md (workflow complete)")}}catch(r){console.error("[WorkflowEngine] Failed to remove AI-DLC rules from CLAUDE.md:",r)}}await M(this.projectPath,n)}async getStatus(){let t;try{t=await R(this.projectPath,this.workflowId)}catch(o){let r=o;throw console.error(`[WorkflowEngine] Failed to load checkpoint for status: ${r.message}`),new Error(`Failed to get workflow status: Could not load checkpoint - ${r.message}`)}if(!t)throw console.error(`[WorkflowEngine] No checkpoint found for workflow: ${this.workflowId}`),new Error(`No checkpoint found for workflow: ${this.workflowId}`);let n=[];return{workflow_id:t.workflow_id,feature_name:t.feature_name,current_stage:t.current_stage,status:t.status,artifacts:n,updated_at:t.updated_at}}async executePhase(t){let n=nr(this.projectPath,this.workflowId);if(n&&!zi(n,t)){console.log(`[WorkflowEngine] Skipping ${t} phase (excluded by Workflow Routing: ${n.phases[t]?.rationale||"no rationale"})`);let o=await R(this.projectPath,this.workflowId);if(o){let i=o;i.phases&&i.phases[t]&&(i.phases[t].status="complete",i.phases[t].completed_at=new Date().toISOString(),i.phases[t].gate_bypassed=!0,i.phases[t].bypass_reason="Excluded by Workflow Routing"),await M(this.projectPath,o)}let r=`${this.projectPath}/aidlc-docs/${this.workflowId}/manifest.json`;try{Ce(r,{phase:t,action:"bypassed",actor:"config",reason:`Excluded by Workflow Routing (pathway: ${n.pathway})`})}catch{}return}switch(t){case"discovery":{let o=`${this.projectPath}/aidlc-docs/${this.workflowId}/manifest.json`,r=await wd({projectPath:this.projectPath,workflowId:this.workflowId,featureName:this.featureName,manifestPath:o});r.gateRequired&&(console.log(`[WorkflowEngine] Discovery phase: ${r.artifactsGenerated.length} artifacts generated (${r.sourceFileCount} source files detected)`),console.log(`[WorkflowEngine] Discovery Gate: Review findings in aidlc-docs/${this.workflowId}/discovery/ before proceeding to Inception`));try{let i={type:"phase_complete",phase:"discovery",details:`${r.artifactsGenerated.length} artifacts generated, ${r.sourceFileCount} source files`},s={workflowId:this.workflowId,featureName:this.featureName,projectPath:this.projectPath,sessionId:"engine",phase:"discovery"},a=xe(i,s);oe(a)}catch(i){console.error("[WorkflowEngine] Failed to capture discovery phase discovery:",i)}break}case"inception":{let{InceptionOrchestrator:o}=await Promise.resolve().then(()=>(Qd(),zd)),r=new o,i=await R(this.projectPath,this.workflowId);if(!i)throw new Error(`No checkpoint found for workflow: ${this.workflowId}`);if(i.current_stage!=="intent"){console.log(`[WorkflowEngine] Skipping inception orchestrator \u2014 checkpoint already at stage '${i.current_stage}'`);break}if(!i.inception_stages){let s=nr(this.projectPath,this.workflowId),a=i;await r.initialize(this.projectPath,this.workflowId,a.pathway_type||"greenfield",s)}for(;!await r.isComplete(this.projectPath,this.workflowId);){let s=await r.executeNextStage(this.projectPath,this.workflowId);if(s.status==="awaiting_answers"||s.status==="review_required")break}try{let s={type:"phase_complete",phase:"inception",details:"Inception stages completed"},a={workflowId:this.workflowId,featureName:this.featureName,projectPath:this.projectPath,sessionId:"engine",phase:"inception"},c=xe(s,a);oe(c)}catch(s){console.error("[WorkflowEngine] Failed to capture inception phase discovery:",s)}break}case"construction":{let o=await R(this.projectPath,this.workflowId);if(o&&o.status==="awaiting_dev_review"){console.log("[WorkflowEngine] Waiting for developer review of technical specification (Risk Tier 3).");return}let r=bt(this.projectPath,this.workflowId,"intent"),i;try{i=$e.readFileSync(r,"utf-8")}catch{}let a=await new Ko(this.projectPath,this.workflowId).execute(i);if(!a.passed)throw console.error("[WorkflowEngine] Construction phase validation failed:",a.blocking_issues),new Error(`Construction phase validation failed: ${a.blocking_issues.join(", ")}`);try{let c={type:"phase_complete",phase:"construction",details:"Construction phase completed"},l={workflowId:this.workflowId,featureName:this.featureName,projectPath:this.projectPath,sessionId:"engine",phase:"construction"},u=xe(c,l);oe(u)}catch(c){console.error("[WorkflowEngine] Failed to capture construction phase discovery:",c)}break}case"operations":{let{generateOperationsArtifacts:o}=await Promise.resolve().then(()=>(rp(),op)),{loadManifest:r,registerArtifact:i,updatePhaseStatus:s}=await Promise.resolve().then(()=>(K(),Ht)),a=`${this.projectPath}/aidlc-docs/${this.workflowId}/manifest.json`,c=r(a),l=null;try{l=$e.readFileSync(bt(this.projectPath,this.workflowId,"intent"),"utf-8")}catch{}let u=await R(this.projectPath,this.workflowId),d="MEDIUM";if(c?.depth_assessment){let f=c.depth_assessment.total_score;f<=10?d="SHALLOW":f>=21&&(d="DEEP")}let p={workflowId:this.workflowId,featureName:this.featureName,manifest:c,specContent:l,buildLogContent:null,depthLevel:d},m=await o(p,this.projectPath);if(c){s(a,"operations","complete");for(let f of m.artifactsGenerated){let g=`aidlc-docs/${this.workflowId}/operations/${f}`,h=f.replace(/\.(md|json)$/,"").toUpperCase().replace(/-/g,"_");i(a,{id:`OPS-${h}`,type:h,phase:"operations",stage:"code-generation",path:g,validation_passed:!0,write_complete:!0,checksum:null})}}u&&(u.current_phase="operations",u.updated_at=new Date().toISOString(),await M(this.projectPath,u)),console.log(`[WorkflowEngine] Operations phase: Generated ${m.artifactsGenerated.length} artifacts (depth: ${d})`),console.log(`[WorkflowEngine] Operations artifacts: ${m.artifactsGenerated.join(", ")}`);try{let f={type:"phase_complete",phase:"operations",details:`${m.artifactsGenerated.length} artifacts generated (depth: ${d})`},g={workflowId:this.workflowId,featureName:this.featureName,projectPath:this.projectPath,sessionId:"engine",phase:"operations"},h=xe(f,g);oe(h)}catch(f){console.error("[WorkflowEngine] Failed to capture operations phase discovery:",f)}break}}}async approveWorkflowRouting(t){let n=nr(this.projectPath,this.workflowId);if(!n)throw new Error(`No Workflow Routing found for workflow: ${this.workflowId}`);n.approved_at=new Date().toISOString(),n.approved_by="human",await Ji(this.projectPath,this.workflowId,n);let o=await R(this.projectPath,this.workflowId);if(o){let i=o;if(i.inception_stages?.["workflow-planning"]){let s=i.inception_stages["workflow-planning"];s.status!=="completed"&&s.status!=="skipped"&&(s.status="completed",s.completed_at=new Date().toISOString(),await M(this.projectPath,o))}}let r=`${this.projectPath}/aidlc-docs/${this.workflowId}/manifest.json`;try{Ce(r,{phase:"inception",action:"approved",actor:"human",reason:t||"Workflow Routing approved"})}catch{}console.log("[WorkflowEngine] Workflow Routing approved")}setupInterruptHandler(){this.interruptHandler=async()=>{console.log(`
919
+ All workflow stages, agent delegation, directory layout, and rules are defined in the
920
+ AI-DLC Core Workflow reference (loaded from core-workflow.md). This block only tracks
921
+ the active workflow identity above.`}var ss=["intent","unit","code-generation","complete"];function OS(e){let t=ss.indexOf(e);return t===-1||t>=ss.length-1?"complete":ss[t+1]}var cr=class{projectPath;featureName;workflowId;interruptHandler=null;constructor(t,n){this.projectPath=t,this.featureName=n;let o=n.toLowerCase().replace(/\.[a-z]{1,4}$/,"").replace(/[_\s]+/g,"-").replace(/[^a-z0-9-]/g,"").replace(/-+/g,"-").replace(/^-|-$/g,"");if(o.length>80&&(o=o.substring(0,80).replace(/-$/,"")),!o)throw new Error("Feature name produced an empty workflow ID after sanitization");this.workflowId=o}async start(t){let n={schema_version:"3.0.0",workflow_id:this.workflowId,feature_name:this.featureName,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),current_phase:"inception",current_stage:"intent",status:"in_progress",origin:"hook-init",phases:{discovery:{status:"not_started",started_at:null,completed_at:null,gate_result:null,gate_bypassed:!1,bypass_reason:null},inception:{status:"in_progress",started_at:new Date().toISOString(),completed_at:null,gate_result:null,gate_bypassed:!1,bypass_reason:null},construction:{status:"not_started",started_at:null,completed_at:null,gate_result:null,gate_bypassed:!1,bypass_reason:null},operations:{status:"not_started",started_at:null,completed_at:null,gate_result:null,gate_bypassed:!1,bypass_reason:null}},manifest_path:`aidlc-docs/${this.workflowId}/manifest.json`,trust_state_path:".olympus/trust-state.json",resume_context:{initial_prompt:t}};try{await Du(this.projectPath,this.workflowId)}catch(o){let r=o;throw console.error(`[WorkflowEngine] Failed to initialize workflow directory: ${r.message}`),new Error(`Failed to start workflow: Could not create directory structure - ${r.message}`)}try{await M(this.projectPath,n)}catch(o){let r=o;throw console.error(`[WorkflowEngine] Failed to save initial checkpoint: ${r.message}`),new Error(`Failed to start workflow: Could not save checkpoint - ${r.message}`)}try{let r=(await yn(this.projectPath)).sourceFileCount??0,i=await Ed(this.projectPath,t),s=or(t),a=await bd({projectPath:this.projectPath,workflowId:this.workflowId,intentText:t,depthAssessment:s,pathwayType:i,sourceFileCount:r}),c=await Ji(this.projectPath,this.workflowId,a),l=await R(this.projectPath,this.workflowId);if(l){l.workflow_routing_path=c,l.pathway_type=i;let u=["discovery","inception","construction","operations"];l.skipped_phases=u.filter(d=>!zi(a,d)),await M(this.projectPath,l)}if(console.log(`[WorkflowEngine] Generated Workflow Routing: pathway=${i}, depth=${a.estimated_depth}, code-generations=${a.estimated_code_generations}`),a.stages.some(u=>!u.included)){let u=a.stages.filter(d=>!d.included).map(d=>`${d.phase}/${d.stage}`);console.log(`[WorkflowEngine] Stages excluded by plan: ${u.join(", ")}`)}}catch(o){console.warn(`[WorkflowEngine] Failed to generate Workflow Routing: ${o.message}`),console.warn("[WorkflowEngine] Workflow will proceed without adaptive phase selection")}try{let r=(await R(this.projectPath,this.workflowId))?.pathway_type;if(!r){let{isBrownfield:l}=await yn(this.projectPath);r=l?"brownfield-enhancement":"greenfield"}let i=ar.join(this.projectPath,".claude","CLAUDE.md"),s=$e.existsSync(i)?$e.readFileSync(i,"utf-8"):"",a=Pd(this.workflowId,r),c=Ad(s,a);$e.mkdirSync(ar.join(this.projectPath,".claude"),{recursive:!0}),$e.writeFileSync(i,c,"utf-8"),console.log("[WorkflowEngine] Injected AI-DLC rules into .claude/CLAUDE.md")}catch(o){console.error("[WorkflowEngine] Failed to inject AI-DLC rules into CLAUDE.md:",o)}}async resume(){let t;try{t=await R(this.projectPath,this.workflowId)}catch(o){let r=o;throw console.error(`[WorkflowEngine] Failed to load checkpoint for resume: ${r.message}`),new Error(`Failed to resume workflow: Could not load checkpoint - ${r.message}`)}if(!t)throw console.error(`[WorkflowEngine] No checkpoint found for workflow: ${this.workflowId}`),console.error("[WorkflowEngine] Available workflows: Run 'olympus workflow list' to see workflows"),new Error(`No checkpoint found for workflow: ${this.workflowId}`);if(t.status==="complete")return"Workflow already complete";if(t.status==="paused"){t.status="in_progress";try{await M(this.projectPath,t)}catch(o){let r=o;throw console.error(`[WorkflowEngine] Failed to update checkpoint status: ${r.message}`),new Error(`Failed to resume workflow: Could not save checkpoint - ${r.message}`)}}this.setupInterruptHandler();let n=t.current_stage;try{await this.executeStage(n)}catch(o){let r=o;console.error(`[WorkflowEngine] Failed to execute ${n} stage: ${r.message}`);try{let i=await R(this.projectPath,this.workflowId);i&&(i.status="paused",i.resume_context={...i.resume_context,error_message:r.message,failed_stage:n},await M(this.projectPath,i),console.log("[WorkflowEngine] Workflow saved as paused. Fix the issue and resume with `/continue`"))}catch(i){console.warn("[WorkflowEngine] Failed to save error checkpoint:",i.message)}throw new Error(`Failed to execute ${n} stage: ${r.message}`)}finally{this.cleanupInterruptHandler()}return`Resumed workflow from stage: ${n}`}async pause(){let t;try{t=await R(this.projectPath,this.workflowId)}catch(n){let o=n;throw console.error(`[WorkflowEngine] Failed to load checkpoint for pause: ${o.message}`),new Error(`Failed to pause workflow: Could not load checkpoint - ${o.message}`)}if(!t)throw console.error(`[WorkflowEngine] No checkpoint found for workflow: ${this.workflowId}`),new Error(`No checkpoint found for workflow: ${this.workflowId}`);t.status="paused";try{await M(this.projectPath,t)}catch(n){let o=n;throw console.error(`[WorkflowEngine] Failed to save paused checkpoint: ${o.message}`),new Error(`Failed to pause workflow: Could not save checkpoint - ${o.message}`)}return`aidlc-docs/${this.workflowId}/checkpoint.json`}async executeStage(t){if(t==="complete")throw new Error("No execution for complete stage");let n=await R(this.projectPath,this.workflowId);if(!n)throw new Error(`No checkpoint found for workflow: ${this.workflowId}`);switch(t){case"intent":await this.executeIntentStage(n);break;case"unit":await this.executeUnitStage(n);break;case"code-generation":await this.executeCodeGenerationStage(n);break}let o=OS(t);if(n.current_stage=o,o==="complete"){n.status="complete";try{let r=ar.join(this.projectPath,".claude","CLAUDE.md");if($e.existsSync(r)){let i=$e.readFileSync(r,"utf-8"),s=xd(i);$e.writeFileSync(r,s,"utf-8"),console.log("[WorkflowEngine] Removed AI-DLC rules from .claude/CLAUDE.md (workflow complete)")}}catch(r){console.error("[WorkflowEngine] Failed to remove AI-DLC rules from CLAUDE.md:",r)}}await M(this.projectPath,n)}async getStatus(){let t;try{t=await R(this.projectPath,this.workflowId)}catch(o){let r=o;throw console.error(`[WorkflowEngine] Failed to load checkpoint for status: ${r.message}`),new Error(`Failed to get workflow status: Could not load checkpoint - ${r.message}`)}if(!t)throw console.error(`[WorkflowEngine] No checkpoint found for workflow: ${this.workflowId}`),new Error(`No checkpoint found for workflow: ${this.workflowId}`);let n=[];return{workflow_id:t.workflow_id,feature_name:t.feature_name,current_stage:t.current_stage,status:t.status,artifacts:n,updated_at:t.updated_at}}async executePhase(t){let n=nr(this.projectPath,this.workflowId);if(n&&!zi(n,t)){console.log(`[WorkflowEngine] Skipping ${t} phase (excluded by Workflow Routing: ${n.phases[t]?.rationale||"no rationale"})`);let o=await R(this.projectPath,this.workflowId);if(o){let i=o;i.phases&&i.phases[t]&&(i.phases[t].status="complete",i.phases[t].completed_at=new Date().toISOString(),i.phases[t].gate_bypassed=!0,i.phases[t].bypass_reason="Excluded by Workflow Routing"),await M(this.projectPath,o)}let r=`${this.projectPath}/aidlc-docs/${this.workflowId}/manifest.json`;try{Ce(r,{phase:t,action:"bypassed",actor:"config",reason:`Excluded by Workflow Routing (pathway: ${n.pathway})`})}catch{}return}switch(t){case"discovery":{let o=`${this.projectPath}/aidlc-docs/${this.workflowId}/manifest.json`,r=await wd({projectPath:this.projectPath,workflowId:this.workflowId,featureName:this.featureName,manifestPath:o});r.gateRequired&&(console.log(`[WorkflowEngine] Discovery phase: ${r.artifactsGenerated.length} artifacts generated (${r.sourceFileCount} source files detected)`),console.log(`[WorkflowEngine] Discovery Gate: Review findings in aidlc-docs/${this.workflowId}/discovery/ before proceeding to Inception`));try{let i={type:"phase_complete",phase:"discovery",details:`${r.artifactsGenerated.length} artifacts generated, ${r.sourceFileCount} source files`},s={workflowId:this.workflowId,featureName:this.featureName,projectPath:this.projectPath,sessionId:"engine",phase:"discovery"},a=xe(i,s);oe(a)}catch(i){console.error("[WorkflowEngine] Failed to capture discovery phase discovery:",i)}break}case"inception":{let{InceptionOrchestrator:o}=await Promise.resolve().then(()=>(Qd(),zd)),r=new o,i=await R(this.projectPath,this.workflowId);if(!i)throw new Error(`No checkpoint found for workflow: ${this.workflowId}`);if(i.current_stage!=="intent"){console.log(`[WorkflowEngine] Skipping inception orchestrator \u2014 checkpoint already at stage '${i.current_stage}'`);break}if(!i.inception_stages){let s=nr(this.projectPath,this.workflowId),a=i;await r.initialize(this.projectPath,this.workflowId,a.pathway_type||"greenfield",s)}for(;!await r.isComplete(this.projectPath,this.workflowId);){let s=await r.executeNextStage(this.projectPath,this.workflowId);if(s.status==="awaiting_answers"||s.status==="review_required")break}try{let s={type:"phase_complete",phase:"inception",details:"Inception stages completed"},a={workflowId:this.workflowId,featureName:this.featureName,projectPath:this.projectPath,sessionId:"engine",phase:"inception"},c=xe(s,a);oe(c)}catch(s){console.error("[WorkflowEngine] Failed to capture inception phase discovery:",s)}break}case"construction":{let o=await R(this.projectPath,this.workflowId);if(o&&o.status==="awaiting_dev_review"){console.log("[WorkflowEngine] Waiting for developer review of technical specification (Risk Tier 3).");return}let r=bt(this.projectPath,this.workflowId,"intent"),i;try{i=$e.readFileSync(r,"utf-8")}catch{}let a=await new Ko(this.projectPath,this.workflowId).execute(i);if(!a.passed)throw console.error("[WorkflowEngine] Construction phase validation failed:",a.blocking_issues),new Error(`Construction phase validation failed: ${a.blocking_issues.join(", ")}`);try{let c={type:"phase_complete",phase:"construction",details:"Construction phase completed"},l={workflowId:this.workflowId,featureName:this.featureName,projectPath:this.projectPath,sessionId:"engine",phase:"construction"},u=xe(c,l);oe(u)}catch(c){console.error("[WorkflowEngine] Failed to capture construction phase discovery:",c)}break}case"operations":{let{generateOperationsArtifacts:o}=await Promise.resolve().then(()=>(rp(),op)),{loadManifest:r,registerArtifact:i,updatePhaseStatus:s}=await Promise.resolve().then(()=>(K(),Ht)),a=`${this.projectPath}/aidlc-docs/${this.workflowId}/manifest.json`,c=r(a),l=null;try{l=$e.readFileSync(bt(this.projectPath,this.workflowId,"intent"),"utf-8")}catch{}let u=await R(this.projectPath,this.workflowId),d="MEDIUM";if(c?.depth_assessment){let f=c.depth_assessment.total_score;f<=10?d="SHALLOW":f>=21&&(d="DEEP")}let p={workflowId:this.workflowId,featureName:this.featureName,manifest:c,specContent:l,buildLogContent:null,depthLevel:d},m=await o(p,this.projectPath);if(c){s(a,"operations","complete");for(let f of m.artifactsGenerated){let g=`aidlc-docs/${this.workflowId}/operations/${f}`,h=f.replace(/\.(md|json)$/,"").toUpperCase().replace(/-/g,"_");i(a,{id:`OPS-${h}`,type:h,phase:"operations",stage:"code-generation",path:g,validation_passed:!0,write_complete:!0,checksum:null})}}u&&(u.current_phase="operations",u.updated_at=new Date().toISOString(),await M(this.projectPath,u)),console.log(`[WorkflowEngine] Operations phase: Generated ${m.artifactsGenerated.length} artifacts (depth: ${d})`),console.log(`[WorkflowEngine] Operations artifacts: ${m.artifactsGenerated.join(", ")}`);try{let f={type:"phase_complete",phase:"operations",details:`${m.artifactsGenerated.length} artifacts generated (depth: ${d})`},g={workflowId:this.workflowId,featureName:this.featureName,projectPath:this.projectPath,sessionId:"engine",phase:"operations"},h=xe(f,g);oe(h)}catch(f){console.error("[WorkflowEngine] Failed to capture operations phase discovery:",f)}break}}}async approveWorkflowRouting(t){let n=nr(this.projectPath,this.workflowId);if(!n)throw new Error(`No Workflow Routing found for workflow: ${this.workflowId}`);n.approved_at=new Date().toISOString(),n.approved_by="human",await Ji(this.projectPath,this.workflowId,n);let o=await R(this.projectPath,this.workflowId);if(o){let i=o;if(i.inception_stages?.["workflow-planning"]){let s=i.inception_stages["workflow-planning"];s.status!=="completed"&&s.status!=="skipped"&&(s.status="completed",s.completed_at=new Date().toISOString(),await M(this.projectPath,o))}}let r=`${this.projectPath}/aidlc-docs/${this.workflowId}/manifest.json`;try{Ce(r,{phase:"inception",action:"approved",actor:"human",reason:t||"Workflow Routing approved"})}catch{}console.log("[WorkflowEngine] Workflow Routing approved")}setupInterruptHandler(){this.interruptHandler=async()=>{console.log(`
1044
922
  [WorkflowEngine] Workflow interrupted - saving checkpoint...`);try{let t=await R(this.projectPath,this.workflowId);t&&(t.status="paused",t.updated_at=new Date().toISOString(),t.resume_context={...t.resume_context,interrupted_at:new Date().toISOString(),current_stage:t.current_stage,message:`Workflow interrupted during ${t.current_stage} stage`},await M(this.projectPath,t),console.log("[WorkflowEngine] Checkpoint saved. Resume with `/continue`"))}catch(t){console.error("[WorkflowEngine] Failed to save checkpoint on interrupt:",t)}process.exit(0)},process.on("SIGINT",this.interruptHandler)}cleanupInterruptHandler(){this.interruptHandler&&(process.off("SIGINT",this.interruptHandler),this.interruptHandler=null)}async executeIntentStage(t){let n=t.resume_context?.initial_prompt||"No initial prompt provided";console.log(`[WorkflowEngine] Executing INTENT stage for feature: ${this.featureName}`),console.log(`[WorkflowEngine] Initial prompt: ${n}`),console.log("[WorkflowEngine] Generating merged INTENT artifact with full inception content");let o=`intent-${this.workflowId}`,r=new Date().toISOString(),i=`---
1045
923
  id: ${o}
1046
924
  title: ${this.featureName}
@@ -24,7 +24,7 @@ export declare const HOOKS_DIR: string;
24
24
  export declare const SETTINGS_FILE: string;
25
25
  export declare const VERSION_FILE: string;
26
26
  /** Current version - MUST match package.json */
27
- export declare const VERSION = "4.0.1";
27
+ export declare const VERSION = "4.0.2";
28
28
  /** Installation result */
29
29
  export interface InstallResult {
30
30
  success: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AA+BH,0CAA0C;AAC1C,eAAO,MAAM,iBAAiB,QAA6B,CAAC;AAC5D,eAAO,MAAM,UAAU,QAAoC,CAAC;AAC5D,eAAO,MAAM,UAAU,QAAoC,CAAC;AAC5D,eAAO,MAAM,SAAS,QAAmC,CAAC;AAC1D,eAAO,MAAM,aAAa,QAA2C,CAAC;AACtE,eAAO,MAAM,YAAY,QAAmD,CAAC;AAE7E,gDAAgD;AAChD,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,0BAA0B;AAC1B,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,2BAA2B;AAC3B,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAYD;;GAEG;AACH,wBAAgB,gBAAgB,IAAI;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAOxF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAQ3C;AA2UD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAyB7C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,aAAa,CA2anE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAehG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AA+BH,0CAA0C;AAC1C,eAAO,MAAM,iBAAiB,QAA6B,CAAC;AAC5D,eAAO,MAAM,UAAU,QAAoC,CAAC;AAC5D,eAAO,MAAM,UAAU,QAAoC,CAAC;AAC5D,eAAO,MAAM,SAAS,QAAmC,CAAC;AAC1D,eAAO,MAAM,aAAa,QAA2C,CAAC;AACtE,eAAO,MAAM,YAAY,QAAmD,CAAC;AAE7E,gDAAgD;AAChD,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,0BAA0B;AAC1B,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,2BAA2B;AAC3B,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAYD;;GAEG;AACH,wBAAgB,gBAAgB,IAAI;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAOxF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAQ3C;AA2UD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAyB7C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,aAAa,CAkbnE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAehG"}
@@ -40,7 +40,7 @@ export const HOOKS_DIR = join(CLAUDE_CONFIG_DIR, 'hooks');
40
40
  export const SETTINGS_FILE = join(CLAUDE_CONFIG_DIR, 'settings.json');
41
41
  export const VERSION_FILE = join(CLAUDE_CONFIG_DIR, '.olympus-version.json');
42
42
  /** Current version - MUST match package.json */
43
- export const VERSION = '4.0.1';
43
+ export const VERSION = '4.0.2';
44
44
  /**
45
45
  * Read a content file from the resources/ directory.
46
46
  *
@@ -543,9 +543,17 @@ export function install(options = {}) {
543
543
  const existingContent = existsSync(projectClaudeMdPath)
544
544
  ? readFileSync(projectClaudeMdPath, 'utf-8')
545
545
  : '';
546
- const coreWorkflow = localizeContent(readContent('rules/core-workflow.md'), !!options.local);
547
546
  const workflowRules = localizeContent(getAidlcRulesContent(workflowId, pathwayType), !!options.local);
548
- const rules = `${coreWorkflow}\n\n---\n\n${workflowRules}`;
547
+ // For global installs, core-workflow.md is already in ~/.claude/CLAUDE.md — don't duplicate.
548
+ // For local installs, include it since there's no global CLAUDE.md.
549
+ let rules;
550
+ if (options.local) {
551
+ const coreWorkflow = localizeContent(readContent('rules/core-workflow.md'), !!options.local);
552
+ rules = `${coreWorkflow}\n\n---\n\n${workflowRules}`;
553
+ }
554
+ else {
555
+ rules = workflowRules;
556
+ }
549
557
  const merged = mergeAidlcRules(existingContent, rules);
550
558
  const projectClaudeDir = join(process.cwd(), '.claude');
551
559
  if (!existsSync(projectClaudeDir)) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/installer/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "olympus-ai",
3
- "version": "4.0.1",
3
+ "version": "4.0.2",
4
4
  "description": "Olympus: Multi-agent orchestration for Claude Code. Summon the gods of code.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -24,482 +24,107 @@ The AI model intelligently assesses what stages are needed based on:
24
24
  - Load `~/.claude/olympus/rules/common/question-format-guide.md` for question formatting rules
25
25
  - Load `~/.claude/olympus/rules/common/terminology.md` for phase/stage naming conventions
26
26
  - Load `~/.claude/olympus/rules/common/error-handling.md` for error recovery procedures
27
- - Reference these throughout the workflow execution
28
27
 
29
28
  ## MANDATORY: Content Validation
30
29
 
31
- **CRITICAL**: Before creating ANY file, you MUST validate content according to `~/.claude/olympus/rules/common/content-validation.md` rules:
32
- - Validate Mermaid diagram syntax
33
- - Validate ASCII art diagrams (see `~/.claude/olympus/rules/common/ascii-diagram-standards.md`)
34
- - Escape special characters properly
35
- - Provide text alternatives for complex visual content
36
- - Test content parsing compatibility
30
+ Before creating ANY file, validate content per `~/.claude/olympus/rules/common/content-validation.md`:
31
+ Mermaid syntax, ASCII diagrams, special character escaping, text alternatives.
37
32
 
38
33
  ## MANDATORY: Question File Format
39
34
 
40
- **CRITICAL**: When asking questions at any phase, you MUST follow question format guidelines.
41
-
42
- **See `~/.claude/olympus/rules/common/question-format-guide.md` for complete question formatting rules including**:
43
- - Multiple choice format (A, B, C, D, E options)
44
- - [Answer]: tag usage
45
- - Answer validation and ambiguity resolution
35
+ Follow `~/.claude/olympus/rules/common/question-format-guide.md` for multiple choice format, [Answer]: tags, and validation.
46
36
 
47
37
  ## MANDATORY: Custom Welcome Message
48
38
 
49
- **CRITICAL**: When starting ANY software development request, you MUST display the welcome message.
50
-
51
- **How to Display Welcome Message**:
52
- 1. Load the welcome message from `~/.claude/olympus/rules/common/welcome-message.md`
53
- 2. Display the complete message to the user
54
- 3. This should only be done ONCE at the start of a new workflow
55
- 4. Do NOT load this file in subsequent interactions to save context space
56
-
57
- # Adaptive Software Development Workflow
39
+ At workflow start, load and display `~/.claude/olympus/rules/common/welcome-message.md` once.
58
40
 
59
41
  ---
60
42
 
61
- # INCEPTION PHASE
62
-
63
- **Purpose**: Planning, requirements gathering, and architectural decisions
43
+ # INCEPTION PHASE — Determine WHAT to build and WHY
64
44
 
65
- **Focus**: Determine WHAT to build and WHY
66
-
67
- **Stages in INCEPTION PHASE**:
68
- - Workspace Detection (ALWAYS)
69
- - Reverse Engineering (CONDITIONAL - Brownfield only)
70
- - Requirements Analysis (ALWAYS - Adaptive depth)
71
- - User Stories (CONDITIONAL)
72
- - Workflow Planning (ALWAYS)
73
- - Application Design (CONDITIONAL)
74
- - Units Generation (CONDITIONAL)
75
-
76
- ---
45
+ Each stage: load its rule file BEFORE executing, log all interactions in audit.md, wait for explicit user approval before proceeding (do not auto-advance).
77
46
 
78
- ## Workspace Detection (ALWAYS EXECUTE)
79
-
80
- 1. **MANDATORY**: Log initial user request in audit.md with complete raw input
81
- 2. Load all steps from `~/.claude/olympus/rules/inception/workspace-detection.md`
82
- 3. Execute workspace detection:
83
- - Check for existing aidlc-state.md (resume if found)
84
- - Scan workspace for existing code
85
- - Determine if brownfield or greenfield
86
- - Check for existing reverse engineering artifacts
87
- 4. Determine next phase: Reverse Engineering (if brownfield and no artifacts) OR Requirements Analysis
88
- 5. **MANDATORY**: Log findings in audit.md
89
- 6. Present completion message to user (see workspace-detection.md for message formats)
90
- 7. Automatically proceed to next phase
91
-
92
- ## Reverse Engineering (CONDITIONAL - Brownfield Only)
93
-
94
- **Execute IF**:
95
- - Existing codebase detected
96
- - No previous reverse engineering artifacts found
97
-
98
- **Skip IF**:
99
- - Greenfield project
100
- - Previous reverse engineering artifacts exist
101
-
102
- **Execution**:
103
- 1. **MANDATORY**: Log start of reverse engineering in audit.md
104
- 2. Load all steps from `~/.claude/olympus/rules/inception/reverse-engineering.md`
105
- 3. Execute reverse engineering — delegate to `explore-medium` for codebase analysis:
106
- - Analyze all packages and components
107
- - Generate a business overview of the whole system covering the business transactions
108
- - Generate architecture documentation
109
- - Generate code structure documentation
110
- - Generate API documentation
111
- - Generate component inventory
112
- - Generate Interaction Diagrams depicting how business transactions are implemented across components
113
- - Generate technology stack documentation
114
- - Generate dependencies documentation
115
-
116
- 4. **Wait for Explicit Approval**: Present detailed completion message (see reverse-engineering.md for message format) - DO NOT PROCEED until user confirms
117
- 5. **MANDATORY**: Log user's response in audit.md with complete raw input
118
-
119
- ## Requirements Analysis (ALWAYS EXECUTE - Adaptive Depth)
120
-
121
- **Always executes** but depth varies based on request clarity and complexity:
122
- - **Minimal**: Simple, clear request - just document intent analysis
123
- - **Standard**: Normal complexity - gather functional and non-functional requirements
124
- - **Comprehensive**: Complex, high-risk - detailed requirements with traceability
125
-
126
- **Execution**:
127
- 1. **MANDATORY**: Log any user input during this phase in audit.md
128
- 2. Load all steps from `~/.claude/olympus/rules/inception/requirements-analysis.md`
129
- 3. Execute requirements analysis:
130
- - Load reverse engineering artifacts (if brownfield)
131
- - Analyze user request (intent analysis)
132
- - Determine requirements depth needed
133
- - Assess current requirements
134
- - Ask clarifying questions (if needed)
135
- - Generate requirements document
136
- 4. Execute at appropriate depth (minimal/standard/comprehensive)
137
- 5. **Wait for Explicit Approval**: Follow approval format from requirements-analysis.md detailed steps - DO NOT PROCEED until user confirms
138
- 6. **MANDATORY**: Log user's response in audit.md with complete raw input
139
-
140
- ## User Stories (CONDITIONAL)
141
-
142
- **INTELLIGENT ASSESSMENT**: Use multi-factor analysis to determine if user stories add value:
143
-
144
- **ALWAYS Execute IF** (High Priority Indicators):
145
- - New user-facing features or functionality
146
- - Changes affecting user workflows or interactions
147
- - Multiple user types or personas involved
148
- - Complex business requirements with acceptance criteria needs
149
- - Cross-functional team collaboration required
150
- - Customer-facing API or service changes
151
- - New product capabilities or enhancements
152
-
153
- **LIKELY Execute IF** (Medium Priority - Assess Complexity):
154
- - Modifications to existing user-facing features
155
- - Backend changes that indirectly affect user experience
156
- - Integration work that impacts user workflows
157
- - Performance improvements with user-visible benefits
158
- - Security enhancements affecting user interactions
159
- - Data model changes affecting user data or reports
160
-
161
- **COMPLEXITY-BASED ASSESSMENT**: For medium priority cases, execute user stories if:
162
- - Request involves multiple components or services
163
- - Changes span multiple user touchpoints
164
- - Business logic is complex or has multiple scenarios
165
- - Requirements have ambiguity that stories could clarify
166
- - Implementation affects multiple user journeys
167
- - Change has significant business impact or risk
168
-
169
- **SKIP ONLY IF** (Low Priority - Simple Cases):
170
- - Pure internal refactoring with zero user impact
171
- - Simple bug fixes with clear, isolated scope
172
- - Infrastructure changes with no user-facing effects
173
- - Technical debt cleanup with no functional changes
174
- - Developer tooling or build process improvements
175
- - Documentation-only updates
176
-
177
- **ASSESSMENT CRITERIA**: When in doubt, favor inclusion of user stories for:
178
- - Requests with business stakeholder involvement
179
- - Changes requiring user acceptance testing
180
- - Features with multiple implementation approaches
181
- - Work that benefits from shared team understanding
182
- - Projects where requirements clarity is valuable
183
-
184
- **ASSESSMENT PROCESS**:
185
- 1. Analyze request complexity and scope
186
- 2. Identify user impact (direct or indirect)
187
- 3. Evaluate business context and stakeholder needs
188
- 4. Consider team collaboration benefits
189
- 5. Default to inclusion for borderline cases
190
-
191
- **Note**: If Requirements Analysis executed, Stories can reference and build upon those requirements.
192
-
193
- **User Stories has two parts within one stage**:
194
- 1. **Part 1 - Planning**: Create story plan with questions, collect answers, analyze for ambiguities, get approval
195
- 2. **Part 2 - Generation**: Execute approved plan to generate stories and personas
196
-
197
- **Execution**:
198
- 1. **MANDATORY**: Log any user input during this phase in audit.md
199
- 2. Load all steps from `~/.claude/olympus/rules/inception/user-stories.md`
200
- 3. **MANDATORY**: Perform intelligent assessment (Step 1 in user-stories.md) to validate user stories are needed
201
- 4. Load reverse engineering artifacts (if brownfield)
202
- 5. If Requirements exist, reference them when creating stories
203
- 6. Execute at appropriate depth (minimal/standard/comprehensive)
204
- 7. **PART 1 - Planning**: Create story plan with questions, wait for user answers, analyze for ambiguities, get approval
205
- 8. **PART 2 - Generation**: Execute approved plan to generate stories and personas
206
- 9. **Wait for Explicit Approval**: Follow approval format from user-stories.md detailed steps - DO NOT PROCEED until user confirms
207
- 10. **MANDATORY**: Log user's response in audit.md with complete raw input
208
-
209
- ## Workflow Planning (ALWAYS EXECUTE)
210
-
211
- 1. **MANDATORY**: Log any user input during this phase in audit.md
212
- 2. Load all steps from `~/.claude/olympus/rules/inception/workflow-planning.md`
213
- 3. **MANDATORY**: Load content validation rules from `~/.claude/olympus/rules/common/content-validation.md`
214
- 4. Load all prior context:
215
- - Reverse engineering artifacts (if brownfield)
216
- - Intent analysis
217
- - Requirements (if executed)
218
- - User stories (if executed)
219
- 5. Execute workflow planning:
220
- - Determine which phases to execute
221
- - Determine depth level for each phase
222
- - Create multi-package change sequence (if brownfield)
223
- - Generate workflow visualization (VALIDATE Mermaid syntax before writing)
224
- 6. **MANDATORY**: Validate all content before file creation per content-validation.md rules
225
- 7. **Wait for Explicit Approval**: Present recommendations using language from workflow-planning.md Step 9, emphasizing user control to override recommendations - DO NOT PROCEED until user confirms
226
- 8. **MANDATORY**: Log user's response in audit.md with complete raw input
227
-
228
- ## Application Design (CONDITIONAL)
229
-
230
- **Execute IF**:
231
- - New components or services needed
232
- - Component methods and business rules need definition
233
- - Service layer design required
234
- - Component dependencies need clarification
235
-
236
- **Skip IF**:
237
- - Changes within existing component boundaries
238
- - No new components or methods
239
- - Pure implementation changes
240
-
241
- **Execution**:
242
- 1. **MANDATORY**: Log any user input during this phase in audit.md
243
- 2. Load all steps from `~/.claude/olympus/rules/inception/application-design.md`
244
- 3. Load reverse engineering artifacts (if brownfield)
245
- 4. Execute at appropriate depth (minimal/standard/comprehensive) — delegate to `oracle` for architecture decisions
246
- 5. **Wait for Explicit Approval**: Present detailed completion message (see application-design.md for message format) - DO NOT PROCEED until user confirms
247
- 6. **MANDATORY**: Log user's response in audit.md with complete raw input
248
-
249
- ## Units Generation (CONDITIONAL)
250
-
251
- **Execute IF**:
252
- - System needs decomposition into multiple units of work
253
- - Multiple services or modules required
254
- - Complex system requiring structured breakdown
255
-
256
- **Skip IF**:
257
- - Single simple unit
258
- - No decomposition needed
259
- - Straightforward single-component implementation
260
-
261
- **Execution**:
262
- 1. **MANDATORY**: Log any user input during this phase in audit.md
263
- 2. Load all steps from `~/.claude/olympus/rules/inception/units-generation.md`
264
- 3. Load reverse engineering artifacts (if brownfield)
265
- 4. Execute at appropriate depth (minimal/standard/comprehensive)
266
- 5. **Wait for Explicit Approval**: Present detailed completion message (see units-generation.md for message format) - DO NOT PROCEED until user confirms
267
- 6. **MANDATORY**: Log user's response in audit.md with complete raw input
47
+ | Stage | Condition | Rule File |
48
+ |-------|-----------|-----------|
49
+ | Workspace Detection | ALWAYS | `~/.claude/olympus/rules/inception/workspace-detection.md` |
50
+ | Reverse Engineering | Brownfield only (no prior artifacts) | `~/.claude/olympus/rules/inception/reverse-engineering.md` |
51
+ | Requirements Analysis | ALWAYS (adaptive depth) | `~/.claude/olympus/rules/inception/requirements-analysis.md` |
52
+ | User Stories | Conditional (new user-facing features, multiple personas, complex requirements) | `~/.claude/olympus/rules/inception/user-stories.md` |
53
+ | Workflow Planning | ALWAYS | `~/.claude/olympus/rules/inception/workflow-planning.md` |
54
+ | Application Design | Conditional (new components/services needed) | `~/.claude/olympus/rules/inception/application-design.md` |
55
+ | Units Generation | Conditional (multiple units of work needed) | `~/.claude/olympus/rules/inception/units-generation.md` |
268
56
 
269
57
  ---
270
58
 
271
- # CONSTRUCTION PHASE
272
-
273
- **Purpose**: Detailed design, NFR implementation, and code generation
274
-
275
- **Focus**: Determine HOW to build it
276
-
277
- **Stages in CONSTRUCTION PHASE**:
278
- - Per-Unit Loop (executes for each unit):
279
- - Functional Design (CONDITIONAL, per-unit)
280
- - NFR Requirements (CONDITIONAL, per-unit)
281
- - NFR Design (CONDITIONAL, per-unit)
282
- - Infrastructure Design (CONDITIONAL, per-unit)
283
- - Code Generation (ALWAYS, per-unit)
284
- - Build and Test (ALWAYS - after all units complete)
285
-
286
- **Note**: Each unit is completed fully (design + code) before moving to the next unit.
287
-
288
- ---
59
+ # CONSTRUCTION PHASE — Determine HOW to build it
289
60
 
290
- ## Per-Unit Loop (Executes for Each Unit)
291
-
292
- **For each unit of work, execute the following stages in sequence:**
293
-
294
- Units are identified by name (e.g., `{unit-name}`) — not by numbered codes.
295
- Each unit produces its own directory under `aidlc-docs/{workflow-id}/construction/{unit-name}/`.
296
-
297
- ### Functional Design (CONDITIONAL, per-unit)
298
-
299
- **Execute IF**:
300
- - New data models or schemas
301
- - Complex business logic
302
- - Business rules need detailed design
303
-
304
- **Skip IF**:
305
- - Simple logic changes
306
- - No new business logic
307
-
308
- **Execution**:
309
- 1. **MANDATORY**: Log any user input during this stage in audit.md
310
- 2. Load all steps from `~/.claude/olympus/rules/construction/functional-design.md`
311
- 3. Execute functional design for this unit — delegate to `oracle-medium` for design decisions
312
- 4. **MANDATORY**: Present standardized 2-option completion message as defined in functional-design.md - DO NOT use emergent 3-option behavior
313
- 5. **Wait for Explicit Approval**: User must choose between "Request Changes" or "Continue to Next Stage" - DO NOT PROCEED until user confirms
314
- 6. **MANDATORY**: Log user's response in audit.md with complete raw input
315
-
316
- ### NFR Requirements (CONDITIONAL, per-unit)
317
-
318
- **Execute IF**:
319
- - Performance requirements exist
320
- - Security considerations needed
321
- - Scalability concerns present
322
- - Tech stack selection required
323
-
324
- **Skip IF**:
325
- - No NFR requirements
326
- - Tech stack already determined
327
-
328
- **Execution**:
329
- 1. **MANDATORY**: Log any user input during this stage in audit.md
330
- 2. Load all steps from `~/.claude/olympus/rules/construction/nfr-requirements.md`
331
- 3. Execute NFR assessment for this unit
332
- 4. **MANDATORY**: Present standardized 2-option completion message as defined in nfr-requirements.md - DO NOT use emergent behavior
333
- 5. **Wait for Explicit Approval**: User must choose between "Request Changes" or "Continue to Next Stage" - DO NOT PROCEED until user confirms
334
- 6. **MANDATORY**: Log user's response in audit.md with complete raw input
335
-
336
- ### NFR Design (CONDITIONAL, per-unit)
337
-
338
- **Execute IF**:
339
- - NFR Requirements was executed
340
- - NFR patterns need to be incorporated
341
-
342
- **Skip IF**:
343
- - No NFR requirements
344
- - NFR Requirements Assessment was skipped
345
-
346
- **Execution**:
347
- 1. **MANDATORY**: Log any user input during this stage in audit.md
348
- 2. Load all steps from `~/.claude/olympus/rules/construction/nfr-design.md`
349
- 3. Execute NFR design for this unit
350
- 4. **MANDATORY**: Present standardized 2-option completion message as defined in nfr-design.md - DO NOT use emergent behavior
351
- 5. **Wait for Explicit Approval**: User must choose between "Request Changes" or "Continue to Next Stage" - DO NOT PROCEED until user confirms
352
- 6. **MANDATORY**: Log user's response in audit.md with complete raw input
353
-
354
- ### Infrastructure Design (CONDITIONAL, per-unit)
355
-
356
- **Execute IF**:
357
- - Infrastructure services need mapping
358
- - Deployment architecture required
359
- - Cloud resources need specification
360
-
361
- **Skip IF**:
362
- - No infrastructure changes
363
- - Infrastructure already defined
364
-
365
- **Execution**:
366
- 1. **MANDATORY**: Log any user input during this stage in audit.md
367
- 2. Load all steps from `~/.claude/olympus/rules/construction/infrastructure-design.md`
368
- 3. Execute infrastructure design for this unit
369
- 4. **MANDATORY**: Present standardized 2-option completion message as defined in infrastructure-design.md - DO NOT use emergent behavior
370
- 5. **Wait for Explicit Approval**: User must choose between "Request Changes" or "Continue to Next Stage" - DO NOT PROCEED until user confirms
371
- 6. **MANDATORY**: Log user's response in audit.md with complete raw input
372
-
373
- ### Code Generation (ALWAYS EXECUTE, per-unit)
374
-
375
- **Always executes for each unit**
376
-
377
- **Code Generation is two-part within one stage**:
378
- 1. **Part 1 - Planning**: Create a detailed code generation plan with explicit steps and checkboxes; present to user for approval
379
- 2. **Part 2 - Generation**: Execute the approved plan to generate code, tests, and artifacts — delegate to `olympian` or `olympian-high` (for complex units)
380
-
381
- **Execution**:
382
- 1. **MANDATORY**: Log any user input during this stage in audit.md
383
- 2. Load all steps from `~/.claude/olympus/rules/construction/code-generation.md`
384
- 3. **PART 1 - Planning**: Create code generation plan with checkboxes, get user approval
385
- 4. **PART 2 - Generation**: Execute approved plan; delegate implementation to `olympian`
386
- 5. **MANDATORY**: Present standardized 2-option completion message as defined in code-generation.md - DO NOT use emergent behavior
387
- 6. **Wait for Explicit Approval**: User must choose between "Request Changes" or "Continue to Next Stage" - DO NOT PROCEED until user confirms
388
- 7. **MANDATORY**: Log user's response in audit.md with complete raw input
61
+ Each unit is completed fully (design + code) before moving to the next unit. Construction stages use standardized 2-option completion messages (Request Changes / Continue) — NO emergent 3-option behavior.
389
62
 
390
- ---
63
+ **Per-Unit Loop** (for each unit of work):
391
64
 
392
- ## Build and Test (ALWAYS EXECUTE)
65
+ | Stage | Condition | Rule File |
66
+ |-------|-----------|-----------|
67
+ | Functional Design | Conditional (new data models, complex business logic) | `~/.claude/olympus/rules/construction/functional-design.md` |
68
+ | NFR Requirements | Conditional (performance, security, scalability, tech stack) | `~/.claude/olympus/rules/construction/nfr-requirements.md` |
69
+ | NFR Design | Conditional (NFR Requirements was executed) | `~/.claude/olympus/rules/construction/nfr-design.md` |
70
+ | Infrastructure Design | Conditional (infra services, deployment arch) | `~/.claude/olympus/rules/construction/infrastructure-design.md` |
71
+ | Code Generation | ALWAYS (two-part: plan then generate) | `~/.claude/olympus/rules/construction/code-generation.md` |
393
72
 
394
- 1. **MANDATORY**: Log any user input during this phase in audit.md
395
- 2. Load all steps from `~/.claude/olympus/rules/construction/build-and-test.md`
396
- 3. Generate comprehensive build and test instructions — delegate to `qa-tester` for test execution:
397
- - Build instructions for all units
398
- - Unit test execution instructions
399
- - Integration test instructions (test interactions between units)
400
- - Performance test instructions (if applicable)
401
- - Additional test instructions as needed (contract tests, security tests, e2e tests)
402
- 4. Create instruction files in build-and-test/ subdirectory: build-instructions.md, unit-test-instructions.md, integration-test-instructions.md, performance-test-instructions.md, build-and-test-summary.md
403
- 5. **Wait for Explicit Approval**: Ask: "**Build and test instructions complete. Ready to proceed to Operations stage?**" - DO NOT PROCEED until user confirms
404
- 6. **MANDATORY**: Log user's response in audit.md with complete raw input
73
+ **Build and Test** (ALWAYS, after all units): Load `~/.claude/olympus/rules/construction/build-and-test.md`
405
74
 
406
75
  ---
407
76
 
408
- # OPERATIONS PHASE
409
-
410
- **Purpose**: Placeholder for future deployment and monitoring workflows
411
-
412
- **Focus**: How to DEPLOY and RUN it (future expansion)
413
-
414
- **Stages in OPERATIONS PHASE**:
415
- - Operations (PLACEHOLDER)
77
+ # OPERATIONS PHASE — Placeholder for future deployment/monitoring workflows
416
78
 
417
79
  ---
418
80
 
419
- ## Operations (PLACEHOLDER)
420
-
421
- **Status**: This stage is currently a placeholder for future expansion.
422
-
423
- The Operations stage will eventually include:
424
- - Deployment planning and execution
425
- - Monitoring and observability setup
426
- - Incident response procedures
427
- - Maintenance and support workflows
428
- - Production readiness checklists
429
-
430
- **Current State**: All build and test activities are handled in the CONSTRUCTION phase.
431
-
432
81
  ## Key Principles
433
82
 
434
83
  - **Adaptive Execution**: Only execute stages that add value
435
- - **Transparent Planning**: Always show execution plan before starting
436
84
  - **User Control**: User can request stage inclusion/exclusion
437
85
  - **Progress Tracking**: Update aidlc-state.md with executed and skipped stages
438
86
  - **Complete Audit Trail**: Log ALL user inputs and AI responses in audit.md with timestamps
439
- - **CRITICAL**: Capture user's COMPLETE RAW INPUT exactly as provided
440
- - **CRITICAL**: Never summarize or paraphrase user input in audit log
441
- - **CRITICAL**: Log every interaction, not just approvals
442
- - **Quality Focus**: Complex changes get full treatment, simple changes stay efficient
443
- - **Content Validation**: Always validate content before file creation per content-validation.md rules
444
- - **NO EMERGENT BEHAVIOR**: Construction phases MUST use standardized 2-option completion messages as defined in their respective rule files. DO NOT create 3-option menus or other emergent navigation patterns.
87
+ - Capture user's COMPLETE RAW INPUT exactly as provided (never summarize)
88
+ - Log every interaction, not just approvals
89
+ - **Content Validation**: Validate before file creation per content-validation.md rules
90
+ - **NO EMERGENT BEHAVIOR**: Construction phases use standardized 2-option completion messages only
445
91
 
446
92
  ## MANDATORY: Plan-Level Checkbox Enforcement
447
93
 
448
- ### MANDATORY RULES FOR PLAN EXECUTION
449
- 1. **NEVER complete any work without updating plan checkboxes**
450
- 2. **IMMEDIATELY after completing ANY step described in a plan file, mark that step [x]**
451
- 3. **This must happen in the SAME interaction where the work is completed**
452
- 4. **NO EXCEPTIONS**: Every plan step completion MUST be tracked with checkbox updates
453
-
454
- ### Two-Level Checkbox Tracking System
455
- - **Plan-Level**: Track detailed execution progress within each stage
456
- - **Stage-Level**: Track overall workflow progress in aidlc-state.md
457
- - **Update immediately**: All progress updates in SAME interaction where work is completed
94
+ 1. NEVER complete any work without updating plan checkboxes
95
+ 2. IMMEDIATELY mark steps `[x]` in the SAME interaction where work is completed
96
+ 3. Two-Level tracking: Plan-Level (detailed steps) + Stage-Level (aidlc-state.md)
458
97
 
459
98
  ## Prompts Logging Requirements
460
- - **MANDATORY**: Log EVERY user input (prompts, questions, responses) with timestamp in audit.md
461
- - **MANDATORY**: Capture user's COMPLETE RAW INPUT exactly as provided (never summarize)
462
- - **MANDATORY**: Log every approval prompt with timestamp before asking the user
463
- - **MANDATORY**: Record every user response with timestamp after receiving it
464
- - **CRITICAL**: ALWAYS append changes to EDIT audit.md file, NEVER use tools and commands that completely overwrite its contents
465
- - Use ISO 8601 format for timestamps (YYYY-MM-DDTHH:MM:SSZ)
466
- - Include stage context for each entry
99
+
100
+ - Log EVERY user input with ISO 8601 timestamp in audit.md
101
+ - Capture COMPLETE RAW INPUT exactly as provided (never summarize)
102
+ - ALWAYS append/edit audit.md NEVER overwrite
467
103
 
468
104
  ### Audit Log Format:
469
105
  ```markdown
470
- ## [Stage Name or Interaction Type]
106
+ ## [Stage Name]
471
107
  **Timestamp**: [ISO timestamp]
472
- **User Input**: "[Complete raw user input - never summarized]"
473
- **AI Response**: "[AI's response or action taken]"
474
- **Context**: [Stage, action, or decision made]
108
+ **User Input**: "[Complete raw user input]"
109
+ **AI Response**: "[Action taken]"
110
+ **Context**: [Stage/decision]
475
111
 
476
112
  ---
477
113
  ```
478
114
 
479
- ### Correct Tool Usage for audit.md
480
-
481
- CORRECT:
482
- 1. Read the audit.md file
483
- 2. Append/Edit the file to make changes
484
-
485
- WRONG:
486
- 1. Read the audit.md file
487
- 2. Completely overwrite the audit.md with the contents of what you read, plus the new changes you want to add to it
488
-
489
115
  ## Directory Structure
490
116
 
491
117
  ```text
492
118
  <WORKSPACE-ROOT>/ # APPLICATION CODE HERE
493
- ├── [project-specific structure] # Varies by project (see code-generation.md)
494
-
119
+ ├── [project-specific structure]
495
120
  ├── aidlc-docs/ # DOCUMENTATION ONLY
496
- │ ├── inception/ # INCEPTION PHASE
121
+ │ ├── inception/
497
122
  │ │ ├── plans/
498
123
  │ │ ├── reverse-engineering/ # Brownfield only
499
124
  │ │ ├── requirements/
500
125
  │ │ ├── user-stories/
501
126
  │ │ └── application-design/
502
- │ ├── construction/ # CONSTRUCTION PHASE
127
+ │ ├── construction/
503
128
  │ │ ├── plans/
504
129
  │ │ ├── {unit-name}/
505
130
  │ │ │ ├── functional-design/
@@ -508,59 +133,36 @@ WRONG:
508
133
  │ │ │ ├── infrastructure-design/
509
134
  │ │ │ └── code/ # Markdown summaries only
510
135
  │ │ └── build-and-test/
511
- │ ├── operations/ # OPERATIONS PHASE (placeholder)
136
+ │ ├── operations/ # Placeholder
512
137
  │ ├── aidlc-state.md
513
138
  │ └── audit.md
514
139
  ```
515
140
 
516
- **CRITICAL RULE**:
517
- - Application code: Workspace root (NEVER in aidlc-docs/)
518
- - Documentation: aidlc-docs/ only
519
- - Project structure: See code-generation.md for patterns by project type
141
+ Application code: workspace root (NEVER in aidlc-docs/). Documentation: aidlc-docs/ only.
520
142
 
521
143
  ## Olympus Agent Delegation
522
144
 
523
- When executing AI-DLC workflow stages, Olympus delegates to specialized agents:
524
-
525
- | Stage | Agent | Recommended Skills | Purpose |
526
- |-------|-------|--------------------|---------|
527
- | Discovery/Reverse Engineering | `explore-medium` | | Codebase analysis |
528
- | Reverse Engineering (visual) | `multimodal-looker` (optional) | — | Architecture diagram extraction |
529
- | Intent/Requirements | `prometheus` | | Strategic planning with interview |
530
- | Requirements Analysis | `metis` (optional) | | Blind spot analysis |
531
- | User Stories | `oracle-medium` | | Story and persona generation |
532
- | Application Design | `oracle` | | Architecture decisions |
533
- | Application Design (review) | `momus` (optional) | | Design quality gate |
534
- | Units Generation | `olympian` | — | Decomposition execution |
535
- | Units Generation (review) | `momus` (optional) | — | Decomposition quality gate |
536
- | Functional Design | `oracle-medium` | — | Design decisions |
537
- | NFR Requirements | `oracle-medium` | — | NFR assessment |
538
- | NFR Requirements (validation) | `librarian` (optional) | — | Technology doc verification |
539
- | NFR Design | `oracle-medium` | | Design pattern incorporation |
540
- | Infrastructure Design | `oracle-medium` | — | Infrastructure mapping |
541
- | Code Generation (backend) | `olympian` or `olympian-high` | `ascent`, `ultrawork` | Backend/general implementation |
542
- | Code Generation (frontend) | `frontend-engineer` or `frontend-engineer-high` | `ascent`, `ultrawork` | UI/component implementation |
543
- | Build & Test | `qa-tester` | `ascent` | Testing and verification |
544
- | Review | `momus` | — | Critical evaluation |
545
-
546
- Use the Task tool to delegate. Run independent stages in parallel when profitable.
547
-
548
- ## Recommended Skill Stacking for AI-DLC
549
-
550
- The `/plan` command starts the AI-DLC workflow. For maximum effectiveness during the construction phase, users should stack additional Olympus skills:
551
-
552
- | Combination | Effect | Best For |
553
- |-------------|--------|----------|
554
- | `/plan` alone | Structured workflow with agent delegation | Standard features, single-unit work |
555
- | `/plan` + `/ascent` | Adds persistence — orchestrator cannot stop until all units complete | Multi-unit construction loops |
556
- | `/plan` + `/ultrawork` | Adds parallel execution and verification guarantees | Large implementations, independent units |
557
- | `/plan` + `/ascent` + `/ultrawork` | Full Olympus power: parallel, persistent, verified | Complex multi-unit features |
558
-
559
- **How skills enhance the orchestrator during AI-DLC**:
560
- - **`/ascent`** — Ensures the orchestrator persists through all construction units without stopping early. Enforces todo tracking and continuation.
561
- - **`/ultrawork`** — Enables parallel Task calls for independent units, adds mandatory independent verification after every agent delegation, and enforces zero-tolerance for incomplete work.
562
- - Skills modify the **orchestrator's behavior** (how it manages the workflow), not the sub-agents. Sub-agents are always delegated to via the Task tool with their own specific prompts.
145
+ | Stage | Agent | Purpose |
146
+ |-------|-------|---------|
147
+ | Discovery/Reverse Engineering | `explore-medium` | Codebase analysis |
148
+ | Intent/Requirements | `prometheus` | Strategic planning with interview |
149
+ | User Stories | `oracle-medium` | Story and persona generation |
150
+ | Application Design | `oracle` | Architecture decisions |
151
+ | Functional/NFR/Infrastructure Design | `oracle-medium` | Design decisions |
152
+ | Code Generation (backend) | `olympian` or `olympian-high` | Implementation |
153
+ | Code Generation (frontend) | `frontend-engineer` or `frontend-engineer-high` | UI implementation |
154
+ | Build & Test | `qa-tester` | Testing and verification |
155
+ | Review | `momus` | Critical evaluation |
156
+
157
+ ## Skill Stacking for AI-DLC
158
+
159
+ | Combination | Effect |
160
+ |-------------|--------|
161
+ | `/plan` alone | Structured workflow with agent delegation |
162
+ | `/plan` + `/ascent` | Adds persistence cannot stop until all units complete |
163
+ | `/plan` + `/ultrawork` | Adds parallel execution and verification guarantees |
164
+ | `/plan` + `/ascent` + `/ultrawork` | Full power: parallel, persistent, verified |
563
165
 
564
166
  ## Extensions
565
167
 
566
- Custom project-specific rule extensions can be placed in `.aidlc-rule-details/extensions/` at the workspace root. Files in that directory are loaded in addition to the standard rules above and take precedence for any rules they redefine.
168
+ Custom extensions in `.aidlc-rule-details/extensions/` at workspace root take precedence over standard rules.