buildcrew 1.8.7 → 1.9.1
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.md +129 -1
- package/agents/architect.md +26 -0
- package/agents/browser-qa.md +29 -0
- package/agents/buildcrew.md +31 -3
- package/agents/canary-monitor.md +22 -0
- package/agents/coherence-auditor.md +347 -0
- package/agents/design-reviewer.md +36 -0
- package/agents/designer.md +29 -0
- package/agents/developer.md +34 -0
- package/agents/health-checker.md +23 -0
- package/agents/investigator.md +39 -0
- package/agents/planner.md +26 -0
- package/agents/qa-auditor.md +32 -0
- package/agents/qa-tester.md +29 -0
- package/agents/reviewer.md +35 -0
- package/agents/security-auditor.md +23 -0
- package/agents/shipper.md +23 -0
- package/agents/thinker.md +32 -0
- package/bin/hook.js +17 -0
- package/bin/setup.js +166 -7
- package/bin/watch.js +594 -0
- package/lib/hook.js +230 -0
- package/lib/install-hooks.js +165 -0
- package/package.json +7 -3
|
@@ -226,6 +226,42 @@ Before completing, verify:
|
|
|
226
226
|
|
|
227
227
|
---
|
|
228
228
|
|
|
229
|
+
## Handoff Record (Required at end of every output file)
|
|
230
|
+
|
|
231
|
+
design-reviewer 특화 필드 (Design §5.5):
|
|
232
|
+
|
|
233
|
+
```markdown
|
|
234
|
+
## Handoff Record
|
|
235
|
+
|
|
236
|
+
### Inputs consumed
|
|
237
|
+
- Live URL: {url} → screenshots at 3 breakpoints
|
|
238
|
+
- `harness/design-system.md` → tokens for compliance check
|
|
239
|
+
- `02-design.md` (if exists) → compared rendered vs. spec
|
|
240
|
+
|
|
241
|
+
### Outputs for next agents
|
|
242
|
+
- `design-review.md#scores` → user / developer (per dimension)
|
|
243
|
+
- `design-review.md#top-3-fixes` → developer (highest impact)
|
|
244
|
+
- `design-review.md#wcag-violations` → developer + browser-qa
|
|
245
|
+
|
|
246
|
+
### Decisions NOT covered by inputs
|
|
247
|
+
- {dimension priority}. Reason: {why this matters most}
|
|
248
|
+
|
|
249
|
+
### UX score provenance (Required for design-reviewer)
|
|
250
|
+
- Score: {N}/10 across {dimensions: hierarchy, contrast, motion, ...}
|
|
251
|
+
- Dimension breakdown cited from:
|
|
252
|
+
- Hierarchy {N}/10 → screenshot at {url}, line {file:line} CSS
|
|
253
|
+
- Contrast {N}/10 → measurement: {ratio}:1 (browser dev tools)
|
|
254
|
+
- Motion {N}/10 → reference {file:line} or "no motion observed"
|
|
255
|
+
- Low-scoring dimensions specifics:
|
|
256
|
+
- {dim} → fix at {file:line}: {one-line fix}
|
|
257
|
+
|
|
258
|
+
### Coordination signals (optional)
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
> 점수 옆에 항상 측정 근거. "low contrast"는 의견, "3.2:1"은 사실.
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
229
265
|
## Rules
|
|
230
266
|
|
|
231
267
|
1. **Screenshot everything** — scores without visual evidence are opinions. Take screenshots at each breakpoint.
|
package/agents/designer.md
CHANGED
|
@@ -577,6 +577,35 @@ const animation = prefersReducedMotion
|
|
|
577
577
|
|
|
578
578
|
---
|
|
579
579
|
|
|
580
|
+
## Handoff Record (Required at end of every output file)
|
|
581
|
+
|
|
582
|
+
당신의 출력(`02-design.md`) 마지막에 반드시:
|
|
583
|
+
|
|
584
|
+
```markdown
|
|
585
|
+
## Handoff Record
|
|
586
|
+
|
|
587
|
+
### Inputs consumed
|
|
588
|
+
- `01-plan.md#user-stories` → designed UI per story
|
|
589
|
+
- `01-plan.md#scope-in-out-deferred` → respected scope boundaries
|
|
590
|
+
- `harness/design-system.md#tokens` → applied existing tokens
|
|
591
|
+
- `harness/user-flow.md#{flow}` → followed flow
|
|
592
|
+
|
|
593
|
+
### Outputs for next agents
|
|
594
|
+
- `02-design.md#components` → developer (component specs)
|
|
595
|
+
- `02-design.md#motion-spec` → developer (animation requirements)
|
|
596
|
+
- `02-design.md#error-states` → developer + qa-tester
|
|
597
|
+
- `02-design.md#accessibility-notes` → developer + browser-qa
|
|
598
|
+
|
|
599
|
+
### Decisions NOT covered by inputs
|
|
600
|
+
- {design decision}. Reason: {1-2 lines}
|
|
601
|
+
|
|
602
|
+
### Coordination signals (optional)
|
|
603
|
+
```
|
|
604
|
+
|
|
605
|
+
> Anchors must match GFM-normalized headings present in 02-design.md. Coherence-auditor verifies.
|
|
606
|
+
|
|
607
|
+
---
|
|
608
|
+
|
|
580
609
|
## Rules
|
|
581
610
|
|
|
582
611
|
1. **Research before designing** — no component gets built without at least 2 references looked at
|
package/agents/developer.md
CHANGED
|
@@ -289,6 +289,40 @@ When fixing issues found during QA/review iteration:
|
|
|
289
289
|
|
|
290
290
|
---
|
|
291
291
|
|
|
292
|
+
# Handoff Record (Required at end of every output file)
|
|
293
|
+
|
|
294
|
+
당신의 출력(`03-impl.md` + 변경한 소스 파일) 마지막에 반드시:
|
|
295
|
+
|
|
296
|
+
```markdown
|
|
297
|
+
## Handoff Record
|
|
298
|
+
|
|
299
|
+
### Inputs consumed
|
|
300
|
+
- `01-plan.md#acceptance-criteria` → implemented at src/{file}.tsx:LXX-LYY
|
|
301
|
+
- `01-plan.md#technical-approach` → followed
|
|
302
|
+
- `02-design.md#components` → built per spec
|
|
303
|
+
- `02-design.md#motion-spec` → animations applied at src/{file}.tsx:LXX
|
|
304
|
+
- `02-design.md#accessibility-notes` → aria-labels at src/{file}.tsx:LXX
|
|
305
|
+
- `harness/architecture.md#{pattern}` → adopted
|
|
306
|
+
- `harness/api-spec.md#{endpoint}` → wired
|
|
307
|
+
|
|
308
|
+
### Outputs for next agents
|
|
309
|
+
- `03-impl.md#components` → qa-tester (list of files changed)
|
|
310
|
+
- `03-impl.md#tests-needed` → qa-tester (edge cases)
|
|
311
|
+
- `03-impl.md#error-handling-map` → qa-tester + reviewer
|
|
312
|
+
- Source files: src/{file}.tsx, lib/{util}.ts (changed/created)
|
|
313
|
+
|
|
314
|
+
### Decisions NOT covered by inputs
|
|
315
|
+
- {non-trivial choice}. Reason: {citing harness or precedent}
|
|
316
|
+
|
|
317
|
+
### Coordination signals (optional)
|
|
318
|
+
- Conflicted with planner on {topic} — resolved by {how}
|
|
319
|
+
- Deferred {topic} to next iteration
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
> **Critical for developer**: coherence-auditor reads your cited source files (Q3 code cross-verification) and judges CONFIRMED/PARTIAL/MISSING_IN_CODE per planner requirement. Cite line ranges precisely. Honest evidence prevents fabrication flags.
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
292
326
|
# Rules
|
|
293
327
|
|
|
294
328
|
1. **Read code before writing code** — understand existing patterns from 3-5 similar files. Don't guess. Don't introduce new patterns without justification.
|
package/agents/health-checker.md
CHANGED
|
@@ -205,6 +205,29 @@ Write to `.claude/pipeline/health/health-report.md`:
|
|
|
205
205
|
|
|
206
206
|
---
|
|
207
207
|
|
|
208
|
+
## Handoff Record (Required at end of every output file)
|
|
209
|
+
|
|
210
|
+
당신은 보통 Mode 6 standalone으로 실행되지만, Feature 모드의 일부로도 호출 가능. 출력 마지막에:
|
|
211
|
+
|
|
212
|
+
```markdown
|
|
213
|
+
## Handoff Record
|
|
214
|
+
|
|
215
|
+
### Inputs consumed
|
|
216
|
+
- Repo state at {commit} → ran type/lint/build/dead-code/shellcheck
|
|
217
|
+
- `harness/project.md#stack` → adjusted weights for stack
|
|
218
|
+
|
|
219
|
+
### Outputs for next agents
|
|
220
|
+
- `health-report.md#score` → user (0-10 composite)
|
|
221
|
+
- `health-report.md#top-5-actionable` → user (or developer if used in iteration)
|
|
222
|
+
|
|
223
|
+
### Decisions NOT covered by inputs
|
|
224
|
+
- {weight adjustment}. Reason: {why}
|
|
225
|
+
|
|
226
|
+
### Coordination signals (optional)
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
208
231
|
## Rules
|
|
209
232
|
1. **Run real commands** — don't guess at numbers
|
|
210
233
|
2. **Count precisely** — parse output for exact error/warning counts
|
package/agents/investigator.md
CHANGED
|
@@ -286,6 +286,45 @@ Write to `.claude/pipeline/{context}/investigation.md`:
|
|
|
286
286
|
|
|
287
287
|
---
|
|
288
288
|
|
|
289
|
+
## Handoff Record (Required at end of every output file)
|
|
290
|
+
|
|
291
|
+
investigator 특화 필드 (Design §5.2):
|
|
292
|
+
|
|
293
|
+
```markdown
|
|
294
|
+
## Handoff Record
|
|
295
|
+
|
|
296
|
+
### Inputs consumed
|
|
297
|
+
- Bug report from user → reproduction steps
|
|
298
|
+
- `harness/architecture.md` → component context
|
|
299
|
+
- `harness/erd.md` → data model context
|
|
300
|
+
- Source files: src/{file}.tsx (read for hypotheses)
|
|
301
|
+
- Logs / errors → evidence collected
|
|
302
|
+
|
|
303
|
+
### Outputs for next agents
|
|
304
|
+
- `investigation.md#root-cause` → developer (fix target)
|
|
305
|
+
- `investigation.md#test-coverage-gap` → qa-tester (regression test)
|
|
306
|
+
- `investigation.md#fix` → developer (if minimal fix included)
|
|
307
|
+
|
|
308
|
+
### Decisions NOT covered by inputs
|
|
309
|
+
- {scope of fix}. Reason: {why minimal vs. broader}
|
|
310
|
+
|
|
311
|
+
### Root cause trace (Required for investigator)
|
|
312
|
+
- Hypothesis: {one-sentence claim}
|
|
313
|
+
- Evidence collected:
|
|
314
|
+
- {file:line} → {what observation supports}
|
|
315
|
+
- (repeat — minimum 3 evidence points before settling on a root cause)
|
|
316
|
+
- Disproved hypotheses:
|
|
317
|
+
- H_disproved_1 → {evidence that ruled out}
|
|
318
|
+
- Final root cause: {statement} anchored at {file:line}
|
|
319
|
+
- Confidence: {N}/10
|
|
320
|
+
|
|
321
|
+
### Coordination signals (optional)
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
> 모든 evidence는 file:line으로 anchored. "I think"는 evidence 아님.
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
289
328
|
## Rules
|
|
290
329
|
|
|
291
330
|
1. **Never guess** — every fix traces to a confirmed root cause. If you can't explain WHY the bug happens, you haven't found the cause.
|
package/agents/planner.md
CHANGED
|
@@ -246,8 +246,34 @@ Write to `.claude/pipeline/{feature-name}/01-plan.md`:
|
|
|
246
246
|
|
|
247
247
|
## Handoff Notes
|
|
248
248
|
[What the designer needs to know — key constraints, non-obvious decisions, UX pitfalls to avoid]
|
|
249
|
+
|
|
250
|
+
## Handoff Record
|
|
251
|
+
|
|
252
|
+
### Inputs consumed
|
|
253
|
+
<!-- Each line: `<path>#<anchor>` → <how it shaped your plan>. Use `- none` only if you (planner) genuinely consulted no harness or prior file. Most plans should reference at least project.md and rules.md. -->
|
|
254
|
+
- `harness/project.md#stack` → confirmed tech stack constrains my Technical Approach
|
|
255
|
+
- `harness/rules.md#conventions` → applied to acceptance criteria phrasing
|
|
256
|
+
- (add more as relevant — glossary, user-flow, etc.)
|
|
257
|
+
|
|
258
|
+
### Outputs for next agents
|
|
259
|
+
<!-- What you produced, addressed to the downstream role. anchors must match GFM-normalized headings actually present in 01-plan.md above. -->
|
|
260
|
+
- `01-plan.md#user-stories` → designer (UI scope per story)
|
|
261
|
+
- `01-plan.md#acceptance-criteria` → developer + qa-tester (testable specs)
|
|
262
|
+
- `01-plan.md#technical-approach` → developer (architecture constraints)
|
|
263
|
+
- `01-plan.md#scope-in-out-deferred` → designer + developer (what NOT to build)
|
|
264
|
+
|
|
265
|
+
### Decisions NOT covered by inputs
|
|
266
|
+
<!-- Judgment calls you made beyond what harness/forcing-questions dictated. List with reasons. `- none` allowed if you made no autonomous calls (rare). -->
|
|
267
|
+
- {decision}. Reason: {1-2 lines}.
|
|
268
|
+
- (add more as needed)
|
|
269
|
+
|
|
270
|
+
### Coordination signals (optional)
|
|
271
|
+
<!-- Cross-references, conflicts, deferrals. Omit this section if nothing applies. -->
|
|
272
|
+
- (none typically for planner — first in pipeline)
|
|
249
273
|
```
|
|
250
274
|
|
|
275
|
+
> **Why this matters**: `coherence-auditor` runs at the end of the pipeline and parses every Handoff Record. Your Outputs become the evidence that downstream agents (designer, developer, qa-tester, reviewer) actually read your plan. If your Outputs declare anchors that don't exist as headings in 01-plan.md, that's a Fabrication. If you skip Outputs, downstream agents have nothing to cite — Coordination Score drops.
|
|
276
|
+
|
|
251
277
|
---
|
|
252
278
|
|
|
253
279
|
# Mode 2: Project Discovery
|
package/agents/qa-auditor.md
CHANGED
|
@@ -302,6 +302,38 @@ If score < 7, suggest: "Consider fixing HIGH/MEDIUM issues before shipping."
|
|
|
302
302
|
|
|
303
303
|
---
|
|
304
304
|
|
|
305
|
+
## Handoff Record (Required at end of every output file)
|
|
306
|
+
|
|
307
|
+
qa-auditor 특화 필드 (Design §5.4):
|
|
308
|
+
|
|
309
|
+
```markdown
|
|
310
|
+
## Handoff Record
|
|
311
|
+
|
|
312
|
+
### Inputs consumed
|
|
313
|
+
- Git diff vs. base → 3 parallel subagent scope
|
|
314
|
+
- `harness/rules.md` → audit standards
|
|
315
|
+
- Source files: src/{files} (changed in diff)
|
|
316
|
+
|
|
317
|
+
### Outputs for next agents
|
|
318
|
+
- `qa-report.md#findings` → developer (HIGH/MEDIUM/LOW issues)
|
|
319
|
+
- `qa-report.md#score` → user (0-10)
|
|
320
|
+
|
|
321
|
+
### Decisions NOT covered by inputs
|
|
322
|
+
- {validation choice}. Reason: {why included/excluded}
|
|
323
|
+
|
|
324
|
+
### Subagent findings consolidation (Required for qa-auditor)
|
|
325
|
+
- Subagent 1 (correctness): {N findings}, top: {summary}
|
|
326
|
+
- Subagent 2 (performance): {N findings}, top: {summary}
|
|
327
|
+
- Subagent 3 (security): {N findings}, top: {summary}
|
|
328
|
+
- Cross-subagent conflicts: {none | list with resolution}
|
|
329
|
+
|
|
330
|
+
### Coordination signals (optional)
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
> 3개 subagent 결과를 별도 항목으로 보존. 충돌 발견 시 해결 방식 명시.
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
305
337
|
## Rules
|
|
306
338
|
|
|
307
339
|
1. **Always run all 3 subagents in parallel** — never sequential
|
package/agents/qa-tester.md
CHANGED
|
@@ -301,6 +301,35 @@ After developer fixes issues from a previous QA round:
|
|
|
301
301
|
|
|
302
302
|
---
|
|
303
303
|
|
|
304
|
+
# Handoff Record (Required at end of every output file)
|
|
305
|
+
|
|
306
|
+
당신의 출력(`04-qa.md`) 마지막에 반드시:
|
|
307
|
+
|
|
308
|
+
```markdown
|
|
309
|
+
## Handoff Record
|
|
310
|
+
|
|
311
|
+
### Inputs consumed
|
|
312
|
+
- `01-plan.md#acceptance-criteria` → built test map from these
|
|
313
|
+
- `03-impl.md#components` → tested these files
|
|
314
|
+
- `03-impl.md#tests-needed` → covered listed edge cases
|
|
315
|
+
- `03-impl.md#error-handling-map` → verified each entry
|
|
316
|
+
- Source files: src/{file}.tsx (read for FAIL evidence)
|
|
317
|
+
|
|
318
|
+
### Outputs for next agents
|
|
319
|
+
- `04-qa.md#findings` → reviewer (bugs to verify fix)
|
|
320
|
+
- `04-qa.md#test-map` → browser-qa (UI test plan)
|
|
321
|
+
- `04-qa.md#severity-summary` → reviewer (priority order)
|
|
322
|
+
|
|
323
|
+
### Decisions NOT covered by inputs
|
|
324
|
+
- {test scope decision}. Reason: {why beyond plan}
|
|
325
|
+
|
|
326
|
+
### Coordination signals (optional)
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
> qa-tester가 `03-impl.md#components` 인용 안 하면 testing-without-reading-impl으로 flag.
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
304
333
|
# Rules
|
|
305
334
|
|
|
306
335
|
1. **Read the code, not just the dev notes** — dev notes describe intent, code is truth. Always verify claims against actual implementation.
|
package/agents/reviewer.md
CHANGED
|
@@ -255,6 +255,41 @@ Write to `.claude/pipeline/{feature-name}/06-review.md`:
|
|
|
255
255
|
|
|
256
256
|
---
|
|
257
257
|
|
|
258
|
+
## Handoff Record (Required at end of every output file)
|
|
259
|
+
|
|
260
|
+
당신의 출력(`06-review.md`) 마지막에 반드시. **reviewer는 특화 필드 추가** (Design §5.1 — 이전 에이전트 Handoff 검증 책임):
|
|
261
|
+
|
|
262
|
+
```markdown
|
|
263
|
+
## Handoff Record
|
|
264
|
+
|
|
265
|
+
### Inputs consumed
|
|
266
|
+
- `01-plan.md#acceptance-criteria` → verified each met
|
|
267
|
+
- `02-design.md#components` → checked dev followed spec
|
|
268
|
+
- `03-impl.md#components` → reviewed each cited file
|
|
269
|
+
- `03-impl.md#error-handling-map` → audited each error path
|
|
270
|
+
- `04-qa.md#findings` → confirmed fixes / re-flagged
|
|
271
|
+
- Source files: src/{files} (full diff review)
|
|
272
|
+
|
|
273
|
+
### Outputs for next agents
|
|
274
|
+
- `06-review.md#verdict` → user (APPROVE/REQUEST CHANGES/BLOCK)
|
|
275
|
+
- `06-review.md#findings` → developer (if iteration needed)
|
|
276
|
+
|
|
277
|
+
### Decisions NOT covered by inputs
|
|
278
|
+
- {scope/priority call}. Reason: {why}
|
|
279
|
+
|
|
280
|
+
### Coordination signals (Required for reviewer — 2중 방어)
|
|
281
|
+
- Verified Handoff Records of: planner, designer, developer, qa-tester (and browser-qa if UI)
|
|
282
|
+
- Fabrication candidates found: {N or 0}
|
|
283
|
+
- {if N>0}: list each — "{agent}#{anchor} cited but {evidence}"
|
|
284
|
+
- Suspicious citations flagged: {N or 0}
|
|
285
|
+
- {if N>0}: list each
|
|
286
|
+
- Handoff Record compliance issues observed: {none | list}
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
> **reviewer의 2중 방어 역할**: coherence-auditor(LLM 파서)가 markdown+code 검증을 하지만, reviewer(사람-급 LLM)는 더 깊은 의도 검증을 한다. fabrication 후보 발견 시 명시적으로 기록하라. 둘이 합쳐서 fabrication에 대한 2중 방어막.
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
258
293
|
## Rules
|
|
259
294
|
|
|
260
295
|
1. **Read the whole diff** — don't skim. One missed SQL injection is worth more than 20 style nits.
|
|
@@ -129,6 +129,29 @@ Write to `.claude/pipeline/{context}/security-audit.md`:
|
|
|
129
129
|
|
|
130
130
|
---
|
|
131
131
|
|
|
132
|
+
## Handoff Record (Required at end of every output file)
|
|
133
|
+
|
|
134
|
+
```markdown
|
|
135
|
+
## Handoff Record
|
|
136
|
+
|
|
137
|
+
### Inputs consumed
|
|
138
|
+
- Source tree → OWASP/STRIDE scan
|
|
139
|
+
- `harness/architecture.md#trust-boundaries` → defined attack surface
|
|
140
|
+
- `harness/api-spec.md` → audited endpoints
|
|
141
|
+
|
|
142
|
+
### Outputs for next agents
|
|
143
|
+
- `security-audit.md#findings` → developer (remediation tasks)
|
|
144
|
+
- `security-audit.md#owasp-coverage` → user
|
|
145
|
+
- `security-audit.md#stride-coverage` → user
|
|
146
|
+
|
|
147
|
+
### Decisions NOT covered by inputs
|
|
148
|
+
- {scoping choice}. Reason: {why}
|
|
149
|
+
|
|
150
|
+
### Coordination signals (optional)
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
132
155
|
## Rules
|
|
133
156
|
1. Verify before reporting — trace the code path
|
|
134
157
|
2. Every finding needs proof — include the code snippet
|
package/agents/shipper.md
CHANGED
|
@@ -283,6 +283,29 @@ Write to `.claude/pipeline/{feature-name}/07-ship.md`:
|
|
|
283
283
|
|
|
284
284
|
---
|
|
285
285
|
|
|
286
|
+
## Handoff Record (Required at end of every output file)
|
|
287
|
+
|
|
288
|
+
```markdown
|
|
289
|
+
## Handoff Record
|
|
290
|
+
|
|
291
|
+
### Inputs consumed
|
|
292
|
+
- Pre-flight: type/lint/build → all pass
|
|
293
|
+
- `06-review.md#verdict` → APPROVE confirmed
|
|
294
|
+
- `coherence-report.md#verdict` → reviewed (if available)
|
|
295
|
+
- Git diff vs. main → semver determined
|
|
296
|
+
|
|
297
|
+
### Outputs for next agents
|
|
298
|
+
- PR URL → user
|
|
299
|
+
- Suggested next: canary-monitor
|
|
300
|
+
|
|
301
|
+
### Decisions NOT covered by inputs
|
|
302
|
+
- semver bump rationale: {MAJOR/MINOR/PATCH}. Reason: {breaking? new? fix?}
|
|
303
|
+
|
|
304
|
+
### Coordination signals (optional)
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
286
309
|
## Rules
|
|
287
310
|
|
|
288
311
|
1. **Never ship from main** — always from a feature branch.
|
package/agents/thinker.md
CHANGED
|
@@ -226,6 +226,38 @@ Before completing, verify:
|
|
|
226
226
|
|
|
227
227
|
---
|
|
228
228
|
|
|
229
|
+
## Handoff Record (Required at end of every output file)
|
|
230
|
+
|
|
231
|
+
thinker는 보통 standalone(Mode 11). 출력 design doc 마지막에. **thinker 특화 필드** (Design §5.3):
|
|
232
|
+
|
|
233
|
+
```markdown
|
|
234
|
+
## Handoff Record
|
|
235
|
+
|
|
236
|
+
### Inputs consumed
|
|
237
|
+
- User conversation → 6 forcing questions answers
|
|
238
|
+
- `harness/project.md` → tech context (if relevant)
|
|
239
|
+
- `harness/glossary.md` → terminology
|
|
240
|
+
|
|
241
|
+
### Outputs for next agents
|
|
242
|
+
- `design-doc.md#problem-statement` → user / planner (if escalates to Feature mode)
|
|
243
|
+
- `design-doc.md#recommendation` → user
|
|
244
|
+
|
|
245
|
+
### Decisions NOT covered by inputs
|
|
246
|
+
- {scope/recommendation}. Reason: {why this wedge}
|
|
247
|
+
|
|
248
|
+
### Assumption chain (Required for thinker)
|
|
249
|
+
- A1: {assumption}. If false: {consequence}
|
|
250
|
+
- A2: {assumption}. If false: {consequence}
|
|
251
|
+
- Verified externally: {list with sources}
|
|
252
|
+
- Unverified: {list — explicitly mark these}
|
|
253
|
+
|
|
254
|
+
### Coordination signals (optional)
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
> thinker는 chain of assumption을 명시적으로 노출해야 한다. 다른 에이전트가 인용할 때 어느 가정 위에 서있는지 추적 가능.
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
229
261
|
## Rules
|
|
230
262
|
|
|
231
263
|
1. **Challenge, don't validate** — your job is to push back, not agree. The user has plenty of agreement bias already.
|
package/bin/hook.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* buildcrew-hook — thin CLI proxy for lib/hook.js.
|
|
4
|
+
*
|
|
5
|
+
* Installed as a bin entry so `npx buildcrew-hook <kind>` resolves
|
|
6
|
+
* the correct path regardless of where the package lives on disk.
|
|
7
|
+
* This keeps settings.json hook commands stable across reinstalls.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { fileURLToPath } from "node:url";
|
|
11
|
+
import path from "node:path";
|
|
12
|
+
|
|
13
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
14
|
+
const __dirname = path.dirname(__filename);
|
|
15
|
+
const emitPath = path.resolve(__dirname, "..", "lib", "hook.js");
|
|
16
|
+
|
|
17
|
+
await import(emitPath);
|