@kodevibe/harness 0.8.4 → 0.9.0
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/README.ko.md +35 -34
- package/README.md +37 -36
- package/harness/agent-memory/architect.md +2 -2
- package/harness/agent-memory/{sprint-manager.md → lead.md} +4 -4
- package/harness/agent-memory/{planner.md → pm.md} +3 -3
- package/harness/agent-memory/reviewer.md +5 -5
- package/harness/agents/architect.md +9 -9
- package/harness/agents/{sprint-manager.md → lead.md} +24 -24
- package/harness/agents/{planner.md → pm.md} +24 -24
- package/harness/agents/reviewer.md +19 -19
- package/harness/core-rules.md +40 -40
- package/harness/dependency-map.md +2 -2
- package/harness/failure-patterns.md +4 -4
- package/harness/features.md +3 -3
- package/harness/project-brief.md +11 -11
- package/harness/project-state.md +5 -5
- package/harness/skills/{feature-breakdown.md → breakdown.md} +8 -8
- package/harness/skills/{impact-analysis.md → check-impact.md} +5 -5
- package/harness/skills/{investigate.md → debug.md} +8 -8
- package/harness/skills/pivot.md +4 -4
- package/harness/skills/{code-review-pr.md → pr-review.md} +4 -4
- package/harness/skills/{deployment.md → release.md} +8 -8
- package/harness/skills/{bootstrap.md → setup.md} +16 -16
- package/harness/skills/{learn.md → wrap-up.md} +12 -12
- package/package.json +1 -1
- package/src/init.js +22 -22
- /package/harness/skills/{security-checklist.md → secure.md} +0 -0
- /package/harness/skills/{test-integrity.md → sync-tests.md} +0 -0
|
@@ -9,14 +9,14 @@ The Planner is the entry point for new features — use it BEFORE writing code.
|
|
|
9
9
|
## Invoked By
|
|
10
10
|
|
|
11
11
|
- **User** (direct) — "[기능]을 추가해줘", "계획 세워줘"
|
|
12
|
-
- **
|
|
13
|
-
- **pivot** →
|
|
14
|
-
- **architect** →
|
|
12
|
+
- **setup** → pm (🟢/🟣 pipeline Step 2)
|
|
13
|
+
- **pivot** → pm — "변경된 방향에 맞춰 재계획해줘"
|
|
14
|
+
- **architect** → pm — "승인된 설계로 기능을 계획해줘"
|
|
15
15
|
|
|
16
16
|
## Referenced Skills
|
|
17
17
|
|
|
18
|
-
-
|
|
19
|
-
- impact
|
|
18
|
+
- breakdown
|
|
19
|
+
- check-impact
|
|
20
20
|
|
|
21
21
|
## Referenced Files
|
|
22
22
|
|
|
@@ -24,7 +24,7 @@ The Planner is the entry point for new features — use it BEFORE writing code.
|
|
|
24
24
|
- docs/project-brief.md — 프로젝트 방향, Goals, Non-Goals, Decision Log (Step 1에서 사용)
|
|
25
25
|
- docs/features.md — 기존 기능 등록부 (중복 방지)
|
|
26
26
|
- docs/dependency-map.md — 모듈 구조 (impact 분석)
|
|
27
|
-
- docs/agent-memory/
|
|
27
|
+
- docs/agent-memory/pm.md — 과거 계획 인사이트
|
|
28
28
|
|
|
29
29
|
### Optional — 해당 Step에서만 읽기
|
|
30
30
|
- docs/project-state.md — Sprint 컨텍스트 필요 시에만 읽기
|
|
@@ -47,14 +47,14 @@ Before proceeding, verify that required state files have content (not just TODO
|
|
|
47
47
|
- `docs/features.md` — Must have at least one feature row
|
|
48
48
|
- `docs/dependency-map.md` — Must have at least one module row (for existing projects)
|
|
49
49
|
|
|
50
|
-
If ALL files are empty/placeholder-only → **Stop and run the `
|
|
51
|
-
If `docs/project-brief.md` alone is empty → **Stop.** Without Vision/Goals,
|
|
50
|
+
If ALL files are empty/placeholder-only → **Stop and run the `setup` skill first.** Report: "State files are empty. Running setup to onboard this project."
|
|
51
|
+
If `docs/project-brief.md` alone is empty → **Stop.** Without Vision/Goals, pm cannot check Non-Goals or provide direction guard. Run `setup` first.
|
|
52
52
|
|
|
53
53
|
> Step 0 runs BEFORE Step 1. If Step 0 stops (empty brief), Step 1 never executes. When Step 0 passes, Step 1 reads the now-confirmed non-empty project-brief.md for detailed content.
|
|
54
54
|
|
|
55
55
|
### Step 0.5: Load Agent Memory
|
|
56
56
|
|
|
57
|
-
Read `docs/agent-memory/
|
|
57
|
+
Read `docs/agent-memory/pm.md` for past learnings:
|
|
58
58
|
- Estimation accuracy from previous sprints (did Wave estimates match reality?)
|
|
59
59
|
- Architecture patterns that worked or failed in this project
|
|
60
60
|
- Repeated planning mistakes to avoid
|
|
@@ -104,7 +104,7 @@ Apply these insights when creating the implementation plan. If the memory file i
|
|
|
104
104
|
<!-- CREW_MODE_END -->
|
|
105
105
|
|
|
106
106
|
3. **Direction Alignment**: Verify the requested feature against three checkpoints.
|
|
107
|
-
> This check intentionally duplicates architect’s direction validation (Step 2). The redundancy is by design: architect validates STRUCTURAL proposals (module boundaries, layer rules), while
|
|
107
|
+
> This check intentionally duplicates architect’s direction validation (Step 2). The redundancy is by design: architect validates STRUCTURAL proposals (module boundaries, layer rules), while pm validates FEATURE-level alignment (goals, non-goals, decisions). When both are used in the same session, this provides defense-in-depth.
|
|
108
108
|
- **Goal Alignment**: Does it serve a listed Goal? If no clear link → **warn but proceed**. Include the warning in the plan output under a `### Direction Alignment` section: `⚠️ Goal Alignment: [feature] does not directly map to listed goals`.
|
|
109
109
|
- **Non-Goal Violation**: Does it fall into Non-Goals? If yes → **stop and ask the user**. Do not proceed until the user confirms this is intentional (may need `pivot` skill).
|
|
110
110
|
- **Decision Consistency**: Does it contradict any Decision Log entry? If yes → **stop and warn**. Recommend running the `pivot` skill before proceeding.
|
|
@@ -114,9 +114,9 @@ Apply these insights when creating the implementation plan. If the memory file i
|
|
|
114
114
|
5. Read `docs/project-state.md` for current Sprint context
|
|
115
115
|
6. Identify which existing modules are affected
|
|
116
116
|
7. Identify new modules that need to be created
|
|
117
|
-
8. Run **
|
|
118
|
-
9. Register NEW modules from
|
|
119
|
-
10. Run **impact
|
|
117
|
+
8. Run **breakdown** skill to create ordered task list
|
|
118
|
+
9. Register NEW modules from breakdown output in `docs/dependency-map.md` (so check-impact reads the updated map)
|
|
119
|
+
10. Run **check-impact** skill for each existing module being modified (pm calls both skills independently — breakdown does NOT invoke check-impact internally. Ordering: breakdown first → register modules → check-impact second.)
|
|
120
120
|
11. Check `docs/failure-patterns.md` for relevant past mistakes
|
|
121
121
|
12. Produce implementation plan (see Output Format)
|
|
122
122
|
12. **Wait for Plan Confirmation** (see Plan Confirmation Gate below) — do NOT write state files yet
|
|
@@ -143,7 +143,7 @@ Apply these insights when creating the implementation plan. If the memory file i
|
|
|
143
143
|
- Update Validation Tracker in `docs/project-brief.md` with mapped Stories
|
|
144
144
|
If no Crew Artifact Index → proceed with normal refactoring flow below.
|
|
145
145
|
<!-- CREW_MODE_END -->
|
|
146
|
-
3. Run **impact
|
|
146
|
+
3. Run **check-impact** skill on each module being refactored
|
|
147
147
|
4. Identify safe refactoring order (leaf modules first, core modules last)
|
|
148
148
|
5. Produce refactoring plan with rollback checkpoints
|
|
149
149
|
|
|
@@ -154,10 +154,10 @@ After producing ANY plan (New Feature, Refactor, or Crew-Driven), **do NOT proce
|
|
|
154
154
|
1. Present the complete plan to the user
|
|
155
155
|
2. Ask: **"이 경로(Plan)대로 구현을 시작할까요?"** (or equivalent confirmation request)
|
|
156
156
|
3. Wait for explicit user approval (`Yes`, `Go`, `진행해줘`, etc.)
|
|
157
|
-
4. **Only after approval** → execute **MANDATORY State File Write** (below), then output 🧭 Next Step pointing to `
|
|
157
|
+
4. **Only after approval** → execute **MANDATORY State File Write** (below), then output 🧭 Next Step pointing to `lead`
|
|
158
158
|
5. If the user requests changes → revise the plan and re-confirm. **No state files are written until approval.**
|
|
159
159
|
|
|
160
|
-
> **Why**: The
|
|
160
|
+
> **Why**: The pm is planning a route, not driving. The user must confirm the route before the engine starts. This prevents irreversible code changes based on a misunderstood plan.
|
|
161
161
|
|
|
162
162
|
### ⚠️ MANDATORY: Post-Approval State File Write
|
|
163
163
|
|
|
@@ -211,7 +211,7 @@ If any write fails, report the failure and retry. Do NOT proceed to 🧭 with in
|
|
|
211
211
|
- Unchanged dependents that need testing: [list]
|
|
212
212
|
|
|
213
213
|
### Implementation Plan
|
|
214
|
-
[Output from
|
|
214
|
+
[Output from breakdown skill]
|
|
215
215
|
|
|
216
216
|
### Risk Notes
|
|
217
217
|
- [Any failure patterns that apply]
|
|
@@ -240,7 +240,7 @@ Use this format when Crew Artifact Index exists in project-brief.md. If no Artif
|
|
|
240
240
|
- Modified modules: [list]
|
|
241
241
|
|
|
242
242
|
### Implementation Plan
|
|
243
|
-
[Output from
|
|
243
|
+
[Output from breakdown skill]
|
|
244
244
|
|
|
245
245
|
### Validation Tracker Updates
|
|
246
246
|
- KPI Coverage: [which KPIs this story addresses]
|
|
@@ -264,20 +264,20 @@ After producing a plan, always append a 🧭 block:
|
|
|
264
264
|
|
|
265
265
|
| Planner Result | 🧭 Next Step |
|
|
266
266
|
|---|---|
|
|
267
|
-
| Plan created (solo) | User confirmation — "이 경로(Plan)대로 구현을 시작할까요?" → approved → `
|
|
267
|
+
| Plan created (solo) | User confirmation — "이 경로(Plan)대로 구현을 시작할까요?" → approved → `lead` |
|
|
268
268
|
<!-- CREW_MODE_START -->
|
|
269
|
-
| Plan created (crew artifacts used) | User confirmation — "crew 기반 Plan을 확인해 주세요. 진행할까요?" → approved → `
|
|
269
|
+
| Plan created (crew artifacts used) | User confirmation — "crew 기반 Plan을 확인해 주세요. 진행할까요?" → approved → `lead` |
|
|
270
270
|
<!-- CREW_MODE_END -->
|
|
271
271
|
| Non-Goal violation → stopped | User decision needed — "이 기능은 Non-Goal에 해당합니다. 계속하시겠습니까? → `pivot` 또는 취소" |
|
|
272
272
|
| Direction change detected | `pivot` — "방향을 전환하고 state 파일을 업데이트해줘" |
|
|
273
|
-
| State files empty | `
|
|
273
|
+
| State files empty | `setup` — "프로젝트를 온보딩해줘" |
|
|
274
274
|
|
|
275
275
|
Example 🧭 block for normal completion:
|
|
276
276
|
```
|
|
277
277
|
---
|
|
278
278
|
🧭 Next Step
|
|
279
279
|
→ Confirm: "이 경로(Plan)대로 구현을 시작할까요?"
|
|
280
|
-
→ After approval → Next: `
|
|
280
|
+
→ After approval → Next: `lead` (슬래시 메뉴에서 선택하거나, 채팅에 아래 프롬프트 입력)
|
|
281
281
|
→ Prompt: "S{N}-{M} Story를 시작해줘"
|
|
282
282
|
→ Why: Plan is ready — user must confirm route before engine starts
|
|
283
283
|
→ Pipeline: 🟢 Step 3/6
|
|
@@ -287,7 +287,7 @@ Example 🧭 block for normal completion:
|
|
|
287
287
|
## Enforced Rules
|
|
288
288
|
|
|
289
289
|
- **Direction Guard**: Before planning, read `docs/project-brief.md` and check:
|
|
290
|
-
- If Vision/Goals are empty → stop and run `
|
|
290
|
+
- If Vision/Goals are empty → stop and run `setup`
|
|
291
291
|
- If it conflicts with **Non-Goals** → stop and ask the user
|
|
292
292
|
- If it contradicts a **Decision Log** entry → warn and recommend `pivot` skill
|
|
293
293
|
- If it represents a direction change → recommend `pivot` skill
|
|
@@ -315,6 +315,6 @@ Before reading or updating shared state files, run `git pull` on the default bra
|
|
|
315
315
|
- Set Owner on new rows you create in docs/features.md and docs/dependency-map.md
|
|
316
316
|
|
|
317
317
|
### Agent Memory
|
|
318
|
-
- Your personal docs/agent-memory/
|
|
318
|
+
- Your personal docs/agent-memory/pm.md contains your individual estimation accuracy
|
|
319
319
|
- Team velocity estimates should be coordinated through sprint planning meetings, not derived from personal metrics alone
|
|
320
320
|
<!-- TEAM_MODE_END -->
|
|
@@ -9,13 +9,13 @@ Finds issues and auto-fixes where safe, escalates where not.
|
|
|
9
9
|
|
|
10
10
|
- **User** (direct) — "코드를 리뷰해줘", "커밋 전 검토해줘"
|
|
11
11
|
- **[Coding done]** → reviewer (🟢/🔵/🔴 pipeline — after implementation)
|
|
12
|
-
- **
|
|
12
|
+
- **debug** → reviewer — "수정한 코드를 리뷰해줘"
|
|
13
13
|
|
|
14
14
|
## Referenced Skills
|
|
15
15
|
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
- impact
|
|
16
|
+
- sync-tests — Mock synchronization verification
|
|
17
|
+
- secure — Security risk inspection
|
|
18
|
+
- check-impact — Change blast radius assessment
|
|
19
19
|
|
|
20
20
|
## Referenced Files
|
|
21
21
|
|
|
@@ -37,7 +37,7 @@ Before reviewing, verify that required state files exist and are not empty:
|
|
|
37
37
|
- `docs/failure-patterns.md` — Must exist (needed for Step 5 cross-check)
|
|
38
38
|
- `docs/project-state.md` — Must have current Sprint info (needed for scope check)
|
|
39
39
|
|
|
40
|
-
If state files are empty/placeholder-only → Warn: "State files are not filled. Review will proceed but scope check and failure pattern cross-check will be limited. Consider running `
|
|
40
|
+
If state files are empty/placeholder-only → Warn: "State files are not filled. Review will proceed but scope check and failure pattern cross-check will be limited. Consider running `setup` skill."
|
|
41
41
|
If `docs/failure-patterns.md` is empty, FP-cross-check (Step 5) will be skipped. This increases risk of recurring bugs.
|
|
42
42
|
|
|
43
43
|
### Step 0.5: Load Agent Memory
|
|
@@ -65,12 +65,12 @@ Changed file list (user-provided or from `git diff --name-only`)
|
|
|
65
65
|
- [ ] Constructor parameters match actual source (FP-002)
|
|
66
66
|
- [ ] **Common First (Iron Law #9)**: No crew-specific logic outside crew marker blocks. All features must work without crew artifacts.
|
|
67
67
|
|
|
68
|
-
**Step 3: Test Integrity (
|
|
68
|
+
**Step 3: Test Integrity (sync-tests skill)**
|
|
69
69
|
- [ ] Interface changes have synchronized mocks (FP-001)
|
|
70
70
|
- [ ] New features have tests
|
|
71
71
|
- [ ] Existing tests pass
|
|
72
72
|
|
|
73
|
-
**Step 4: Security Check (
|
|
73
|
+
**Step 4: Security Check (secure skill)**
|
|
74
74
|
- [ ] No credentials, .env, or temp files in staging (FP-004)
|
|
75
75
|
- [ ] No hardcoded API keys or passwords
|
|
76
76
|
- [ ] No injection vulnerabilities (SQL, XSS)
|
|
@@ -121,7 +121,7 @@ If no Crew Artifact Index → skip this step entirely.
|
|
|
121
121
|
- [ ] If new modules were added, verify they are registered in docs/dependency-map.md (Iron Law #6)
|
|
122
122
|
- [ ] If module interfaces changed, verify "Depends On" / "Depended By" columns are updated
|
|
123
123
|
- [ ] If module was deleted/renamed, verify docs/dependency-map.md is cleaned up
|
|
124
|
-
- [ ] Run impact
|
|
124
|
+
- [ ] Run check-impact skill if interface changes affect 2+ dependent modules
|
|
125
125
|
|
|
126
126
|
**Step 8: State File Audit**
|
|
127
127
|
|
|
@@ -136,13 +136,13 @@ Verify that state file updates actually happened. Check each:
|
|
|
136
136
|
- [ ] **docs/dependency-map.md**: If new modules were created, are they registered? If dependencies changed, are relationships updated?
|
|
137
137
|
- [ ] **docs/failure-patterns.md**: If a bug was fixed that matched a pattern, was frequency incremented?
|
|
138
138
|
- [ ] **docs/project-brief.md**: If a technology or architectural decision was made, is it in Decision Log?
|
|
139
|
-
- [ ] **docs/agent-memory/*.md**: If an agent (reviewer/
|
|
139
|
+
- [ ] **docs/agent-memory/*.md**: If an agent (reviewer/pm/lead) was used this session, was its memory updated by the wrap-up skill?
|
|
140
140
|
|
|
141
141
|
For each missing update: flag as `[STATE-AUDIT]` in the output and provide the exact update that should be made.
|
|
142
142
|
**Severity**:
|
|
143
143
|
- Missing dependency-map or features.md entries for new modules/features are **blockers** — fix before commit.
|
|
144
|
-
- `[STATE-AUDIT: FR-COVERAGE]` flags (features.md status ↔ Story 완료 불일치) are **blockers** — features.md 상태 갱신 후 commit. 30초면 해결되며
|
|
145
|
-
- Missing project-state Quick Summary or agent-memory updates are **warnings** — can be deferred to
|
|
144
|
+
- `[STATE-AUDIT: FR-COVERAGE]` flags (features.md status ↔ Story 완료 불일치) are **blockers** — features.md 상태 갱신 후 commit. 30초면 해결되며 wrap-up까지 미루면 FR 추적이 실제와 불일치합니다.
|
|
145
|
+
- Missing project-state Quick Summary or agent-memory updates are **warnings** — can be deferred to wrap-up skill.
|
|
146
146
|
|
|
147
147
|
**Step 9: Commit Guidance**
|
|
148
148
|
|
|
@@ -158,7 +158,7 @@ When review result is DONE or DONE_WITH_CONCERNS (no blockers):
|
|
|
158
158
|
git commit -m "S{N}-{M}: {description}"
|
|
159
159
|
```
|
|
160
160
|
4. **Push recommendation**:
|
|
161
|
-
- Solo mode: Push at least once per session end (
|
|
161
|
+
- Solo mode: Push at least once per session end (wrap-up skill will remind)
|
|
162
162
|
- Team mode: Push after each Story completion to share progress
|
|
163
163
|
- If remote is configured: `git push origin {branch}`
|
|
164
164
|
|
|
@@ -230,9 +230,9 @@ After review completes, always append a 🧭 block based on the outcome:
|
|
|
230
230
|
|
|
231
231
|
| Review Result | 🧭 Next Step |
|
|
232
232
|
|---|---|
|
|
233
|
-
| All checks pass, more stories remain | Commit → `
|
|
234
|
-
| All checks pass, all stories done | Commit → `
|
|
235
|
-
| STATE-AUDIT flags found | Two valid paths: (1) `
|
|
233
|
+
| All checks pass, more stories remain | Commit → `lead` — "커밋 후 다음 Story는?" |
|
|
234
|
+
| All checks pass, all stories done | Commit → `wrap-up` — "커밋 후 세션을 마무리해줘" |
|
|
235
|
+
| STATE-AUDIT flags found | Two valid paths: (1) `wrap-up` now → "지금 state 파일을 정리해줘" or (2) `lead` → continue coding, resolve at session end |
|
|
236
236
|
| Security/architecture issues blocking | [Fix] — "리뷰 지적사항을 수정하세요. 완료 후 **새 프롬프트**에서 다시 `@reviewer` 호출" |
|
|
237
237
|
|
|
238
238
|
Example 🧭 block for passing review:
|
|
@@ -241,11 +241,11 @@ Example 🧭 block for passing review:
|
|
|
241
241
|
🧭 Next Step
|
|
242
242
|
→ Action: 아래 커밋 명령을 실행하세요
|
|
243
243
|
→ Command: git add <files> && git commit -m "S{N}-{M}: {description}"
|
|
244
|
-
→ Next: `
|
|
244
|
+
→ Next: `lead` (**새 채팅**에서 아래 입력)
|
|
245
245
|
→ Prompt: "다음 Story는?"
|
|
246
246
|
→ Why: Review passed — commit changes, then move to the next Story
|
|
247
247
|
→ Pipeline: 🔵 Step 5/6
|
|
248
|
-
→ Alternative: 세션 종료 시 `
|
|
248
|
+
→ Alternative: 세션 종료 시 `wrap-up` 호출 (push 포함)
|
|
249
249
|
---
|
|
250
250
|
```
|
|
251
251
|
|
|
@@ -253,8 +253,8 @@ Example 🧭 block for passing review:
|
|
|
253
253
|
|
|
254
254
|
When Step 8 (State File Audit) produces `[STATE-AUDIT]` flags:
|
|
255
255
|
1. List all flagged items in the review output
|
|
256
|
-
2. The `
|
|
257
|
-
3. If a flag is critical (missing module in dependency-map, unregistered feature), recommend fixing immediately rather than deferring to
|
|
256
|
+
2. The `wrap-up` skill (run at session end) will verify and resolve these flags
|
|
257
|
+
3. If a flag is critical (missing module in dependency-map, unregistered feature), recommend fixing immediately rather than deferring to wrap-up
|
|
258
258
|
|
|
259
259
|
<!-- TEAM_MODE_START -->
|
|
260
260
|
## Team Mode: Review
|
package/harness/core-rules.md
CHANGED
|
@@ -6,7 +6,7 @@ Skills and agents work together through shared state files.
|
|
|
6
6
|
|
|
7
7
|
## Session Start
|
|
8
8
|
|
|
9
|
-
Read `docs/project-state.md` first. If all state files are empty, run `
|
|
9
|
+
Read `docs/project-state.md` first. If all state files are empty, run `setup` skill.
|
|
10
10
|
If `.harness/my-context.md` exists, read it for personal environment and preferences.
|
|
11
11
|
> This file is user-created, not generated by any skill or agent. Create it manually to store personal environment notes (IDE settings, local paths, preferences). See `.harness/` in docs/ for the expected location.
|
|
12
12
|
|
|
@@ -15,45 +15,45 @@ If `.harness/my-context.md` exists, read it for personal environment and prefere
|
|
|
15
15
|
Follow the pipeline that matches the current situation. After each step, output a 🧭 Next Step.
|
|
16
16
|
|
|
17
17
|
### 🟢 New Development (no design docs — start from scratch)
|
|
18
|
-
1. `
|
|
19
|
-
2. `
|
|
20
|
-
3. `
|
|
21
|
-
4. [Coding] → implement Stories in order from
|
|
18
|
+
1. `setup` → scan project & fill state files
|
|
19
|
+
2. `pm` → plan first feature based on user requirements
|
|
20
|
+
3. `lead` → start Story ("S{N}-{M} Story를 시작해줘")
|
|
21
|
+
4. [Coding] → implement Stories in order from pm
|
|
22
22
|
5. `reviewer` → code review → commit (`git commit -m "S{N}-{M}: ..."`) → push
|
|
23
|
-
6. `
|
|
23
|
+
6. `wrap-up` → capture session lessons + verify push before ending
|
|
24
24
|
|
|
25
|
-
### 🔵 Continue Development (
|
|
26
|
-
1. `
|
|
27
|
-
2. `
|
|
28
|
-
3. `
|
|
25
|
+
### 🔵 Continue Development (setup already done)
|
|
26
|
+
1. `lead` → check current status ("where are we?")
|
|
27
|
+
2. `pm` → plan new feature (if needed)
|
|
28
|
+
3. `lead` → start Story
|
|
29
29
|
4. [Coding] → implement Stories in order
|
|
30
30
|
5. `reviewer` → code review → commit (`git commit -m "S{N}-{M}: ..."`) → push
|
|
31
|
-
6. `
|
|
31
|
+
6. `wrap-up` → capture session lessons + verify push before ending
|
|
32
32
|
|
|
33
33
|
### 🔴 Bug Fix
|
|
34
|
-
1. `
|
|
35
|
-
2. [Fix] → apply fix within
|
|
34
|
+
1. `debug` → diagnose the issue
|
|
35
|
+
2. [Fix] → apply fix within debug's recommended scope
|
|
36
36
|
3. `reviewer` → review the fix → commit → push
|
|
37
|
-
4. `
|
|
37
|
+
4. `wrap-up` → record lessons + verify push
|
|
38
38
|
|
|
39
39
|
### 🟡 Direction Change
|
|
40
40
|
1. `pivot` → update all state files for new direction
|
|
41
|
-
2. `
|
|
41
|
+
2. `pm` → re-plan features for new direction
|
|
42
42
|
|
|
43
43
|
<!-- CREW_MODE_START -->
|
|
44
44
|
### 🟣 Crew-Driven Development (kode:crew artifacts provided)
|
|
45
45
|
|
|
46
46
|
When external planning artifacts exist (requirements, analysis, design documents from kode:crew or similar):
|
|
47
47
|
|
|
48
|
-
1. `
|
|
49
|
-
2. `
|
|
50
|
-
3. `
|
|
51
|
-
4. [Coding] → implement Stories in order from
|
|
48
|
+
1. `setup` → scan project & fill state files, **create Artifact Index + Validation Tracker** in project-brief.md (originals are never modified)
|
|
49
|
+
2. `pm` → plan features **from crew artifacts**: map FR→Stories (`[FR-NNN]` prefix), ARB Fail→P0 Stories (`[ARB-FAIL]` prefix), update Validation Tracker
|
|
50
|
+
3. `lead` → start Story (includes Validation Dashboard showing KPI/FR/ARB coverage)
|
|
51
|
+
4. [Coding] → implement Stories in order from pm
|
|
52
52
|
5. `reviewer` → code review + crew artifact compliance check → commit → push
|
|
53
|
-
6. `
|
|
53
|
+
6. `wrap-up` → capture session lessons + update Validation Tracker + verify push
|
|
54
54
|
|
|
55
55
|
> Crew artifacts are detected by: `docs/crew/` directory, `docs/PM/`+`docs/Analyst/`+`docs/ARB/` directories, or user explicitly provides requirements/design documents (e.g., mentions "PRD", "산출물", "설계서", or provides file paths to planning artifacts).
|
|
56
|
-
> **Reference, don't summarize**:
|
|
56
|
+
> **Reference, don't summarize**: setup creates a Crew Artifact Index (path table) in project-brief.md — each skill reads the original artifact directly via the indexed path.
|
|
57
57
|
> This pipeline produces the same state files as 🟢 — the difference is the INPUT source and the addition of Validation Tracker for traceability.
|
|
58
58
|
<!-- CREW_MODE_END -->
|
|
59
59
|
|
|
@@ -63,15 +63,15 @@ When the user provides a feature request or development goal in their prompt:
|
|
|
63
63
|
|
|
64
64
|
1. Read `docs/project-state.md` to determine current project state
|
|
65
65
|
2. Route to the appropriate pipeline:
|
|
66
|
-
- State files empty → Start 🟢 Pipeline from Step 1 (`
|
|
67
|
-
- State files exist + new feature request → Start 🟢 or 🔵 Pipeline from `
|
|
68
|
-
- Bug report or error → Start 🔴 Pipeline from `
|
|
69
|
-
- Structural/design change → Run `architect` first, then `
|
|
66
|
+
- State files empty → Start 🟢 Pipeline from Step 1 (`setup`)
|
|
67
|
+
- State files exist + new feature request → Start 🟢 or 🔵 Pipeline from `pm`
|
|
68
|
+
- Bug report or error → Start 🔴 Pipeline from `debug`
|
|
69
|
+
- Structural/design change → Run `architect` first, then `pm`
|
|
70
70
|
- Direction change → Start 🟡 Pipeline from `pivot`
|
|
71
71
|
<!-- CREW_MODE_START -->
|
|
72
|
-
- Crew artifacts detected (`docs/crew/` exists, `docs/PM/`+`docs/Analyst/`+`docs/ARB/` exist, or user provided design docs) → Start 🟣 Pipeline from `
|
|
72
|
+
- Crew artifacts detected (`docs/crew/` exists, `docs/PM/`+`docs/Analyst/`+`docs/ARB/` exist, or user provided design docs) → Start 🟣 Pipeline from `setup`
|
|
73
73
|
<!-- CREW_MODE_END -->
|
|
74
|
-
- Any other request (info, explanation, status) → `
|
|
74
|
+
- Any other request (info, explanation, status) → `lead` — route with context
|
|
75
75
|
3. Announce which pipeline and step you are starting, then execute
|
|
76
76
|
|
|
77
77
|
## 🧭 Next Step — Response Rule
|
|
@@ -94,18 +94,18 @@ When a skill or agent reports STATUS: DONE, output the next step in this format:
|
|
|
94
94
|
|
|
95
95
|
| Completed | Next | Prompt Example |
|
|
96
96
|
|-----------|------|---------------|
|
|
97
|
-
| `
|
|
98
|
-
| `
|
|
97
|
+
| `setup` | `pm` | "[project]에 [첫 기능]을 추가해줘" || `pm` (Step 0 → empty) | `setup` [internal] | "State files empty — auto-invoking setup" || `pm` | User confirmation → `lead` | "이 경로(Plan)대로 구현을 시작할까요?" → "S{N}-{M} Story를 시작해줘" |
|
|
98
|
+
| `lead` (story started) | [Coding] | "S{N}-{M} 구현을 시작해줘" → 완료 후 **새 채팅**에서 `@reviewer` 호출 |
|
|
99
99
|
| [Coding done] | `reviewer` | "S{N}-{M} 코드를 리뷰해줘" |
|
|
100
|
-
| `reviewer` (pass, more stories) | Commit → `
|
|
101
|
-
| `reviewer` (pass, all done) | Commit → `
|
|
102
|
-
| `reviewer` (STATE-AUDIT) | `
|
|
103
|
-
| `
|
|
104
|
-
| `pivot` | `
|
|
105
|
-
| `architect` | `
|
|
106
|
-
| `
|
|
100
|
+
| `reviewer` (pass, more stories) | Commit → `lead` | \"커밋 후 다음 Story는?\" |
|
|
101
|
+
| `reviewer` (pass, all done) | Commit → `wrap-up` | \"커밋 후 세션 마무리해줘\" |
|
|
102
|
+
| `reviewer` (STATE-AUDIT) | `wrap-up` | "state 파일을 정리하고 세션 마무리해줘" |
|
|
103
|
+
| `debug` | `reviewer` | "수정한 코드를 리뷰해줘" |
|
|
104
|
+
| `pivot` | `pm` | "변경된 방향에 맞춰 재계획해줘" |
|
|
105
|
+
| `architect` | `pm` | "승인된 설계로 기능을 계획해줘" |
|
|
106
|
+
| `wrap-up` | 🏁 Session End | "다음 세션 시작 시 `lead` 호출" |
|
|
107
107
|
<!-- CREW_MODE_START -->
|
|
108
|
-
| Crew artifacts provided | `
|
|
108
|
+
| Crew artifacts provided | `setup` (🟣) | "crew 산출물을 기반으로 프로젝트를 세팅해줘" |
|
|
109
109
|
<!-- CREW_MODE_END -->
|
|
110
110
|
|
|
111
111
|
## State Files
|
|
@@ -125,10 +125,10 @@ These laws are enforced across all skills and agents. Violations should be flagg
|
|
|
125
125
|
3. **Scope Compliance**: Do not modify files outside the current Story scope without reporting first.
|
|
126
126
|
4. **Security**: Never include credentials, passwords, or API keys in code or commits.
|
|
127
127
|
5. **3-Failure Stop + Recalculating**: If the same approach fails 3 times, stop the current approach. Then:
|
|
128
|
-
- Automatically invoke `
|
|
129
|
-
- **Inject failure context**: Pass to
|
|
128
|
+
- Automatically invoke `debug` skill in **Recalculating Mode** (one attempt)
|
|
129
|
+
- **Inject failure context**: Pass to debug a summary of the 3 failed attempts: (a) what approach was tried, (b) the error message for each attempt. This prevents debug from repeating the same failed approaches.
|
|
130
130
|
- Present the user with: (a) the blocker diagnosis, (b) 1-2 alternative approaches that differ from all 3 failed attempts
|
|
131
|
-
- If
|
|
131
|
+
- If debug itself fails or the alternatives are rejected → **full stop**, escalate to the user
|
|
132
132
|
- Never retry the original failed approach after the 3-Failure Stop triggers
|
|
133
133
|
6. **Dependency Map**: When adding or modifying a module, update dependency-map.md in the same commit.
|
|
134
134
|
7. **Feature Registry**: When adding a feature, register it in features.md in the same commit.
|
|
@@ -40,11 +40,11 @@ When modifying a module:
|
|
|
40
40
|
## Interface Change Log
|
|
41
41
|
|
|
42
42
|
<!-- Record interface changes as they happen. This is MANDATORY for all interface changes (Iron Law #1).
|
|
43
|
-
**Who fills this**: The `impact
|
|
43
|
+
**Who fills this**: The `check-impact` skill adds rows during planning/review. The `reviewer` agent verifies rows exist (Step 7).
|
|
44
44
|
After modifying any public interface (method signature, return type, parameters):
|
|
45
45
|
1. Add a row here immediately
|
|
46
46
|
2. Check "Affected Modules" by reading the Depended By column in Module Registry
|
|
47
|
-
3. Update mocks for all affected modules (run
|
|
47
|
+
3. Update mocks for all affected modules (run sync-tests skill)
|
|
48
48
|
4. Set Status to "In Progress" until all dependents are updated, then "Updated"
|
|
49
49
|
|
|
50
50
|
| Date | Module | Change | Affected Modules | Status |
|
|
@@ -18,7 +18,7 @@ Keep resolved patterns for regression prevention.
|
|
|
18
18
|
- **Frequency**: 0
|
|
19
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
20
|
- **Prevention**: Update mock in the same commit as the interface change.
|
|
21
|
-
- **Applied in**: testing rules,
|
|
21
|
+
- **Applied in**: testing rules, sync-tests skill, reviewer agent
|
|
22
22
|
- **Status**: Template — activate when first occurrence is logged
|
|
23
23
|
|
|
24
24
|
<!-- Activation example: When this pattern first occurs, update like this:
|
|
@@ -48,7 +48,7 @@ On subsequent occurrences, increment Frequency and append to Occurred (e.g., S1-
|
|
|
48
48
|
- **Cause**: LLM lost track of current scope in large workflows. Skipped "report and wait for approval" steps.
|
|
49
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
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**:
|
|
51
|
+
- **Applied in**: lead agent, global instructions
|
|
52
52
|
- **Status**: Template — activate when first occurrence is logged
|
|
53
53
|
|
|
54
54
|
---
|
|
@@ -58,6 +58,6 @@ On subsequent occurrences, increment Frequency and append to Occurred (e.g., S1-
|
|
|
58
58
|
- **Occurred**: <!-- Sprint/Story where this happened -->
|
|
59
59
|
- **Frequency**: 0
|
|
60
60
|
- **Cause**: LLM created temp files during work, then ran `git add .` which staged credentials or debug artifacts.
|
|
61
|
-
- **Prevention**: Ban `git add .`. Run
|
|
62
|
-
- **Applied in**:
|
|
61
|
+
- **Prevention**: Ban `git add .`. Run secure skill before commits. Reviewer agent inspects staging area.
|
|
62
|
+
- **Applied in**: secure skill, reviewer agent, backend rules
|
|
63
63
|
- **Status**: Template — activate when first occurrence is logged
|
package/harness/features.md
CHANGED
|
@@ -35,10 +35,10 @@ When you add or modify a feature:
|
|
|
35
35
|
**Iron Law #7**: When adding a new feature, register it here in the same commit.
|
|
36
36
|
|
|
37
37
|
**Write Precedence** (multiple skills update this file):
|
|
38
|
-
1. **
|
|
39
|
-
2. **
|
|
38
|
+
1. **pm** — registers new features (⬜ planned) when creating implementation plans
|
|
39
|
+
2. **lead** — updates Status to 🔧 active when a Story begins
|
|
40
40
|
3. **reviewer** — updates Status to ✅ done when Story passes review, or ⚠️ broken if tests fail
|
|
41
|
-
4. **
|
|
41
|
+
4. **wrap-up** — finalizes Status at session end (conflict resolution: wrap-up takes precedence)
|
|
42
42
|
|
|
43
43
|
## Orphan Detection
|
|
44
44
|
|
package/harness/project-brief.md
CHANGED
|
@@ -45,15 +45,15 @@
|
|
|
45
45
|
<!-- CREW_MODE_START -->
|
|
46
46
|
## Crew Artifact Index
|
|
47
47
|
|
|
48
|
-
<!-- 🟣 Pipeline only — auto-generated by
|
|
48
|
+
<!-- 🟣 Pipeline only — auto-generated by setup when crew artifacts are detected.
|
|
49
49
|
Maps original artifact documents so skills/agents can read them directly.
|
|
50
50
|
DO NOT summarize artifacts here — just index their locations.
|
|
51
51
|
|
|
52
|
-
**Detection**:
|
|
52
|
+
**Detection**: setup Phase 1.5 scans for artifact files in:
|
|
53
53
|
- docs/crew/
|
|
54
54
|
- docs/PM/
|
|
55
55
|
- User-provided custom paths
|
|
56
|
-
If ANY files are found,
|
|
56
|
+
If ANY files are found, setup populates this table and activates the 🟣 pipeline.
|
|
57
57
|
If NO crew artifacts are found, this section stays empty (🟢/🔵/🔴 pipelines).
|
|
58
58
|
|
|
59
59
|
| Artifact | Path | Role | Contains |
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
| Architecture | docs/crew/architecture.md | ARB | 인프라, 앱스택, 보안 |
|
|
64
64
|
| ARB Checklist | docs/crew/arb-checklist.md | ARB | 감사 결과 (Pass/Fail) |
|
|
65
65
|
|
|
66
|
-
How
|
|
66
|
+
How setup populates this:
|
|
67
67
|
1. Detects artifact files in docs/crew/, docs/PM/, or user-provided paths
|
|
68
68
|
2. Creates one row per artifact with exact path
|
|
69
69
|
3. "Contains" column lists key sections (KPIs, FRs, NFRs, etc.)
|
|
@@ -72,9 +72,9 @@
|
|
|
72
72
|
|
|
73
73
|
## Validation Tracker
|
|
74
74
|
|
|
75
|
-
<!-- 🟣 Pipeline only — auto-generated by
|
|
75
|
+
<!-- 🟣 Pipeline only — auto-generated by setup, updated by wrap-up/lead.
|
|
76
76
|
Tracks KPI coverage, FR coverage, and ARB Fail item resolution.
|
|
77
|
-
Initial state: All rows start with ⬜ (Not started). Story column empty until
|
|
77
|
+
Initial state: All rows start with ⬜ (Not started). Story column empty until pm maps them.
|
|
78
78
|
|
|
79
79
|
**Status emojis for Validation Tracker** (simplified set — NOT the same as Story/Feature status):
|
|
80
80
|
- ⬜ Not started
|
|
@@ -83,10 +83,10 @@
|
|
|
83
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
84
|
|
|
85
85
|
**Write Precedence**: Multiple skills update the Validation Tracker:
|
|
86
|
-
1. `
|
|
87
|
-
2. `
|
|
88
|
-
3. `
|
|
89
|
-
If
|
|
86
|
+
1. `setup` — creates initial structure (all ⬜)
|
|
87
|
+
2. `pm` — fills Story column (maps FR/KPI to Stories)
|
|
88
|
+
3. `wrap-up` — updates Status (⬜→🟡 or 🟡→✅) based on session outcomes
|
|
89
|
+
If pm and wrap-up both modify Status in the same session, wrap-up.s update takes precedence (it captures the final session state).
|
|
90
90
|
|
|
91
91
|
### KPI Coverage
|
|
92
92
|
| ID | KPI | Source | Story | Status |
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
(Example: | FR-001 | 사용자 로그인 | P0 | S1-001, S1-003 | ✅ |)
|
|
105
105
|
|
|
106
106
|
Status legend: ⬜ Not started, 🟡 In progress, ✅ Done
|
|
107
|
-
Update flow:
|
|
107
|
+
Update flow: setup creates → pm fills Story column → wrap-up updates Status
|
|
108
108
|
-->
|
|
109
109
|
<!-- CREW_MODE_END -->
|
|
110
110
|
|
package/harness/project-state.md
CHANGED
|
@@ -20,11 +20,11 @@
|
|
|
20
20
|
➡️ Next: Continue (no specific action)
|
|
21
21
|
|
|
22
22
|
**Write Precedence**: Multiple skills update this file. Priority order:
|
|
23
|
-
1. `
|
|
24
|
-
2. `
|
|
25
|
-
3. `
|
|
26
|
-
4. `
|
|
27
|
-
If conflicts:
|
|
23
|
+
1. `wrap-up` (session end) — highest priority, overwrites Quick Summary
|
|
24
|
+
2. `lead` (story status changes) — updates Story Status table
|
|
25
|
+
3. `pm` (new stories) — adds rows to Story Status table
|
|
26
|
+
4. `debug` (bug fixes) — adds to Recent Changes only
|
|
27
|
+
If conflicts: wrap-up’s Quick Summary always wins (it captures final session state).
|
|
28
28
|
-->
|
|
29
29
|
|
|
30
30
|
## Current Sprint
|
|
@@ -7,10 +7,10 @@ Ensures bottom-up implementation: foundations first, then layers that depend on
|
|
|
7
7
|
|
|
8
8
|
## Invoked By
|
|
9
9
|
|
|
10
|
-
- **
|
|
10
|
+
- **pm** agent — Step 8: Create ordered task list for new features
|
|
11
11
|
- **architect** agent — when structural validation requires task decomposition review
|
|
12
12
|
|
|
13
|
-
> **Note**:
|
|
13
|
+
> **Note**: breakdown is responsible for task decomposition only. It does NOT invoke `check-impact`. The pm calls both skills independently: breakdown (Step 8) for task ordering, then check-impact (Step 9) for blast radius analysis.
|
|
14
14
|
|
|
15
15
|
## When to Apply
|
|
16
16
|
|
|
@@ -22,7 +22,7 @@ Ensures bottom-up implementation: foundations first, then layers that depend on
|
|
|
22
22
|
## Procedure
|
|
23
23
|
|
|
24
24
|
1. **Describe the feature** in one sentence
|
|
25
|
-
2. **Read docs/project-brief.md** — verify the feature aligns with Goals and does not violate Non-Goals. If project-brief.md is empty (
|
|
25
|
+
2. **Read docs/project-brief.md** — verify the feature aligns with Goals and does not violate Non-Goals. If project-brief.md is empty (setup hasn't run), skip this check but warn the user. If it conflicts with Non-Goals, **stop and warn the user** before proceeding. (Direction Guard — prevents breakdown of out-of-scope features even when invoked directly without pm)
|
|
26
26
|
3. **Read docs/dependency-map.md** to understand current module relationships
|
|
27
27
|
4. **Identify affected modules**: List every module that needs changes
|
|
28
28
|
5. **Classify changes per module**:
|
|
@@ -77,7 +77,7 @@ Ensures bottom-up implementation: foundations first, then layers that depend on
|
|
|
77
77
|
- Never implement a module before its dependencies exist
|
|
78
78
|
- Each task should be completable in one session
|
|
79
79
|
- Every task must include its test files
|
|
80
|
-
- New modules MUST be registered in docs/dependency-map.md (Iron Law #6) — the breakdown OUTPUT section lists these registrations, and
|
|
80
|
+
- New modules MUST be registered in docs/dependency-map.md (Iron Law #6) — the breakdown OUTPUT section lists these registrations, and pm (or the user, if invoked directly) is responsible for executing the actual state file writes
|
|
81
81
|
- If a task exceeds Story scope, stop and report to user
|
|
82
82
|
|
|
83
83
|
## State File Updates (mandatory — Step 9)
|
|
@@ -90,16 +90,16 @@ After completing the breakdown, update these files in the same session:
|
|
|
90
90
|
|
|
91
91
|
### 🧭 Navigation — After Feature Breakdown
|
|
92
92
|
|
|
93
|
-
Feature-breakdown is invoked BY
|
|
93
|
+
Feature-breakdown is invoked BY pm (Step 8), so the 🧭 returns control to pm's flow.
|
|
94
94
|
If invoked directly by the user, append:
|
|
95
95
|
|
|
96
96
|
```
|
|
97
97
|
---
|
|
98
98
|
🧭 Next Step
|
|
99
|
-
→ Next: `
|
|
99
|
+
→ Next: `pm`
|
|
100
100
|
→ Prompt: "breakdown을 기반으로 Sprint Story를 생성해줘"
|
|
101
|
-
→ Why: Tasks are defined —
|
|
102
|
-
→ Pipeline: 🟢 Step 2/6 (returns to
|
|
101
|
+
→ Why: Tasks are defined — pm will register Stories and update state files
|
|
102
|
+
→ Pipeline: 🟢 Step 2/6 (returns to pm)
|
|
103
103
|
---
|
|
104
104
|
```
|
|
105
105
|
|