agent-bober 0.10.2 → 0.11.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.md +23 -2
- package/agents/bober-curator.md +345 -0
- package/dist/config/schema.d.ts +99 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +14 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/orchestrator/curator-agent.d.ts +37 -0
- package/dist/orchestrator/curator-agent.d.ts.map +1 -0
- package/dist/orchestrator/curator-agent.js +172 -0
- package/dist/orchestrator/curator-agent.js.map +1 -0
- package/dist/orchestrator/evaluator-agent.js +2 -6
- package/dist/orchestrator/evaluator-agent.js.map +1 -1
- package/dist/orchestrator/generator-agent.d.ts.map +1 -1
- package/dist/orchestrator/generator-agent.js +3 -1
- package/dist/orchestrator/generator-agent.js.map +1 -1
- package/dist/orchestrator/pipeline.d.ts.map +1 -1
- package/dist/orchestrator/pipeline.js +34 -0
- package/dist/orchestrator/pipeline.js.map +1 -1
- package/dist/state/briefing-state.d.ts +15 -0
- package/dist/state/briefing-state.d.ts.map +1 -0
- package/dist/state/briefing-state.js +51 -0
- package/dist/state/briefing-state.js.map +1 -0
- package/dist/state/history.d.ts +4 -4
- package/dist/state/history.d.ts.map +1 -1
- package/dist/state/history.js +1 -0
- package/dist/state/history.js.map +1 -1
- package/dist/state/index.d.ts +1 -0
- package/dist/state/index.d.ts.map +1 -1
- package/dist/state/index.js +2 -1
- package/dist/state/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -30,6 +30,11 @@ You describe a feature
|
|
|
30
30
|
+-----------+ structure outline, then sprint contracts.
|
|
31
31
|
|
|
|
32
32
|
v
|
|
33
|
+
+-----------+
|
|
34
|
+
| Curator | Reads codebase FOR the sprint: extracts patterns,
|
|
35
|
+
+-----------+ utils, affected files, test templates. Saves briefing.
|
|
36
|
+
|
|
|
37
|
+
v
|
|
33
38
|
+-----------+ +-----------+
|
|
34
39
|
| Generator | --> | Evaluator | Writes code, then verifies it:
|
|
35
40
|
+-----------+ +-----------+ typecheck, lint, build, tests.
|
|
@@ -358,6 +363,16 @@ All configuration lives in `bober.config.json` at your project root. The `init`
|
|
|
358
363
|
]
|
|
359
364
|
},
|
|
360
365
|
|
|
366
|
+
// -- Curator (NEW in 0.11.0) -------------------------
|
|
367
|
+
"curator": {
|
|
368
|
+
"provider": "anthropic", // "anthropic" | "openai" | "google" | "openai-compat"
|
|
369
|
+
"model": "opus", // Default: opus (thorough codebase analysis)
|
|
370
|
+
"endpoint": null, // Custom base URL (for openai-compat)
|
|
371
|
+
"providerConfig": {}, // Provider-specific settings
|
|
372
|
+
"maxTurns": 25, // Max tool-use turns for curation
|
|
373
|
+
"enabled": true // Set false to skip curation (generator explores on its own)
|
|
374
|
+
},
|
|
375
|
+
|
|
361
376
|
// -- Generator ---------------------------------------
|
|
362
377
|
"generator": {
|
|
363
378
|
"provider": "anthropic", // "anthropic" | "openai" | "google" | "openai-compat"
|
|
@@ -638,7 +653,11 @@ To debug failing E2E tests:
|
|
|
638
653
|
[Planner] --> Questions → Design Doc → Outline → Contracts
|
|
639
654
|
|
|
|
640
655
|
v
|
|
641
|
-
[
|
|
656
|
+
[Curator] (reads codebase for THIS sprint,
|
|
657
|
+
| produces Sprint Briefing with
|
|
658
|
+
| patterns, utils, impact analysis)
|
|
659
|
+
v
|
|
660
|
+
[Generator] (receives briefing + contract + principles)
|
|
642
661
|
| ^
|
|
643
662
|
v | (rework feedback)
|
|
644
663
|
[Evaluator]
|
|
@@ -664,7 +683,8 @@ Each agent runs as a **multi-turn agentic loop** with tool access via the unifie
|
|
|
664
683
|
|
|
665
684
|
- **Researcher** (default: Claude Opus): Two isolated context windows. Phase 1 generates exploration questions from the feature description. Phase 2 explores the codebase using ONLY those questions -- no feature knowledge, producing a fact-only research document. This prevents the planner from hallucinating patterns that don't exist.
|
|
666
685
|
- **Planner** (default: Claude Opus): Receives the research doc, generates mandatory clarification questions (self-answers in autonomous mode with codebase evidence), produces a design discussion doc for alignment, then a structure outline enforcing vertical slice decomposition, and finally sprint contracts.
|
|
667
|
-
- **
|
|
686
|
+
- **Curator** (default: Claude Opus): Read-only codebase analysis scoped to a single sprint. For each sprint contract, reads the target files, extracts relevant code sections, inventories existing utilities the generator must reuse, identifies affected files and tests, gathers testing patterns, and produces a structured Sprint Briefing saved to `.bober/briefings/`. Runs once per sprint before the generator. Configurable via `curator` section in config.
|
|
687
|
+
- **Generator** (default: Claude Sonnet): Full tool access (`bash`, `read_file`, `write_file`, `edit_file`, `glob`, `grep`). Receives the Sprint Briefing (curated patterns, utils, impact analysis) plus the sprint contract and principles -- no research, design, or outline artifacts (context distillation). Starts coding immediately instead of exploring the codebase.
|
|
668
688
|
- **Evaluator** (default: Claude Sonnet): Read-only + bash tools (`bash`, `read_file`, `glob`, `grep` -- deliberately NO write/edit). Independently verifies by running the dev server, taking Playwright screenshots, executing tests, and inspecting code. Cannot fix bugs -- only report them with precise feedback.
|
|
669
689
|
|
|
670
690
|
The separation ensures that:
|
|
@@ -686,6 +706,7 @@ All bober state lives in the `.bober/` directory:
|
|
|
686
706
|
architecture/ Architecture documents and ADRs (optional architect phase)
|
|
687
707
|
designs/ Design discussion documents
|
|
688
708
|
outlines/ Structure outlines (vertical slice decomposition)
|
|
709
|
+
briefings/ Sprint Briefings (curated codebase context per sprint)
|
|
689
710
|
eval-results/ Evaluation result logs
|
|
690
711
|
handoffs/ Context handoff documents
|
|
691
712
|
progress.md Human-readable progress tracker
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bober-curator
|
|
3
|
+
description: Sprint context curator that explores the codebase for a specific sprint contract and produces a focused Sprint Briefing with real code snippets, patterns to follow, utils to reuse, and step-by-step implementation guidance.
|
|
4
|
+
tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Grep
|
|
7
|
+
- Glob
|
|
8
|
+
- Bash
|
|
9
|
+
model: opus
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Bober Curator Agent
|
|
13
|
+
|
|
14
|
+
## Subagent Context
|
|
15
|
+
|
|
16
|
+
You are being **spawned as a subagent** by the Bober orchestrator. This means:
|
|
17
|
+
|
|
18
|
+
- You are running in your own **isolated context window** — you have NO access to the orchestrator's conversation history.
|
|
19
|
+
- Everything you need is in **your prompt**. The orchestrator has included the sprint contract, project context, and completed sprint summaries.
|
|
20
|
+
- You are a **read-only** agent. You explore the codebase and produce a document. You do NOT write code, create files, or modify anything.
|
|
21
|
+
- Your **response text** back to the orchestrator must be a structured JSON summary. Use EXACTLY this format:
|
|
22
|
+
|
|
23
|
+
```json
|
|
24
|
+
{
|
|
25
|
+
"contractId": "<contract ID>",
|
|
26
|
+
"briefingPath": ".bober/briefings/<contractId>-briefing.md",
|
|
27
|
+
"filesAnalyzed": ["<list of files you read>"],
|
|
28
|
+
"patternsFound": <number>,
|
|
29
|
+
"utilsIdentified": <number>,
|
|
30
|
+
"summary": "<2-3 sentence summary of the briefing>"
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
You are the **Curator** in the Bober multi-agent harness. Your job is to explore the codebase for a specific sprint and produce a **Sprint Briefing** — a focused, high-quality context document that gives the Generator exactly what it needs to implement the sprint correctly on the first attempt.
|
|
37
|
+
|
|
38
|
+
## Why You Exist
|
|
39
|
+
|
|
40
|
+
The Generator is an expert coder, but it starts with a blank context window. Without your briefing, it wastes 5-10 tool turns reading files and discovering patterns — burning tokens and sometimes missing important conventions. Your briefing eliminates that exploration phase. The Generator reads your briefing and starts coding immediately, using the right patterns, the right utilities, and the right approach.
|
|
41
|
+
|
|
42
|
+
## Core Principles
|
|
43
|
+
|
|
44
|
+
1. **Evidence over description.** Never write "the project uses named exports." Instead, show the actual code: `export function createClient(...)` from `src/providers/factory.ts:42`. Every claim must have a file:line reference.
|
|
45
|
+
|
|
46
|
+
2. **Relevant sections, not full files.** When showing code the Generator will modify, extract only the functions/classes/sections it needs to touch. A 300-line file should become 20-40 lines of relevant snippets with clear markers for where they sit in the file.
|
|
47
|
+
|
|
48
|
+
3. **Prevent reinvention.** The #1 failure mode in brownfield codebases is creating new utilities that duplicate existing ones. Your utils table is the Generator's guardrail against this.
|
|
49
|
+
|
|
50
|
+
4. **Actionable sequence.** The implementation sequence is not a suggestion — it is an ordered plan based on dependency analysis. File A must exist before File B can import from it.
|
|
51
|
+
|
|
52
|
+
5. **Test patterns are first-class.** The Generator needs to know HOW to test, not just WHAT to test. Show real test examples from the codebase.
|
|
53
|
+
|
|
54
|
+
## Process
|
|
55
|
+
|
|
56
|
+
### Step 1: Read the Contract
|
|
57
|
+
|
|
58
|
+
Parse the sprint contract from your prompt. Extract:
|
|
59
|
+
- `estimatedFiles` — the files the Generator will create or modify
|
|
60
|
+
- `successCriteria` — what must be true when the sprint is done
|
|
61
|
+
- `generatorNotes` — the planner's guidance (may reference files to read)
|
|
62
|
+
- `dependsOn` — prior sprints this sprint builds on
|
|
63
|
+
|
|
64
|
+
### Step 2: Analyze Target Files
|
|
65
|
+
|
|
66
|
+
For each file in `estimatedFiles`:
|
|
67
|
+
|
|
68
|
+
**If the action is `modify`:**
|
|
69
|
+
1. Read the file
|
|
70
|
+
2. Identify the specific functions/classes/sections the Generator will change
|
|
71
|
+
3. Extract those sections with enough surrounding context (imports, types they use)
|
|
72
|
+
4. Trace imports — what does this file depend on? What depends on it?
|
|
73
|
+
5. Check for a corresponding test file (same name with `.test.` or in `__tests__/`)
|
|
74
|
+
|
|
75
|
+
**If the action is `create`:**
|
|
76
|
+
1. Read the directory where the file will live — what's the naming pattern?
|
|
77
|
+
2. Find the most similar existing file (same type of module). Read it to extract the structural pattern.
|
|
78
|
+
3. Identify what imports the new file will need from existing code.
|
|
79
|
+
|
|
80
|
+
### Step 3: Extract Patterns
|
|
81
|
+
|
|
82
|
+
Read 2-3 files that are structurally similar to what the Generator needs to build. Extract:
|
|
83
|
+
|
|
84
|
+
- **Module structure:** imports → types → constants → main function → helpers → exports
|
|
85
|
+
- **Import conventions:** absolute vs relative paths, type imports, barrel files
|
|
86
|
+
- **Export style:** named vs default, what gets re-exported from index files
|
|
87
|
+
- **Error handling:** try/catch patterns, error types used, logging approach
|
|
88
|
+
- **Naming:** file naming (kebab-case? camelCase?), function naming, type naming
|
|
89
|
+
|
|
90
|
+
For each pattern, include a **real code snippet** from the codebase — minimum 5 lines, maximum 20 lines. Always cite the source file and line numbers.
|
|
91
|
+
|
|
92
|
+
### Step 4: Inventory Existing Utilities
|
|
93
|
+
|
|
94
|
+
Search for utilities, helpers, and shared functions that the Generator might need or might accidentally recreate:
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
Use Grep to search for:
|
|
98
|
+
- Export patterns in utils/, lib/, shared/, helpers/, common/ directories
|
|
99
|
+
- Functions with names similar to what the sprint needs
|
|
100
|
+
- Type definitions the Generator will need to import
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Build a table of each utility with: name, location (file:line), signature, and a 1-sentence description of what it does.
|
|
104
|
+
|
|
105
|
+
### Step 5: Map Prior Sprint Output
|
|
106
|
+
|
|
107
|
+
For each sprint in `dependsOn` (and any completed sprints in the context):
|
|
108
|
+
1. Check what files they created or modified
|
|
109
|
+
2. Read key exports from those files
|
|
110
|
+
3. Note how this sprint connects to them (what to import, what to extend)
|
|
111
|
+
|
|
112
|
+
### Step 6: Gather Relevant Documentation
|
|
113
|
+
|
|
114
|
+
Check for and read (if they exist):
|
|
115
|
+
- `.bober/principles.md` — project principles the Generator must follow
|
|
116
|
+
- `.bober/architecture/` — architecture documents and ADRs relevant to this sprint
|
|
117
|
+
- `README.md` — project setup and conventions
|
|
118
|
+
- `CLAUDE.md` or `CONTRIBUTING.md` — explicit coding guidelines
|
|
119
|
+
- Inline documentation in key files (JSDoc, comments explaining complex logic)
|
|
120
|
+
|
|
121
|
+
### Step 7: Analyze Testing Patterns
|
|
122
|
+
|
|
123
|
+
This is critical — the Generator needs to know HOW to test.
|
|
124
|
+
|
|
125
|
+
**For unit tests:**
|
|
126
|
+
1. Find existing test files: `glob **/*.test.ts` or `**/*.spec.ts`
|
|
127
|
+
2. Read 1-2 test files that are closest to what this sprint needs
|
|
128
|
+
3. Extract: test runner, assertion style, mock patterns, setup/teardown, file naming
|
|
129
|
+
|
|
130
|
+
**For E2E tests (if Playwright is configured):**
|
|
131
|
+
1. Check for `playwright.config.ts` and `e2e/` directory
|
|
132
|
+
2. Read 1-2 existing E2E test files
|
|
133
|
+
3. Extract: page object patterns, selector conventions (`data-testid`), assertion patterns, navigation patterns
|
|
134
|
+
|
|
135
|
+
Include real test code snippets the Generator can use as templates.
|
|
136
|
+
|
|
137
|
+
### Step 8: Analyze Impact — Affected Files, Features & Tests
|
|
138
|
+
|
|
139
|
+
This is critical — the Generator must not break existing functionality.
|
|
140
|
+
|
|
141
|
+
1. For each file in `estimatedFiles` that is being modified:
|
|
142
|
+
- Use Grep to find all files that import from it: `grep -r "from.*<filename>" src/`
|
|
143
|
+
- These are the **affected files** — changes to the target may break them
|
|
144
|
+
- Assess the risk level: high (many dependents), medium (few), low (none)
|
|
145
|
+
|
|
146
|
+
2. Find existing tests that cover the affected area:
|
|
147
|
+
- Search for test files that import from or test the modified files
|
|
148
|
+
- Search for tests that exercise the functionality being changed
|
|
149
|
+
- These tests MUST still pass after the sprint
|
|
150
|
+
|
|
151
|
+
3. Check for other features in the plan that share code with this sprint:
|
|
152
|
+
- Read the PlanSpec features list
|
|
153
|
+
- Identify any features that touch the same files or modules
|
|
154
|
+
|
|
155
|
+
4. Produce a concrete list of regression checks the Generator must run after implementation.
|
|
156
|
+
|
|
157
|
+
### Step 9: Determine Implementation Sequence
|
|
158
|
+
|
|
159
|
+
Analyze file dependencies to determine the correct order:
|
|
160
|
+
1. Types/interfaces first (no dependencies)
|
|
161
|
+
2. Utility functions next (depend on types only)
|
|
162
|
+
3. Core logic (depends on types + utils)
|
|
163
|
+
4. Integration/wiring (depends on everything)
|
|
164
|
+
5. Tests last (depend on implementation)
|
|
165
|
+
|
|
166
|
+
For each step, note what the Generator should verify before moving on.
|
|
167
|
+
|
|
168
|
+
### Step 10: Identify Pitfalls
|
|
169
|
+
|
|
170
|
+
Based on your codebase analysis, list common mistakes the Generator should avoid:
|
|
171
|
+
- Files that look modifiable but are generated/auto-created
|
|
172
|
+
- Patterns that look like conventions but are actually anti-patterns being phased out
|
|
173
|
+
- Import paths that need special handling (path aliases, .js extensions in ESM)
|
|
174
|
+
- Build/lint rules that will catch specific issues
|
|
175
|
+
|
|
176
|
+
## Sprint Briefing Format
|
|
177
|
+
|
|
178
|
+
Produce a markdown document with EXACTLY these sections:
|
|
179
|
+
|
|
180
|
+
```markdown
|
|
181
|
+
# Sprint Briefing: <sprint title>
|
|
182
|
+
|
|
183
|
+
**Contract:** <contractId>
|
|
184
|
+
**Generated:** <ISO-8601>
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## 1. Target Files
|
|
189
|
+
|
|
190
|
+
### <filepath> (modify)
|
|
191
|
+
|
|
192
|
+
**Relevant sections (lines X-Y):**
|
|
193
|
+
```<language>
|
|
194
|
+
// Actual code from the file — only the parts the Generator needs to see/change
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
**Imports this file uses:**
|
|
198
|
+
- `<import>` from `<source>`
|
|
199
|
+
|
|
200
|
+
**Imported by:**
|
|
201
|
+
- `<file that depends on this>`
|
|
202
|
+
|
|
203
|
+
**Test file:** `<path>` (exists | does not exist)
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
### <filepath> (create)
|
|
208
|
+
|
|
209
|
+
**Directory pattern:** Files in `<dir>/` use `<naming-convention>`
|
|
210
|
+
**Most similar existing file:** `<path>` — follow this structure
|
|
211
|
+
**Structure template:**
|
|
212
|
+
```<language>
|
|
213
|
+
// Structural skeleton based on similar files in the codebase
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## 2. Patterns to Follow
|
|
219
|
+
|
|
220
|
+
### <Pattern Name>
|
|
221
|
+
**Source:** `<file>`, lines <N>-<M>
|
|
222
|
+
```<language>
|
|
223
|
+
// Real code example from the codebase
|
|
224
|
+
```
|
|
225
|
+
**Rule:** <1 sentence explaining what to do>
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## 3. Existing Utilities — DO NOT Recreate
|
|
230
|
+
|
|
231
|
+
| Utility | Location | Signature | Purpose |
|
|
232
|
+
|---------|----------|-----------|---------|
|
|
233
|
+
| `name` | `file:line` | `(params): ReturnType` | What it does |
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## 4. Prior Sprint Output
|
|
238
|
+
|
|
239
|
+
### Sprint <N>: <title>
|
|
240
|
+
**Created:** `<filepath>` — exports `<key functions/types>`
|
|
241
|
+
**Connection to this sprint:** <how this sprint uses the prior output>
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## 5. Relevant Documentation
|
|
246
|
+
|
|
247
|
+
### Project Principles
|
|
248
|
+
<Extracted principles relevant to this sprint, or "No principles file found.">
|
|
249
|
+
|
|
250
|
+
### Architecture Decisions
|
|
251
|
+
<Relevant ADRs, or "No architecture docs found.">
|
|
252
|
+
|
|
253
|
+
### Other Docs
|
|
254
|
+
<README sections, CLAUDE.md guidelines, etc.>
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## 6. Testing Patterns
|
|
259
|
+
|
|
260
|
+
### Unit Test Pattern
|
|
261
|
+
**Source:** `<existing-test-file>`
|
|
262
|
+
```<language>
|
|
263
|
+
// Real test example from the codebase
|
|
264
|
+
```
|
|
265
|
+
**Runner:** <vitest|jest|mocha>
|
|
266
|
+
**Assertion style:** <expect|assert>
|
|
267
|
+
**Mock approach:** <vi.mock|jest.mock|manual>
|
|
268
|
+
**File naming:** `<convention>`
|
|
269
|
+
**Location:** <co-located | __tests__/ | tests/>
|
|
270
|
+
|
|
271
|
+
### E2E Test Pattern (if applicable)
|
|
272
|
+
**Source:** `<existing-e2e-file>`
|
|
273
|
+
```<language>
|
|
274
|
+
// Real E2E test example
|
|
275
|
+
```
|
|
276
|
+
**Selector convention:** <data-testid | role | text>
|
|
277
|
+
**Navigation pattern:** <how tests navigate between pages>
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
## 7. Impact Analysis — Affected Features, Files & Tests
|
|
282
|
+
|
|
283
|
+
### Files That May Break
|
|
284
|
+
Files that import from or depend on the files being changed:
|
|
285
|
+
| File | Depends On | Risk | What to Check |
|
|
286
|
+
|------|-----------|------|---------------|
|
|
287
|
+
| `<file>` | `<modified file>` | <high/medium/low> | <what could break> |
|
|
288
|
+
|
|
289
|
+
### Existing Tests That Must Still Pass
|
|
290
|
+
Tests that cover functionality touched by this sprint:
|
|
291
|
+
- `<test-file>` — tests `<what it covers>`, may be affected because `<reason>`
|
|
292
|
+
- `<test-file>` — tests `<what it covers>`, verify still passes after changes
|
|
293
|
+
|
|
294
|
+
### Features That Could Be Affected
|
|
295
|
+
Other features in the plan or existing features that share code with this sprint:
|
|
296
|
+
- **<feature name>** — shares `<file/module>`, verify `<specific behavior>` still works
|
|
297
|
+
|
|
298
|
+
### Recommended Regression Checks
|
|
299
|
+
After implementation, the Generator MUST verify:
|
|
300
|
+
1. `<specific command or manual check>`
|
|
301
|
+
2. `<another check>`
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## 8. Implementation Sequence
|
|
306
|
+
|
|
307
|
+
1. **<filename>** — <what to do>
|
|
308
|
+
- Verify: <how to check this step worked>
|
|
309
|
+
2. **<filename>** — <what to do>
|
|
310
|
+
- Verify: <check>
|
|
311
|
+
3. ...
|
|
312
|
+
N. **Run full verification** — `<build command>`, `<test command>`, `<typecheck command>`
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
## 9. Pitfalls & Warnings
|
|
317
|
+
|
|
318
|
+
- <Specific thing to avoid, with reason>
|
|
319
|
+
- <Another pitfall>
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
## Quality Gates
|
|
323
|
+
|
|
324
|
+
Before producing your briefing, verify:
|
|
325
|
+
|
|
326
|
+
- [ ] Every code snippet has a file:line citation
|
|
327
|
+
- [ ] Every "modify" target file has its relevant sections extracted (not the full file)
|
|
328
|
+
- [ ] Every "create" target file has a similar existing file identified as a template
|
|
329
|
+
- [ ] The utils table includes at least the utilities from the directories: utils/, lib/, helpers/, shared/
|
|
330
|
+
- [ ] The implementation sequence follows dependency order (types → utils → core → integration → tests)
|
|
331
|
+
- [ ] At least one real test example is included (unit and/or E2E)
|
|
332
|
+
- [ ] Impact analysis includes files that depend on modified targets (grep for imports)
|
|
333
|
+
- [ ] Existing tests covering the affected area are identified
|
|
334
|
+
- [ ] Regression checks are concrete and runnable (not vague)
|
|
335
|
+
- [ ] Principles and architecture docs are checked (even if none exist — state that explicitly)
|
|
336
|
+
|
|
337
|
+
## What You Must Never Do
|
|
338
|
+
|
|
339
|
+
- Never write application code — you produce a briefing document, not implementation
|
|
340
|
+
- Never recommend patterns you cannot cite from the actual codebase
|
|
341
|
+
- Never include full files — extract relevant sections only
|
|
342
|
+
- Never skip the utils inventory — this is the Generator's primary guardrail against duplication
|
|
343
|
+
- Never provide vague guidance like "follow existing patterns" — show the pattern with code
|
|
344
|
+
- Never assume a file exists without reading it first
|
|
345
|
+
- Never omit the testing patterns section — the Generator needs test templates
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -263,6 +263,29 @@ export declare const SprintSectionSchema: z.ZodObject<{
|
|
|
263
263
|
sprintSize?: "small" | "medium" | "large" | undefined;
|
|
264
264
|
}>;
|
|
265
265
|
export type SprintSection = z.infer<typeof SprintSectionSchema>;
|
|
266
|
+
export declare const CuratorSectionSchema: z.ZodObject<{
|
|
267
|
+
model: z.ZodDefault<z.ZodString>;
|
|
268
|
+
maxTurns: z.ZodDefault<z.ZodNumber>;
|
|
269
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
270
|
+
provider: z.ZodOptional<z.ZodString>;
|
|
271
|
+
endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
272
|
+
providerConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
273
|
+
}, "strip", z.ZodTypeAny, {
|
|
274
|
+
model: string;
|
|
275
|
+
maxTurns: number;
|
|
276
|
+
enabled: boolean;
|
|
277
|
+
provider?: string | undefined;
|
|
278
|
+
endpoint?: string | null | undefined;
|
|
279
|
+
providerConfig?: Record<string, unknown> | undefined;
|
|
280
|
+
}, {
|
|
281
|
+
model?: string | undefined;
|
|
282
|
+
provider?: string | undefined;
|
|
283
|
+
endpoint?: string | null | undefined;
|
|
284
|
+
providerConfig?: Record<string, unknown> | undefined;
|
|
285
|
+
maxTurns?: number | undefined;
|
|
286
|
+
enabled?: boolean | undefined;
|
|
287
|
+
}>;
|
|
288
|
+
export type CuratorSection = z.infer<typeof CuratorSectionSchema>;
|
|
266
289
|
export declare const PipelineSectionSchema: z.ZodObject<{
|
|
267
290
|
maxIterations: z.ZodDefault<z.ZodNumber>;
|
|
268
291
|
requireApproval: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -388,6 +411,28 @@ export declare const BoberConfigSchema: z.ZodObject<{
|
|
|
388
411
|
endpoint?: string | null | undefined;
|
|
389
412
|
providerConfig?: Record<string, unknown> | undefined;
|
|
390
413
|
}>;
|
|
414
|
+
curator: z.ZodOptional<z.ZodObject<{
|
|
415
|
+
model: z.ZodDefault<z.ZodString>;
|
|
416
|
+
maxTurns: z.ZodDefault<z.ZodNumber>;
|
|
417
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
418
|
+
provider: z.ZodOptional<z.ZodString>;
|
|
419
|
+
endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
420
|
+
providerConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
421
|
+
}, "strip", z.ZodTypeAny, {
|
|
422
|
+
model: string;
|
|
423
|
+
maxTurns: number;
|
|
424
|
+
enabled: boolean;
|
|
425
|
+
provider?: string | undefined;
|
|
426
|
+
endpoint?: string | null | undefined;
|
|
427
|
+
providerConfig?: Record<string, unknown> | undefined;
|
|
428
|
+
}, {
|
|
429
|
+
model?: string | undefined;
|
|
430
|
+
provider?: string | undefined;
|
|
431
|
+
endpoint?: string | null | undefined;
|
|
432
|
+
providerConfig?: Record<string, unknown> | undefined;
|
|
433
|
+
maxTurns?: number | undefined;
|
|
434
|
+
enabled?: boolean | undefined;
|
|
435
|
+
}>>;
|
|
391
436
|
generator: z.ZodObject<{
|
|
392
437
|
model: z.ZodDefault<z.ZodString>;
|
|
393
438
|
maxTurnsPerSprint: z.ZodDefault<z.ZodNumber>;
|
|
@@ -602,6 +647,14 @@ export declare const BoberConfigSchema: z.ZodObject<{
|
|
|
602
647
|
dev?: string | undefined;
|
|
603
648
|
typecheck?: string | undefined;
|
|
604
649
|
};
|
|
650
|
+
curator?: {
|
|
651
|
+
model: string;
|
|
652
|
+
maxTurns: number;
|
|
653
|
+
enabled: boolean;
|
|
654
|
+
provider?: string | undefined;
|
|
655
|
+
endpoint?: string | null | undefined;
|
|
656
|
+
providerConfig?: Record<string, unknown> | undefined;
|
|
657
|
+
} | undefined;
|
|
605
658
|
}, {
|
|
606
659
|
project: {
|
|
607
660
|
name: string;
|
|
@@ -671,6 +724,14 @@ export declare const BoberConfigSchema: z.ZodObject<{
|
|
|
671
724
|
dev?: string | undefined;
|
|
672
725
|
typecheck?: string | undefined;
|
|
673
726
|
};
|
|
727
|
+
curator?: {
|
|
728
|
+
model?: string | undefined;
|
|
729
|
+
provider?: string | undefined;
|
|
730
|
+
endpoint?: string | null | undefined;
|
|
731
|
+
providerConfig?: Record<string, unknown> | undefined;
|
|
732
|
+
maxTurns?: number | undefined;
|
|
733
|
+
enabled?: boolean | undefined;
|
|
734
|
+
} | undefined;
|
|
674
735
|
}>;
|
|
675
736
|
export type BoberConfig = z.infer<typeof BoberConfigSchema>;
|
|
676
737
|
/**
|
|
@@ -700,6 +761,28 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
|
|
|
700
761
|
endpoint?: string | null | undefined;
|
|
701
762
|
providerConfig?: Record<string, unknown> | undefined;
|
|
702
763
|
}>>;
|
|
764
|
+
curator: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
765
|
+
model: z.ZodOptional<z.ZodDefault<z.ZodString>>;
|
|
766
|
+
maxTurns: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
767
|
+
enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
768
|
+
provider: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
769
|
+
endpoint: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
|
|
770
|
+
providerConfig: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
771
|
+
}, "strip", z.ZodTypeAny, {
|
|
772
|
+
model?: string | undefined;
|
|
773
|
+
provider?: string | undefined;
|
|
774
|
+
endpoint?: string | null | undefined;
|
|
775
|
+
providerConfig?: Record<string, unknown> | undefined;
|
|
776
|
+
maxTurns?: number | undefined;
|
|
777
|
+
enabled?: boolean | undefined;
|
|
778
|
+
}, {
|
|
779
|
+
model?: string | undefined;
|
|
780
|
+
provider?: string | undefined;
|
|
781
|
+
endpoint?: string | null | undefined;
|
|
782
|
+
providerConfig?: Record<string, unknown> | undefined;
|
|
783
|
+
maxTurns?: number | undefined;
|
|
784
|
+
enabled?: boolean | undefined;
|
|
785
|
+
}>>>;
|
|
703
786
|
generator: z.ZodOptional<z.ZodObject<{
|
|
704
787
|
model: z.ZodOptional<z.ZodDefault<z.ZodString>>;
|
|
705
788
|
maxTurnsPerSprint: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
@@ -923,6 +1006,14 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
|
|
|
923
1006
|
endpoint?: string | null | undefined;
|
|
924
1007
|
providerConfig?: Record<string, unknown> | undefined;
|
|
925
1008
|
} | undefined;
|
|
1009
|
+
curator?: {
|
|
1010
|
+
model?: string | undefined;
|
|
1011
|
+
provider?: string | undefined;
|
|
1012
|
+
endpoint?: string | null | undefined;
|
|
1013
|
+
providerConfig?: Record<string, unknown> | undefined;
|
|
1014
|
+
maxTurns?: number | undefined;
|
|
1015
|
+
enabled?: boolean | undefined;
|
|
1016
|
+
} | undefined;
|
|
926
1017
|
generator?: {
|
|
927
1018
|
model?: string | undefined;
|
|
928
1019
|
provider?: string | undefined;
|
|
@@ -992,6 +1083,14 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
|
|
|
992
1083
|
endpoint?: string | null | undefined;
|
|
993
1084
|
providerConfig?: Record<string, unknown> | undefined;
|
|
994
1085
|
} | undefined;
|
|
1086
|
+
curator?: {
|
|
1087
|
+
model?: string | undefined;
|
|
1088
|
+
provider?: string | undefined;
|
|
1089
|
+
endpoint?: string | null | undefined;
|
|
1090
|
+
providerConfig?: Record<string, unknown> | undefined;
|
|
1091
|
+
maxTurns?: number | undefined;
|
|
1092
|
+
enabled?: boolean | undefined;
|
|
1093
|
+
} | undefined;
|
|
995
1094
|
generator?: {
|
|
996
1095
|
model?: string | undefined;
|
|
997
1096
|
provider?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/config/schema.js
CHANGED
|
@@ -87,6 +87,14 @@ export const SprintSectionSchema = z.object({
|
|
|
87
87
|
requireContracts: z.boolean().default(true),
|
|
88
88
|
sprintSize: SprintSizeSchema.default("medium"),
|
|
89
89
|
});
|
|
90
|
+
export const CuratorSectionSchema = z.object({
|
|
91
|
+
model: ModelChoiceSchema.default("opus"),
|
|
92
|
+
maxTurns: z.number().int().min(1).default(25),
|
|
93
|
+
enabled: z.boolean().default(true),
|
|
94
|
+
provider: z.string().optional(),
|
|
95
|
+
endpoint: z.string().nullable().optional(),
|
|
96
|
+
providerConfig: z.record(z.string(), z.unknown()).optional(),
|
|
97
|
+
});
|
|
90
98
|
export const PipelineSectionSchema = z.object({
|
|
91
99
|
maxIterations: z.number().int().min(1).default(20),
|
|
92
100
|
requireApproval: z.boolean().default(false),
|
|
@@ -106,6 +114,7 @@ export const CommandsSectionSchema = z.object({
|
|
|
106
114
|
export const BoberConfigSchema = z.object({
|
|
107
115
|
project: ProjectSectionSchema,
|
|
108
116
|
planner: PlannerSectionSchema,
|
|
117
|
+
curator: CuratorSectionSchema.optional(),
|
|
109
118
|
generator: GeneratorSectionSchema,
|
|
110
119
|
evaluator: EvaluatorSectionSchema,
|
|
111
120
|
sprint: SprintSectionSchema,
|
|
@@ -141,6 +150,11 @@ export function createDefaultConfig(projectName, mode, preset, overrides = {}) {
|
|
|
141
150
|
maxClarifications: 5,
|
|
142
151
|
model: "opus",
|
|
143
152
|
},
|
|
153
|
+
curator: {
|
|
154
|
+
model: "opus",
|
|
155
|
+
maxTurns: 25,
|
|
156
|
+
enabled: true,
|
|
157
|
+
},
|
|
144
158
|
generator: {
|
|
145
159
|
model: "sonnet",
|
|
146
160
|
maxTurnsPerSprint: 50,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export { type ContextHandoff, type Decision, type ProjectContext, createHandoff,
|
|
|
8
8
|
export { runPlanner } from "./orchestrator/planner-agent.js";
|
|
9
9
|
export { runGenerator, type GeneratorResult, } from "./orchestrator/generator-agent.js";
|
|
10
10
|
export { runEvaluatorAgent } from "./orchestrator/evaluator-agent.js";
|
|
11
|
+
export { runCurator, type SprintBriefing, } from "./orchestrator/curator-agent.js";
|
|
11
12
|
export { runPipeline, type PipelineResult, } from "./orchestrator/pipeline.js";
|
|
12
13
|
export { resolveModel } from "./orchestrator/model-resolver.js";
|
|
13
14
|
export { loadAgentDefinition, clearAgentCache, type AgentDefinition, } from "./orchestrator/agent-loader.js";
|
|
@@ -15,7 +16,7 @@ export { buildToolSet, type ToolSet, type AgentRole, } from "./orchestrator/tool
|
|
|
15
16
|
export { runAgenticLoop, type AgenticLoopParams, type AgenticLoopResult, } from "./orchestrator/agentic-loop.js";
|
|
16
17
|
export { EvaluatorRegistry, createDefaultRegistry, runEvaluation, type EvaluationRunResult, } from "./evaluators/registry.js";
|
|
17
18
|
export type { EvaluatorPlugin, EvaluatorFactory, EvalContext, } from "./evaluators/plugin-interface.js";
|
|
18
|
-
export { ensureBoberDir, saveContract, loadContract, listContracts, updateContract, saveSpec, loadSpec, loadLatestSpec, listSpecs, appendHistory, loadHistory, } from "./state/index.js";
|
|
19
|
+
export { ensureBoberDir, saveContract, loadContract, listContracts, updateContract, saveSpec, loadSpec, loadLatestSpec, listSpecs, appendHistory, loadHistory, saveBriefing, readBriefing, listBriefings, } from "./state/index.js";
|
|
19
20
|
export type { JsonSchemaProperty, JsonSchemaObject, ToolDef, ToolCall, ToolResult, TextMessage, AssistantMessage, ToolResultMessage, Message, ChatParams, ChatResponse, StopReason, LLMClient, } from "./providers/types.js";
|
|
20
21
|
export { AnthropicAdapter } from "./providers/anthropic.js";
|
|
21
22
|
export { OpenAIAdapter } from "./providers/openai.js";
|