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