|
1 | | -import type { DirectorPackage } from "../types.js"; |
2 | | -import { DOCS_TOOLS } from "../tool-sets.js"; |
3 | | - |
4 | 1 | /** |
5 | 2 | * Shakespeare worker (CL-7029). |
6 | 3 | * Docs maintenance — PRODUCT / ARCHITECTURE / IMPLEMENTATION only; docs core baked in. |
7 | 4 | * Package id/path stays `shakespeare` (global rename is out of scope). |
| 5 | + * |
| 6 | + * Ships as the @corbits/agent-shakespeare workspace package: the tool allowlist |
| 7 | + * lives here so the package stays importable without the app. Drift against |
| 8 | + * the app build surface fails src/agent/directors/shakespeare/package.test.ts. |
8 | 9 | */ |
9 | | -export const shakespearePackage: DirectorPackage = { |
| 10 | +export type AgentPackage = { |
| 11 | + readonly id: "shakespeare"; |
| 12 | + readonly primaryIntent: string; |
| 13 | + readonly outOfLane: readonly string[]; |
| 14 | + readonly description: string; |
| 15 | + readonly systemPrompt: string; |
| 16 | + /** Unset — shakespeare never attaches skill bodies at spawn. */ |
| 17 | + readonly attachedSkills?: readonly string[]; |
| 18 | + /** Unset — shakespeare declares no skill scope. */ |
| 19 | + readonly optionalSkills?: readonly string[]; |
| 20 | + readonly tools: { |
| 21 | + readonly allow: readonly string[]; |
| 22 | + }; |
| 23 | + readonly spawn: { |
| 24 | + readonly maySpawn: false; |
| 25 | + }; |
| 26 | + readonly modelRole: "docs"; |
| 27 | + readonly tier: "leaf"; |
| 28 | +}; |
| 29 | + |
| 30 | +const SHAKESPEARE_TOOLS = [ |
| 31 | + "read_file", |
| 32 | + "grep", |
| 33 | + "search_files", |
| 34 | + "list_dir", |
| 35 | + "lsp", |
| 36 | + "web_fetch", |
| 37 | + "web_search", |
| 38 | + "skill_search", |
| 39 | + "use_skill", |
| 40 | + "write_file", |
| 41 | + "edit_file", |
| 42 | + "delete_file", |
| 43 | +] as const; |
| 44 | + |
| 45 | +export const shakespearePackage: AgentPackage = { |
10 | 46 | id: "shakespeare", |
11 | 47 | primaryIntent: "Maintain product, architecture, and implementation docs", |
12 | 48 | outOfLane: [ |
@@ -73,7 +109,7 @@ Confirm what changed and where. Summarize consistency/gap follow-ups. Map each s |
73 | 109 | DONE GATE: Stop when every success_criteria item from the brief is met OR explicitly blocked under Blockers. Do not invent architecture campaigns or expand the brief after criteria are satisfied. If the ask needs product code, review, or brand/DESIGN.md, report Blockers — do not become Coder, Reviewer, or Designer. |
74 | 110 |
|
75 | 111 | OUT OF LANE: shipping product features, pure code review, orchestration, treating docs as optional, DESIGN.md ownership, becoming Coder or Reviewer as primary.`, |
76 | | - tools: { allow: DOCS_TOOLS }, |
| 112 | + tools: { allow: [...SHAKESPEARE_TOOLS] }, |
77 | 113 | spawn: { maySpawn: false }, |
78 | 114 | tier: "leaf", |
79 | 115 | modelRole: "docs", |
|
0 commit comments