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.
- 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/content-validation.md +1 -26
- package/resources/rules/common/markdown-formatting.md +170 -0
- package/resources/rules/core-workflow.md +1 -0
- package/resources/rules/inception/requirements-analysis.md +3 -1
- package/resources/skills/brief/SKILL.md +73 -51
- package/resources/skills/brief/templates/ai-dlc-intent-brief-template.md +149 -0
- package/resources/skills/plan/SKILL.md +14 -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.13";
|
|
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.13';
|
|
44
44
|
/**
|
|
45
45
|
* Read a content file from the resources/ directory.
|
|
46
46
|
*
|
package/package.json
CHANGED
|
@@ -56,32 +56,7 @@ Phase 1: INCEPTION
|
|
|
56
56
|
|
|
57
57
|
## Markdown Formatting Standards
|
|
58
58
|
|
|
59
|
-
**MANDATORY**:
|
|
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: `` |
|
|
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 `` 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
|
-
- **
|
|
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
|
|
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
|
-
###
|
|
44
|
+
### Step 1: Extract Context from Input
|
|
41
45
|
|
|
42
|
-
|
|
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
|
-
|
|
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
|
-
|
|
55
|
+
### Step 2: Create the Question File
|
|
47
56
|
|
|
48
|
-
|
|
57
|
+
Create a question file following the format in `resources/rules/common/question-format-guide.md`.
|
|
49
58
|
|
|
50
|
-
|
|
59
|
+
**File location:** `.olympus/briefs/{kebab-case-name}-questions.md`
|
|
51
60
|
|
|
52
|
-
|
|
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
|
-
|
|
63
|
+
**Question bank** — include all that are relevant, skip what's already known:
|
|
55
64
|
|
|
56
|
-
|
|
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
|
-
|
|
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
|
-
|
|
69
|
+
3. **Secondary audiences** — "Who else is affected by or benefits from this work?" `(select all that apply)`
|
|
61
70
|
|
|
62
|
-
**
|
|
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
|
-
|
|
73
|
+
5. **Scope signals (in scope)** — "Which capabilities are in scope?" High-level capabilities the user expects. `(select all that apply)`
|
|
69
74
|
|
|
70
|
-
|
|
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
|
-
|
|
77
|
+
7. **Technical constraints** — "What technical constraints apply?" Platform, framework, database, API limitations. `(select all that apply)`
|
|
73
78
|
|
|
74
|
-
**
|
|
79
|
+
8. **Business/organizational constraints** — "What business or organizational constraints apply?" Team capacity, deadlines, approval gates. `(select all that apply)`
|
|
75
80
|
|
|
76
|
-
**
|
|
81
|
+
9. **Compliance/security constraints** — "What compliance or security constraints apply?" Data handling, access control, regulatory requirements. `(select all that apply)`
|
|
77
82
|
|
|
78
|
-
|
|
79
|
-
# Intent Brief: [Name]
|
|
83
|
+
10. **Project type** — "Is this a new project or existing codebase?" `(select one)`
|
|
80
84
|
|
|
81
|
-
**
|
|
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
|
-
|
|
87
|
+
12. **Dependencies and risks** — "What could block this work?" `(select all that apply)`
|
|
86
88
|
|
|
87
|
-
|
|
89
|
+
13. **Non-functional requirements** — "Which NFRs are relevant?" Performance, availability, scalability, accessibility, observability. `(select all that apply)`
|
|
88
90
|
|
|
89
|
-
|
|
91
|
+
14. **Stakeholders for Mob Elaboration** — "Who needs to be in the Mob Elaboration room?" `(select all that apply)`
|
|
90
92
|
|
|
91
|
-
|
|
93
|
+
15. **Open pre-inception questions** — "Are there questions that must be answered BEFORE Mob Elaboration?" `(select all that apply)`
|
|
92
94
|
|
|
93
|
-
|
|
95
|
+
16. **Priority** — "How does this rank relative to other work?" `(select one)`
|
|
94
96
|
|
|
95
|
-
|
|
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
|
-
|
|
104
|
+
### Step 3: Inform User and Wait
|
|
98
105
|
|
|
99
|
-
|
|
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
|
-
###
|
|
103
|
-
- [What this work explicitly does NOT cover — prevents scope creep during elaboration]
|
|
108
|
+
### Step 4: Read, Validate, and Analyze Answers
|
|
104
109
|
|
|
105
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
122
|
+
**File location:** `.olympus/briefs/{kebab-case-name}.md`
|
|
113
123
|
|
|
114
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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/
|
|
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
|
|
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
|
|