olympus-ai 4.4.5 → 4.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "olympus-ai",
3
- "version": "4.4.5",
3
+ "version": "4.4.7",
4
4
  "description": "Olympus: Multi-agent orchestration for Claude Code. Summon the gods of code.",
5
5
  "author": {
6
6
  "name": "mikev10",
@@ -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.4.5";
27
+ export declare const VERSION = "4.4.7";
28
28
  /** Installation result */
29
29
  export interface InstallResult {
30
30
  success: boolean;
@@ -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.4.5';
43
+ export const VERSION = '4.4.7';
44
44
  /**
45
45
  * Read a content file from the resources/ directory.
46
46
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "olympus-ai",
3
- "version": "4.4.5",
3
+ "version": "4.4.7",
4
4
  "description": "Olympus: Multi-agent orchestration for Claude Code. Summon the gods of code.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -31,6 +31,12 @@ B) Review a previous stage ([Show available stages])
31
31
  - **Application Design**: Read application-design artifacts (components.md, component-methods.md, services.md)
32
32
  - **Design (Units)**: Read unit-of-work.md, unit-of-work-dependency.md, unit-of-work-story-map.md
33
33
  - **Per-Unit Design**: Read functional-design.md, nfr-requirements.md, nfr-design.md, infrastructure-design.md
34
+ - **Construction In-Progress Artifacts**: Before creating any new construction artifacts, scan for existing ones:
35
+ - Check `construction/plans/` for code generation plans
36
+ - Check `construction/u-*-{unit-name}/` for legacy per-unit artifacts
37
+ - Check for partially-generated code files referenced in any existing plan
38
+ - Present an inventory of found artifacts to the user: "Found N existing construction artifacts: [list]. These will be loaded as the starting point."
39
+ - Do NOT create new artifacts that duplicate existing ones — always check first
34
40
  - **Code Stages**: Read all code files, plans, AND all previous artifacts
35
41
  4. **Smart Context Loading by Stage**:
36
42
  - **Early Stages (Workspace Detection, Reverse Engineering)**: Load workspace analysis
@@ -51,6 +51,19 @@ When managing code generation, the orchestrator MUST leverage Olympus capabiliti
51
51
 
52
52
  # PART 1: PLANNING
53
53
 
54
+ ## Step 0: Check for Existing Artifacts (Idempotency Gate)
55
+ - [ ] Scan `aidlc-docs/{workflow-id}/construction/` for any existing code generation plan for this unit
56
+ - Check canonical path: `construction/plans/{unit-name}-code-generation-plan.md`
57
+ - Check legacy paths: `construction/u-*-{unit-name}/code-generation-plan*`, `construction/{unit-name}/code-generation-plan*`
58
+ - [ ] If a plan exists:
59
+ - Read it and present a summary to the user
60
+ - Ask: "An existing code generation plan was found at `{path}`. Would you like to (A) reuse it as-is, (B) update it, or (C) replace it with a new plan?"
61
+ - If at a non-canonical path, migrate it to the canonical location: `construction/plans/{unit-name}-code-generation-plan.md`
62
+ - If reusing (A): skip to Step 7 (approval) with the existing plan
63
+ - If updating (B): load it as the starting point for Steps 1-6
64
+ - If replacing (C): proceed to Step 1 as normal
65
+ - [ ] If no plan exists: proceed to Step 1
66
+
54
67
  ## Step 1: Analyze Unit Context
55
68
  - [ ] Read unit design artifacts from Unit Design Generation
56
69
  - [ ] Read unit story map to understand assigned stories
@@ -92,7 +105,7 @@ When managing code generation, the orchestrator MUST leverage Olympus capabiliti
92
105
  - Service boundaries and responsibilities
93
106
 
94
107
  ## Step 4: Create Unit Plan Document
95
- - [ ] Save complete plan as `aidlc-docs/construction/plans/{unit-name}-code-generation-plan.md`
108
+ - [ ] Save complete plan as `aidlc-docs/{workflow-id}/construction/plans/{unit-name}-code-generation-plan.md` (CANONICAL PATH — do not use any other location)
96
109
  - [ ] Include step numbering (Step 1, Step 2, etc.)
97
110
  - [ ] Include unit context and dependencies
98
111
  - [ ] Include story traceability
@@ -239,6 +252,12 @@ When managing code generation, the orchestrator MUST leverage Olympus capabiliti
239
252
  - **STORY TRACEABILITY**: Mark unit stories [x] when functionality is implemented
240
253
  - **RESPECT DEPENDENCIES**: Only implement when unit dependencies are satisfied
241
254
 
255
+ ### Canonical Path Rules
256
+ - **Code generation plans MUST be saved at**: `aidlc-docs/{workflow-id}/construction/plans/{unit-name}-code-generation-plan.md`
257
+ - Do NOT create code generation plans at any other path (e.g., `construction/u-nnn-{name}/`, `construction/{name}/`)
258
+ - If a plan is found at a non-canonical path during Step 0, migrate it to the canonical location before proceeding
259
+ - Per-unit directories (`construction/u-nnn-{name}/`) are reserved for construction output artifacts (code summaries, documentation), NOT plans
260
+
242
261
  ### Automation Friendly Code Rules
243
262
  When generating UI code (web, mobile, desktop), ensure elements are automation-friendly:
244
263
  - Add `data-testid` attributes to interactive elements (buttons, inputs, links, forms)
@@ -23,6 +23,16 @@ Determine which mode to run based on the input:
23
23
 
24
24
  If the input already contains substantial context (e.g., the user pasted a feature description, a ticket, or a problem statement), extract what you can from it and confirm rather than re-asking. The goal is a conversation, not a questionnaire.
25
25
 
26
+ ### Thin-Context Handling
27
+
28
+ When the input is vague or minimal (e.g., "we need password reset" with no further detail), don't generate a brief full of assumptions. Instead:
29
+
30
+ 1. **Generate the brief anyway** — a brief with "Unknown" sections is better than no brief. Fill in what you can reasonably infer from the request itself.
31
+ 2. **Mark unknowns explicitly** — for each unknown section, include the specific questions you would have asked. This turns the brief into a structured interview guide for the next conversation. Example: "Unknown — Who is requesting this? What is the business impact? Is there a deadline?"
32
+ 3. **Invest in Notes for Elaboration** — when context is thin, this section becomes the most valuable part of the brief. List the open questions, risks, and decisions the elaboration team needs to resolve.
33
+
34
+ The goal is that even a thin-context brief is useful — it captures what is known, makes the unknowns visible, and gives the team a structured starting point for discussion.
35
+
26
36
  ---
27
37
 
28
38
  ## Single Mode
@@ -57,7 +67,7 @@ Have a natural conversation to understand the user's intent. You're trying to fi
57
67
 
58
68
  ### Generating the Brief
59
69
 
60
- Once you have enough context, generate the brief. Don't wait for perfect information — a brief with a few "TBD" sections is better than no brief.
70
+ Once you have enough context, generate the brief. Don't wait for perfect information — a brief with a few "Unknown" sections is better than no brief.
61
71
 
62
72
  Create the directory if needed, then write the brief:
63
73
 
@@ -69,7 +79,7 @@ Create the directory if needed, then write the brief:
69
79
  # Intent Brief: [Name]
70
80
 
71
81
  **Date:** [ISO date]
72
- **Author:** [who created it — ask if not obvious]
82
+ **Author:** [who created it — ask if not obvious, default to "Unknown" if not provided]
73
83
  **Status:** Draft
74
84
 
75
85
  ## Problem
@@ -143,6 +153,8 @@ Help the user sequence the items. Ask about:
143
153
 
144
154
  If the user already has a priority order, confirm it rather than re-deriving it.
145
155
 
156
+ **Partial priority ordering:** When some items have an explicit priority (e.g., "Mario requested the first 3") but others don't, preserve the explicit ordering for those items and sequence the remaining items using dependency analysis and risk assessment. Explain your reasoning for the inferred positions — the user should understand why item 4 comes before item 5.
157
+
146
158
  ### Step 4: Generate All Briefs
147
159
 
148
160
  Write each brief to `.olympus/briefs/{kebab-case-name}.md` using the same template as single mode. Include the priority position in each brief's metadata.
@@ -176,7 +188,19 @@ Write the priority-sequenced index:
176
188
  [How this collection should be used — e.g., "Feed into March 30th Mob Elaboration session" or "Input for /plan runs on the EZFacility codebase"]
177
189
  ```
178
190
 
179
- After generating all briefs and the index, summarize what was created and offer next steps.
191
+ ### Step 6: Identify Cross-Brief Dependencies
192
+
193
+ After generating all briefs, review the full set and identify items that share components, data models, or user flows. Document these in the index under a dedicated section:
194
+
195
+ ```markdown
196
+ ## Cross-Brief Dependencies
197
+
198
+ - **[Brief A] ↔ [Brief B]** — Share [component/data model/user flow]. Elaborate together or sequence A before B.
199
+ ```
200
+
201
+ This prevents the team from elaborating overlapping items in isolation, which leads to conflicting designs and rework during construction.
202
+
203
+ After generating all briefs, the index, and cross-brief dependencies, summarize what was created and offer next steps.
180
204
 
181
205
  ---
182
206
 
@@ -193,7 +217,7 @@ This integration point will be formalized in a future update to the `/plan` skil
193
217
  ## Principles
194
218
 
195
219
  - **Capture intent, not design.** Briefs describe problems and outcomes. Solutions, architecture, and implementation details belong to `/plan` and Mob Elaboration.
196
- - **Good enough beats perfect.** A brief with a "TBD" section is better than no brief. The elaboration team will fill gaps — that's their job.
220
+ - **Good enough beats perfect.** A brief with an "Unknown" section is better than no brief. The elaboration team will fill gaps — that's their job.
197
221
  - **Respect the user's time.** In batch mode especially, don't ask questions you can infer the answers to. Template similar items. Be efficient.
198
222
  - **Standalone value.** A brief should be useful even if `/plan` is never run — it's a communication artifact that helps teams align on what needs to be built and why.
199
223
  - **No codebase analysis.** Briefs are business-context documents. Technical discovery, reverse engineering, and architecture decisions happen in `/plan`. Don't read source code or suggest implementations.