raise-cli 2.2.1__py3-none-any.whl
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.
- raise_cli/__init__.py +38 -0
- raise_cli/__main__.py +30 -0
- raise_cli/adapters/__init__.py +91 -0
- raise_cli/adapters/declarative/__init__.py +26 -0
- raise_cli/adapters/declarative/adapter.py +267 -0
- raise_cli/adapters/declarative/discovery.py +94 -0
- raise_cli/adapters/declarative/expressions.py +150 -0
- raise_cli/adapters/declarative/reference/__init__.py +1 -0
- raise_cli/adapters/declarative/reference/github.yaml +143 -0
- raise_cli/adapters/declarative/schema.py +98 -0
- raise_cli/adapters/filesystem.py +299 -0
- raise_cli/adapters/mcp_bridge.py +10 -0
- raise_cli/adapters/mcp_confluence.py +246 -0
- raise_cli/adapters/mcp_jira.py +405 -0
- raise_cli/adapters/models.py +205 -0
- raise_cli/adapters/protocols.py +180 -0
- raise_cli/adapters/registry.py +90 -0
- raise_cli/adapters/sync.py +149 -0
- raise_cli/agents/__init__.py +14 -0
- raise_cli/agents/antigravity.yaml +8 -0
- raise_cli/agents/claude.yaml +8 -0
- raise_cli/agents/copilot.yaml +8 -0
- raise_cli/agents/copilot_plugin.py +124 -0
- raise_cli/agents/cursor.yaml +7 -0
- raise_cli/agents/roo.yaml +8 -0
- raise_cli/agents/windsurf.yaml +8 -0
- raise_cli/artifacts/__init__.py +30 -0
- raise_cli/artifacts/models.py +43 -0
- raise_cli/artifacts/reader.py +55 -0
- raise_cli/artifacts/renderer.py +104 -0
- raise_cli/artifacts/story_design.py +69 -0
- raise_cli/artifacts/writer.py +45 -0
- raise_cli/backlog/__init__.py +1 -0
- raise_cli/backlog/sync.py +115 -0
- raise_cli/cli/__init__.py +3 -0
- raise_cli/cli/commands/__init__.py +3 -0
- raise_cli/cli/commands/_resolve.py +153 -0
- raise_cli/cli/commands/adapters.py +362 -0
- raise_cli/cli/commands/artifact.py +137 -0
- raise_cli/cli/commands/backlog.py +333 -0
- raise_cli/cli/commands/base.py +31 -0
- raise_cli/cli/commands/discover.py +551 -0
- raise_cli/cli/commands/docs.py +130 -0
- raise_cli/cli/commands/doctor.py +177 -0
- raise_cli/cli/commands/gate.py +223 -0
- raise_cli/cli/commands/graph.py +1086 -0
- raise_cli/cli/commands/info.py +81 -0
- raise_cli/cli/commands/init.py +746 -0
- raise_cli/cli/commands/journal.py +167 -0
- raise_cli/cli/commands/mcp.py +524 -0
- raise_cli/cli/commands/memory.py +467 -0
- raise_cli/cli/commands/pattern.py +348 -0
- raise_cli/cli/commands/profile.py +59 -0
- raise_cli/cli/commands/publish.py +80 -0
- raise_cli/cli/commands/release.py +338 -0
- raise_cli/cli/commands/session.py +528 -0
- raise_cli/cli/commands/signal.py +410 -0
- raise_cli/cli/commands/skill.py +350 -0
- raise_cli/cli/commands/skill_set.py +145 -0
- raise_cli/cli/error_handler.py +158 -0
- raise_cli/cli/main.py +163 -0
- raise_cli/compat.py +66 -0
- raise_cli/config/__init__.py +41 -0
- raise_cli/config/agent_plugin.py +105 -0
- raise_cli/config/agent_registry.py +233 -0
- raise_cli/config/agents.py +120 -0
- raise_cli/config/ide.py +32 -0
- raise_cli/config/paths.py +379 -0
- raise_cli/config/settings.py +180 -0
- raise_cli/context/__init__.py +42 -0
- raise_cli/context/analyzers/__init__.py +16 -0
- raise_cli/context/analyzers/models.py +36 -0
- raise_cli/context/analyzers/protocol.py +43 -0
- raise_cli/context/analyzers/python.py +292 -0
- raise_cli/context/builder.py +1569 -0
- raise_cli/context/diff.py +213 -0
- raise_cli/context/extractors/__init__.py +13 -0
- raise_cli/context/extractors/skills.py +121 -0
- raise_cli/core/__init__.py +37 -0
- raise_cli/core/files.py +66 -0
- raise_cli/core/text.py +174 -0
- raise_cli/core/tools.py +441 -0
- raise_cli/discovery/__init__.py +50 -0
- raise_cli/discovery/analyzer.py +691 -0
- raise_cli/discovery/drift.py +355 -0
- raise_cli/discovery/scanner.py +1687 -0
- raise_cli/doctor/__init__.py +4 -0
- raise_cli/doctor/checks/__init__.py +1 -0
- raise_cli/doctor/checks/environment.py +110 -0
- raise_cli/doctor/checks/project.py +238 -0
- raise_cli/doctor/fix.py +80 -0
- raise_cli/doctor/models.py +56 -0
- raise_cli/doctor/protocol.py +43 -0
- raise_cli/doctor/registry.py +100 -0
- raise_cli/doctor/report.py +141 -0
- raise_cli/doctor/runner.py +95 -0
- raise_cli/engines/__init__.py +3 -0
- raise_cli/exceptions.py +215 -0
- raise_cli/gates/__init__.py +19 -0
- raise_cli/gates/builtin/__init__.py +1 -0
- raise_cli/gates/builtin/coverage.py +52 -0
- raise_cli/gates/builtin/lint.py +48 -0
- raise_cli/gates/builtin/tests.py +48 -0
- raise_cli/gates/builtin/types.py +48 -0
- raise_cli/gates/models.py +40 -0
- raise_cli/gates/protocol.py +41 -0
- raise_cli/gates/registry.py +141 -0
- raise_cli/governance/__init__.py +11 -0
- raise_cli/governance/extractor.py +412 -0
- raise_cli/governance/models.py +134 -0
- raise_cli/governance/parsers/__init__.py +35 -0
- raise_cli/governance/parsers/_convert.py +38 -0
- raise_cli/governance/parsers/adr.py +274 -0
- raise_cli/governance/parsers/backlog.py +356 -0
- raise_cli/governance/parsers/constitution.py +119 -0
- raise_cli/governance/parsers/epic.py +323 -0
- raise_cli/governance/parsers/glossary.py +316 -0
- raise_cli/governance/parsers/guardrails.py +345 -0
- raise_cli/governance/parsers/prd.py +112 -0
- raise_cli/governance/parsers/roadmap.py +118 -0
- raise_cli/governance/parsers/vision.py +116 -0
- raise_cli/graph/__init__.py +1 -0
- raise_cli/graph/backends/__init__.py +57 -0
- raise_cli/graph/backends/api.py +137 -0
- raise_cli/graph/backends/dual.py +139 -0
- raise_cli/graph/backends/pending.py +84 -0
- raise_cli/handlers/__init__.py +3 -0
- raise_cli/hooks/__init__.py +54 -0
- raise_cli/hooks/builtin/__init__.py +1 -0
- raise_cli/hooks/builtin/backlog.py +216 -0
- raise_cli/hooks/builtin/gate_bridge.py +83 -0
- raise_cli/hooks/builtin/jira_sync.py +127 -0
- raise_cli/hooks/builtin/memory.py +117 -0
- raise_cli/hooks/builtin/telemetry.py +72 -0
- raise_cli/hooks/emitter.py +184 -0
- raise_cli/hooks/events.py +262 -0
- raise_cli/hooks/protocol.py +38 -0
- raise_cli/hooks/registry.py +117 -0
- raise_cli/mcp/__init__.py +33 -0
- raise_cli/mcp/bridge.py +218 -0
- raise_cli/mcp/models.py +43 -0
- raise_cli/mcp/registry.py +77 -0
- raise_cli/mcp/schema.py +41 -0
- raise_cli/memory/__init__.py +58 -0
- raise_cli/memory/loader.py +247 -0
- raise_cli/memory/migration.py +241 -0
- raise_cli/memory/models.py +169 -0
- raise_cli/memory/writer.py +598 -0
- raise_cli/onboarding/__init__.py +103 -0
- raise_cli/onboarding/bootstrap.py +324 -0
- raise_cli/onboarding/claudemd.py +17 -0
- raise_cli/onboarding/conventions.py +742 -0
- raise_cli/onboarding/detection.py +374 -0
- raise_cli/onboarding/governance.py +443 -0
- raise_cli/onboarding/instructions.py +672 -0
- raise_cli/onboarding/manifest.py +201 -0
- raise_cli/onboarding/memory_md.py +399 -0
- raise_cli/onboarding/migration.py +207 -0
- raise_cli/onboarding/profile.py +624 -0
- raise_cli/onboarding/skill_conflict.py +100 -0
- raise_cli/onboarding/skill_manifest.py +176 -0
- raise_cli/onboarding/skills.py +437 -0
- raise_cli/onboarding/workflows.py +101 -0
- raise_cli/output/__init__.py +28 -0
- raise_cli/output/console.py +394 -0
- raise_cli/output/formatters/__init__.py +9 -0
- raise_cli/output/formatters/adapters.py +135 -0
- raise_cli/output/formatters/discover.py +439 -0
- raise_cli/output/formatters/skill.py +298 -0
- raise_cli/publish/__init__.py +3 -0
- raise_cli/publish/changelog.py +80 -0
- raise_cli/publish/check.py +179 -0
- raise_cli/publish/version.py +172 -0
- raise_cli/rai_base/__init__.py +22 -0
- raise_cli/rai_base/framework/__init__.py +7 -0
- raise_cli/rai_base/framework/methodology.yaml +233 -0
- raise_cli/rai_base/governance/__init__.py +1 -0
- raise_cli/rai_base/governance/architecture/__init__.py +1 -0
- raise_cli/rai_base/governance/architecture/domain-model.md +20 -0
- raise_cli/rai_base/governance/architecture/system-context.md +34 -0
- raise_cli/rai_base/governance/architecture/system-design.md +24 -0
- raise_cli/rai_base/governance/backlog.md +8 -0
- raise_cli/rai_base/governance/guardrails.md +17 -0
- raise_cli/rai_base/governance/prd.md +25 -0
- raise_cli/rai_base/governance/vision.md +16 -0
- raise_cli/rai_base/identity/__init__.py +8 -0
- raise_cli/rai_base/identity/core.md +119 -0
- raise_cli/rai_base/identity/perspective.md +119 -0
- raise_cli/rai_base/memory/__init__.py +7 -0
- raise_cli/rai_base/memory/patterns-base.jsonl +55 -0
- raise_cli/schemas/__init__.py +3 -0
- raise_cli/schemas/journal.py +49 -0
- raise_cli/schemas/session_state.py +117 -0
- raise_cli/session/__init__.py +5 -0
- raise_cli/session/bundle.py +820 -0
- raise_cli/session/close.py +268 -0
- raise_cli/session/journal.py +119 -0
- raise_cli/session/resolver.py +126 -0
- raise_cli/session/state.py +187 -0
- raise_cli/skills/__init__.py +44 -0
- raise_cli/skills/locator.py +141 -0
- raise_cli/skills/name_checker.py +199 -0
- raise_cli/skills/parser.py +145 -0
- raise_cli/skills/scaffold.py +212 -0
- raise_cli/skills/schema.py +132 -0
- raise_cli/skills/skillsets.py +195 -0
- raise_cli/skills/validator.py +197 -0
- raise_cli/skills_base/__init__.py +80 -0
- raise_cli/skills_base/contract-template.md +60 -0
- raise_cli/skills_base/preamble.md +37 -0
- raise_cli/skills_base/rai-architecture-review/SKILL.md +137 -0
- raise_cli/skills_base/rai-debug/SKILL.md +171 -0
- raise_cli/skills_base/rai-discover/SKILL.md +167 -0
- raise_cli/skills_base/rai-discover-document/SKILL.md +128 -0
- raise_cli/skills_base/rai-discover-scan/SKILL.md +147 -0
- raise_cli/skills_base/rai-discover-start/SKILL.md +145 -0
- raise_cli/skills_base/rai-discover-validate/SKILL.md +142 -0
- raise_cli/skills_base/rai-docs-update/SKILL.md +142 -0
- raise_cli/skills_base/rai-doctor/SKILL.md +120 -0
- raise_cli/skills_base/rai-epic-close/SKILL.md +165 -0
- raise_cli/skills_base/rai-epic-close/templates/retrospective.md +68 -0
- raise_cli/skills_base/rai-epic-design/SKILL.md +146 -0
- raise_cli/skills_base/rai-epic-design/templates/design.md +24 -0
- raise_cli/skills_base/rai-epic-design/templates/scope.md +76 -0
- raise_cli/skills_base/rai-epic-plan/SKILL.md +153 -0
- raise_cli/skills_base/rai-epic-plan/_references/sequencing-strategies.md +67 -0
- raise_cli/skills_base/rai-epic-plan/templates/plan-section.md +49 -0
- raise_cli/skills_base/rai-epic-run/SKILL.md +208 -0
- raise_cli/skills_base/rai-epic-start/SKILL.md +136 -0
- raise_cli/skills_base/rai-epic-start/templates/brief.md +34 -0
- raise_cli/skills_base/rai-mcp-add/SKILL.md +176 -0
- raise_cli/skills_base/rai-mcp-remove/SKILL.md +120 -0
- raise_cli/skills_base/rai-mcp-status/SKILL.md +147 -0
- raise_cli/skills_base/rai-problem-shape/SKILL.md +138 -0
- raise_cli/skills_base/rai-project-create/SKILL.md +144 -0
- raise_cli/skills_base/rai-project-onboard/SKILL.md +162 -0
- raise_cli/skills_base/rai-quality-review/SKILL.md +189 -0
- raise_cli/skills_base/rai-research/SKILL.md +143 -0
- raise_cli/skills_base/rai-research/references/research-prompt-template.md +317 -0
- raise_cli/skills_base/rai-session-close/SKILL.md +176 -0
- raise_cli/skills_base/rai-session-start/SKILL.md +110 -0
- raise_cli/skills_base/rai-story-close/SKILL.md +198 -0
- raise_cli/skills_base/rai-story-design/SKILL.md +203 -0
- raise_cli/skills_base/rai-story-design/references/tech-design-story-v2.md +293 -0
- raise_cli/skills_base/rai-story-implement/SKILL.md +115 -0
- raise_cli/skills_base/rai-story-plan/SKILL.md +135 -0
- raise_cli/skills_base/rai-story-review/SKILL.md +178 -0
- raise_cli/skills_base/rai-story-run/SKILL.md +282 -0
- raise_cli/skills_base/rai-story-start/SKILL.md +166 -0
- raise_cli/skills_base/rai-story-start/templates/story.md +38 -0
- raise_cli/skills_base/rai-welcome/SKILL.md +134 -0
- raise_cli/telemetry/__init__.py +42 -0
- raise_cli/telemetry/schemas.py +285 -0
- raise_cli/telemetry/writer.py +217 -0
- raise_cli/tier/__init__.py +0 -0
- raise_cli/tier/context.py +134 -0
- raise_cli/viz/__init__.py +7 -0
- raise_cli/viz/generator.py +406 -0
- raise_cli-2.2.1.dist-info/METADATA +433 -0
- raise_cli-2.2.1.dist-info/RECORD +264 -0
- raise_cli-2.2.1.dist-info/WHEEL +4 -0
- raise_cli-2.2.1.dist-info/entry_points.txt +40 -0
- raise_cli-2.2.1.dist-info/licenses/LICENSE +190 -0
- raise_cli-2.2.1.dist-info/licenses/NOTICE +4 -0
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rai-epic-design
|
|
3
|
+
description: >
|
|
4
|
+
Design an epic from strategic objective to feature breakdown. Use when
|
|
5
|
+
starting a new body of work spanning multiple features (3-10), requiring
|
|
6
|
+
architectural decisions, or when establishing technical direction for
|
|
7
|
+
significant capability delivery.
|
|
8
|
+
|
|
9
|
+
license: MIT
|
|
10
|
+
|
|
11
|
+
metadata:
|
|
12
|
+
raise.work_cycle: epic
|
|
13
|
+
raise.frequency: per-epic
|
|
14
|
+
raise.fase: "3"
|
|
15
|
+
raise.prerequisites: project-backlog
|
|
16
|
+
raise.next: epic-plan
|
|
17
|
+
raise.gate: ""
|
|
18
|
+
raise.adaptable: "true"
|
|
19
|
+
raise.version: "2.1.0"
|
|
20
|
+
raise.visibility: public
|
|
21
|
+
raise.inputs: |
|
|
22
|
+
- brief: file_path, optional, previous_skill
|
|
23
|
+
- scope: file_path, required, previous_skill
|
|
24
|
+
raise.outputs: |
|
|
25
|
+
- scope: file_path, next_skill
|
|
26
|
+
- design: file_path, optional, next_skill
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
# Epic Design
|
|
30
|
+
|
|
31
|
+
## Purpose
|
|
32
|
+
|
|
33
|
+
Design an epic that bridges strategic objectives to executable stories, making key architectural decisions and defining bounded scope for incremental delivery.
|
|
34
|
+
|
|
35
|
+
## Mastery Levels (ShuHaRi)
|
|
36
|
+
|
|
37
|
+
- **Shu**: Follow all steps, create full scope document and ADRs
|
|
38
|
+
- **Ha/Ri**: Adjust depth based on complexity, lightweight ADRs, custom patterns
|
|
39
|
+
|
|
40
|
+
## Context
|
|
41
|
+
|
|
42
|
+
**When to use:** Starting work spanning 3-10 stories, requiring architectural decisions, or establishing technical direction.
|
|
43
|
+
|
|
44
|
+
**When to skip:** Single-story work → `/rai-story-design`. Bug fixes → issue tracker. High uncertainty → `/rai-research` first.
|
|
45
|
+
|
|
46
|
+
**Inputs:** Business objective, project backlog, constraints. Optionally: Problem Brief from `/rai-problem-shape` or Epic Brief from `/rai-epic-start`.
|
|
47
|
+
|
|
48
|
+
## Steps
|
|
49
|
+
|
|
50
|
+
### Step 1: Load Brief & Frame Objective
|
|
51
|
+
|
|
52
|
+
Check for Epic Brief (`work/epics/e{N}-{name}/brief.md`) or Problem Brief (`work/problem-briefs/*.md`). If found, use hypothesis and boundaries as starting input.
|
|
53
|
+
|
|
54
|
+
Define what this epic accomplishes:
|
|
55
|
+
- **Objective**: Business/user outcome (1-2 sentences, outcome-focused)
|
|
56
|
+
- **Value**: Why this matters, what's unlocked after completion
|
|
57
|
+
- **In scope (MUST/SHOULD)**: Non-negotiable vs nice-to-have deliverables
|
|
58
|
+
- **Out of scope**: Excluded items with rationale and deferral destination
|
|
59
|
+
|
|
60
|
+
Scoping heuristic: defer what doesn't block the objective; separate what needs its own ADRs.
|
|
61
|
+
|
|
62
|
+
<verification>
|
|
63
|
+
Objective explainable to non-technical stakeholder in 60 seconds. Scope boundaries explicit.
|
|
64
|
+
</verification>
|
|
65
|
+
|
|
66
|
+
### Step 2: Assess Architecture & ADRs
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
rai graph context mod-<name>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Create ADRs when: multiple valid approaches with significant impact, new technology adoption, decisions other epics depend on. Skip when patterns are established or details are easily changed.
|
|
73
|
+
|
|
74
|
+
If significant uncertainty: `/rai-research` (timebox 2-4 hours), then create ADRs.
|
|
75
|
+
ADR template: `.raise/templates/architecture/adr.md`. One decision per ADR.
|
|
76
|
+
|
|
77
|
+
<verification>
|
|
78
|
+
Technical direction clear enough to define stories. ADRs created for significant decisions.
|
|
79
|
+
</verification>
|
|
80
|
+
|
|
81
|
+
### Step 3: Break Down Stories
|
|
82
|
+
|
|
83
|
+
Decompose epic into 3-10 independently deliverable stories.
|
|
84
|
+
|
|
85
|
+
**Per story:** ID (S{N}.{seq}), name, 1-line description, T-shirt size (XS/S/M/L), dependencies.
|
|
86
|
+
|
|
87
|
+
Target: each story delivers demonstrable value, 1-5 days duration. No dependency cycles. External blockers identified.
|
|
88
|
+
|
|
89
|
+
<verification>
|
|
90
|
+
Each story passes "independently deliverable" test. Dependency graph is acyclic.
|
|
91
|
+
</verification>
|
|
92
|
+
|
|
93
|
+
### Step 4: Define Done & Risks
|
|
94
|
+
|
|
95
|
+
**Done:** All stories complete + epic-specific measurable criteria + architecture docs updated + retrospective completed.
|
|
96
|
+
|
|
97
|
+
**Risks:** Top 3 with likelihood/impact/mitigation.
|
|
98
|
+
|
|
99
|
+
<verification>
|
|
100
|
+
Done criteria are measurable. Top risks have mitigations.
|
|
101
|
+
</verification>
|
|
102
|
+
|
|
103
|
+
### Step 5: Write Artifacts & Parking Lot
|
|
104
|
+
|
|
105
|
+
Create TWO documents using templates:
|
|
106
|
+
1. `scope.md` (WHAT + WHY): objective, stories, boundaries, done criteria → `templates/scope.md`
|
|
107
|
+
2. `design.md` (HOW): Gemba, target components, key contracts → `templates/design.md`
|
|
108
|
+
|
|
109
|
+
For simple epics (no architecture changes), `design.md` is optional.
|
|
110
|
+
|
|
111
|
+
Capture deferred items in `dev/parking-lot.md` with origin, priority, and promotion conditions.
|
|
112
|
+
|
|
113
|
+
<verification>
|
|
114
|
+
Scope document reviewable in <10 minutes. Parking lot updated.
|
|
115
|
+
</verification>
|
|
116
|
+
|
|
117
|
+
## Output
|
|
118
|
+
|
|
119
|
+
| Item | Destination |
|
|
120
|
+
|------|-------------|
|
|
121
|
+
| Scope document | `work/epics/e{N}-{name}/scope.md` |
|
|
122
|
+
| Design document | `work/epics/e{N}-{name}/design.md` (if architecture) |
|
|
123
|
+
| ADRs | `dev/decisions/adr-*.md` (0-3 typical) |
|
|
124
|
+
| Parking lot | `dev/parking-lot.md` |
|
|
125
|
+
| Next | `/rai-epic-plan` |
|
|
126
|
+
|
|
127
|
+
## Quality Checklist
|
|
128
|
+
|
|
129
|
+
- [ ] Epic Brief consumed as input (if exists from `/rai-epic-start`)
|
|
130
|
+
- [ ] Objective is outcome-focused, not implementation-focused
|
|
131
|
+
- [ ] Scope boundaries explicit (in/out documented)
|
|
132
|
+
- [ ] Stories independently deliverable (3-10 range)
|
|
133
|
+
- [ ] Dependencies mapped with no cycles
|
|
134
|
+
- [ ] Done criteria are measurable
|
|
135
|
+
- [ ] NEVER time-box epics — scope-based, not duration-based
|
|
136
|
+
- [ ] NEVER over-specify stories — save details for `/rai-story-design`
|
|
137
|
+
|
|
138
|
+
## References
|
|
139
|
+
|
|
140
|
+
- Brief template: `rai-epic-start/templates/brief.md`
|
|
141
|
+
- Scope template: `templates/scope.md`
|
|
142
|
+
- Design template: `templates/design.md`
|
|
143
|
+
- ADR template: `.raise/templates/architecture/adr.md`
|
|
144
|
+
- Next: `/rai-epic-plan`
|
|
145
|
+
- Story design: `/rai-story-design`
|
|
146
|
+
- Close: `/rai-epic-close`
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
epic_id: "{EPIC_ID}"
|
|
3
|
+
grounded_in: "Gemba of [files read]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Epic Design: {title}
|
|
7
|
+
|
|
8
|
+
## Affected Surface (Gemba)
|
|
9
|
+
|
|
10
|
+
| Module/File | Current State | Changes |
|
|
11
|
+
|-------------|---------------|---------|
|
|
12
|
+
| [path] | [what exists] | [what changes] |
|
|
13
|
+
|
|
14
|
+
## Target Components
|
|
15
|
+
|
|
16
|
+
| Component | Responsibility | Key Interface |
|
|
17
|
+
|-----------|---------------|---------------|
|
|
18
|
+
| [name] | [what it does] | [public API] |
|
|
19
|
+
|
|
20
|
+
## Key Contracts
|
|
21
|
+
[Types and interfaces at component level — actual signatures, not pseudocode]
|
|
22
|
+
|
|
23
|
+
## Migration Path
|
|
24
|
+
[Backward compat strategy, consumer changes needed. Omit if greenfield.]
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Epic E{N}: {Epic Name} — Scope
|
|
2
|
+
|
|
3
|
+
> **Status:** IN PROGRESS
|
|
4
|
+
> **Release:** REL-{id} ({release name})
|
|
5
|
+
> **Created:** YYYY-MM-DD
|
|
6
|
+
|
|
7
|
+
## Objective
|
|
8
|
+
|
|
9
|
+
{1-2 sentences: What business/user outcome does this epic deliver?}
|
|
10
|
+
|
|
11
|
+
**Value:** {Why this matters, what's unlocked after completion}
|
|
12
|
+
|
|
13
|
+
## Stories ({X} SP estimated)
|
|
14
|
+
|
|
15
|
+
| ID | Story | Size | Status | Description |
|
|
16
|
+
|----|-------|:----:|:------:|-------------|
|
|
17
|
+
| S{N}.1 | {Name} | S | Pending | {1-line} |
|
|
18
|
+
| S{N}.2 | {Name} | M | Pending | {1-line} |
|
|
19
|
+
|
|
20
|
+
**Total:** {X} stories, {Y} SP
|
|
21
|
+
|
|
22
|
+
## Scope
|
|
23
|
+
|
|
24
|
+
**In scope (MUST):**
|
|
25
|
+
- {Non-negotiable 1}
|
|
26
|
+
- {Non-negotiable 2}
|
|
27
|
+
|
|
28
|
+
**In scope (SHOULD):**
|
|
29
|
+
- {Nice-to-have 1}
|
|
30
|
+
|
|
31
|
+
**Out of scope:**
|
|
32
|
+
- {Excluded 1} → {where deferred}
|
|
33
|
+
|
|
34
|
+
## Done Criteria
|
|
35
|
+
|
|
36
|
+
**Per story:**
|
|
37
|
+
- [ ] Code with type annotations
|
|
38
|
+
- [ ] Tests passing
|
|
39
|
+
- [ ] Quality checks pass (ruff, pyright)
|
|
40
|
+
|
|
41
|
+
**Epic complete:**
|
|
42
|
+
- [ ] All stories complete (S{N}.1–S{N}.X)
|
|
43
|
+
- [ ] {Epic-specific criterion 1}
|
|
44
|
+
- [ ] Epic retrospective done
|
|
45
|
+
- [ ] Merged to `{dev_branch}`
|
|
46
|
+
|
|
47
|
+
## Dependencies
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
S{N}.1 (foundation)
|
|
51
|
+
↓
|
|
52
|
+
S{N}.2 ──┐
|
|
53
|
+
↓ │ (parallel)
|
|
54
|
+
S{N}.3 ◄─┘
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**External:** {None / list}
|
|
58
|
+
|
|
59
|
+
## Architecture
|
|
60
|
+
|
|
61
|
+
| Decision | ADR | Summary |
|
|
62
|
+
|----------|-----|---------|
|
|
63
|
+
| {Decision 1} | ADR-{XXX} | {1-line} |
|
|
64
|
+
|
|
65
|
+
> Problem Brief: {path or "N/A"}
|
|
66
|
+
|
|
67
|
+
## Risks
|
|
68
|
+
|
|
69
|
+
| Risk | L/I | Mitigation |
|
|
70
|
+
|------|:---:|------------|
|
|
71
|
+
| {Risk 1} | H/M | {strategy} |
|
|
72
|
+
| {Risk 2} | M/L | {strategy} |
|
|
73
|
+
|
|
74
|
+
## Parking Lot
|
|
75
|
+
|
|
76
|
+
- {Deferred item} → {destination}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rai-epic-plan
|
|
3
|
+
description: >
|
|
4
|
+
Sequence features from epic-design into an executable plan with milestones,
|
|
5
|
+
dependencies, and progress tracking. Use after /rai-epic-design to create a
|
|
6
|
+
realistic implementation roadmap before starting story work.
|
|
7
|
+
|
|
8
|
+
license: MIT
|
|
9
|
+
|
|
10
|
+
metadata:
|
|
11
|
+
raise.work_cycle: epic
|
|
12
|
+
raise.frequency: per-epic
|
|
13
|
+
raise.fase: "4"
|
|
14
|
+
raise.prerequisites: epic-design
|
|
15
|
+
raise.next: story-start
|
|
16
|
+
raise.gate: ""
|
|
17
|
+
raise.adaptable: "true"
|
|
18
|
+
raise.version: "2.2.0"
|
|
19
|
+
raise.visibility: public
|
|
20
|
+
raise.inputs: |
|
|
21
|
+
- scope: file_path, required, previous_skill
|
|
22
|
+
raise.outputs: |
|
|
23
|
+
- scope: file_path, next_skill
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
# Epic Plan
|
|
27
|
+
|
|
28
|
+
## Purpose
|
|
29
|
+
|
|
30
|
+
Transform the story list from `/rai-epic-design` into a sequenced implementation plan with milestones, parallel work streams, and progress tracking.
|
|
31
|
+
|
|
32
|
+
## Mastery Levels (ShuHaRi)
|
|
33
|
+
|
|
34
|
+
- **Shu**: Follow all steps, create sequenced plan with walking skeleton + MVP milestones
|
|
35
|
+
- **Ha**: Adjust milestone granularity based on epic size, skip timeline for small epics
|
|
36
|
+
- **Ri**: Domain-specific sequencing patterns, team velocity models
|
|
37
|
+
|
|
38
|
+
## Context
|
|
39
|
+
|
|
40
|
+
**When to use:** After `/rai-epic-design` has produced a scope document with stories. Before starting first story.
|
|
41
|
+
|
|
42
|
+
**When to skip:** Very small epics (2-3 stories) with obvious linear sequence. Emergency fixes.
|
|
43
|
+
|
|
44
|
+
**Inputs:** Epic scope document (`work/epics/e{N}-{name}/scope.md`), calibration data (if available).
|
|
45
|
+
|
|
46
|
+
## Steps
|
|
47
|
+
|
|
48
|
+
### Step 1: Review Epic Scope
|
|
49
|
+
|
|
50
|
+
Load and understand the epic scope document:
|
|
51
|
+
- Story list with sizes and dependencies
|
|
52
|
+
- Done criteria and risks
|
|
53
|
+
- Architectural decisions that affect sequencing
|
|
54
|
+
|
|
55
|
+
<verification>
|
|
56
|
+
Can explain epic scope and story dependencies in 60 seconds.
|
|
57
|
+
</verification>
|
|
58
|
+
|
|
59
|
+
<if-blocked>
|
|
60
|
+
Epic design incomplete → run `/rai-epic-design` first.
|
|
61
|
+
</if-blocked>
|
|
62
|
+
|
|
63
|
+
### Step 2: Sequence & Rationalize
|
|
64
|
+
|
|
65
|
+
Order stories using these strategies (in priority order):
|
|
66
|
+
|
|
67
|
+
| Strategy | When | Rationale |
|
|
68
|
+
|----------|------|-----------|
|
|
69
|
+
| **Risk-first** | High uncertainty features | Tackle unknowns early while energy is high and time for pivots remains |
|
|
70
|
+
| **Walking skeleton** | Architecture unproven | Build minimal E2E path first to prove architecture |
|
|
71
|
+
| **Quick wins** | Need momentum | Early deliverable value, validate tooling |
|
|
72
|
+
| **Dependency-driven** | Hard blockers exist | Unblock others on critical path |
|
|
73
|
+
|
|
74
|
+
For each story, document: position, rationale, dependencies (hard/soft/external), what it enables.
|
|
75
|
+
|
|
76
|
+
**Identify parallel opportunities:** Stories with no mutual dependencies, different codebase areas, or independent concerns can run concurrently.
|
|
77
|
+
|
|
78
|
+
<verification>
|
|
79
|
+
Every story has sequencing rationale. Critical path identified. Parallel opportunities documented.
|
|
80
|
+
</verification>
|
|
81
|
+
|
|
82
|
+
### Step 3: Define Milestones
|
|
83
|
+
|
|
84
|
+
Create 2-4 intermediate checkpoints:
|
|
85
|
+
|
|
86
|
+
| Milestone | Typical scope | Purpose |
|
|
87
|
+
|-----------|---------------|---------|
|
|
88
|
+
| **M1: Walking Skeleton** | 1-3 stories (smallest E2E) | Prove architecture, enable integration |
|
|
89
|
+
| **M2: Core MVP** | 50-70% of stories | Demonstrate value, gather feedback |
|
|
90
|
+
| **M3: Feature Complete** | 100% planned stories | Ready for polish |
|
|
91
|
+
| **M4: Epic Complete** | Done criteria met | Ready for `/rai-epic-close` |
|
|
92
|
+
|
|
93
|
+
Per milestone: stories included, success criteria (verifiable), demo capability.
|
|
94
|
+
|
|
95
|
+
**Integration checkpoint (PAT-E-539):** For epics with multiple components (client/server, CLI/API, frontend/backend), schedule an **E2E integration milestone** before the final story. This checkpoint runs real infrastructure (docker compose, actual DB) and verifies cross-story contracts (auth headers, payload schemas, parameter limits). Unit tests with mocks cannot catch these mismatches — only real E2E validates the seams between stories.
|
|
96
|
+
|
|
97
|
+
<verification>
|
|
98
|
+
At least 2 milestones defined with clear success criteria. Multi-component epics include E2E integration checkpoint.
|
|
99
|
+
</verification>
|
|
100
|
+
|
|
101
|
+
### Step 4: Setup Tracking
|
|
102
|
+
|
|
103
|
+
Add progress tracking to epic scope using `templates/plan-section.md`:
|
|
104
|
+
- Story sequence table with status/actual/velocity columns
|
|
105
|
+
- Milestone checklist with target dates
|
|
106
|
+
- Velocity assumptions from calibration data (if available)
|
|
107
|
+
|
|
108
|
+
<verification>
|
|
109
|
+
Tracking table added to epic scope document.
|
|
110
|
+
</verification>
|
|
111
|
+
|
|
112
|
+
### Step 5: Update Scope Document
|
|
113
|
+
|
|
114
|
+
Append the implementation plan section to `work/epics/e{N}-{name}/scope.md`. Include:
|
|
115
|
+
- Story sequence with rationale
|
|
116
|
+
- Milestones with success criteria
|
|
117
|
+
- Parallel work streams (if any)
|
|
118
|
+
- Progress tracking table
|
|
119
|
+
- Sequencing risks (top 3)
|
|
120
|
+
|
|
121
|
+
Present plan to human for review before starting first story.
|
|
122
|
+
|
|
123
|
+
<verification>
|
|
124
|
+
Scope document updated. Plan reviewable in <5 minutes. Human acknowledges.
|
|
125
|
+
</verification>
|
|
126
|
+
|
|
127
|
+
## Output
|
|
128
|
+
|
|
129
|
+
| Item | Destination |
|
|
130
|
+
|------|-------------|
|
|
131
|
+
| Implementation plan | Appended to `work/epics/e{N}-{name}/scope.md` |
|
|
132
|
+
| Plan template | `templates/plan-section.md` |
|
|
133
|
+
| Next | `/rai-story-design` for first story in sequence |
|
|
134
|
+
|
|
135
|
+
## Quality Checklist
|
|
136
|
+
|
|
137
|
+
- [ ] All stories sequenced with rationale
|
|
138
|
+
- [ ] Critical path identified
|
|
139
|
+
- [ ] At least 2 milestones (walking skeleton + MVP minimum)
|
|
140
|
+
- [ ] Dependencies verified — no cycles, blockers identified
|
|
141
|
+
- [ ] Parallel opportunities documented (or explained why sequential)
|
|
142
|
+
- [ ] Progress tracking in scope document
|
|
143
|
+
- [ ] NEVER over-plan — plans are hypotheses, not commitments
|
|
144
|
+
- [ ] NEVER sequence by size alone — use risk-first as default
|
|
145
|
+
- [ ] Multi-component epics include E2E integration checkpoint (PAT-E-539)
|
|
146
|
+
|
|
147
|
+
## References
|
|
148
|
+
|
|
149
|
+
- Plan template: `templates/plan-section.md`
|
|
150
|
+
- Previous: `/rai-epic-design` (produces scope input)
|
|
151
|
+
- Next: `/rai-story-design` for first story
|
|
152
|
+
- Close: `/rai-epic-close`
|
|
153
|
+
- Calibration: `.raise/rai/memory/calibration.jsonl`
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Sequencing Strategies Deep Dive
|
|
2
|
+
|
|
3
|
+
> Reference material for `/rai-epic-plan` Step 3.
|
|
4
|
+
> For quick reference, see the decision matrix in the main skill.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Risk-First (Primary Strategy)
|
|
9
|
+
|
|
10
|
+
**Philosophy:** Uncertainty decreases as you learn. Early features teach you about the codebase, the problem, and your velocity. Tackling risky features early means:
|
|
11
|
+
- More time to recover from surprises
|
|
12
|
+
- Learning informs later features
|
|
13
|
+
- Confidence grows throughout epic
|
|
14
|
+
|
|
15
|
+
**Identify risky features by:**
|
|
16
|
+
- New technology or unfamiliar patterns
|
|
17
|
+
- Integration with external systems
|
|
18
|
+
- Unclear requirements (even after design)
|
|
19
|
+
- Performance or scalability unknowns
|
|
20
|
+
- Team has never done something similar
|
|
21
|
+
|
|
22
|
+
**Anti-pattern:** "Let's do the easy features first to build momentum" — This feels good but front-loads certainty and back-loads risk. By the time you hit the hard features, deadline pressure is highest.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Walking Skeleton
|
|
27
|
+
|
|
28
|
+
**Philosophy:** Prove the architecture works before investing heavily. A walking skeleton is the smallest end-to-end path through the system that demonstrates:
|
|
29
|
+
- Key architectural decisions are valid
|
|
30
|
+
- Integration points work
|
|
31
|
+
- Development environment is productive
|
|
32
|
+
- Deployment pipeline functions
|
|
33
|
+
|
|
34
|
+
**Walking skeleton features:**
|
|
35
|
+
- Minimal but complete path from input to output
|
|
36
|
+
- Touches all layers (UI, API, data, infrastructure)
|
|
37
|
+
- Can be demonstrated (not just "it compiles")
|
|
38
|
+
- Provides foundation for rest of features
|
|
39
|
+
|
|
40
|
+
**Example:** For a governance toolkit epic, walking skeleton might be:
|
|
41
|
+
- F1: Extract one concept from one file
|
|
42
|
+
- F2: Build minimal graph with one relationship
|
|
43
|
+
- F3: Query graph and return result
|
|
44
|
+
|
|
45
|
+
**Anti-pattern:** Building all of layer 1 before touching layer 2. This delays integration risk discovery.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Quick Wins
|
|
50
|
+
|
|
51
|
+
**Philosophy:** Early success builds momentum and validates process. Quick wins are features that:
|
|
52
|
+
- Can be completed in one session
|
|
53
|
+
- Provide visible, demonstrable value
|
|
54
|
+
- Don't block other features
|
|
55
|
+
- Build confidence in approach
|
|
56
|
+
|
|
57
|
+
**Use quick wins when:**
|
|
58
|
+
- Starting a new codebase or technology
|
|
59
|
+
- Team morale needs boost
|
|
60
|
+
- Stakeholders need early visibility
|
|
61
|
+
- Validating development process
|
|
62
|
+
|
|
63
|
+
**Anti-pattern:** Only quick wins — avoiding hard features indefinitely. Quick wins support risk-first; they don't replace it.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
*Reference document for /rai-epic-plan*
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
## Implementation Plan
|
|
2
|
+
|
|
3
|
+
> Added by `/rai-epic-plan` — YYYY-MM-DD
|
|
4
|
+
|
|
5
|
+
### Story Sequence
|
|
6
|
+
|
|
7
|
+
| Order | Story | Size | Dependencies | Milestone | Rationale |
|
|
8
|
+
|:-----:|-------|:----:|--------------|-----------|-----------|
|
|
9
|
+
| 1 | S{N}.1 | S | None | M1 | {Why first?} |
|
|
10
|
+
| 2 | S{N}.2 | M | S{N}.1 | M1 | {Why second?} |
|
|
11
|
+
| 3 | S{N}.3 | S | S{N}.2 | M2 | {Why here?} |
|
|
12
|
+
|
|
13
|
+
### Milestones
|
|
14
|
+
|
|
15
|
+
| Milestone | Stories | Target | Success Criteria |
|
|
16
|
+
|-----------|---------|--------|------------------|
|
|
17
|
+
| **M1: Walking Skeleton** | S{N}.1, S{N}.2 | {Day} | {What proves it works?} |
|
|
18
|
+
| **M2: Core MVP** | +S{N}.3, S{N}.4 | {Day} | {What proves value?} |
|
|
19
|
+
| **M3: Feature Complete** | +S{N}.5... | {Day} | All planned stories done |
|
|
20
|
+
| **M4: Epic Complete** | — | {Day} | Done criteria met, retro done |
|
|
21
|
+
|
|
22
|
+
### Parallel Work Streams
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
Time →
|
|
26
|
+
Stream 1 (Critical): S{N}.1 ─► S{N}.2 ─► S{N}.5
|
|
27
|
+
↓
|
|
28
|
+
Stream 2 (Parallel): S{N}.3 ─► merge
|
|
29
|
+
↑
|
|
30
|
+
Stream 3 (Parallel): S{N}.4 ───┘
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**Merge points:**
|
|
34
|
+
- After S{N}.1: split into parallel streams
|
|
35
|
+
- Before S{N}.5: merge parallel streams
|
|
36
|
+
|
|
37
|
+
### Progress Tracking
|
|
38
|
+
|
|
39
|
+
| Story | Size | Status | Actual | Velocity | Notes |
|
|
40
|
+
|-------|:----:|:------:|:------:|:--------:|-------|
|
|
41
|
+
| S{N}.1 | S | Pending | — | — | |
|
|
42
|
+
| S{N}.2 | M | Pending | — | — | |
|
|
43
|
+
|
|
44
|
+
### Sequencing Risks
|
|
45
|
+
|
|
46
|
+
| Risk | L/I | Mitigation |
|
|
47
|
+
|------|:---:|------------|
|
|
48
|
+
| {Risk 1} | H/M | {Strategy} |
|
|
49
|
+
| {Risk 2} | M/L | {Strategy} |
|