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.
- package/.claude-plugin/plugin.json +1 -1
- package/dist/installer/index.d.ts +1 -1
- package/dist/installer/index.js +1 -1
- package/package.json +1 -1
- package/resources/rules/common/session-continuity.md +6 -0
- package/resources/rules/construction/code-generation.md +20 -1
- package/resources/skills/brief/SKILL.md +28 -4
|
@@ -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.
|
|
27
|
+
export declare const VERSION = "4.4.7";
|
|
28
28
|
/** Installation result */
|
|
29
29
|
export interface InstallResult {
|
|
30
30
|
success: boolean;
|
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.4.
|
|
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
|
@@ -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 "
|
|
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
|
-
|
|
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
|
|
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.
|