@kodevibe/harness 0.8.3
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/LICENSE +21 -0
- package/README.ko.md +351 -0
- package/README.md +314 -0
- package/bin/cli.js +4 -0
- package/harness/agent-memory/architect.md +42 -0
- package/harness/agent-memory/planner.md +47 -0
- package/harness/agent-memory/reviewer.md +46 -0
- package/harness/agent-memory/sprint-manager.md +49 -0
- package/harness/agents/architect.md +177 -0
- package/harness/agents/planner.md +320 -0
- package/harness/agents/reviewer.md +273 -0
- package/harness/agents/sprint-manager.md +250 -0
- package/harness/core-rules.md +136 -0
- package/harness/dependency-map.md +58 -0
- package/harness/failure-patterns.md +63 -0
- package/harness/features.md +53 -0
- package/harness/project-brief.md +145 -0
- package/harness/project-state.md +85 -0
- package/harness/skills/bootstrap.md +326 -0
- package/harness/skills/code-review-pr.md +141 -0
- package/harness/skills/deployment.md +144 -0
- package/harness/skills/feature-breakdown.md +136 -0
- package/harness/skills/impact-analysis.md +110 -0
- package/harness/skills/investigate.md +172 -0
- package/harness/skills/learn.md +308 -0
- package/harness/skills/pivot.md +171 -0
- package/harness/skills/security-checklist.md +101 -0
- package/harness/skills/test-integrity.md +94 -0
- package/package.json +53 -0
- package/src/init.js +772 -0
- package/templates/agent.template.md +56 -0
- package/templates/skill.template.md +54 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Dependency Map
|
|
2
|
+
|
|
3
|
+
A living document of module relationships. Update whenever modules are added or modified.
|
|
4
|
+
|
|
5
|
+
## Module Registry
|
|
6
|
+
|
|
7
|
+
| Module | Layer | Purpose | Depends On | Depended By | Owner |
|
|
8
|
+
|--------|-------|---------|------------|-------------|-------|
|
|
9
|
+
<!-- Example:
|
|
10
|
+
| auth | domain | User authentication | - | api, admin | Alice |
|
|
11
|
+
| api | presentation | REST endpoints | auth, services | frontend | Bob |
|
|
12
|
+
| services | application | Business logic | auth, database | api | Alice |
|
|
13
|
+
| database | infrastructure| Data persistence | - | services | Carol |
|
|
14
|
+
-->
|
|
15
|
+
<!-- Add new modules above this line -->
|
|
16
|
+
|
|
17
|
+
## Dependency Rules
|
|
18
|
+
|
|
19
|
+
- **No circular dependencies**: If A depends on B, B must not depend on A. Bidirectional check: for each row, verify the module does NOT appear in its own "Depends On" chain (A→B→C→A = circular).
|
|
20
|
+
- **Layer direction**: domain → application → infrastructure/presentation (never reverse).
|
|
21
|
+
- `domain/` depends on nothing. No imports from application, infrastructure, or presentation.
|
|
22
|
+
- `application/` depends on domain only. Implements use cases using domain interfaces.
|
|
23
|
+
- `infrastructure/` implements domain interfaces. Can depend on domain and external libraries.
|
|
24
|
+
- `presentation/` depends on application. Handles routing, DTOs, controllers.
|
|
25
|
+
- `shared/` or `utils/` are cross-cutting. Any layer may depend on them, but they must NOT depend on any layer. Keep shared modules minimal.
|
|
26
|
+
- **Interface boundaries**: Modules communicate through interfaces, not concrete implementations.
|
|
27
|
+
- **New module = new row**: Every new module must be registered here before implementation (Iron Law #6).
|
|
28
|
+
|
|
29
|
+
## Change Impact Quick Reference
|
|
30
|
+
|
|
31
|
+
When modifying a module:
|
|
32
|
+
|
|
33
|
+
1. Find the module row above
|
|
34
|
+
2. Check the **Depended By** column — these modules may break
|
|
35
|
+
3. For each dependent module:
|
|
36
|
+
- Check if the change affects the public interface
|
|
37
|
+
- Update tests and mocks for all affected dependents
|
|
38
|
+
4. Record the change in docs/project-state.md
|
|
39
|
+
|
|
40
|
+
## Interface Change Log
|
|
41
|
+
|
|
42
|
+
<!-- Record interface changes as they happen. This is MANDATORY for all interface changes (Iron Law #1).
|
|
43
|
+
**Who fills this**: The `impact-analysis` skill adds rows during planning/review. The `reviewer` agent verifies rows exist (Step 7).
|
|
44
|
+
After modifying any public interface (method signature, return type, parameters):
|
|
45
|
+
1. Add a row here immediately
|
|
46
|
+
2. Check "Affected Modules" by reading the Depended By column in Module Registry
|
|
47
|
+
3. Update mocks for all affected modules (run test-integrity skill)
|
|
48
|
+
4. Set Status to "In Progress" until all dependents are updated, then "Updated"
|
|
49
|
+
|
|
50
|
+
| Date | Module | Change | Affected Modules | Status |
|
|
51
|
+
|------|--------|--------|------------------|--------|
|
|
52
|
+
Example:
|
|
53
|
+
| 2025-01-15 | auth | Added resetPassword() | api, admin | Updated |
|
|
54
|
+
| 2025-01-20 | services | Changed getUser() return type | api | In Progress |
|
|
55
|
+
-->
|
|
56
|
+
|
|
57
|
+
| Date | Module | Change | Affected Modules | Status |
|
|
58
|
+
|------|--------|--------|------------------|--------|
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Failure Patterns
|
|
2
|
+
|
|
3
|
+
Record only actual failures from this project. No theories or assumptions.
|
|
4
|
+
Keep resolved patterns for regression prevention.
|
|
5
|
+
**Resolution criteria**: A pattern is "Resolved" when Frequency stays at 0 for 3+ consecutive sprints after prevention was applied.
|
|
6
|
+
|
|
7
|
+
**Valid Status values**:
|
|
8
|
+
- `Template` — Pre-defined pattern, not yet observed in this project
|
|
9
|
+
- `Active` — Observed at least once, prevention in effect
|
|
10
|
+
- `Resolved` — Frequency 0 for 3+ sprints after prevention applied
|
|
11
|
+
- `Obsolete (pivot: [reason])` — Invalidated by a direction change (set by `pivot` skill)
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## FP-001: Mock not updated when interface changed
|
|
16
|
+
|
|
17
|
+
- **Occurred**: <!-- Sprint/Story where this happened -->
|
|
18
|
+
- **Frequency**: 0
|
|
19
|
+
- **Cause**: LLM treated interface change and mock update as separate tasks. Added method to interface but forgot to update the mock, causing test failures.
|
|
20
|
+
- **Prevention**: Update mock in the same commit as the interface change.
|
|
21
|
+
- **Applied in**: testing rules, test-integrity skill, reviewer agent
|
|
22
|
+
- **Status**: Template — activate when first occurrence is logged
|
|
23
|
+
|
|
24
|
+
<!-- Activation example: When this pattern first occurs, update like this:
|
|
25
|
+
- **Occurred**: S1-2
|
|
26
|
+
- **Frequency**: 1
|
|
27
|
+
- **Status**: Active
|
|
28
|
+
On subsequent occurrences, increment Frequency and append to Occurred (e.g., S1-2, S2-1) -->
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## FP-002: Type confusion (wrong parameter count, wrong types)
|
|
33
|
+
|
|
34
|
+
- **Occurred**: <!-- Sprint/Story where this happened -->
|
|
35
|
+
- **Frequency**: 0
|
|
36
|
+
- **Cause**: LLM does not retain type information across sessions. Called constructors with wrong parameter count, used wrong types (e.g., passed string where number expected), or confused similar type names.
|
|
37
|
+
- **Concrete scenario**: `new UserService(repo)` but constructor requires `new UserService(repo, logger, config)` — LLM remembered only 1 of 3 parameters from previous session.
|
|
38
|
+
- **Prevention**: Document core types in global instructions. Read source file before calling constructors (Iron Law #2).
|
|
39
|
+
- **Applied in**: global instructions, backend rules
|
|
40
|
+
- **Status**: Template — activate when first occurrence is logged
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## FP-003: Scope drift / ignoring instructions
|
|
45
|
+
|
|
46
|
+
- **Occurred**: <!-- Sprint/Story where this happened -->
|
|
47
|
+
- **Frequency**: 0
|
|
48
|
+
- **Cause**: LLM lost track of current scope in large workflows. Skipped "report and wait for approval" steps.
|
|
49
|
+
- **Concrete scenario**: Working on S1-002 (user auth), LLM noticed a bug in S1-001 (scaffolding) and fixed it without asking — breaking the unchanged module's tests.
|
|
50
|
+
- **Prevention**: Track current Story in docs/project-state.md. Sprint manager agent detects scope violations. If root cause is in another module, STOP and ask user.
|
|
51
|
+
- **Applied in**: sprint-manager agent, global instructions
|
|
52
|
+
- **Status**: Template — activate when first occurrence is logged
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## FP-004: Dangerous file committed
|
|
57
|
+
|
|
58
|
+
- **Occurred**: <!-- Sprint/Story where this happened -->
|
|
59
|
+
- **Frequency**: 0
|
|
60
|
+
- **Cause**: LLM created temp files during work, then ran `git add .` which staged credentials or debug artifacts.
|
|
61
|
+
- **Prevention**: Ban `git add .`. Run security-checklist skill before commits. Reviewer agent inspects staging area.
|
|
62
|
+
- **Applied in**: security-checklist skill, reviewer agent, backend rules
|
|
63
|
+
- **Status**: Template — activate when first occurrence is logged
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Feature Registry
|
|
2
|
+
|
|
3
|
+
A living document of all features in this project. Update whenever features are added, modified, or deprecated.
|
|
4
|
+
This is LLM's map to understand "what exists" — without this, features get forgotten as the project grows.
|
|
5
|
+
|
|
6
|
+
## Feature List
|
|
7
|
+
|
|
8
|
+
| Feature | Status | Key Files | Test Files | Owner |
|
|
9
|
+
|---------|--------|-----------|------------|-------|
|
|
10
|
+
<!-- Example:
|
|
11
|
+
| User Auth | ✅ done | src/auth/login.ts, src/auth/jwt.ts | tests/auth/login.test.ts | - |
|
|
12
|
+
| MCP Routing | 🔧 active | src/router/index.ts, src/router/mcp.ts | tests/router/mcp.test.ts | - |
|
|
13
|
+
| Admin Dashboard | ⬜ planned | - | - | - |
|
|
14
|
+
| Legacy REST API | ❌ dropped | - | - | - |
|
|
15
|
+
-->
|
|
16
|
+
<!-- Add new features above this line -->
|
|
17
|
+
|
|
18
|
+
## Status Legend
|
|
19
|
+
|
|
20
|
+
- ✅ **done** — Feature complete with tests passing
|
|
21
|
+
- 🔧 **active** — Currently being developed
|
|
22
|
+
- ⬜ **planned** — In backlog, not started
|
|
23
|
+
- ⚠️ **broken** — Tests failing or known issues
|
|
24
|
+
- ❌ **dropped** — Removed or abandoned (keep for history)
|
|
25
|
+
|
|
26
|
+
> **Note**: Feature status uses 🔧 (active) while Story status in project-state.md also uses 🔧 (active). These are aligned — when a Story is 🔧 active, its parent Feature should be 🔧 active too.
|
|
27
|
+
|
|
28
|
+
## Update Protocol
|
|
29
|
+
|
|
30
|
+
When you add or modify a feature:
|
|
31
|
+
1. Add/update the row in the Feature List table above
|
|
32
|
+
2. List the key source files and test files
|
|
33
|
+
3. Update the Status column
|
|
34
|
+
|
|
35
|
+
**Iron Law #7**: When adding a new feature, register it here in the same commit.
|
|
36
|
+
|
|
37
|
+
**Write Precedence** (multiple skills update this file):
|
|
38
|
+
1. **planner** — registers new features (⬜ planned) when creating implementation plans
|
|
39
|
+
2. **sprint-manager** — updates Status to 🔧 active when a Story begins
|
|
40
|
+
3. **reviewer** — updates Status to ✅ done when Story passes review, or ⚠️ broken if tests fail
|
|
41
|
+
4. **learn** — finalizes Status at session end (conflict resolution: learn takes precedence)
|
|
42
|
+
|
|
43
|
+
## Orphan Detection
|
|
44
|
+
|
|
45
|
+
Periodically check for orphan features (features without active stories or stories without a parent feature):
|
|
46
|
+
- If a Feature has Status 🔧 but no Story references it in project-state.md → stale, update to ⬜ or ❌
|
|
47
|
+
- If a Story in project-state.md implements something not listed here → missing feature row, add it
|
|
48
|
+
|
|
49
|
+
## Test Coverage Quick Check
|
|
50
|
+
|
|
51
|
+
To verify all features are tested, scan this table for any row where:
|
|
52
|
+
- Status is ✅ or 🔧 but Test Files is empty → **missing tests**
|
|
53
|
+
- Status is ✅ but test files reference modules that no longer exist → **stale tests**
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# Project Brief
|
|
2
|
+
|
|
3
|
+
> **Fill this out immediately after running `musher init`.** The Planner agent uses this file for Direction Guard — without it, scope drift cannot be prevented.
|
|
4
|
+
|
|
5
|
+
## Vision
|
|
6
|
+
|
|
7
|
+
<!-- What is this project and why does it exist? Keep it to 1-2 sentences.
|
|
8
|
+
This is the north star for all decisions.
|
|
9
|
+
Examples:
|
|
10
|
+
- "An open-source MCP hub that connects AI tools to enterprise services."
|
|
11
|
+
- "A CLI tool that generates IDE-specific instruction files for LLM agents."
|
|
12
|
+
- "An e-commerce platform focused on local artisan products."
|
|
13
|
+
-->
|
|
14
|
+
|
|
15
|
+
## Goals
|
|
16
|
+
|
|
17
|
+
<!-- What must this project achieve? List 3-5 concrete, measurable goals.
|
|
18
|
+
Examples:
|
|
19
|
+
- Support 50+ MCP servers with auto-discovery
|
|
20
|
+
- Sub-100ms routing latency
|
|
21
|
+
- Zero-config developer experience
|
|
22
|
+
- API coverage for all CRUD operations by v1.0
|
|
23
|
+
-->
|
|
24
|
+
|
|
25
|
+
## Non-Goals
|
|
26
|
+
|
|
27
|
+
<!-- What is explicitly OUT OF SCOPE? This is equally important as Goals.
|
|
28
|
+
The Planner agent will WARN you when a requested feature falls here.
|
|
29
|
+
Examples:
|
|
30
|
+
- Not a hosting platform — users deploy their own
|
|
31
|
+
- Not supporting legacy REST APIs — MCP only
|
|
32
|
+
- Not building a UI dashboard in v1
|
|
33
|
+
- No mobile app — web only
|
|
34
|
+
-->
|
|
35
|
+
|
|
36
|
+
## Target Users
|
|
37
|
+
|
|
38
|
+
<!-- Who is this for? Be specific.
|
|
39
|
+
Examples:
|
|
40
|
+
- "Solo developers and small teams (1-3) using AI coding assistants."
|
|
41
|
+
- "Enterprise teams migrating from monolith to microservices."
|
|
42
|
+
- "Data scientists who need reproducible ML pipelines."
|
|
43
|
+
-->
|
|
44
|
+
|
|
45
|
+
<!-- CREW_MODE_START -->
|
|
46
|
+
## Crew Artifact Index
|
|
47
|
+
|
|
48
|
+
<!-- 🟣 Pipeline only — auto-generated by bootstrap when crew artifacts are detected.
|
|
49
|
+
Maps original artifact documents so skills/agents can read them directly.
|
|
50
|
+
DO NOT summarize artifacts here — just index their locations.
|
|
51
|
+
|
|
52
|
+
**Detection**: bootstrap Phase 1.5 scans for artifact files in:
|
|
53
|
+
- docs/crew/
|
|
54
|
+
- docs/PM/
|
|
55
|
+
- User-provided custom paths
|
|
56
|
+
If ANY files are found, bootstrap populates this table and activates the 🟣 pipeline.
|
|
57
|
+
If NO crew artifacts are found, this section stays empty (🟢/🔵/🔴 pipelines).
|
|
58
|
+
|
|
59
|
+
| Artifact | Path | Role | Contains |
|
|
60
|
+
|----------|------|------|----------|
|
|
61
|
+
| Product Brief | docs/crew/product-brief.md | Analyst | 비전, 페르소나, KPI |
|
|
62
|
+
| PRD | docs/crew/prd.md | PM | FR-001~005, NFR, 우선순위 |
|
|
63
|
+
| Architecture | docs/crew/architecture.md | ARB | 인프라, 앱스택, 보안 |
|
|
64
|
+
| ARB Checklist | docs/crew/arb-checklist.md | ARB | 감사 결과 (Pass/Fail) |
|
|
65
|
+
|
|
66
|
+
How bootstrap populates this:
|
|
67
|
+
1. Detects artifact files in docs/crew/, docs/PM/, or user-provided paths
|
|
68
|
+
2. Creates one row per artifact with exact path
|
|
69
|
+
3. "Contains" column lists key sections (KPIs, FRs, NFRs, etc.)
|
|
70
|
+
If no crew artifacts exist, this section stays empty (🟢/🔵/🔴 pipelines).
|
|
71
|
+
-->
|
|
72
|
+
|
|
73
|
+
## Validation Tracker
|
|
74
|
+
|
|
75
|
+
<!-- 🟣 Pipeline only — auto-generated by bootstrap, updated by learn/sprint-manager.
|
|
76
|
+
Tracks KPI coverage, FR coverage, and ARB Fail item resolution.
|
|
77
|
+
Initial state: All rows start with ⬜ (Not started). Story column empty until planner maps them.
|
|
78
|
+
|
|
79
|
+
**Status emojis for Validation Tracker** (simplified set — NOT the same as Story/Feature status):
|
|
80
|
+
- ⬜ Not started
|
|
81
|
+
- 🟡 In progress (Story mapped but not completed)
|
|
82
|
+
- ✅ Completed (Story done and verified)
|
|
83
|
+
Note: Story status uses ⬜/🔧/✅/🚫/❌ (see project-state.md). Feature status uses ⬜/🔧/✅/⚠️/❌ (see features.md). Validation Tracker uses a reduced set because it only tracks coverage, not development workflow.
|
|
84
|
+
|
|
85
|
+
**Write Precedence**: Multiple skills update the Validation Tracker:
|
|
86
|
+
1. `bootstrap` — creates initial structure (all ⬜)
|
|
87
|
+
2. `planner` — fills Story column (maps FR/KPI to Stories)
|
|
88
|
+
3. `learn` — updates Status (⬜→🟡 or 🟡→✅) based on session outcomes
|
|
89
|
+
If planner and learn both modify Status in the same session, learn’s update takes precedence (it captures the final session state).
|
|
90
|
+
|
|
91
|
+
### KPI Coverage
|
|
92
|
+
| ID | KPI | Source | Story | Status |
|
|
93
|
+
|----|-----|--------|-------|--------|
|
|
94
|
+
(Example: | KPI-1 | 응답시간 < 200ms | product-brief.md | S1-004 | 🟡 |)
|
|
95
|
+
|
|
96
|
+
### ARB Fail Resolution
|
|
97
|
+
| ID | Item | Severity | Story | Status |
|
|
98
|
+
|----|------|----------|-------|--------|
|
|
99
|
+
(Example: | ARB-F1 | SQL injection 취약점 | HIGH | S1-002 | ✅ |)
|
|
100
|
+
|
|
101
|
+
### FR Coverage
|
|
102
|
+
| FR | Description | Priority | Stories | Status |
|
|
103
|
+
|----|-------------|----------|---------|--------|
|
|
104
|
+
(Example: | FR-001 | 사용자 로그인 | P0 | S1-001, S1-003 | ✅ |)
|
|
105
|
+
|
|
106
|
+
Status legend: ⬜ Not started, 🟡 In progress, ✅ Done
|
|
107
|
+
Update flow: bootstrap creates → planner fills Story column → learn updates Status
|
|
108
|
+
-->
|
|
109
|
+
<!-- CREW_MODE_END -->
|
|
110
|
+
|
|
111
|
+
## Key Technical Decisions
|
|
112
|
+
|
|
113
|
+
<!-- Record foundational technology choices AND workflow conventions.
|
|
114
|
+
Helps LLMs generate correct code and follow your team's workflow.
|
|
115
|
+
|
|
116
|
+
**Technology Stack** (fill all that apply):
|
|
117
|
+
- Language: <!-- e.g., TypeScript 5.x (strict mode), Python 3.12, Go 1.22 -->
|
|
118
|
+
- Framework: <!-- e.g., Express + Prisma ORM, Django 5.0, Spring Boot 3.x -->
|
|
119
|
+
- Test runner: <!-- e.g., Vitest (not Jest), pytest, JUnit 5 -->
|
|
120
|
+
- Database: <!-- e.g., PostgreSQL 16, MongoDB 7, SQLite -->
|
|
121
|
+
- Architecture: <!-- e.g., Hexagonal (Port + Adapter), Layered, Clean Architecture -->
|
|
122
|
+
|
|
123
|
+
**Workflow Conventions** (fill all that apply):
|
|
124
|
+
- Default branch: <!-- e.g., main, develop -->
|
|
125
|
+
- Git remote: <!-- e.g., origin, upstream -->
|
|
126
|
+
- Staging policy: <!-- e.g., explicit per-file staging (no git add .), allow git add . -->
|
|
127
|
+
- Branch strategy: <!-- e.g., feature branches (feature/S1-1-scaffolding), trunk-based, gitflow -->
|
|
128
|
+
- Commit message format: <!-- default: "S{N}-{M}: {description}" — Story ID prefix for traceability -->
|
|
129
|
+
- Push frequency: <!-- e.g., per Story completion, per session end, per sprint -->
|
|
130
|
+
- Pivot authority: <!-- e.g., team consensus, tech lead, solo developer -->
|
|
131
|
+
- Deploy method: <!-- e.g., npm publish, docker push, terraform apply -->
|
|
132
|
+
-->
|
|
133
|
+
|
|
134
|
+
## Decision Log
|
|
135
|
+
|
|
136
|
+
<!-- Record WHY key decisions were made. The Planner uses this to avoid re-debating settled decisions.
|
|
137
|
+
Use the `pivot` skill to add entries here when direction changes.
|
|
138
|
+
Format:
|
|
139
|
+
|
|
140
|
+
### [YYYY-MM-DD] [Decision Title]
|
|
141
|
+
- **Change**: What changed
|
|
142
|
+
- **Reason**: Why this decision was made
|
|
143
|
+
- **Impact**: What was affected
|
|
144
|
+
- **Alternatives Considered**: 1-2 bullet points on what was rejected and why
|
|
145
|
+
-->
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Project State
|
|
2
|
+
|
|
3
|
+
> **Keep this file under 200 lines.** When Story count exceeds 30, move completed stories (✅) to the Archive section at the bottom.
|
|
4
|
+
|
|
5
|
+
## Quick Summary
|
|
6
|
+
|
|
7
|
+
<!-- Update these 3 lines EVERY session end. Format strictly:
|
|
8
|
+
Line 1: ✅ Last session: [Story ID] [one-sentence what was done]
|
|
9
|
+
Line 2: 🔄 In progress: [Story ID] [current state with measurable progress]
|
|
10
|
+
Line 3: ➡️ Next: [specific action to take first]
|
|
11
|
+
|
|
12
|
+
✅ Good examples:
|
|
13
|
+
✅ Last session: S1-002 User authentication implemented (login + JWT)
|
|
14
|
+
🔄 In progress: S1-003 API endpoint tests (3/7 tests passing)
|
|
15
|
+
➡️ Next: Complete remaining 4 tests, then start S1-004
|
|
16
|
+
|
|
17
|
+
❌ Bad examples:
|
|
18
|
+
✅ Last session: Did some work (too vague)
|
|
19
|
+
🔄 In progress: Stuff (no Story ID, no progress metric)
|
|
20
|
+
➡️ Next: Continue (no specific action)
|
|
21
|
+
|
|
22
|
+
**Write Precedence**: Multiple skills update this file. Priority order:
|
|
23
|
+
1. `learn` (session end) — highest priority, overwrites Quick Summary
|
|
24
|
+
2. `sprint-manager` (story status changes) — updates Story Status table
|
|
25
|
+
3. `planner` (new stories) — adds rows to Story Status table
|
|
26
|
+
4. `investigate` (bug fixes) — adds to Recent Changes only
|
|
27
|
+
If conflicts: learn’s Quick Summary always wins (it captures final session state).
|
|
28
|
+
-->
|
|
29
|
+
|
|
30
|
+
## Current Sprint
|
|
31
|
+
|
|
32
|
+
- Sprint: 1 — Initial Setup
|
|
33
|
+
- Started: <!-- TODO: date -->
|
|
34
|
+
- Branch: main
|
|
35
|
+
|
|
36
|
+
## Story Status
|
|
37
|
+
|
|
38
|
+
| ID | Title | Status | Assignee |
|
|
39
|
+
|----|-------|--------|----------|
|
|
40
|
+
| S1-1 | Project scaffolding | ⬜ todo | |
|
|
41
|
+
| S1-2 | Core feature implementation | ⬜ todo | |
|
|
42
|
+
| S1-3 | Test coverage | ⬜ todo | |
|
|
43
|
+
|
|
44
|
+
<!-- Status legend: ⬜ todo, 🔧 active, ✅ done, 🚫 blocked, ❌ dropped -->
|
|
45
|
+
|
|
46
|
+
## Module Registry
|
|
47
|
+
|
|
48
|
+
<!-- Summary of current modules. Full details in docs/dependency-map.md -->
|
|
49
|
+
| Module | Layer | Status |
|
|
50
|
+
|--------|-------|--------|
|
|
51
|
+
<!-- Fill as modules are created. Status: ⬜ planned, 🔧 active, ✅ stable -->
|
|
52
|
+
|
|
53
|
+
## Technical Decisions
|
|
54
|
+
|
|
55
|
+
<!-- Record key architectural decisions here. Detailed rationale goes in project-brief.md Decision Log. -->
|
|
56
|
+
|
|
57
|
+
## Recent Changes
|
|
58
|
+
|
|
59
|
+
<!-- Log recent completions here. Keep last 10 entries. Older entries can be deleted. -->
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Session Handoff Protocol
|
|
64
|
+
|
|
65
|
+
Before ending a chat session, you MUST:
|
|
66
|
+
1. Update the **Quick Summary** section above (3 lines: ✅/🔄/➡️ format)
|
|
67
|
+
2. Update **Story Status** table with current progress
|
|
68
|
+
3. Add any new failure patterns to `docs/failure-patterns.md`
|
|
69
|
+
4. Update `docs/features.md` if any features were added/changed
|
|
70
|
+
|
|
71
|
+
When starting a new chat session, read these files first:
|
|
72
|
+
1. `docs/project-state.md` (this file) — where we are
|
|
73
|
+
2. `docs/features.md` — what exists
|
|
74
|
+
3. `docs/failure-patterns.md` — what to watch out for
|
|
75
|
+
4. `docs/project-brief.md` — why we're building this
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Archive
|
|
80
|
+
|
|
81
|
+
<!-- Move completed stories (✅) here when Story Status table exceeds 30 rows.
|
|
82
|
+
Keep the table format. Prefix with sprint number for reference.
|
|
83
|
+
| Sprint | ID | Title | Completed |
|
|
84
|
+
|--------|----|-------|-----------|
|
|
85
|
+
-->
|