olympus-ai 4.4.11 → 4.4.13

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.11",
3
+ "version": "4.4.13",
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.11";
27
+ export declare const VERSION = "4.4.13";
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.11';
43
+ export const VERSION = '4.4.13';
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.11",
3
+ "version": "4.4.13",
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",
@@ -56,32 +56,7 @@ Phase 1: INCEPTION
56
56
 
57
57
  ## Markdown Formatting Standards
58
58
 
59
- **MANDATORY**: All generated markdown files MUST follow these formatting rules to produce clean, linter-friendly output.
60
-
61
- ### Document Structure (MD025)
62
-
63
- - **One H1 per document**: Use a single `#` heading as the document title. All other sections use `##` or lower.
64
- - YAML frontmatter `---` does NOT count as an H1. The first `#` heading after frontmatter is the title.
65
- - Exception: If a document has YAML frontmatter with a `title:` field, you may omit the H1 entirely.
66
-
67
- ### Blank Lines Around Block Elements (MD022, MD031, MD032)
68
-
69
- - **Headings**: Always leave one blank line BEFORE and AFTER every heading (`#`, `##`, `###`, etc.).
70
- - **Lists**: Always leave one blank line BEFORE and AFTER a list block (both ordered and unordered).
71
- - **Fenced code blocks**: Always leave one blank line BEFORE and AFTER fenced code blocks.
72
- - **Block quotes**: Always leave one blank line BEFORE and AFTER block quotes (`>`).
73
-
74
- ### Whitespace Rules (MD009, MD047, MD012)
75
-
76
- - **No trailing spaces**: Lines must not end with trailing whitespace. Use `<br>` for intentional line breaks.
77
- - **File ending**: Every file must end with exactly one newline character.
78
- - **No consecutive blank lines**: Use at most one blank line between elements (no double blanks).
79
-
80
- ### List Formatting (MD004, MD007, MD030)
81
-
82
- - **Consistent markers**: Use `-` for unordered lists (not `*` or `+`).
83
- - **Indentation**: Use 2 spaces for nested list indentation.
84
- - **Ordered list spacing**: Use `1.` followed by a single space.
59
+ **MANDATORY**: Load and follow `common/markdown-formatting.md` for the complete markdownlint rule set and project-specific overrides. That file is the authoritative reference for all markdown formatting requirements.
85
60
 
86
61
  ## General Content Validation
87
62
 
@@ -0,0 +1,170 @@
1
+ # Markdown Formatting Standards
2
+
3
+ ## MANDATORY: All Generated Markdown Must Pass markdownlint
4
+
5
+ **CRITICAL**: Every markdown file you create or modify MUST comply with the [markdownlint](https://github.com/DavidAnson/markdownlint) rule set (v0.40.0). The project enforces these rules via `.markdownlint.json` at the workspace root. Violations will cause linter failures on save.
6
+
7
+ ## Project Configuration Overrides
8
+
9
+ The project `.markdownlint.json` modifies the defaults as follows. **Always respect these overrides:**
10
+
11
+ | Setting | Value | Effect |
12
+ |---------------|----------------------------------------------------------------------|-----------------------------------------------------------------------------------------------|
13
+ | `default` | `true` | All rules enabled unless explicitly disabled |
14
+ | `frontMatter` | `"^---\s*$[\s\S]*?^---\s*$"` | YAML frontmatter blocks are recognized and excluded from rules |
15
+ | `MD013` | `false` | **Line length is NOT enforced** — no maximum line width |
16
+ | `MD024` | `{ "siblings_only": true }` | Duplicate headings allowed if they are NOT siblings (same parent) |
17
+ | `MD033` | `{ "allowed_elements": ["br", "details", "summary", "sup", "sub"] }` | Inline HTML forbidden EXCEPT these five elements |
18
+ | `MD036` | `false` | **Emphasis-as-heading is allowed** — bold text may serve as pseudo-headings |
19
+ | `MD041` | `false` | **First line need not be an H1** — files may start with frontmatter, badges, or other content |
20
+
21
+ ## Editor Integration
22
+
23
+ The project `.vscode/settings.json` configures:
24
+
25
+ - **markdownlint runs on save** — violations are flagged immediately
26
+ - **Format on save** enabled with `markdown-table-prettify` as the default formatter
27
+ - **Word wrap off** — lines are not soft-wrapped in the editor
28
+
29
+ When generating tables, produce clean pipe-aligned tables since the prettifier will reformat them on save.
30
+
31
+ ---
32
+
33
+ ## Rule Reference
34
+
35
+ All 54 active markdownlint rules organized by category. Rules disabled by project config are marked with **(DISABLED)**.
36
+
37
+ ### Document Structure
38
+
39
+ | Rule | Alias | Requirement |
40
+ |-------|---------------------------|------------------------------------------------------------------------|
41
+ | MD001 | `heading-increment` | Heading levels must increment by one (no skipping H2 to H4) |
42
+ | MD025 | `single-h1` | Only one H1 (`#`) per document. YAML frontmatter `title:` counts as H1 |
43
+ | MD041 | `first-line-h1` | **(DISABLED)** First line need not be a top-level heading |
44
+ | MD043 | `required-headings` | Required heading structure if configured (default: not configured) |
45
+ | MD047 | `single-trailing-newline` | File MUST end with exactly one newline character |
46
+
47
+ ### Headings
48
+
49
+ | Rule | Alias | Requirement |
50
+ |-------|--------------------------------|------------------------------------------------------------------------------------------------|
51
+ | MD003 | `heading-style` | Use consistent heading style — use ATX style (`# Heading`) throughout |
52
+ | MD018 | `no-missing-space-atx` | Must have a space after `#` in headings: `# Heading` not `#Heading` |
53
+ | MD019 | `no-multiple-space-atx` | Only one space after `#`: `# Heading` not `# Heading` |
54
+ | MD020 | `no-missing-space-closed-atx` | Closed ATX headings need inner spaces: `# Heading #` |
55
+ | MD021 | `no-multiple-space-closed-atx` | Only one space inside closed ATX hashes |
56
+ | MD022 | `blanks-around-headings` | One blank line BEFORE and AFTER every heading |
57
+ | MD023 | `heading-start-left` | Headings must start at column 1 (no indentation) |
58
+ | MD024 | `no-duplicate-heading` | No duplicate heading text among **siblings** (same-parent headings may repeat across sections) |
59
+ | MD026 | `no-trailing-punctuation` | Headings must not end with `.` `,` `;` `:` `!` or their CJK equivalents |
60
+ | MD036 | `no-emphasis-as-heading` | **(DISABLED)** Bold/italic text may be used as pseudo-headings |
61
+
62
+ ### Lists
63
+
64
+ | Rule | Alias | Requirement |
65
+ |-------|-----------------------|--------------------------------------------------------------------------------|
66
+ | MD004 | `ul-style` | Use consistent unordered list markers — use `-` (dash) for all unordered lists |
67
+ | MD005 | `list-indent` | Sibling list items must have consistent indentation |
68
+ | MD007 | `ul-indent` | Indent nested unordered list items by **2 spaces** |
69
+ | MD029 | `ol-prefix` | Ordered lists: use `1.` for all items OR sequential numbering — be consistent |
70
+ | MD030 | `list-marker-space` | Exactly one space after list markers (`-`, `1.`) |
71
+ | MD032 | `blanks-around-lists` | One blank line BEFORE and AFTER every list block |
72
+
73
+ ### Code Blocks and Fences
74
+
75
+ | Rule | Alias | Requirement |
76
+ |-------|------------------------|------------------------------------------------------------|
77
+ | MD010 | `no-hard-tabs` | No tab characters — use spaces only |
78
+ | MD014 | `commands-show-output` | Don't prefix commands with `$` unless showing output below |
79
+ | MD031 | `blanks-around-fences` | One blank line BEFORE and AFTER every fenced code block |
80
+ | MD040 | `fenced-code-language` | Fenced code blocks MUST specify a language (e.g., ` ```typescript `) |
81
+ | MD046 | `code-block-style` | Use consistent code block style — use **fenced** (backtick) style, not indented |
82
+ | MD048 | `code-fence-style` | Use consistent fence delimiters — use **backticks** (`` ` ``), not tildes (`~`) |
83
+
84
+ ### Whitespace and Formatting
85
+
86
+ | Rule | Alias | Requirement |
87
+ |-------|------------------------|----------------------------------------------------------------------------------------|
88
+ | MD009 | `no-trailing-spaces` | No trailing whitespace at end of lines. Use `<br>` for intentional line breaks |
89
+ | MD012 | `no-multiple-blanks` | Maximum one consecutive blank line between elements |
90
+ | MD013 | `line-length` | **(DISABLED)** No maximum line length enforced |
91
+ | MD035 | `hr-style` | Use consistent horizontal rules — use `---` |
92
+ | MD037 | `no-space-in-emphasis` | No spaces inside emphasis: `**bold**` not `** bold **` |
93
+ | MD038 | `no-space-in-code` | No leading/trailing spaces inside backtick code spans: `` `code` `` not `` ` code ` `` |
94
+ | MD049 | `emphasis-style` | Use consistent emphasis markers — use `*` (asterisk) for italics |
95
+ | MD050 | `strong-style` | Use consistent strong markers — use `**` (double asterisk) for bold |
96
+
97
+ ### Links and Images
98
+
99
+ | Rule | Alias | Requirement |
100
+ |-------|------------------------------------|---------------------------------------------------------------------------|
101
+ | MD011 | `no-reversed-links` | Correct link syntax: `[text](url)` not `(text)[url]` |
102
+ | MD034 | `no-bare-urls` | URLs must be wrapped: `<https://example.com>` or `[text](url)` — not bare |
103
+ | MD039 | `no-space-in-links` | No spaces inside link brackets: `[text](url)` not `[ text ](url)` |
104
+ | MD042 | `no-empty-links` | Links must have a non-empty destination |
105
+ | MD044 | `proper-names` | Proper names must use correct capitalization if configured |
106
+ | MD045 | `no-alt-text` | Images MUST have alt text: `![description](image.png)` |
107
+ | MD051 | `link-fragments` | Link fragment anchors (`#section`) must reference valid headings |
108
+ | MD052 | `reference-links-images` | Reference-style links must use defined labels |
109
+ | MD053 | `link-image-reference-definitions` | Reference definitions must be used (no orphaned definitions) |
110
+ | MD054 | `link-image-style` | Use consistent link style (inline, reference, etc.) |
111
+ | MD059 | `descriptive-link-text` | Avoid generic link text like "click here", "here", "link", "more" |
112
+
113
+ ### Blockquotes
114
+
115
+ | Rule | Alias | Requirement |
116
+ |-------|--------------------------------|---------------------------------------------------------|
117
+ | MD027 | `no-multiple-space-blockquote` | Only one space after `>`: `> text` not `> text` |
118
+ | MD028 | `no-blanks-blockquote` | No blank lines inside a blockquote (splits it into two) |
119
+
120
+ ### Tables
121
+
122
+ | Rule | Alias | Requirement |
123
+ |-------|------------------------|----------------------------------------------------------------|
124
+ | MD055 | `table-pipe-style` | Use consistent pipe style — include leading and trailing pipes |
125
+ | MD056 | `table-column-count` | All rows must have the same number of columns |
126
+ | MD058 | `blanks-around-tables` | One blank line BEFORE and AFTER every table |
127
+ | MD060 | `table-column-style` | Use consistent column alignment syntax in delimiter rows |
128
+
129
+ ### Inline HTML
130
+
131
+ | Rule | Alias | Requirement |
132
+ |-------|------------------|-----------------------------------------------------------------------------------------|
133
+ | MD033 | `no-inline-html` | Inline HTML is **forbidden** except: `<br>`, `<details>`, `<summary>`, `<sup>`, `<sub>` |
134
+
135
+ ---
136
+
137
+ ## Quick Reference: Most Common Violations
138
+
139
+ When generating markdown, watch for these frequent issues:
140
+
141
+ 1. **Missing blank lines** (MD022, MD031, MD032, MD058) — Always surround headings, code blocks, lists, and tables with blank lines
142
+ 2. **Trailing whitespace** (MD009) — Strip trailing spaces from every line
143
+ 3. **No language on code fences** (MD040) — Always specify a language: use `text` or `markdown` when no syntax applies
144
+ 4. **Multiple H1 headings** (MD025) — Only one `#` per file; use `##` and below for sections
145
+ 5. **Inconsistent list markers** (MD004) — Always use `-` for unordered lists
146
+ 6. **Bare URLs** (MD034) — Wrap URLs in angle brackets or make them proper links
147
+ 7. **Missing final newline** (MD047) — Files must end with exactly one `\n`
148
+ 8. **Heading level skips** (MD001) — Go `#` then `##` then `###` — never skip levels
149
+ 9. **Missing image alt text** (MD045) — Every `![](image)` needs descriptive alt text
150
+ 10. **Spaces inside emphasis/code** (MD037, MD038) — No spaces inside `**`, `*`, or backticks
151
+
152
+ ## Pre-Write Validation Checklist
153
+
154
+ Before writing ANY markdown file, verify:
155
+
156
+ - [ ] Single `#` H1 (or none if frontmatter has `title:`)
157
+ - [ ] Heading levels increment by one (no skips)
158
+ - [ ] Blank lines around all block elements (headings, lists, code blocks, tables, blockquotes)
159
+ - [ ] No trailing whitespace on any line
160
+ - [ ] No consecutive blank lines
161
+ - [ ] All code fences specify a language
162
+ - [ ] Code fences use backticks, not tildes
163
+ - [ ] Unordered lists use `-` consistently
164
+ - [ ] List indentation uses 2 spaces
165
+ - [ ] No bare URLs
166
+ - [ ] All images have alt text
167
+ - [ ] No forbidden inline HTML (only `<br>`, `<details>`, `<summary>`, `<sup>`, `<sub>` allowed)
168
+ - [ ] File ends with exactly one newline
169
+ - [ ] No tab characters anywhere
170
+ - [ ] Tables have consistent column counts and pipe style
@@ -21,6 +21,7 @@ The AI model intelligently assesses what stages are needed based on:
21
21
  - Load `~/.claude/olympus/rules/common/process-overview.md` for workflow overview
22
22
  - Load `~/.claude/olympus/rules/common/session-continuity.md` for session resumption guidance
23
23
  - Load `~/.claude/olympus/rules/common/content-validation.md` for content validation requirements
24
+ - Load `~/.claude/olympus/rules/common/markdown-formatting.md` for markdown formatting and markdownlint compliance
24
25
  - Load `~/.claude/olympus/rules/common/question-format-guide.md` for question formatting rules
25
26
  - Load `~/.claude/olympus/rules/common/terminology.md` for phase/stage naming conventions
26
27
  - Load `~/.claude/olympus/rules/common/error-handling.md` for error recovery procedures
@@ -94,7 +94,7 @@ Analyze whatever the user has provided:
94
94
  **MANDATORY**: Evaluate ALL of these areas and ask questions for ANY that are unclear:
95
95
  - **Functional Requirements**: Core features, user interactions, system behaviors
96
96
  - **Non-Functional Requirements**: Performance, security, scalability, usability
97
- - **User Scenarios**: Use cases, user journeys, edge cases, error scenarios
97
+ - **Scenario Coverage**: Use cases, user journeys, edge cases, error scenarios
98
98
  - **Business Context**: Goals, constraints, success criteria, stakeholder needs
99
99
  - **Technical Context**: Integration points, data requirements, system boundaries
100
100
  - **Quality Attributes**: Reliability, maintainability, testability, accessibility
@@ -188,8 +188,10 @@ When done, let me know and I will incorporate your approved findings into the re
188
188
  - Scope estimate
189
189
  - Complexity estimate
190
190
  - Include both functional and non-functional requirements
191
+ - Include scenario coverage when relevant (use cases, edge cases, error scenarios)
191
192
  - Incorporate user's answers to clarifying questions
192
193
  - Provide brief summary of key requirements
194
+ - **Do NOT include a User Stories section** — user stories with personas and acceptance criteria are generated in the dedicated User Stories stage
193
195
 
194
196
  ### Step 8: MANDATORY: Update State Tracking
195
197
 
@@ -6,6 +6,10 @@ description: Generate structured intent briefs as pre-elaboration inputs for /pl
6
6
 
7
7
  You help teams capture the "what" and "why" before diving into the "how." Intent briefs are lightweight, structured documents that serve as high-quality inputs to `/plan` workflows and Mob Elaboration sessions. They live in `.olympus/briefs/` as pre-workflow artifacts — created before any AI-DLC workflow exists.
8
8
 
9
+ ## MANDATORY: Question Format
10
+
11
+ **CRITICAL**: Load and follow `resources/rules/common/question-format-guide.md` for ALL questions. You must NEVER ask questions directly in chat. ALL questions must be placed in dedicated question files using the multiple-choice format defined in the guide.
12
+
9
13
  ## Input
10
14
 
11
15
  ```
@@ -21,7 +25,7 @@ Determine which mode to run based on the input:
21
25
  - **`--batch`** flag or input contains a list of items → **Batch Mode**
22
26
  - Everything else → **Single Mode**
23
27
 
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.
28
+ 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 and pre-fill it then only ask questions for the gaps via question files.
25
29
 
26
30
  ### Thin-Context Handling
27
31
 
@@ -37,84 +41,96 @@ The goal is that even a thin-context brief is useful — it captures what is kno
37
41
 
38
42
  ## Single Mode
39
43
 
40
- ### The Interview
44
+ ### Step 1: Extract Context from Input
41
45
 
42
- Have a natural conversation to understand the user's intent. You're trying to fill in these sections, but don't march through them like a checklist let the conversation flow and ask follow-ups where it matters most.
46
+ Before creating questions, analyze the user's input to extract everything you already know. If the input contains substantial context (a feature description, ticket, problem statement), pre-fill what you can. This reduces the number of questions the user needs to answer.
43
47
 
44
- **Core questions (ask these):**
48
+ Capture from input:
49
+ - Stakeholder names and their relationship to the request
50
+ - Implicit constraints ("we're on .NET 6" or "this is a legacy iFrame")
51
+ - Dependencies between this work and other known work
52
+ - Urgency signals ("Mario asked for this", "blocking 3 accounts")
53
+ - Project type signals (greenfield vs brownfield)
45
54
 
46
- 1. **What needs to change?** — The problem or opportunity. What's broken, missing, or possible? Get specific enough that someone unfamiliar with the context could understand.
55
+ ### Step 2: Create the Question File
47
56
 
48
- 2. **Why does it matter?** — Who's asking for this, what's the business impact, and why now? This is what separates a brief from a sticky note. If the user mentions a stakeholder request, capture the name and context.
57
+ Create a question file following the format in `resources/rules/common/question-format-guide.md`.
49
58
 
50
- 3. **What does "done" look like?** — The desired outcome, described in terms of what should be true when this work is complete. Keep it outcome-focused ("customers can self-serve password resets") not implementation-focused ("add a /reset-password endpoint").
59
+ **File location:** `.olympus/briefs/{kebab-case-name}-questions.md`
51
60
 
52
- **Contextual questions (ask as neededskip what's obvious or irrelevant):**
61
+ Generate questions that map to the brief template sections. Skip questions where the input already provides a clear answer pre-fill those into your context and note them at the top of the question file as "Pre-filled from input."
53
62
 
54
- 4. **What's in scope and what's not?** Boundaries prevent scope creep during elaboration. Especially useful when a problem could be interpreted broadly.
63
+ **Question bank** — include all that are relevant, skip what's already known:
55
64
 
56
- 5. **Known constraints?** Technical limitations, deadlines, dependencies on other work, team availability. Anything the elaboration team should know upfront.
65
+ 1. **Intent**"What best describes the core intent?" Frame options around: "We need to [what] so that [who] can [outcome], because today [pain point]." Push for specificity. `(select one)`
57
66
 
58
- 6. **Priority relative to other work?** Where does this sit? Is it urgent, important-but-not-urgent, or nice-to-have? If other briefs exist, how does this one rank?
67
+ 2. **Primary audience** "Who is the primary audience for this work?" Options based on likely personas from the input. `(select one)`
59
68
 
60
- 7. **Any references?**Tickets, designs, prior art, related features, stakeholder emails. Links and pointers that give the elaboration team a head start.
69
+ 3. **Secondary audiences**"Who else is affected by or benefits from this work?" `(select all that apply)`
61
70
 
62
- **Things to listen for and capture even if not explicitly asked:**
63
- - Stakeholder names and their relationship to the request
64
- - Implicit constraints ("we're on .NET 6" or "this is a legacy iFrame")
65
- - Dependencies between this work and other known work
66
- - Urgency signals ("Mario asked for this", "blocking 3 accounts")
71
+ 4. **Success criteria** "What does success look like?" Directional outcomes, not precise metrics. Keep options outcome-focused, not implementation-focused. `(select all that apply)`
67
72
 
68
- ### Generating the Brief
73
+ 5. **Scope signals (in scope)** — "Which capabilities are in scope?" High-level capabilities the user expects. `(select all that apply)`
69
74
 
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.
75
+ 6. **Scope boundaries (out of scope)** "What is explicitly out of scope?" Critical for preventing AI over-scoping during Inception. `(select all that apply)`
71
76
 
72
- Create the directory if needed, then write the brief:
77
+ 7. **Technical constraints** "What technical constraints apply?" Platform, framework, database, API limitations. `(select all that apply)`
73
78
 
74
- **File location:** `.olympus/briefs/{kebab-case-name}.md`
79
+ 8. **Business/organizational constraints** — "What business or organizational constraints apply?" Team capacity, deadlines, approval gates. `(select all that apply)`
75
80
 
76
- **Template:**
81
+ 9. **Compliance/security constraints** — "What compliance or security constraints apply?" Data handling, access control, regulatory requirements. `(select all that apply)`
77
82
 
78
- ```markdown
79
- # Intent Brief: [Name]
83
+ 10. **Project type** — "Is this a new project or existing codebase?" `(select one)`
80
84
 
81
- **Date:** [ISO date]
82
- **Author:** [who created it — ask if not obvious, default to "Unknown" if not provided]
83
- **Status:** Draft
85
+ 11. **Existing system context** — For brownfield: "What describes the current system landscape?" System architecture, integration points, known tech debt. `(select all that apply)`
84
86
 
85
- ## Problem
87
+ 12. **Dependencies and risks** — "What could block this work?" `(select all that apply)`
86
88
 
87
- [Clear problem statementwhat's wrong or what opportunity exists. 2-4 sentences that someone unfamiliar with the context could understand.]
89
+ 13. **Non-functional requirements**"Which NFRs are relevant?" Performance, availability, scalability, accessibility, observability. `(select all that apply)`
88
90
 
89
- ## Business Motivation
91
+ 14. **Stakeholders for Mob Elaboration** — "Who needs to be in the Mob Elaboration room?" `(select all that apply)`
90
92
 
91
- [Who wants this, why it matters, business impact. Include stakeholder names if known. Capture urgency signals.]
93
+ 15. **Open pre-inception questions** "Are there questions that must be answered BEFORE Mob Elaboration?" `(select all that apply)`
92
94
 
93
- ## Desired Outcome
95
+ 16. **Priority** — "How does this rank relative to other work?" `(select one)`
94
96
 
95
- [What "done" looks like — outcome-focused, not implementation-focused. Describe the end state, not the steps to get there.]
97
+ **Question generation guidelines:**
98
+ - Only include questions where the answer is NOT already clear from the input
99
+ - For questions you do include, craft meaningful options based on what you know about the context — don't use generic filler options
100
+ - Always include "Other" as the last option (MANDATORY per question-format-guide)
101
+ - Always include `[Recommendation]:` with reasoning before `[Answer]:`
102
+ - Always include selection type `(select one)` or `(select all that apply)`
96
103
 
97
- ## Scope
104
+ ### Step 3: Inform User and Wait
98
105
 
99
- ### In Scope
100
- - [Specific items this work covers]
106
+ Tell the user the question file has been created, how many questions it contains, and where to find it. Wait for the user to confirm they've completed their answers ("done", "completed", "finished", or similar).
101
107
 
102
- ### Out of Scope
103
- - [What this work explicitly does NOT cover — prevents scope creep during elaboration]
108
+ ### Step 4: Read, Validate, and Analyze Answers
104
109
 
105
- ## Known Constraints
110
+ 1. Read the question file
111
+ 2. Extract answers after `[Answer]:` tags
112
+ 3. Validate all questions are answered — if any are empty, ask the user to complete them
113
+ 4. Check for contradictions and ambiguities per the question-format-guide
114
+ 5. If contradictions found, create a clarification file at `.olympus/briefs/{kebab-case-name}-clarification-questions.md` and wait for resolution
106
115
 
107
- - [Technical, timeline, dependency, or team constraints]
108
- - [Include anything that would surprise the elaboration team if they didn't know it upfront]
116
+ ### Step 5: Generate the Brief
109
117
 
110
- ## References
118
+ Once all answers are validated and contradictions resolved, generate the brief.
119
+
120
+ Create the directory if needed, then write the brief:
111
121
 
112
- - [Links to tickets, designs, prior art, stakeholder communications]
122
+ **File location:** `.olympus/briefs/{kebab-case-name}.md`
113
123
 
114
- ## Notes for Elaboration
124
+ **Template:** Read and use the template at `resources/skills/brief/templates/ai-dlc-intent-brief-template.md`. Fill in each section based on the user's answers and any context extracted in Step 1. For sections where you have no information:
125
+ - Replace placeholder text with "Unknown" followed by the specific questions that would need to be answered
126
+ - For tables, keep the header row and add a single row with "Unknown — [what needs to be determined]"
127
+ - Remove the instructional italics and example text, replacing them with actual content
115
128
 
116
- [Anything the team should discuss during Mob Elaboration — open questions, risks you can see, areas where the team's expertise is needed to make decisions. This section is where you flag things the brief can't answer alone.]
117
- ```
129
+ **Metadata mapping:**
130
+ - **Author** → from answers or "Unknown"
131
+ - **Last Updated** → current ISO date
132
+ - **Status** → "Draft" (always for new briefs)
133
+ - **Project Type** → "Greenfield" or "Brownfield" based on answers
118
134
 
119
135
  After writing, confirm the file path and offer:
120
136
  - "Want to adjust anything before we finalize?"
@@ -134,13 +150,19 @@ Confirm the list back: "I see N items. Here's what I've got: [list]. Does this l
134
150
 
135
151
  ### Step 2: Lightweight Interview
136
152
 
137
- Don't run the full 7-question interview for each item — that would take forever with a large list. Instead:
153
+ Don't run the full 16-question interview for each item — that would take forever with a large list. Instead, create a single consolidated question file.
154
+
155
+ **File location:** `.olympus/briefs/batch-questions.md`
156
+
157
+ Structure the question file in two parts:
158
+
159
+ 1. **Shared context questions** — things that apply to all items (e.g., stakeholder, common motivation, shared constraints, project type, compliance requirements). Ask these once.
138
160
 
139
- 1. **Ask shared context questions once** — things that apply to all items (e.g., "Who's the stakeholder for all of these?", "What's the common motivation?", "Are there shared constraints?")
161
+ 2. **Per-item questions** — for each item, ask only what's unique: the intent and any item-specific context. If items are similar (e.g., "update iFrame for billing page" and "update iFrame for schedule page"), template the question structure and ask about differences.
140
162
 
141
- 2. **For each item, ask only what's unique** — the problem statement and any item-specific context. If items are similar (e.g., "update iFrame for billing page" and "update iFrame for schedule page"), you can template the brief structure and ask about differences.
163
+ 3. **Infer where possible** — if the user says "Mario requested the first 5", don't ask about stakeholder for each of those 5. Note inferences at the top of the file as "Pre-filled from input."
142
164
 
143
- 3. **Infer where possible** if the user says "Mario requested the first 5", you don't need to ask about stakeholder for each of those 5.
165
+ Follow the question-format-guide for all questions (multiple-choice, `[Recommendation]:`, `[Answer]:` tags, "Other" as last option). Inform the user, then wait for completion before proceeding.
144
166
 
145
167
  ### Step 3: Prioritize
146
168
 
@@ -157,7 +179,7 @@ If the user already has a priority order, confirm it rather than re-deriving it.
157
179
 
158
180
  ### Step 4: Generate All Briefs
159
181
 
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.
182
+ Write each brief to `.olympus/briefs/{kebab-case-name}.md` using the same template as single mode (from `resources/skills/brief/templates/ai-dlc-intent-brief-template.md`). Include the priority position in each brief's metadata.
161
183
 
162
184
  ### Step 5: Generate the Index
163
185
 
@@ -0,0 +1,149 @@
1
+ # AI-DLC Intent Brief
2
+
3
+ **Author:** [Your name]
4
+ **Last Updated:** [Date]
5
+ **Status:** Draft | Ready for Mob Elaboration
6
+ **Project Type:** Greenfield | Brownfield
7
+
8
+ ---
9
+
10
+ ## Intent
11
+
12
+ _A clear, concise statement of what you want to build and why. This is the seed the AI decomposes during Inception. Write it the way you'd pitch the problem to a new team member in 60 seconds._
13
+
14
+ We need to [what the system should do] so that [who benefits] can [outcome achieved], because today [current pain point or gap].
15
+
16
+ **Example:** We need to build a consolidated reporting engine so that account managers can generate cross-account summaries in minutes instead of hours, because today they manually pull data from three separate systems and lose ~3 hours/week per person.
17
+
18
+ ---
19
+
20
+ ## Business Context
21
+
22
+ ### Who is this for?
23
+
24
+ | Segment | Role / Persona | Why they care |
25
+ |---------|---------------|---------------|
26
+ | Primary | [e.g., Account managers with 5+ accounts] | [e.g., Directly impacted by manual reporting burden] |
27
+ | Secondary | [e.g., Team leads consuming rolled-up data] | [e.g., Need accurate data for planning decisions] |
28
+
29
+ ### What does success look like?
30
+
31
+ _Don't over-specify metrics yet — the AI will help refine these during Mob Elaboration. Capture the directional outcomes you care about._
32
+
33
+ - [e.g., Dramatically reduce time spent on manual data pulls]
34
+ - [e.g., Improve accuracy of cross-account reporting]
35
+ - [e.g., High adoption within the first quarter post-launch]
36
+
37
+ ---
38
+
39
+ ## Scope Boundaries
40
+
41
+ ### Explicitly Out of Scope
42
+
43
+ _This is the most important section for preventing AI over-scoping during Inception. Be specific about what you are NOT building._
44
+
45
+ - [e.g., Custom report builder — planned for a future phase]
46
+ - [e.g., Real-time streaming / live dashboards]
47
+ - [e.g., Third-party data source integrations]
48
+ - [e.g., Changes to the underlying data models in source systems]
49
+
50
+ ### Scope Signals (In Scope, Directional)
51
+
52
+ _High-level capabilities you expect. The AI will decompose these into stories and units — don't write detailed requirements here._
53
+
54
+ - [e.g., Automated aggregation across account types A, B, and C]
55
+ - [e.g., Export functionality (CSV, PDF at minimum)]
56
+ - [e.g., Role-based access control]
57
+
58
+ ---
59
+
60
+ ## Constraints
61
+
62
+ _Realities the AI cannot infer. These shape the solution space before any design work begins._
63
+
64
+ ### Technical Constraints
65
+ - [e.g., Must integrate with existing REST APIs for account types A and B]
66
+ - [e.g., Must work within the current frontend framework — no new UI dependencies]
67
+ - [e.g., Database is PostgreSQL 14; no migration budget in this phase]
68
+
69
+ ### Business / Organizational Constraints
70
+ - [e.g., Engineering capacity: 2 backend + 1 frontend for this initiative]
71
+ - [e.g., Must ship before Q3 planning cycle begins]
72
+ - [e.g., Cannot change the existing billing data schema without Finance approval]
73
+
74
+ ### Compliance / Security Constraints
75
+ - [e.g., Data exports must comply with SOC 2 requirements]
76
+ - [e.g., PII must be masked in any shared or exported reports]
77
+ - [e.g., All API endpoints require authentication via existing SSO]
78
+
79
+ ---
80
+
81
+ ## Existing System Context
82
+
83
+ _Critical for brownfield projects. Give the AI enough to understand what it's working with._
84
+
85
+ ### System Landscape
86
+ - [e.g., Monolithic Rails app with a React frontend, deployed on AWS ECS]
87
+ - [e.g., Account data lives in three microservices: accounts-svc, billing-svc, usage-svc]
88
+ - [e.g., Current reporting is a set of ad-hoc SQL queries run manually against a read replica]
89
+
90
+ ### Key Integration Points
91
+ - [e.g., accounts-svc API (stable, documented)]
92
+ - [e.g., billing-svc API (stable, documented)]
93
+ - [e.g., usage-svc API (undocumented, needs a spike)]
94
+
95
+ ### Known Technical Debt or Risks
96
+ - [e.g., usage-svc has no published API contract — will need reverse engineering]
97
+ - [e.g., Read replica has a 15-minute replication lag]
98
+
99
+ _For greenfield projects, replace this section with a brief note on target platform/stack if known, or mark as "To be determined during Inception."_
100
+
101
+ ---
102
+
103
+ ## Dependencies & Risks
104
+
105
+ | Item | Type | Owner | Impact if Unresolved |
106
+ |------|------|-------|---------------------|
107
+ | [e.g., usage-svc API contract] | Technical | Backend team | Blocks integration work for account type C |
108
+ | [e.g., Design resource availability] | Organizational | Design lead | Delays UI work; may need async review process |
109
+ | [e.g., Data accuracy in source systems] | Data quality | Data team | Garbage-in/garbage-out for consolidated reports |
110
+
111
+ ---
112
+
113
+ ## Non-Functional Requirements (Known)
114
+
115
+ _Capture NFRs you already know. The AI-DLC workflow will evaluate these and may surface additional ones during Inception._
116
+
117
+ - **Performance:** [e.g., Report generation must complete within 30 seconds for up to 50 accounts]
118
+ - **Availability:** [e.g., Must meet existing platform SLA of 99.9%]
119
+ - **Scalability:** [e.g., Must support up to 200 concurrent users]
120
+ - **Accessibility:** [e.g., Must meet WCAG 2.1 AA]
121
+ - **Observability:** [e.g., Must integrate with existing Datadog monitoring]
122
+
123
+ ---
124
+
125
+ ## Stakeholders for Mob Elaboration
126
+
127
+ _Who needs to be in the room when Inception kicks off?_
128
+
129
+ | Name | Role | Why they're needed |
130
+ |------|------|--------------------|
131
+ | [Name] | Product Owner | Owns the intent and prioritization decisions |
132
+ | [Name] | Engineering Lead | Technical feasibility and architecture input |
133
+ | [Name] | QA / Test Lead | Acceptance criteria and edge case identification |
134
+ | [Name] | Security / Compliance | Validates NFRs and compliance constraints |
135
+ | [Name] | Ops / DevOps | Deployment and infrastructure considerations |
136
+
137
+ ---
138
+
139
+ ## Open Pre-Inception Questions
140
+
141
+ _Things you need answered BEFORE Mob Elaboration — not questions for the AI to resolve during Inception._
142
+
143
+ - [ ] [e.g., Has Finance signed off on the billing schema freeze?]
144
+ - [ ] [e.g., Do we have API credentials for the usage-svc staging environment?]
145
+ - [ ] [e.g., Is the design team available for async review during the build phase?]
146
+
147
+ ---
148
+
149
+ _Once this brief is complete and pre-inception questions are resolved, trigger Mob Elaboration. The AI-DLC Inception phase will decompose the Intent into requirements, stories, and units — with the team validating every step._
@@ -895,10 +895,19 @@ Write result to `aidlc-docs/{workflowId}/inception/prfaq.md`. If generation fail
895
895
  Task(
896
896
  subagent_type="momus",
897
897
  description="Workflow planning review",
898
- prompt="Critically review this inception plan for: (1) gaps in requirements, (2) unrealistic acceptance criteria, (3) missing edge cases, (4) architectural risks, (5) incorrect depth/risk assessment. Intent: {intent.md}. Requirements: {requirements.md}. Execution plan: {execution-plan.md}."
898
+ prompt="Critically review this inception plan for: (1) gaps in requirements, (2) unrealistic acceptance criteria, (3) missing edge cases, (4) architectural risks, (5) incorrect depth/risk assessment. Intent: {intent.md}. Requirements: {requirements.md}. Execution plan: {execution-plan.md}. For each finding, include a clear recommendation stating whether the issue should be fixed now, deferred, or is informational only."
899
899
  )
900
900
  ```
901
- Save output to `aidlc-docs/{workflowId}/inception/intent-review.md` with metadata (reviewer: momus, trigger: automatic, trust level, verdict). Present Momus feedback to the user. Address critical issues.
901
+
902
+ **Write findings to file**: After Momus returns, create `aidlc-docs/{workflowId}/inception/momus-review.md` with metadata (reviewer: momus, trigger: automatic, trust level, verdict) and the full review. Format each finding with:
903
+ - The finding description and severity (critical, important, minor)
904
+ - **Recommendation**: Whether to fix now (with suggested change), defer to a later stage, or note as informational — be explicit about the recommended action
905
+ - **Decision**: `[ ]` — empty checkbox for the user to mark with their decision
906
+ - **User Comments**: blank line for the user to add notes
907
+
908
+ Include a response guide at the top of the file explaining how to review (check findings to incorporate, add comments, or skip).
909
+
910
+ Do not silently incorporate or fix findings. The user must review the file and respond before any changes are made. This is a human approval gate.
902
911
 
903
912
  - **Trust 2+** (and not Risk Tier 3): Tell the user: "Optional: Run `/review` for Momus feedback on the inception plan."
904
913
 
@@ -923,12 +932,13 @@ Write result to `aidlc-docs/{workflowId}/inception/prfaq.md`. If generation fail
923
932
  - `aidlc-docs/{workflowId}/inception/plans/execution-plan.md`
924
933
  - `aidlc-docs/{workflowId}/inception/plans/workflow-routing.md`
925
934
  - `aidlc-docs/{workflowId}/inception/prfaq.md` (if generated)
926
- - `aidlc-docs/{workflowId}/inception/intent-review.md` (if Momus ran)
935
+ - `aidlc-docs/{workflowId}/inception/momus-review.md` (if Momus ran)
927
936
 
928
937
  ### What needs your review
929
938
  - [ ] Depth assessment ({SHALLOW|MEDIUM|DEEP}, score {N}/30) is appropriate
930
939
  - [ ] Risk tier ({1|2|3}) correctly reflects implementation risk
931
940
  - [ ] Execution plan covers all required phases and stages
941
+ - [ ] Momus review findings reviewed (if applicable) — check findings to incorporate, add comments in the file
932
942
 
933
943
  ---
934
944
 
@@ -1280,7 +1290,7 @@ Update `aidlc-docs/{workflowId}/checkpoint.json`:
1280
1290
  4. **CHECKPOINTS ARE MANDATORY**: Save checkpoint state after every stage transition (update inception_stages, current_inception_stage, state file, audit). This enables resume on interruption.
1281
1291
  5. **TRUST ADJUSTS CEREMONY**: Higher trust = fewer questions + lighter gates. Lower trust = more thorough validation.
1282
1292
  6. **REVIEW REQUIRED AFTER EVERY STAGE**: Use the exact REVIEW REQUIRED / WHAT'S NEXT format after each stage completes.
1283
- 7. **RESEARCH IS SILENT**: Agent research dispatches (explore, librarian) happen without announcing them to the user. Only surface findings in the artifacts. **Exception**: Metis blind spot analysis writes findings to a dedicated file for user review — do not silently incorporate.
1293
+ 7. **RESEARCH IS SILENT**: Agent research dispatches (explore, librarian) happen without announcing them to the user. Only surface findings in the artifacts. **Exception**: Metis blind spot analysis and Momus review findings write to dedicated files for user review — do not silently incorporate or fix.
1284
1294
  8. **STATE TRACKING IS TRIPLE**: Every stage update must write to checkpoint.json + aidlc-state.md + audit.md.
1285
1295
  9. **RESUME IS IDEMPOTENT**: Each stage checks its `inception_stages` entry before executing. `completed` or `skipped` → skip to next. `in_progress` with `questions_file` set → resume Q&A without regenerating.
1286
1296