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.
- package/.claude-plugin/plugin.json +1 -1
- package/dist/features/workflow-engine/claude-md-merger.d.ts.map +1 -1
- package/dist/features/workflow-engine/claude-md-merger.js +3 -127
- package/dist/features/workflow-engine/claude-md-merger.js.map +1 -1
- package/dist/hooks/olympus-hooks.cjs +5 -127
- package/dist/installer/index.d.ts +1 -1
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +11 -3
- package/dist/installer/index.js.map +1 -1
- package/package.json +1 -1
- package/resources/rules/core-workflow.md +68 -466
|
@@ -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,
|
|
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
|
-
|
|
105
|
-
|
|
106
|
-
|
|
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){
|
|
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**: ${
|
|
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
|
-
|
|
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.
|
|
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,
|
|
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"}
|
package/dist/installer/index.js
CHANGED
|
@@ -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.
|
|
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
|
-
|
|
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":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AACpH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,0CAA0C;AAC1C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC;;;;GAIG;AACH,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AAExG,OAAO,EACL,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,SAAS,EACT,kBAAkB,EAClB,qBAAqB,EAErB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,0CAA0C;AAC1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,CAAC;AAE7E,gDAAgD;AAChD,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAoB/B;;;;;GAKG;AACH,SAAS,WAAW,CAAC,OAAe;IAClC,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClE,OAAO;QACL,KAAK,EAAE,OAAO,IAAI,gBAAgB;QAClC,OAAO;QACP,QAAQ,EAAE,gBAAgB;KAC3B,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC;QAC9D,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,uEAAuE;AACvE,MAAM,0BAA0B,GAAG,8BAA8B,CAAC;AAElE;;;GAGG;AACH,SAAS,eAAe,CAAC,OAAe,EAAE,OAAgB;IACxD,IAAI,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC;IAC7B,OAAO,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;GAMG;AACH,SAAS,qBAAqB,CAAC,WAAmB,EAAE,GAA0B;IAC5E,6DAA6D;IAC7D,MAAM,kBAAkB,GAAG;QACzB,SAAS;QACT,iBAAiB;QACjB,oBAAoB;QACpB,kBAAkB;QAClB,qBAAqB;QACrB,kBAAkB;QAClB,iBAAiB;QACjB,qBAAqB;QACrB,wBAAwB;QACxB,wBAAwB;QACxB,iBAAiB;QACjB,0BAA0B;QAC1B,yBAAyB;QACzB,2BAA2B;QAC3B,2BAA2B;QAC3B,yBAAyB;QACzB,iBAAiB;QACjB,qBAAqB;QACrB,gBAAgB;KACjB,CAAC;IAEF,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC5C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACrB,YAAY,EAAE,CAAC;YACjB,CAAC;YAAC,MAAM,CAAC;gBACP,mBAAmB;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,MAAM,OAAO,GAAG;QACd,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS;QACzD,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe;QACxD,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB;QACjE,kBAAkB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO;KACtE,CAAC;IACF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,yCAAyC;gBACzC,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;gBACxC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzB,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,mBAAmB;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,GAAG,CAAC,gBAAgB,YAAY,yBAAyB,CAAC,CAAC;IAC7D,CAAC;IAED,0EAA0E;IAC1E,MAAM,qBAAqB,GAAG;QAC5B,YAAY;QACZ,WAAW;QACX,eAAe;QACf,YAAY;QACZ,eAAe;QACf,WAAW;QACX,cAAc;QACd,oBAAoB;QACpB,WAAW;QACX,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,iBAAiB;QACjB,kBAAkB;QAClB,kBAAkB;QAClB,aAAa;QACb,WAAW;QACX,oBAAoB;QACpB,eAAe;QACf,WAAW;QACX,kBAAkB;KACnB,CAAC;IACF,KAAK,MAAM,UAAU,IAAI,qBAAqB,EAAE,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACjD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,UAAU,CAAC,UAAU,CAAC,CAAC;gBACvB,GAAG,CAAC,oBAAoB,UAAU,EAAE,CAAC,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACP,mBAAmB;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;YAC3C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACtD,GAAG,CAAC,qCAAqC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,mBAAmB;QACrB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,QAAgB,EAAE,GAA0B;IAC1E,MAAM,eAAe,GAAG;QACtB,iBAAiB;QACjB,oBAAoB;QACpB,uBAAuB;QACvB,qBAAqB;KACtB,CAAC;IAEF,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC1C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACrB,YAAY,EAAE,CAAC;YACjB,CAAC;YAAC,MAAM,CAAC;gBACP,mBAAmB;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,GAAG,CAAC,gBAAgB,YAAY,2BAA2B,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CACpB,SAAiB,EACjB,KAAc,EACd,OAAgB,EAChB,GAA0B;IAE1B,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAEhF,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC3C,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACnC,GAAG,CAAC,cAAc,QAAQ,mBAAmB,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,eAAe,CAAC,WAAW,CAAC,UAAU,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;YAC5E,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACjC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,GAAG,CAAC,eAAe,QAAQ,EAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CACpB,SAAiB,EACjB,KAAc,EACd,OAAgB,EAChB,GAA0B;IAE1B,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,WAAW,CAAC,gBAAgB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SACrE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEpB,KAAK,MAAM,SAAS,IAAI,SAAS,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,sCAAsC;QAClD,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAE3C,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACnC,GAAG,CAAC,cAAc,SAAS,4BAA4B,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1C,CAAC;YACD,MAAM,OAAO,GAAG,eAAe,CAAC,WAAW,CAAC,UAAU,SAAS,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;YACtF,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACjC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,WAAW,CAAC,CAAC;YACxC,GAAG,CAAC,eAAe,SAAS,WAAW,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CACnB,QAAgB,EAChB,OAAgB,EAChB,GAA0B;IAE1B,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,WAAW,CAAC,eAAe,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SACjE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEpB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC3C,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7C,MAAM,SAAS,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9E,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,eAAe,CAAC,WAAW,CAAC,SAAS,KAAK,IAAI,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;YACpF,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;YACrD,SAAS,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,MAAM,aAAa,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAClF,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,eAAe,CAAC,WAAW,CAAC,SAAS,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3E,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;QACjD,SAAS,EAAE,CAAC;IACd,CAAC;IAED,GAAG,CAAC,eAAe,SAAS,oBAAoB,QAAQ,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,eAAe,CACtB,OAAe,EACf,KAAc,EACd,OAAgB,EAChB,GAA0B;IAE1B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAChD,MAAM,eAAe,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,CAAC;IAEzE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,oCAAoC;QACpC,aAAa,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QAC7C,GAAG,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,qCAAqC;QACrC,aAAa,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QAC7C,GAAG,CAAC,aAAa,QAAQ,YAAY,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IAED,4CAA4C;IAC5C,MAAM,eAAe,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC5D,IAAI,eAAe,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;QACzD,4DAA4D;QAC5D,gFAAgF;QAChF,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAEhF,IAAI,aAAa,EAAE,CAAC;YAClB,aAAa,CAAC,YAAY,EAAE,GAAG,aAAa,OAAO,eAAe,EAAE,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QAC/C,CAAC;QACD,GAAG,CAAC,gCAAgC,QAAQ,EAAE,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,0EAA0E;IAC1E,GAAG,CAAC,KAAK,QAAQ,oEAAoE,CAAC,CAAC;AACzF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;IACvF,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAExD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QACjF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QAC3C,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACjB,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,cAAc,UAAU,EAAE,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;QACzD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,UAA0B,EAAE;IAClD,MAAM,MAAM,GAAkB;QAC5B,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,EAAE;QACnB,eAAe,EAAE,EAAE;QACnB,eAAe,EAAE,KAAK;QACtB,MAAM,EAAE,EAAE;KACX,CAAC;IAEF,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE;QAC1B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;IAEF,qDAAqD;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;IACnF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAE,gCAAgC;IACpF,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAE,mCAAmC;IAC/F,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IAE1F,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAC1C,CAAC;IAED,gEAAgE;IAChE,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IACrC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACrB,GAAG,CAAC,oBAAoB,SAAS,CAAC,QAAQ,qBAAqB,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QACpF,IAAI,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,SAAS,CAAC,QAAQ,6CAA6C,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;YAClH,MAAM,CAAC,OAAO,GAAG,gCAAgC,SAAS,CAAC,QAAQ,YAAY,CAAC;YAChF,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,qDAAqD;IACvD,CAAC;IAED,oBAAoB;IACpB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,GAAG,CAAC,aAAa,OAAO,CAAC,QAAQ,KAAK,kBAAkB,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC;IAClG,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;QACrD,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACzD,IAAI,SAAS,EAAE,EAAE,CAAC;YAChB,GAAG,CAAC,yEAAyE,CAAC,CAAC;QACjF,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAC1D,CAAC;QACD,2DAA2D;IAC7D,CAAC;IAED,IAAI,CAAC;QACH,qBAAqB;QACrB,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,QAAQ,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,wDAAwD;QACxD,GAAG,CAAC,gCAAgC,CAAC,CAAC;QACtC,qBAAqB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAExC,6DAA6D;QAC7D,MAAM,eAAe,GAAG;YACtB,gBAAgB;SACjB,CAAC;QACF,KAAK,MAAM,WAAW,IAAI,eAAe,EAAE,CAAC;YAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACrD,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC1D,GAAG,CAAC,0BAA0B,WAAW,GAAG,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAED,iBAAiB;QACjB,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACvC,MAAM,CAAC,eAAe,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEzF,0CAA0C;QAC1C,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAC5B,MAAM,CAAC,eAAe,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEzF,2EAA2E;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACnD,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QACxC,sBAAsB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAEtC,mDAAmD;QACnD,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACvC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAE7C,yCAAyC;QACzC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAC/B,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEhE,0DAA0D;QAC1D,GAAG,CAAC,gDAAgD,CAAC,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAChD,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC7B,MAAM,mBAAmB,GAAG,eAAe,CAAC,WAAW,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACpG,MAAM,cAAc,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBAC3D,MAAM,MAAM,GAAG,eAAe,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;gBACpE,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,CAAC;gBAC/E,GAAG,CAAC,sCAAsC,QAAQ,EAAE,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,gEAAgE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChI,CAAC;QAED,0EAA0E;QAC1E,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;YACxD,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC9B,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;gBACxE,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE;oBACnC,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,WAAW,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;wBACpE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;4BAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gCACxB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;gCAClE,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oCACvB,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;gCAC5C,CAAC;4BACH,CAAC;wBACH,CAAC;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC,CAAC,EAAE,CAAC;gBAEL,IAAI,sBAAsB,EAAE,CAAC;oBAC3B,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,sBAAsB,CAAC;oBACtD,IAAI,WAAW,GAAgG,YAAY,CAAC;oBAC5H,IAAI,CAAC;wBACH,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;wBACrD,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC;4BACpB,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC;wBAChC,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;oBACT,CAAC;oBAED,MAAM,eAAe,GAAG,UAAU,CAAC,mBAAmB,CAAC;wBACrD,CAAC,CAAC,YAAY,CAAC,mBAAmB,EAAE,OAAO,CAAC;wBAC5C,CAAC,CAAC,EAAE,CAAC;oBACP,MAAM,aAAa,GAAG,eAAe,CAAC,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBACtG,6FAA6F;oBAC7F,oEAAoE;oBACpE,IAAI,KAAa,CAAC;oBAClB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;wBAClB,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;wBAC7F,KAAK,GAAG,GAAG,YAAY,cAAc,aAAa,EAAE,CAAC;oBACvD,CAAC;yBAAM,CAAC;wBACN,KAAK,GAAG,aAAa,CAAC;oBACxB,CAAC;oBACD,MAAM,MAAM,GAAG,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;oBAEvD,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;oBACxD,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;wBAClC,SAAS,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBACnD,CAAC;oBACD,aAAa,CAAC,mBAAmB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;oBACpD,GAAG,CAAC,6DAA6D,UAAU,GAAG,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,gFAAgF,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChJ,CAAC;QAED,kEAAkE;QAClE,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,qBAAqB,EAAE,EAAE,CAAC;gBAC5B,qEAAqE;gBACrE,GAAG,CAAC,oCAAoC,CAAC,CAAC;gBAC1C,MAAM,eAAe,GAAG,mBAAmB,EAAE,CAAC;gBAC9C,IAAI,eAAe,EAAE,CAAC;oBACpB,GAAG,CAAC,yCAAyC,CAAC,CAAC;gBACjD,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,gFAAgF,CAAC,CAAC;oBACtF,iCAAiC;oBACjC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;oBACrC,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC3D,GAAG,CAAC,cAAc,QAAQ,6BAA6B,CAAC,CAAC;oBACzD,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;wBAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;wBAC1C,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;wBACjC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;4BACjB,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;wBAC7B,CAAC;wBACD,GAAG,CAAC,eAAe,QAAQ,EAAE,CAAC,CAAC;oBACjC,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,kCAAkC;gBAClC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC3D,GAAG,CAAC,cAAc,QAAQ,kBAAkB,CAAC,CAAC;gBAE9C,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBAC1C,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;wBAC3C,GAAG,CAAC,cAAc,QAAQ,mBAAmB,CAAC,CAAC;oBACjD,CAAC;yBAAM,CAAC;wBACN,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;wBACjC,wDAAwD;wBACxD,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;4BACjB,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;wBAC7B,CAAC;wBACD,GAAG,CAAC,eAAe,QAAQ,EAAE,CAAC,CAAC;oBACjC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,oEAAoE,CAAC,CAAC;QAC5E,CAAC;QAED,2EAA2E;QAC3E,IAAI,QAAQ,IAAI,qBAAqB,EAAE,EAAE,CAAC;YACxC,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACrD,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;oBACpD,gEAAgE;oBAChE,MAAM,aAAa,GAAG,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;oBAC7D,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,sBAAsB,CAAC;wBAC/C,aAAa,CAAC,QAAQ,CAAC,mBAAmB,CAAC;wBAC3C,aAAa,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;oBAE9D,IAAI,QAAQ,EAAE,CAAC;wBACb,4BAA4B;wBAC5B,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;wBACzC,UAAU,CAAC,eAAe,CAAC,CAAC;wBAC5B,GAAG,CAAC,8CAA8C,CAAC,CAAC;wBACpD,GAAG,CAAC,mDAAmD,CAAC,CAAC;oBAC3D,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,GAAG,CAAC,4DAA4D,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC;YAED,2DAA2D;YAC3D,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;YAClF,IAAI,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,MAAM,aAAa,GAAG,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;oBAC9D,IAAI,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;wBACzC,UAAU,CAAC,gBAAgB,CAAC,CAAC;wBAC7B,GAAG,CAAC,2CAA2C,CAAC,CAAC;wBACjD,GAAG,CAAC,uDAAuD,CAAC,CAAC;oBAC/D,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,GAAG,CAAC,4DAA4D,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC;YAED,gEAAgE;YAChE,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,UAAU,GAAG;oBACjB,sBAAsB,EAAE,qBAAqB;oBAC7C,mBAAmB,EAAE,kBAAkB;oBACvC,qBAAqB,EAAE,oBAAoB;oBAC3C,uBAAuB,EAAE,sBAAsB;oBAC/C,8BAA8B;oBAC9B,qBAAqB;oBACrB,gCAAgC;iBACjC,CAAC;gBAEF,IAAI,YAAY,GAAG,CAAC,CAAC;gBACrB,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;oBAChC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBAC1C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;wBAC3B,IAAI,CAAC;4BACH,UAAU,CAAC,UAAU,CAAC,CAAC;4BACvB,YAAY,EAAE,CAAC;wBACjB,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACX,gBAAgB;wBAClB,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;oBACrB,GAAG,CAAC,cAAc,YAAY,qBAAqB,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;QACH,CAAC;QAED,6FAA6F;QAC7F,IAAI,YAAY,EAAE,CAAC;YACjB,GAAG,CAAC,uCAAuC,CAAC,CAAC;YAC7C,IAAI,CAAC;gBACH,IAAI,gBAAgB,GAA4B,EAAE,CAAC;gBACnD,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC7B,MAAM,eAAe,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;oBAC5D,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBACjD,CAAC;gBAED,6CAA6C;gBAC7C,MAAM,aAAa,GAAG,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE,CAA4B,CAAC;gBAChF,MAAM,WAAW,GAAG,sBAAsB,EAAE,CAAC;gBAC7C,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC;gBAEnC,0DAA0D;gBAC1D,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/D,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC9B,aAAa,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC;wBACtC,GAAG,CAAC,WAAW,SAAS,OAAO,CAAC,CAAC;oBACnC,CAAC;yBAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;wBACzB,aAAa,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC;wBACtC,GAAG,CAAC,aAAa,SAAS,iBAAiB,CAAC,CAAC;oBAC/C,CAAC;yBAAM,CAAC;wBACN,GAAG,CAAC,KAAK,SAAS,oCAAoC,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC;gBAED,gBAAgB,CAAC,KAAK,GAAG,aAAa,CAAC;gBAEvC,sBAAsB;gBACtB,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACvE,GAAG,CAAC,qCAAqC,CAAC,CAAC;gBAC3C,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;YAChC,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACZ,GAAG,CAAC,mEAAmE,CAAC,CAAC;gBACzE,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC;YACjC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,wCAAwC,CAAC,CAAC;YAC9C,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC;QACjC,CAAC;QAED,kFAAkF;QAClF,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,GAAG,CAAC,sCAAsC,CAAC,CAAC;YAC5C,IAAI,CAAC;gBACH,mDAAmD;gBACnD,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;gBAC5D,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5C,CAAC;gBAED,MAAM,iBAAiB,GAAG;oBACxB,IAAI,EAAE,YAAY;oBAClB,OAAO,EAAE,OAAO;oBAChB,WAAW,EAAE,8EAA8E;oBAC3F,MAAM,EAAE;wBACN,IAAI,EAAE,SAAS;wBACf,GAAG,EAAE,4BAA4B;qBAClC;oBACD,QAAQ,EAAE,2CAA2C;oBACrD,UAAU,EAAE,oCAAoC;oBAChD,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE;wBACR,aAAa;wBACb,eAAe;wBACf,SAAS;wBACT,WAAW;wBACX,QAAQ;wBACR,YAAY;wBACZ,cAAc;qBACf;iBACF,CAAC;gBAEF,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;gBACtD,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC1E,GAAG,CAAC,sCAAsC,CAAC,CAAC;gBAE5C,wCAAwC;gBACxC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;gBACtD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC5B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7C,CAAC;gBAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;gBACxE,IAAI,gBAAgB,GAA0D;oBAC5E,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ,CAAC;gBAEF,IAAI,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;oBACrC,MAAM,OAAO,GAAG,YAAY,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;oBAC5D,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACzC,CAAC;gBAED,gBAAgB,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG;oBACvC,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,iBAAiB;iBACxB,CAAC;gBAEF,aAAa,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC/E,GAAG,CAAC,wCAAwC,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACxE,GAAG,CAAC,qDAAqD,QAAQ,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,MAAM,eAAe,GAAG;YACtB,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,WAAoB,CAAC,CAAC,CAAC,KAAc;YACpE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC;QACF,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACrE,GAAG,CAAC,wBAAwB,CAAC,CAAC;QAE9B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;QACnD,MAAM,CAAC,OAAO,GAAG,0BAA0B,MAAM,CAAC,eAAe,CAAC,MAAM,YAAY,MAAM,CAAC,eAAe,CAAC,MAAM,gBAAgB,SAAS,QAAQ,CAAC;IAErJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjC,MAAM,CAAC,OAAO,GAAG,wBAAwB,YAAY,EAAE,CAAC;IAC1D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,UAAU,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM,EAAE,IAAI,CAAC,aAAa;SAC3B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -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
|
-
|
|
32
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
-
|
|
440
|
-
-
|
|
441
|
-
|
|
442
|
-
- **
|
|
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
|
-
|
|
449
|
-
|
|
450
|
-
|
|
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
|
-
|
|
461
|
-
-
|
|
462
|
-
-
|
|
463
|
-
-
|
|
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
|
|
106
|
+
## [Stage Name]
|
|
471
107
|
**Timestamp**: [ISO timestamp]
|
|
472
|
-
**User Input**: "[Complete raw user input
|
|
473
|
-
**AI Response**: "[
|
|
474
|
-
**Context**: [Stage
|
|
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]
|
|
494
|
-
│
|
|
119
|
+
├── [project-specific structure]
|
|
495
120
|
├── aidlc-docs/ # DOCUMENTATION ONLY
|
|
496
|
-
│ ├── inception/
|
|
121
|
+
│ ├── inception/
|
|
497
122
|
│ │ ├── plans/
|
|
498
123
|
│ │ ├── reverse-engineering/ # Brownfield only
|
|
499
124
|
│ │ ├── requirements/
|
|
500
125
|
│ │ ├── user-stories/
|
|
501
126
|
│ │ └── application-design/
|
|
502
|
-
│ ├── construction/
|
|
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/ #
|
|
136
|
+
│ ├── operations/ # Placeholder
|
|
512
137
|
│ ├── aidlc-state.md
|
|
513
138
|
│ └── audit.md
|
|
514
139
|
```
|
|
515
140
|
|
|
516
|
-
|
|
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
|
-
|
|
524
|
-
|
|
525
|
-
|
|
|
526
|
-
|
|
527
|
-
|
|
|
528
|
-
|
|
|
529
|
-
|
|
|
530
|
-
|
|
|
531
|
-
|
|
|
532
|
-
|
|
|
533
|
-
|
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
|
538
|
-
|
|
539
|
-
|
|
|
540
|
-
|
|
|
541
|
-
|
|
|
542
|
-
|
|
|
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
|
|
168
|
+
Custom extensions in `.aidlc-rule-details/extensions/` at workspace root take precedence over standard rules.
|