teamcast 0.6.0 → 0.8.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.
Files changed (222) hide show
  1. package/dist/application/build-generated-files.d.ts +1 -1
  2. package/dist/application/build-generated-files.d.ts.map +1 -1
  3. package/dist/application/build-generated-files.js +4 -3
  4. package/dist/application/build-generated-files.js.map +1 -1
  5. package/dist/application/team.d.ts +19 -14
  6. package/dist/application/team.d.ts.map +1 -1
  7. package/dist/application/team.js +125 -51
  8. package/dist/application/team.js.map +1 -1
  9. package/dist/application/validate-team.d.ts +2 -19
  10. package/dist/application/validate-team.d.ts.map +1 -1
  11. package/dist/application/validate-team.js +38 -48
  12. package/dist/application/validate-team.js.map +1 -1
  13. package/dist/cli/explain.d.ts +1 -0
  14. package/dist/cli/explain.d.ts.map +1 -1
  15. package/dist/cli/explain.js +20 -1
  16. package/dist/cli/explain.js.map +1 -1
  17. package/dist/cli/generate.js +1 -1
  18. package/dist/cli/generate.js.map +1 -1
  19. package/dist/cli/import.d.ts.map +1 -1
  20. package/dist/cli/import.js +74 -33
  21. package/dist/cli/import.js.map +1 -1
  22. package/dist/cli/init.d.ts.map +1 -1
  23. package/dist/cli/init.js +30 -16
  24. package/dist/cli/init.js.map +1 -1
  25. package/dist/cli/manage.d.ts.map +1 -1
  26. package/dist/cli/manage.js +230 -64
  27. package/dist/cli/manage.js.map +1 -1
  28. package/dist/cli/reset.d.ts.map +1 -1
  29. package/dist/cli/reset.js +36 -12
  30. package/dist/cli/reset.js.map +1 -1
  31. package/dist/cli/validate.d.ts.map +1 -1
  32. package/dist/cli/validate.js +6 -8
  33. package/dist/cli/validate.js.map +1 -1
  34. package/dist/core/types.d.ts +8 -7
  35. package/dist/core/types.d.ts.map +1 -1
  36. package/dist/diff/index.d.ts +2 -2
  37. package/dist/diff/index.d.ts.map +1 -1
  38. package/dist/diff/index.js +2 -2
  39. package/dist/diff/index.js.map +1 -1
  40. package/dist/explainer/index.d.ts +2 -1
  41. package/dist/explainer/index.d.ts.map +1 -1
  42. package/dist/explainer/index.js +21 -13
  43. package/dist/explainer/index.js.map +1 -1
  44. package/dist/generator/index.d.ts +2 -2
  45. package/dist/generator/index.d.ts.map +1 -1
  46. package/dist/generator/index.js +16 -5
  47. package/dist/generator/index.js.map +1 -1
  48. package/dist/importer/index.d.ts +1 -0
  49. package/dist/importer/index.d.ts.map +1 -1
  50. package/dist/importer/index.js +178 -16
  51. package/dist/importer/index.js.map +1 -1
  52. package/dist/index.d.ts +1 -1
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +2 -1
  55. package/dist/index.js.map +1 -1
  56. package/dist/manifest/defaults.d.ts +1 -2
  57. package/dist/manifest/defaults.d.ts.map +1 -1
  58. package/dist/manifest/defaults.js +12 -12
  59. package/dist/manifest/defaults.js.map +1 -1
  60. package/dist/manifest/normalize.d.ts +8 -4
  61. package/dist/manifest/normalize.d.ts.map +1 -1
  62. package/dist/manifest/normalize.js +84 -136
  63. package/dist/manifest/normalize.js.map +1 -1
  64. package/dist/manifest/reader.d.ts +2 -2
  65. package/dist/manifest/reader.d.ts.map +1 -1
  66. package/dist/manifest/reader.js +1 -2
  67. package/dist/manifest/reader.js.map +1 -1
  68. package/dist/manifest/types.d.ts +17 -65
  69. package/dist/manifest/types.d.ts.map +1 -1
  70. package/dist/manifest/types.js.map +1 -1
  71. package/dist/manifest/writer.d.ts +2 -2
  72. package/dist/manifest/writer.d.ts.map +1 -1
  73. package/dist/manifest/writer.js +2 -3
  74. package/dist/manifest/writer.js.map +1 -1
  75. package/dist/presets/index.d.ts +2 -2
  76. package/dist/presets/index.d.ts.map +1 -1
  77. package/dist/presets/index.js +7 -2
  78. package/dist/presets/index.js.map +1 -1
  79. package/dist/presets/types.d.ts +2 -2
  80. package/dist/presets/types.d.ts.map +1 -1
  81. package/dist/renderers/claude/agent-md.js +1 -1
  82. package/dist/renderers/claude/agent-md.js.map +1 -1
  83. package/dist/renderers/claude/docs.js +1 -1
  84. package/dist/renderers/claude/docs.js.map +1 -1
  85. package/dist/renderers/claude/index.d.ts +2 -0
  86. package/dist/renderers/claude/index.d.ts.map +1 -1
  87. package/dist/renderers/claude/index.js +11 -0
  88. package/dist/renderers/claude/index.js.map +1 -1
  89. package/dist/renderers/claude/tools.d.ts +0 -1
  90. package/dist/renderers/claude/tools.d.ts.map +1 -1
  91. package/dist/renderers/claude/tools.js +0 -2
  92. package/dist/renderers/claude/tools.js.map +1 -1
  93. package/dist/renderers/codex/index.d.ts +7 -0
  94. package/dist/renderers/codex/index.d.ts.map +1 -0
  95. package/dist/renderers/codex/index.js +97 -0
  96. package/dist/renderers/codex/index.js.map +1 -0
  97. package/dist/renderers/codex/skill-map.d.ts +8 -0
  98. package/dist/renderers/codex/skill-map.d.ts.map +1 -0
  99. package/dist/renderers/codex/skill-map.js +29 -0
  100. package/dist/renderers/codex/skill-map.js.map +1 -0
  101. package/dist/renderers/codex/tools.d.ts +3 -0
  102. package/dist/renderers/codex/tools.d.ts.map +1 -0
  103. package/dist/renderers/codex/tools.js +8 -0
  104. package/dist/renderers/codex/tools.js.map +1 -0
  105. package/dist/renderers/index.d.ts +3 -0
  106. package/dist/renderers/index.d.ts.map +1 -1
  107. package/dist/renderers/index.js +7 -0
  108. package/dist/renderers/index.js.map +1 -1
  109. package/dist/renderers/registry.d.ts +8 -0
  110. package/dist/renderers/registry.d.ts.map +1 -0
  111. package/dist/renderers/registry.js +22 -0
  112. package/dist/renderers/registry.js.map +1 -0
  113. package/dist/renderers/target-context.d.ts +14 -0
  114. package/dist/renderers/target-context.d.ts.map +1 -0
  115. package/dist/renderers/target-context.js +2 -0
  116. package/dist/renderers/target-context.js.map +1 -0
  117. package/dist/team-templates/presets.d.ts +1 -1
  118. package/dist/team-templates/presets.d.ts.map +1 -1
  119. package/dist/team-templates/roles.d.ts +6 -6
  120. package/dist/team-templates/roles.d.ts.map +1 -1
  121. package/dist/team-templates/roles.js +3 -4
  122. package/dist/team-templates/roles.js.map +1 -1
  123. package/dist/types/manifest.d.ts +8 -5
  124. package/dist/types/manifest.d.ts.map +1 -1
  125. package/dist/types/manifest.js +7 -9
  126. package/dist/types/manifest.js.map +1 -1
  127. package/dist/validator/checks/handoff-graph.d.ts.map +1 -1
  128. package/dist/validator/checks/handoff-graph.js +3 -2
  129. package/dist/validator/checks/handoff-graph.js.map +1 -1
  130. package/dist/validator/checks/instruction-blocks.d.ts.map +1 -1
  131. package/dist/validator/checks/instruction-blocks.js +3 -1
  132. package/dist/validator/checks/instruction-blocks.js.map +1 -1
  133. package/dist/validator/index.d.ts +2 -2
  134. package/dist/validator/index.d.ts.map +1 -1
  135. package/dist/validator/index.js +4 -8
  136. package/dist/validator/index.js.map +1 -1
  137. package/dist/wizard/index.d.ts +2 -0
  138. package/dist/wizard/index.d.ts.map +1 -1
  139. package/dist/wizard/index.js +25 -10
  140. package/dist/wizard/index.js.map +1 -1
  141. package/dist/wizard/steps/agent-customization.d.ts +2 -1
  142. package/dist/wizard/steps/agent-customization.d.ts.map +1 -1
  143. package/dist/wizard/steps/agent-customization.js +67 -29
  144. package/dist/wizard/steps/agent-customization.js.map +1 -1
  145. package/dist/wizard/steps/confirm-generate.d.ts +2 -2
  146. package/dist/wizard/steps/confirm-generate.d.ts.map +1 -1
  147. package/dist/wizard/steps/confirm-generate.js +2 -2
  148. package/dist/wizard/steps/confirm-generate.js.map +1 -1
  149. package/dist/wizard/steps/custom-team.d.ts +3 -2
  150. package/dist/wizard/steps/custom-team.d.ts.map +1 -1
  151. package/dist/wizard/steps/custom-team.js +3 -3
  152. package/dist/wizard/steps/custom-team.js.map +1 -1
  153. package/dist/wizard/steps/target-selection.d.ts +6 -0
  154. package/dist/wizard/steps/target-selection.d.ts.map +1 -0
  155. package/dist/wizard/steps/target-selection.js +27 -0
  156. package/dist/wizard/steps/target-selection.js.map +1 -0
  157. package/dist/wizard/steps/team-selection.d.ts +4 -2
  158. package/dist/wizard/steps/team-selection.d.ts.map +1 -1
  159. package/dist/wizard/steps/team-selection.js +6 -6
  160. package/dist/wizard/steps/team-selection.js.map +1 -1
  161. package/package.json +16 -3
  162. package/schema/teamcast.schema.json +34 -155
  163. package/templates/presets/feature-team.yaml +80 -47
  164. package/templates/presets/research-and-build.yaml +66 -41
  165. package/templates/presets/secure-dev.yaml +87 -56
  166. package/templates/presets/solo-dev.yaml +23 -14
  167. package/dist/cli/manifest-validation.d.ts +0 -13
  168. package/dist/cli/manifest-validation.d.ts.map +0 -1
  169. package/dist/cli/manifest-validation.js +0 -38
  170. package/dist/cli/manifest-validation.js.map +0 -1
  171. package/dist/generator/renderers/agent-md.d.ts +0 -5
  172. package/dist/generator/renderers/agent-md.d.ts.map +0 -1
  173. package/dist/generator/renderers/agent-md.js +0 -66
  174. package/dist/generator/renderers/agent-md.js.map +0 -1
  175. package/dist/generator/renderers/agents-md.d.ts +0 -4
  176. package/dist/generator/renderers/agents-md.d.ts.map +0 -1
  177. package/dist/generator/renderers/agents-md.js +0 -86
  178. package/dist/generator/renderers/agents-md.js.map +0 -1
  179. package/dist/generator/renderers/claude-md.d.ts +0 -4
  180. package/dist/generator/renderers/claude-md.d.ts.map +0 -1
  181. package/dist/generator/renderers/claude-md.js +0 -68
  182. package/dist/generator/renderers/claude-md.js.map +0 -1
  183. package/dist/generator/renderers/codex-config.d.ts +0 -4
  184. package/dist/generator/renderers/codex-config.d.ts.map +0 -1
  185. package/dist/generator/renderers/codex-config.js +0 -145
  186. package/dist/generator/renderers/codex-config.js.map +0 -1
  187. package/dist/generator/renderers/codex-skill-md.d.ts +0 -4
  188. package/dist/generator/renderers/codex-skill-md.d.ts.map +0 -1
  189. package/dist/generator/renderers/codex-skill-md.js +0 -47
  190. package/dist/generator/renderers/codex-skill-md.js.map +0 -1
  191. package/dist/generator/renderers/settings-json.d.ts +0 -5
  192. package/dist/generator/renderers/settings-json.d.ts.map +0 -1
  193. package/dist/generator/renderers/settings-json.js +0 -100
  194. package/dist/generator/renderers/settings-json.js.map +0 -1
  195. package/dist/generator/renderers/skill-md.d.ts +0 -4
  196. package/dist/generator/renderers/skill-md.d.ts.map +0 -1
  197. package/dist/generator/renderers/skill-md.js +0 -44
  198. package/dist/generator/renderers/skill-md.js.map +0 -1
  199. package/dist/generator/state.d.ts +0 -14
  200. package/dist/generator/state.d.ts.map +0 -1
  201. package/dist/generator/state.js +0 -76
  202. package/dist/generator/state.js.map +0 -1
  203. package/dist/generator/targets/claude.d.ts +0 -3
  204. package/dist/generator/targets/claude.d.ts.map +0 -1
  205. package/dist/generator/targets/claude.js +0 -24
  206. package/dist/generator/targets/claude.js.map +0 -1
  207. package/dist/generator/targets/codex.d.ts +0 -3
  208. package/dist/generator/targets/codex.d.ts.map +0 -1
  209. package/dist/generator/targets/codex.js +0 -19
  210. package/dist/generator/targets/codex.js.map +0 -1
  211. package/dist/generator/targets/index.d.ts +0 -4
  212. package/dist/generator/targets/index.d.ts.map +0 -1
  213. package/dist/generator/targets/index.js +0 -10
  214. package/dist/generator/targets/index.js.map +0 -1
  215. package/dist/generator/targets/types.d.ts +0 -8
  216. package/dist/generator/targets/types.d.ts.map +0 -1
  217. package/dist/generator/targets/types.js +0 -2
  218. package/dist/generator/targets/types.js.map +0 -1
  219. package/dist/manifest/compat.d.ts +0 -6
  220. package/dist/manifest/compat.d.ts.map +0 -1
  221. package/dist/manifest/compat.js +0 -56
  222. package/dist/manifest/compat.js.map +0 -1
@@ -4,12 +4,12 @@
4
4
  "title": "TeamCast Manifest",
5
5
  "description": "Schema for teamcast.yaml and built-in preset manifests",
6
6
  "type": "object",
7
- "required": ["version", "project", "agents"],
7
+ "required": ["version", "project"],
8
8
  "additionalProperties": false,
9
9
  "properties": {
10
10
  "version": {
11
11
  "type": "string",
12
- "enum": ["1", "2"],
12
+ "enum": ["2"],
13
13
  "description": "Manifest format version"
14
14
  },
15
15
  "project": {
@@ -29,15 +29,11 @@
29
29
  }
30
30
  }
31
31
  },
32
- "agents": {
33
- "type": "object",
34
- "minProperties": 1,
35
- "patternProperties": {
36
- "^[a-z][a-z0-9-]*$": {
37
- "$ref": "#/definitions/AgentDefinition"
38
- }
39
- },
40
- "additionalProperties": false
32
+ "claude": {
33
+ "$ref": "#/definitions/TargetConfig"
34
+ },
35
+ "codex": {
36
+ "$ref": "#/definitions/TargetConfig"
41
37
  },
42
38
  "policies": {
43
39
  "$ref": "#/definitions/PoliciesConfig"
@@ -50,10 +46,6 @@
50
46
  }
51
47
  },
52
48
  "definitions": {
53
- "ModelAlias": {
54
- "type": "string",
55
- "enum": ["opus", "sonnet", "haiku", "inherit"]
56
- },
57
49
  "AgentSkill": {
58
50
  "type": "string",
59
51
  "enum": ["read_files", "write_files", "execute", "search", "web", "delegate", "interact", "notebook"]
@@ -68,16 +60,7 @@
68
60
  "Agent"
69
61
  ]
70
62
  },
71
- "CompatTool": {
72
- "type": "string",
73
- "enum": [
74
- "Read", "Write", "Edit", "MultiEdit",
75
- "Grep", "Glob",
76
- "Bash",
77
- "WebFetch", "WebSearch",
78
- "Agent", "Task"
79
- ]
80
- },
63
+
81
64
  "PermissionMode": {
82
65
  "type": "string",
83
66
  "enum": ["default", "acceptEdits", "bypassPermissions", "plan", "dontAsk"]
@@ -210,37 +193,7 @@
210
193
  }
211
194
  }
212
195
  },
213
- "LegacyToolsConfig": {
214
- "type": "object",
215
- "anyOf": [
216
- {
217
- "required": ["allow"],
218
- "properties": {
219
- "allow": {
220
- "type": "array",
221
- "items": { "$ref": "#/definitions/CompatTool" },
222
- "minItems": 1
223
- },
224
- "deny": {
225
- "type": "array",
226
- "items": { "$ref": "#/definitions/CompatTool" }
227
- }
228
- },
229
- "additionalProperties": false
230
- },
231
- {
232
- "required": ["deny"],
233
- "properties": {
234
- "deny": {
235
- "type": "array",
236
- "items": { "$ref": "#/definitions/CompatTool" },
237
- "minItems": 1
238
- }
239
- },
240
- "additionalProperties": false
241
- }
242
- ]
243
- },
196
+
244
197
  "McpServerConfig": {
245
198
  "type": "object",
246
199
  "required": ["name", "url"],
@@ -250,13 +203,17 @@
250
203
  "url": { "type": "string", "format": "uri" }
251
204
  }
252
205
  },
253
- "ClaudeAgentConfigV2": {
206
+ "BaseAgentConfig": {
254
207
  "type": "object",
255
208
  "required": ["description"],
256
209
  "additionalProperties": false,
257
210
  "properties": {
258
211
  "description": { "type": "string", "minLength": 1 },
259
- "model": { "$ref": "#/definitions/ModelAlias" },
212
+ "model": { "type": "string", "minLength": 1 },
213
+ "reasoning_effort": {
214
+ "type": "string",
215
+ "enum": ["low", "medium", "high"]
216
+ },
260
217
  "capability_traits": {
261
218
  "type": "array",
262
219
  "items": { "$ref": "#/definitions/CapabilityTraitName" }
@@ -266,7 +223,8 @@
266
223
  "items": {
267
224
  "anyOf": [
268
225
  { "$ref": "#/definitions/AgentSkill" },
269
- { "$ref": "#/definitions/CanonicalTool" }
226
+ { "$ref": "#/definitions/CanonicalTool" },
227
+ { "type": "string" }
270
228
  ]
271
229
  },
272
230
  "minItems": 1
@@ -276,7 +234,8 @@
276
234
  "items": {
277
235
  "anyOf": [
278
236
  { "$ref": "#/definitions/AgentSkill" },
279
- { "$ref": "#/definitions/CanonicalTool" }
237
+ { "$ref": "#/definitions/CanonicalTool" },
238
+ { "type": "string" }
280
239
  ]
281
240
  }
282
241
  },
@@ -305,46 +264,8 @@
305
264
  },
306
265
  "background": {
307
266
  "type": "boolean"
308
- }
309
- }
310
- },
311
- "ClaudeAgentConfigV1": {
312
- "type": "object",
313
- "required": ["description"],
314
- "additionalProperties": false,
315
- "properties": {
316
- "description": { "type": "string", "minLength": 1 },
317
- "model": { "$ref": "#/definitions/ModelAlias" },
318
- "tools": {
319
- "type": "array",
320
- "items": { "$ref": "#/definitions/CanonicalTool" },
321
- "minItems": 1
322
- },
323
- "disallowed_tools": {
324
- "type": "array",
325
- "items": { "$ref": "#/definitions/CanonicalTool" }
326
- },
327
- "skills": {
328
- "type": "array",
329
- "items": { "type": "string", "pattern": "^[a-z][a-z0-9-]*$" }
330
- },
331
- "max_turns": {
332
- "type": "integer",
333
- "minimum": 1
334
- },
335
- "mcp_servers": {
336
- "type": "array",
337
- "items": { "$ref": "#/definitions/McpServerConfig" }
338
- },
339
- "permission_mode": {
340
- "$ref": "#/definitions/PermissionMode"
341
267
  },
342
- "instructions": {
343
- "type": "string"
344
- },
345
- "background": {
346
- "type": "boolean"
347
- }
268
+ "forge": { "$ref": "#/definitions/ForgeAgentMetadata" }
348
269
  }
349
270
  },
350
271
  "ForgeAgentMetadata": {
@@ -359,66 +280,26 @@
359
280
  "template": { "type": "string" }
360
281
  }
361
282
  },
362
- "CanonicalAgentConfigV2": {
363
- "type": "object",
364
- "required": ["claude"],
365
- "additionalProperties": false,
366
- "properties": {
367
- "claude": { "$ref": "#/definitions/ClaudeAgentConfigV2" },
368
- "forge": { "$ref": "#/definitions/ForgeAgentMetadata" }
369
- }
370
- },
371
- "CanonicalAgentConfigV1": {
372
- "type": "object",
373
- "required": ["claude"],
374
- "additionalProperties": false,
375
- "properties": {
376
- "claude": { "$ref": "#/definitions/ClaudeAgentConfigV1" },
377
- "forge": { "$ref": "#/definitions/ForgeAgentMetadata" }
378
- }
283
+ "AgentDefinition": {
284
+ "$ref": "#/definitions/BaseAgentConfig"
379
285
  },
380
- "LegacyAgentConfig": {
286
+ "TargetConfig": {
381
287
  "type": "object",
382
- "required": ["description"],
288
+ "required": ["agents"],
383
289
  "additionalProperties": false,
384
290
  "properties": {
385
- "description": { "type": "string", "minLength": 1 },
386
- "model": { "$ref": "#/definitions/ModelAlias" },
387
- "tools": { "$ref": "#/definitions/LegacyToolsConfig" },
388
- "skills": {
389
- "type": "array",
390
- "items": { "type": "string", "pattern": "^[a-z][a-z0-9-]*$" }
391
- },
392
- "handoffs": {
393
- "type": "array",
394
- "items": { "type": "string", "pattern": "^[a-z][a-z0-9-]*$" }
395
- },
396
- "max_turns": {
397
- "type": "integer",
398
- "minimum": 1
399
- },
400
- "mcp_servers": {
401
- "type": "array",
402
- "items": { "$ref": "#/definitions/McpServerConfig" }
403
- },
404
- "permission_mode": {
405
- "$ref": "#/definitions/PermissionMode"
406
- },
407
- "behavior": {
408
- "type": "string"
409
- },
410
- "background": {
411
- "type": "boolean"
291
+ "agents": {
292
+ "type": "object",
293
+ "minProperties": 1,
294
+ "patternProperties": {
295
+ "^[a-z][a-z0-9-]*$": {
296
+ "$ref": "#/definitions/AgentDefinition"
297
+ }
298
+ },
299
+ "additionalProperties": false
412
300
  }
413
301
  }
414
302
  },
415
- "AgentDefinition": {
416
- "anyOf": [
417
- { "$ref": "#/definitions/CanonicalAgentConfigV2" },
418
- { "$ref": "#/definitions/CanonicalAgentConfigV1" },
419
- { "$ref": "#/definitions/LegacyAgentConfig" }
420
- ]
421
- },
422
303
  "PermissionsConfig": {
423
304
  "type": "object",
424
305
  "additionalProperties": false,
@@ -505,8 +386,7 @@
505
386
  "additionalProperties": false,
506
387
  "properties": {
507
388
  "matcher": { "type": "string" },
508
- "command": { "type": "string" },
509
- "async": { "type": "boolean" }
389
+ "command": { "type": "string" }
510
390
  }
511
391
  },
512
392
  "HooksConfig": {
@@ -559,7 +439,6 @@
559
439
  "type": "object",
560
440
  "additionalProperties": false,
561
441
  "properties": {
562
- "default_model": { "$ref": "#/definitions/ModelAlias" },
563
442
  "generate_docs": { "type": "boolean" },
564
443
  "generate_local_settings": { "type": "boolean" }
565
444
  }
@@ -1,77 +1,110 @@
1
1
  version: "2"
2
2
  preset_meta:
3
- tags: [team, feature, orchestration]
3
+ tags:
4
+ - team
5
+ - feature
6
+ - orchestration
4
7
  min_version: "2"
5
8
  project:
6
9
  name: placeholder
7
10
  preset: feature-team
8
- description: Classic feature development team with orchestration, planning, coding, and review.
9
-
10
- agents:
11
- orchestrator:
12
- claude:
13
- description: Coordinates the team. Analyzes tasks, decomposes them into subtasks, and delegates to the right specialist. Never writes code directly.
11
+ description: Classic feature development team with orchestration, planning,
12
+ coding, and review.
13
+ policies:
14
+ fragments:
15
+ - allow-npm-run
16
+ - allow-npm-test
17
+ - allow-git-read
18
+ - allow-git-write
19
+ - ask-git-push
20
+ - deny-destructive-shell
21
+ - deny-network-downloads
22
+ - deny-env-files
23
+ - sandbox-default
24
+ claude:
25
+ agents:
26
+ orchestrator:
27
+ forge:
28
+ handoffs:
29
+ - planner
30
+ - developer
31
+ - reviewer
32
+ description: Coordinates the team. Analyzes tasks, decomposes them into
33
+ subtasks, and delegates to the right specialist. Never writes code
34
+ directly.
14
35
  model: opus
15
- capability_traits: [base-read, delegation, no-file-edits, no-commands, no-web]
16
- skills: [triage, routing]
36
+ capability_traits:
37
+ - base-read
38
+ - delegation
39
+ - no-file-edits
40
+ - no-commands
41
+ - no-web
42
+ skills:
43
+ - triage
44
+ - routing
17
45
  max_turns: 30
18
46
  instruction_blocks:
19
47
  - kind: behavior
20
- content: |
21
- You are the team coordinator. Your job is to analyze the user's request, break it down into subtasks, and delegate each subtask to the appropriate specialist.
48
+ content: >
49
+ You are the team coordinator. Your job is to analyze the user's
50
+ request, break it down into subtasks, and delegate each subtask to
51
+ the appropriate specialist.
22
52
  instruction_fragments:
23
53
  - feature-orchestrator-workflow
24
54
  - feature-orchestrator-output
25
- forge:
26
- handoffs: [planner, developer, reviewer]
27
-
28
- planner:
29
- claude:
30
- description: Reads the codebase and produces an implementation plan. Does not write code.
55
+ planner:
56
+ description: Reads the codebase and produces an implementation plan. Does not
57
+ write code.
31
58
  model: sonnet
32
- capability_traits: [base-read, web-research, no-file-edits, no-commands]
33
- skills: [architecture-analysis, planning]
59
+ capability_traits:
60
+ - base-read
61
+ - web-research
62
+ - no-file-edits
63
+ - no-commands
64
+ skills:
65
+ - architecture-analysis
66
+ - planning
34
67
  instruction_blocks:
35
68
  - kind: behavior
36
- content: |
37
- You are the planner. Your job is to deeply understand the codebase and produce a clear, step-by-step implementation plan.
69
+ content: >
70
+ You are the planner. Your job is to deeply understand the codebase
71
+ and produce a clear, step-by-step implementation plan.
38
72
  instruction_fragments:
39
73
  - feature-planner-workflow
40
74
  - feature-planner-read-only
41
-
42
- developer:
43
- claude:
44
- description: Implements code according to the plan. Writes tests. Does not access the internet.
75
+ developer:
76
+ description: Implements code according to the plan. Writes tests. Does not
77
+ access the internet.
45
78
  model: sonnet
46
- capability_traits: [base-read, file-authoring, command-execution, no-web]
47
- skills: [test-first, clean-code]
79
+ capability_traits:
80
+ - base-read
81
+ - file-authoring
82
+ - command-execution
83
+ - no-web
84
+ skills:
85
+ - test-first
86
+ - clean-code
48
87
  instruction_fragments:
49
88
  - feature-developer-core
50
89
  - feature-developer-workflow
51
90
  - feature-developer-summary
52
-
53
- reviewer:
54
- claude:
55
- description: Reviews code quality, security, and style. Does not modify files - only provides recommendations.
91
+ reviewer:
92
+ description: Reviews code quality, security, and style. Does not modify files -
93
+ only provides recommendations.
56
94
  model: sonnet
57
- capability_traits: [base-read, command-execution, no-file-edits, no-web]
58
- skills: [code-review, security-check]
95
+ capability_traits:
96
+ - base-read
97
+ - command-execution
98
+ - no-file-edits
99
+ - no-web
100
+ skills:
101
+ - code-review
102
+ - security-check
59
103
  instruction_blocks:
60
104
  - kind: behavior
61
- content: |
62
- You are the reviewer. Your job is to review the implementation for quality, correctness, and security.
105
+ content: >
106
+ You are the reviewer. Your job is to review the implementation for
107
+ quality, correctness, and security.
63
108
  instruction_fragments:
64
109
  - feature-reviewer-checklist
65
110
  - feature-reviewer-style
66
-
67
- policies:
68
- fragments:
69
- - allow-npm-run
70
- - allow-npm-test
71
- - allow-git-read
72
- - allow-git-write
73
- - ask-git-push
74
- - deny-destructive-shell
75
- - deny-network-downloads
76
- - deny-env-files
77
- - sandbox-default
@@ -1,69 +1,94 @@
1
1
  version: "2"
2
2
  preset_meta:
3
- tags: [research, team]
3
+ tags:
4
+ - research
5
+ - team
4
6
  min_version: "2"
5
7
  project:
6
8
  name: placeholder
7
9
  preset: research-and-build
8
10
  description: Research-first team. Researcher has full internet access; developer does not.
9
-
10
- agents:
11
- orchestrator:
12
- claude:
13
- description: Coordinates research and implementation. Delegates research tasks to the researcher and coding tasks to the developer.
11
+ policies:
12
+ fragments:
13
+ - allow-npm-run
14
+ - allow-npm-test
15
+ - allow-git-read
16
+ - allow-git-write
17
+ - ask-git-push
18
+ - deny-destructive-shell
19
+ - deny-network-downloads
20
+ - deny-env-files
21
+ - sandbox-default
22
+ claude:
23
+ agents:
24
+ orchestrator:
25
+ forge:
26
+ handoffs:
27
+ - researcher
28
+ - planner
29
+ - developer
30
+ description: Coordinates research and implementation. Delegates research tasks
31
+ to the researcher and coding tasks to the developer.
14
32
  model: opus
15
- capability_traits: [base-read, delegation, no-file-edits, no-commands, no-web]
33
+ capability_traits:
34
+ - base-read
35
+ - delegation
36
+ - no-file-edits
37
+ - no-commands
38
+ - no-web
16
39
  max_turns: 30
17
40
  instruction_fragments:
18
41
  - research-orchestrator-core
19
42
  - research-orchestrator-workflow
20
43
  - research-orchestrator-output
21
- forge:
22
- handoffs: [researcher, planner, developer]
23
-
24
- researcher:
25
- claude:
26
- description: Finds information in documentation and on the web. Produces research reports and source summaries.
44
+ researcher:
45
+ description: Finds information in documentation and on the web. Produces
46
+ research reports and source summaries.
27
47
  model: haiku
28
- capability_traits: [base-read, web-research, no-file-edits, no-commands]
29
- skills: [research-report, source-validation]
48
+ capability_traits:
49
+ - base-read
50
+ - web-research
51
+ - no-file-edits
52
+ - no-commands
53
+ skills:
54
+ - research-report
55
+ - source-validation
30
56
  instruction_blocks:
31
57
  - kind: behavior
32
- content: |
33
- You are the researcher. Your job is to find accurate information from documentation and trusted sources.
58
+ content: >
59
+ You are the researcher. Your job is to find accurate information
60
+ from documentation and trusted sources.
34
61
  instruction_fragments:
35
62
  - research-citation
36
63
  - research-no-file-edits
37
-
38
- planner:
39
- claude:
40
- description: Analyzes the codebase and research findings to produce an implementation plan.
64
+ planner:
65
+ description: Analyzes the codebase and research findings to produce an
66
+ implementation plan.
41
67
  model: sonnet
42
- capability_traits: [base-read, no-file-edits, no-commands, no-web]
43
- skills: [architecture-analysis, planning]
68
+ capability_traits:
69
+ - base-read
70
+ - no-file-edits
71
+ - no-commands
72
+ - no-web
73
+ skills:
74
+ - architecture-analysis
75
+ - planning
44
76
  instruction_fragments:
45
77
  - research-planner-core
46
78
  - research-planner-constraints
47
-
48
- developer:
49
- claude:
50
- description: Implements code according to the plan. No internet access - all needed information must come from the planner or researcher.
79
+ developer:
80
+ description: Implements code according to the plan. No internet access - all
81
+ needed information must come from the planner or researcher.
51
82
  model: sonnet
52
- capability_traits: [base-read, file-authoring, command-execution, no-web]
53
- skills: [test-first, clean-code]
83
+ capability_traits:
84
+ - base-read
85
+ - file-authoring
86
+ - command-execution
87
+ - no-web
88
+ skills:
89
+ - test-first
90
+ - clean-code
54
91
  instruction_fragments:
55
92
  - research-developer-core
56
93
  - research-handoff
57
94
  - research-developer-tests
58
-
59
- policies:
60
- fragments:
61
- - allow-npm-run
62
- - allow-npm-test
63
- - allow-git-read
64
- - allow-git-write
65
- - ask-git-push
66
- - deny-destructive-shell
67
- - deny-network-downloads
68
- - deny-env-files
69
- - sandbox-default