intentdna 1.2.0 → 1.2.2

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 (61) hide show
  1. package/dist/cli/commands/init.d.ts +2 -0
  2. package/dist/cli/commands/init.d.ts.map +1 -1
  3. package/dist/cli/commands/init.js +206 -13
  4. package/dist/cli/commands/init.js.map +1 -1
  5. package/dist/cli/commands/run.d.ts.map +1 -1
  6. package/dist/cli/commands/run.js +81 -0
  7. package/dist/cli/commands/run.js.map +1 -1
  8. package/dist/cli/commands/sync.d.ts.map +1 -1
  9. package/dist/cli/commands/sync.js +43 -1
  10. package/dist/cli/commands/sync.js.map +1 -1
  11. package/dist/cli/index.js +6 -0
  12. package/dist/cli/index.js.map +1 -1
  13. package/dist/compiler/cascade.d.ts +8 -1
  14. package/dist/compiler/cascade.d.ts.map +1 -1
  15. package/dist/compiler/cascade.js +40 -4
  16. package/dist/compiler/cascade.js.map +1 -1
  17. package/dist/compiler/compile.d.ts.map +1 -1
  18. package/dist/compiler/compile.js +28 -0
  19. package/dist/compiler/compile.js.map +1 -1
  20. package/dist/compiler/workflow.d.ts.map +1 -1
  21. package/dist/compiler/workflow.js +2 -0
  22. package/dist/compiler/workflow.js.map +1 -1
  23. package/dist/runtime/hooks.d.ts.map +1 -1
  24. package/dist/runtime/hooks.js +141 -1
  25. package/dist/runtime/hooks.js.map +1 -1
  26. package/dist/runtime/skill-adapter.d.ts.map +1 -1
  27. package/dist/runtime/skill-adapter.js +5 -1
  28. package/dist/runtime/skill-adapter.js.map +1 -1
  29. package/dist/runtime/workflow-runner.d.ts.map +1 -1
  30. package/dist/runtime/workflow-runner.js +13 -0
  31. package/dist/runtime/workflow-runner.js.map +1 -1
  32. package/dist/schema/types.d.ts +36 -0
  33. package/dist/schema/types.d.ts.map +1 -1
  34. package/dist/schema/validate.d.ts +1 -0
  35. package/dist/schema/validate.d.ts.map +1 -1
  36. package/dist/schema/validate.js +57 -4
  37. package/dist/schema/validate.js.map +1 -1
  38. package/dist/templates/api-backend.dna.yaml +1 -0
  39. package/dist/templates/brainstorming-first.dna.yaml +1 -0
  40. package/dist/templates/branch-finishing.dna.yaml +1 -0
  41. package/dist/templates/code-review-pipeline.dna.yaml +13 -0
  42. package/dist/templates/devops-cicd.dna.yaml +1 -0
  43. package/dist/templates/documentation-writer.dna.yaml +1 -0
  44. package/dist/templates/enterprise-baseline.dna.yaml +1 -0
  45. package/dist/templates/flutter-behavior-lock.dna.yaml +18 -0
  46. package/dist/templates/flutter-refactoring-rescue.dna.yaml +14 -0
  47. package/dist/templates/flutter-rewrite.dna.yaml +55 -16
  48. package/dist/templates/frontend-quality.dna.yaml +1 -0
  49. package/dist/templates/full-pipeline.dna.yaml +27 -0
  50. package/dist/templates/mobile-dev.dna.yaml +1 -0
  51. package/dist/templates/monorepo-governance.dna.yaml +1 -0
  52. package/dist/templates/multi-perspective-review.dna.yaml +14 -0
  53. package/dist/templates/pr-submitter.dna.yaml +1 -0
  54. package/dist/templates/safe-refactoring.dna.yaml +1 -0
  55. package/dist/templates/secure-dev.dna.yaml +1 -0
  56. package/dist/templates/subagent-parallel.dna.yaml +18 -0
  57. package/dist/templates/systematic-debugging.dna.yaml +1 -0
  58. package/dist/templates/tdd-strict.dna.yaml +1 -0
  59. package/dist/templates/verification-loop.dna.yaml +1 -0
  60. package/dist/templates/yolo-with-guardrails.dna.yaml +1 -0
  61. package/package.json +1 -1
@@ -186,7 +186,7 @@ function validateRole(name, role, geneNames) {
186
186
  }
187
187
  return errors;
188
188
  }
189
- function validateWorkflow(workflow, roleNames, pathPrefix) {
189
+ function validateWorkflow(workflow, roleNames, pathPrefix, modeNames) {
190
190
  const errors = [];
191
191
  const path = pathPrefix ?? "workflow";
192
192
  // name required
@@ -225,6 +225,13 @@ function validateWorkflow(workflow, roleNames, pathPrefix) {
225
225
  message: `step references unknown role '${step.role}'`,
226
226
  });
227
227
  }
228
+ // step.mode optional but must exist in modes if specified
229
+ if (step.mode && modeNames && modeNames.size > 0 && !modeNames.has(step.mode)) {
230
+ errors.push({
231
+ path: `${stepPath}.mode`,
232
+ message: `step references unknown mode '${step.mode}'`,
233
+ });
234
+ }
228
235
  // depends_on: check for empty strings in first pass
229
236
  for (const dep of step.depends_on ?? []) {
230
237
  if (!dep) {
@@ -235,6 +242,34 @@ function validateWorkflow(workflow, roleNames, pathPrefix) {
235
242
  if (step.prompt !== undefined && (typeof step.prompt !== "string" || !step.prompt)) {
236
243
  errors.push({ path: `${stepPath}.prompt`, message: "prompt must be a non-empty string" });
237
244
  }
245
+ // checkpoints validation
246
+ if (step.checkpoints) {
247
+ if (!Array.isArray(step.checkpoints)) {
248
+ errors.push({ path: `${stepPath}.checkpoints`, message: "checkpoints must be an array" });
249
+ }
250
+ else {
251
+ const knownAsserts = new Set(["clean_working_tree", "no_test_regression", "lint_passing", "build_passing"]);
252
+ for (let j = 0; j < step.checkpoints.length; j++) {
253
+ const cp = step.checkpoints[j];
254
+ const cpPath = `${stepPath}.checkpoints[${j}]`;
255
+ if (!cp.assert) {
256
+ errors.push({ path: `${cpPath}.assert`, message: "checkpoint requires 'assert'" });
257
+ }
258
+ else if (!knownAsserts.has(cp.assert) && !cp.command) {
259
+ errors.push({
260
+ path: `${cpPath}.assert`,
261
+ message: `unknown assert '${cp.assert}' — provide a 'command' for custom checkpoints`,
262
+ });
263
+ }
264
+ if (!cp.message) {
265
+ errors.push({ path: `${cpPath}.message`, message: "checkpoint requires 'message'" });
266
+ }
267
+ if (cp.action && cp.action !== "block" && cp.action !== "warn") {
268
+ errors.push({ path: `${cpPath}.action`, message: "checkpoint action must be 'block' or 'warn'" });
269
+ }
270
+ }
271
+ }
272
+ }
238
273
  }
239
274
  // Second pass: validate depends_on references against all step ids
240
275
  for (let i = 0; i < workflow.steps.length; i++) {
@@ -326,6 +361,16 @@ export function validateDNA(dna) {
326
361
  if (dna.type && !validTypes.includes(dna.type)) {
327
362
  errors.push({ path: "type", message: `must be one of: ${validTypes.join(", ")}` });
328
363
  }
364
+ // Validate namespace (optional, format check)
365
+ const warnings = [];
366
+ if (dna.namespace !== undefined) {
367
+ if (typeof dna.namespace !== "string" || !/^[a-z][a-z0-9]{1,7}$/.test(dna.namespace)) {
368
+ errors.push({ path: "namespace", message: "must be 2-8 lowercase alphanumeric chars, starting with a letter" });
369
+ }
370
+ }
371
+ else if (dna.roles && Object.keys(dna.roles).length > 0) {
372
+ warnings.push({ path: "namespace", message: "recommended when DNA defines roles (prevents name collisions)" });
373
+ }
329
374
  // Validate genes
330
375
  const geneNames = new Set(Object.keys(dna.genes ?? {}));
331
376
  for (const [name, gene] of Object.entries(dna.genes ?? {})) {
@@ -339,6 +384,13 @@ export function validateDNA(dna) {
339
384
  for (const [name, role] of Object.entries(dna.roles ?? {})) {
340
385
  errors.push(...validateRole(name, role, geneNames));
341
386
  }
387
+ // Validate modes
388
+ for (const [name, mode] of Object.entries(dna.modes ?? {})) {
389
+ const modePath = `modes.${name}`;
390
+ if (!mode.description) {
391
+ errors.push({ path: `${modePath}.description`, message: "mode requires 'description'" });
392
+ }
393
+ }
342
394
  // Validate workflow / workflows (mutually exclusive)
343
395
  if (dna.workflow !== undefined && dna.workflows !== undefined) {
344
396
  errors.push({
@@ -347,12 +399,13 @@ export function validateDNA(dna) {
347
399
  });
348
400
  }
349
401
  const roleNamesSet = new Set(Object.keys(dna.roles ?? {}));
402
+ const modeNamesSet = new Set(Object.keys(dna.modes ?? {}));
350
403
  if (dna.workflow && !dna.workflows) {
351
- errors.push(...validateWorkflow(dna.workflow, roleNamesSet, "workflow"));
404
+ errors.push(...validateWorkflow(dna.workflow, roleNamesSet, "workflow", modeNamesSet));
352
405
  }
353
406
  if (dna.workflows && !dna.workflow) {
354
407
  for (const [wfName, wfDef] of Object.entries(dna.workflows)) {
355
- errors.push(...validateWorkflow(wfDef, roleNamesSet, `workflows.${wfName}`));
408
+ errors.push(...validateWorkflow(wfDef, roleNamesSet, `workflows.${wfName}`, modeNamesSet));
356
409
  }
357
410
  }
358
411
  // Validate epigenetic markers
@@ -374,6 +427,6 @@ export function validateDNA(dna) {
374
427
  errors.push({ path: "cascade.priority", message: "priority must be non-negative" });
375
428
  }
376
429
  }
377
- return { valid: errors.length === 0, errors };
430
+ return { valid: errors.length === 0, errors, warnings: warnings.length > 0 ? warnings : undefined };
378
431
  }
379
432
  //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/schema/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,SAAS,aAAa,CAAC,KAAY,EAAE,IAAY;IAC/C,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,QAAQ;YACX,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,QAAQ,EAAE,OAAO,EAAE,qCAAqC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACtG,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC,CAAC;YAC3E,CAAC;YACD,MAAM;QACR,KAAK,SAAS,CAAC;QACf,KAAK,OAAO;YACV,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,0BAA0B,EAAE,CAAC,CAAC;YAC5F,CAAC;YACD,MAAM;QACR,KAAK,WAAW;YACd,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,YAAY,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC,CAAC;YAC9F,CAAC;YACD,MAAM;QACR,KAAK,OAAO;YACV,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC,CAAC;YACjF,CAAC;YACD,MAAM;IACV,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,IAAU;IAC5C,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC;IAE7B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,cAAc,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CACtB,IAAY,EACZ,GAAkB,EAClB,SAAsB;IAEtB,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,YAAY,IAAI,EAAE,CAAC;IAEhC,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,GAAG,IAAI,YAAY;gBACzB,OAAO,EAAE,qCAAqC,GAAG,CAAC,IAAI,GAAG;aAC1D,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACxF,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,GAAG,IAAI,YAAY;oBACzB,OAAO,EAAE,yCAAyC,GAAG,CAAC,MAAM,EAAE;iBAC/D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,iBAAiB,EAAE,OAAO,EAAE,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,gBAAgB,IAAI,EAAE,EAAE,CAAC;QAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,mBAAmB,EAAE,OAAO,EAAE,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CACnB,IAAY,EACZ,IAAa,EACb,SAAsB;IAEtB,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC;IAE7B,uBAAuB;IACvB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,cAAc,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,mEAAmE;IACnE,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YACrD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,yBAAyB,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC,CAAC;YAChG,CAAC;QACH,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;YACpD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,wBAAwB,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC,CAAC;YAC/F,CAAC;QACH,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,aAAa,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,cAAc,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,eAAe,IAAI,EAAE,EAAE,CAAC;QAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,kBAAkB,EAAE,OAAO,EAAE,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,IAAI,EAAE,EAAE,CAAC;QAC5C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,mBAAmB,EAAE,OAAO,EAAE,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAClD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAClD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvB,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,GAAG,IAAI,EAAE;oBACf,OAAO,EAAE,SAAS,CAAC,2CAA2C;iBAC/D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,eAAe,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC,CAAC;QAC1F,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClD,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtE,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,GAAG,IAAI,iBAAiB,CAAC,GAAG;wBAClC,OAAO,EAAE,wCAAwC;qBAClD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;QAC/E,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;QAC9B,MAAM,MAAM,GAAG,GAAG,IAAI,gBAAgB,CAAC;QAEvC,IAAI,EAAE,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACzC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,MAAM,oBAAoB,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;YACpF,CAAC;iBAAM,CAAC;gBACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACrD,IAAI,OAAO,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC5E,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,MAAM,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAC;oBACpG,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YACxE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,MAAM,SAAS,EAAE,OAAO,EAAE,mBAAmB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACnG,CAAC;QACH,CAAC;QAED,IAAI,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;YACtF,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,MAAM,YAAY,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACvE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CACvB,QAAqB,EACrB,SAAsB,EACtB,UAAmB;IAEnB,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,UAAU,IAAI,UAAU,CAAC;IAEtC,gBAAgB;IAChB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,+BAA+B;IAC/B,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,QAAQ,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC,CAAC;QACvF,OAAO,MAAM,CAAC,CAAC,6CAA6C;IAC9D,CAAC;IAED,0CAA0C;IAC1C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC;QAEvC,8BAA8B;QAC9B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,QAAQ,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC;QACzE,CAAC;aAAM,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,QAAQ,KAAK,EAAE,OAAO,EAAE,sBAAsB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACrF,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC;QAED,6CAA6C;QAC7C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,QAAQ,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAC;QAC7E,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,GAAG,QAAQ,OAAO;gBACxB,OAAO,EAAE,iCAAiC,IAAI,CAAC,IAAI,GAAG;aACvD,CAAC,CAAC;QACL,CAAC;QAED,oDAAoD;QACpD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,QAAQ,aAAa,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC,CAAC;YACjG,CAAC;QACH,CAAC;QAED,iDAAiD;QACjD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACnF,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,QAAQ,SAAS,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC;QAEvC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YACxC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,GAAG,QAAQ,aAAa;oBAC9B,OAAO,EAAE,uCAAuC,GAAG,GAAG;iBACvD,CAAC,CAAC;YACL,CAAC;YACD,IAAI,GAAG,IAAI,GAAG,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,GAAG,QAAQ,aAAa;oBAC9B,OAAO,EAAE,SAAS,IAAI,CAAC,EAAE,2BAA2B;iBACrD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7D,MAAM,CAAC,GAAG,QAAQ,CAAC,WAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,GAAG,IAAI,gBAAgB,CAAC,GAAG,CAAC;QAE1C,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAC;QAChF,CAAC;aAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,EAAE,OAAO,EAAE,uCAAuC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QACpG,CAAC;QAED,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,KAAK,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC,CAAC;QAC5E,CAAC;aAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,KAAK,EAAE,OAAO,EAAE,uCAAuC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAChG,CAAC;QAED,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,GAAG,KAAK,YAAY;gBAC1B,OAAO,EAAE,wCAAwC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aAC9E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC;QACjC,MAAM,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC;QAEtC,IAAI,EAAE,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,MAAM,cAAc,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC,CAAC;QACjG,CAAC;aAAM,IAAI,EAAE,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,MAAM,cAAc,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC,CAAC;QAC9F,CAAC;QAED,IAAI,EAAE,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,GAAG,MAAM,aAAa;gBAC5B,OAAO,EAAE,uCAAuC,EAAE,CAAC,UAAU,GAAG;aACjE,CAAC,CAAC;QACL,CAAC;QAED,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QACvD,IAAI,EAAE,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,GAAG,MAAM,UAAU;gBACzB,OAAO,EAAE,2BAA2B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aAC9D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACtC,IAAI,QAAQ,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,aAAa,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAc;IACxC,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,4BAA4B;IAC5B,IAAI,CAAC,GAAG,CAAC,OAAO;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IACxE,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IAClE,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IAElE,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACvF,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,iBAAiB;IACjB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IACxD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,oBAAoB;IACpB,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;QAC7D,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,iBAAiB;IACjB,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,qDAAqD;IACrD,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,yEAAyE;SACnF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IAE3D,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACnC,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAChE,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,sBAAsB,CAAC,SAAS;gBACtC,OAAO,EAAE,8BAA8B,MAAM,CAAC,KAAK,EAAE;aACtD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/schema/validate.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ version: "0.1.0"
6
6
  id: template_api_backend
7
7
  name: API Backend Standards
8
8
  type: project
9
+ namespace: be
9
10
 
10
11
  cascade:
11
12
  inherits: ["species:default"]
@@ -7,6 +7,7 @@ version: "0.1.0"
7
7
  id: template_brainstorming_first
8
8
  name: Brainstorming First
9
9
  type: project
10
+ namespace: bs
10
11
 
11
12
  cascade:
12
13
  inherits: ["species:default"]
@@ -7,6 +7,7 @@ version: "0.1.0"
7
7
  id: template_branch_finishing
8
8
  name: Branch Finishing Workflow
9
9
  type: project
10
+ namespace: bf
10
11
 
11
12
  cascade:
12
13
  inherits: ["species:default"]
@@ -6,6 +6,7 @@ version: "0.1.0"
6
6
  id: template_code_review_pipeline
7
7
  name: Code Review Pipeline
8
8
  type: project
9
+ namespace: crp
9
10
 
10
11
  cascade:
11
12
  inherits: ["species:default"]
@@ -70,16 +71,28 @@ roles:
70
71
 
71
72
  contexts: {}
72
73
 
74
+ modes:
75
+ implement:
76
+ description: "Implement features and write tests. Write to src/ and test/."
77
+ scope:
78
+ write: ["src/**", "test/**"]
79
+ review:
80
+ description: "Review code. Read-only, no modifications."
81
+ tool_permissions:
82
+ deny: [Edit, Write, NotebookEdit]
83
+
73
84
  workflow:
74
85
  name: review-cycle
75
86
  description: Implement then review with retry on failure
76
87
  steps:
77
88
  - id: implement
78
89
  role: implementer
90
+ mode: implement
79
91
  description: Implement the feature
80
92
  prompt: "Implement task {{task_id}} according to the design document."
81
93
  - id: review
82
94
  role: reviewer
95
+ mode: review
83
96
  description: Review the implementation
84
97
  prompt: "Review all changes for task {{task_id}}. Output PASS or FAIL."
85
98
  transitions:
@@ -7,6 +7,7 @@ version: "0.1.0"
7
7
  id: template_devops_cicd
8
8
  name: DevOps CI/CD Agent Guardrails
9
9
  type: project
10
+ namespace: ops
10
11
 
11
12
  cascade:
12
13
  inherits: ["species:default"]
@@ -6,6 +6,7 @@ version: "0.1.0"
6
6
  id: template_documentation_writer
7
7
  name: Documentation Writer
8
8
  type: project
9
+ namespace: doc
9
10
 
10
11
  cascade:
11
12
  inherits: ["species:default"]
@@ -5,6 +5,7 @@ version: "0.1.0"
5
5
  id: template_enterprise_baseline
6
6
  name: Enterprise Security Baseline
7
7
  type: enterprise
8
+ namespace: ent
8
9
 
9
10
  cascade:
10
11
  inherits: ["species:default"]
@@ -7,6 +7,7 @@ version: "0.1.0"
7
7
  id: template_flutter_behavior_lock
8
8
  name: Flutter Behavior Lock
9
9
  type: project
10
+ namespace: fbl
10
11
 
11
12
  cascade:
12
13
  inherits: ["species:default"]
@@ -51,6 +52,20 @@ genes:
51
52
 
52
53
  contexts: {}
53
54
 
55
+ modes:
56
+ scan:
57
+ description: "Read v1 source, output behavior docs. No code modification."
58
+ tool_permissions:
59
+ deny: [Edit, Write, NotebookEdit]
60
+ test:
61
+ description: "Write behavior tests. Only write to test/ and docs/."
62
+ scope:
63
+ write: ["test/**", "docs/behavior/**"]
64
+ verify:
65
+ description: "Device verification via adb. Read-only."
66
+ tool_permissions:
67
+ deny: [Edit, Write, NotebookEdit]
68
+
54
69
  roles:
55
70
  scanner:
56
71
  description: Reads v1 source code, outputs behavior document for one module
@@ -108,15 +123,18 @@ workflows:
108
123
  steps:
109
124
  - id: scan
110
125
  role: scanner
126
+ mode: scan
111
127
  description: Scan one v1 module, output behavior document
112
128
  prompt: "Scan module '{{module}}' in {{v1_path}}. Output behavior document to {{output_path}}/{{module}}.md. Then immediately proceed to write_tests step — do not stop."
113
129
  - id: write_tests
114
130
  role: test_writer
131
+ mode: test
115
132
  depends_on: [scan]
116
133
  description: Write unit tests, run baseline, append results to behavior doc
117
134
  prompt: "Read {{output_path}}/{{module}}.md. Write tests in {{test_path}}/{{module}}/ for v2 code at {{v2_path}}. Run tests and record pass/fail as baseline in the behavior doc. Then immediately proceed to qa_verify step."
118
135
  - id: qa_verify
119
136
  role: qa_verifier
137
+ mode: verify
120
138
  depends_on: [write_tests]
121
139
  description: End-to-end verification on device via adb (optional)
122
140
  prompt: "Verify '{{module}}' module on device. Use adb screencap + logcat. Append results to {{output_path}}/{{module}}.md. Skip if no device connected but note in summary."
@@ -7,6 +7,7 @@ version: "0.1.0"
7
7
  id: template_flutter_refactoring_rescue
8
8
  name: Flutter Refactoring Rescue
9
9
  type: project
10
+ namespace: frr
10
11
 
11
12
  cascade:
12
13
  inherits: ["species:default"]
@@ -88,6 +89,16 @@ genes:
88
89
 
89
90
  contexts: {}
90
91
 
92
+ modes:
93
+ trace:
94
+ description: "Trace broken chains in v1 and v2. Read-only analysis."
95
+ tool_permissions:
96
+ deny: [Edit, Write, NotebookEdit]
97
+ fix:
98
+ description: "Fix identified breakpoints. Write to lib/ only."
99
+ scope:
100
+ write: ["lib/**"]
101
+
91
102
  roles:
92
103
  investigator:
93
104
  description: Reads v1 code and traces the broken chain — never writes code
@@ -126,15 +137,18 @@ workflows:
126
137
  steps:
127
138
  - id: trace
128
139
  role: investigator
140
+ mode: trace
129
141
  description: Trace the broken chain in v1 and v2, identify first breakpoint
130
142
  prompt: "Trace the call chain for '{{feature}}' in v1 ({{v1_path}}) and v2 ({{v2_path}}). Find where v2 breaks."
131
143
  - id: fix
132
144
  role: surgeon
145
+ mode: fix
133
146
  depends_on: [trace]
134
147
  description: Fix the identified breakpoint
135
148
  prompt: "Fix the breakpoint identified by investigator. Copy logic from v1, change one file only."
136
149
  - id: verify
137
150
  role: investigator
151
+ mode: trace
138
152
  depends_on: [fix]
139
153
  description: Verify the fix with adb
140
154
  prompt: "Run the feature on device. adb screencap + logcat. Compare with v1 behavior."
@@ -6,6 +6,7 @@ version: "0.1.0"
6
6
  id: template_flutter_rewrite
7
7
  name: Flutter Rewrite (Unified)
8
8
  type: project
9
+ namespace: frw
9
10
 
10
11
  cascade:
11
12
  inherits: ["species:default"]
@@ -99,6 +100,28 @@ genes:
99
100
 
100
101
  contexts: {}
101
102
 
103
+ modes:
104
+ scan:
105
+ description: "Read v1 source, generate behavior docs. No code modification."
106
+ tool_permissions:
107
+ deny: [Edit, Write, NotebookEdit]
108
+ test:
109
+ description: "Write behavior tests for v2. Only write to test/ and docs/."
110
+ scope:
111
+ write: ["test/**", "docs/behavior/**"]
112
+ investigate:
113
+ description: "Trace broken call chains. Read-only analysis."
114
+ tool_permissions:
115
+ deny: [Edit, Write, NotebookEdit]
116
+ fix:
117
+ description: "Fix identified breakpoints. Write to lib/ and v2/ only."
118
+ scope:
119
+ write: ["lib/**", "v2/**"]
120
+ align:
121
+ description: "Align v2 core with v1 infrastructure. Write to core only."
122
+ scope:
123
+ write: ["v2/packages/core/**"]
124
+
102
125
  roles:
103
126
  # ── Phase 0/3: behavior-lock 角色 ──
104
127
  scanner:
@@ -116,7 +139,7 @@ roles:
116
139
  - Do NOT read v2 code — only v1
117
140
 
118
141
  test_writer:
119
- description: Reads behavior document, writes unit tests for v2.
142
+ description: Reads behavior document, writes tests for all layers (logic + widget).
120
143
  tool_permissions:
121
144
  allow: [Read, Edit, Write, Grep, Glob, Bash]
122
145
  scope:
@@ -126,9 +149,10 @@ roles:
126
149
  - Read the behavior document for the module
127
150
  - Write one test file per page/screen
128
151
  - Each user action = one test case
129
- - Test service/repository layer, not UI
152
+ - "Test ALL layers: state/notifier logic, widget rendering, navigation"
153
+ - "Widget tests: use WidgetTester, wrap with ProviderScope, mock dependencies"
130
154
  - Run tests after writing — record baseline
131
- - Red tests are expected
155
+ - Red tests are expected (implementation doesn't exist yet)
132
156
 
133
157
  # ── Phase 4: rescue 角色 ──
134
158
  investigator:
@@ -146,21 +170,22 @@ roles:
146
170
  - Never suggest code changes
147
171
 
148
172
  surgeon:
149
- description: Fixes one breakpoint at a time by understanding v1 intent and rewriting in v2 style.
173
+ description: Fixes breakpoints and builds missing layers by understanding v1 intent and rewriting in v2 style.
150
174
  tool_permissions:
151
175
  allow: [Read, Edit, Write, Grep, Glob, Bash]
152
176
  scope:
153
177
  read: ["**/*"]
154
- write: ["lib/**", "v2/**"]
178
+ write: ["lib/**", "v2/**", "test/**"]
155
179
  instructions:
156
- - Fix only the identified breakpoint
180
+ - Fix only the identified breakpoint or missing implementation
157
181
  - Read v1 to understand intent, rewrite in v2 framework style
158
182
  - Do not copy v1 code verbatim — adapt to v2 architecture
159
- - Change at most one call chain (2-3 files) per round
183
+ - "Logic layer: implement notifier/state, make logic tests pass"
184
+ - "Widget layer: copy widget from v1, only change state binding (Obx→Consumer, Get.to→context.go)"
185
+ - "Widget test infra: set up ProviderScope + mock providers + GoRouter test config when needed"
160
186
  - After each change, run tests
161
187
  - If fix doesn't work, revert and re-analyze
162
188
  - Never "improve" code — preserve exact behavior
163
- - "UI files: copy from v1, only change state binding syntax (Obx→Consumer, Get.to→context.go)"
164
189
 
165
190
  # ── Core align 角色 ──
166
191
  core_aligner:
@@ -180,31 +205,44 @@ roles:
180
205
  workflows:
181
206
  behavior-lock:
182
207
  name: Behavior Lock
183
- description: "Scan v1 module $ARGUMENTS, generate behavior doc and tests for v2"
208
+ description: "Scan v1 module $ARGUMENTS, generate behavior doc and tests for v2, commit"
184
209
  steps:
185
210
  - id: scan
186
211
  role: scanner
212
+ mode: scan
187
213
  description: "Scan v1 module in {{v1_path}}/. Output behavior doc to {{behavior_docs}}/$ARGUMENTS.md. List all user actions with call chains."
188
214
  prompt: "Scan module '$ARGUMENTS' in {{v1_path}}/. For each page, list: action → function() → return value. Output to {{behavior_docs}}/$ARGUMENTS.md. Then immediately proceed to write_tests."
189
215
  - id: write_tests
190
216
  role: test_writer
217
+ mode: test
191
218
  depends_on: [scan]
192
- description: "Read {{behavior_docs}}/$ARGUMENTS.md, write tests in {{test_path}}/$ARGUMENTS/, run baseline."
193
- prompt: "Read {{behavior_docs}}/$ARGUMENTS.md. Write tests in {{test_path}}/$ARGUMENTS/. Run tests, record red/green baseline. Append baseline to behavior doc."
219
+ description: "Read {{behavior_docs}}/$ARGUMENTS.md, write tests in {{test_path}}/$ARGUMENTS/, run baseline, commit."
220
+ prompt: "Read {{behavior_docs}}/$ARGUMENTS.md. Write tests in {{test_path}}/$ARGUMENTS/. Test ALL layers: logic, widget, navigation. Run tests, record red/green baseline. Append baseline to behavior doc. Git commit: behavior-lock($ARGUMENTS): X tests (Y red, Z skipped)"
194
221
 
195
222
  rescue:
196
223
  name: Rescue
197
- description: "Fix v2 module $ARGUMENTS by making failing tests pass"
224
+ description: "Fix v2 module $ARGUMENTS logic layer first, then widget layer, commit when done"
198
225
  steps:
199
226
  - id: investigate
200
227
  role: investigator
201
- description: "Run tests, find first red test, trace the broken call chain in v1 and v2."
202
- prompt: "Run tests in {{test_path}}/$ARGUMENTS/. For the first red test, trace: what does v1 do vs what does v2 do? Find the breakpoint. Report and wait for user confirmation."
228
+ mode: investigate
229
+ description: "Run tests, assess current state, pick next targets."
230
+ prompt: "Run tests in {{test_path}}/$ARGUMENTS/. Categorize all non-passing tests: 1) RED (failing) — highest priority, fix first. 2) SKIPPED-logic — state/notifier/service tests, fix second. 3) SKIPPED-widget — widget/UI/navigation tests, fix after logic is done. For the highest priority category, pick a batch of related tests. Trace: what does v1 do vs what does v2 do? Find the breakpoints. Report findings and the plan for this round."
203
231
  - id: fix
204
232
  role: surgeon
233
+ mode: fix
205
234
  depends_on: [investigate]
206
- description: "Fix the breakpoint. Read v1 intent, rewrite in v2 style. Run tests after."
207
- prompt: "Fix the identified breakpoint. Read v1 in {{v1_path}}/. Rewrite in v2 style in {{v2_path}}/. Run tests. Red→green = done. Still red = revert and re-analyze."
235
+ description: "Fix the identified issues. Handle both logic and widget layers."
236
+ checkpoints:
237
+ - assert: clean_working_tree
238
+ message: "Commit all changes before proceeding to report step"
239
+ prompt: "Fix the identified breakpoints. Read v1 in {{v1_path}}/. Rewrite in v2 style in {{v2_path}}/. Logic tests: implement notifier/state/service code. Widget tests: copy widget from v1, change bindings (Obx→Consumer, Get.to→context.go), set up widget test infra (ProviderScope, mock providers, GoRouter) if needed. Run tests after each fix. Red→green or Skipped→green = done. Still failing = revert and re-analyze. Maximize test coverage per round. When done, commit all changes: rescue($ARGUMENTS): round N — X passed (+Y)"
240
+ - id: report
241
+ role: investigator
242
+ mode: investigate
243
+ depends_on: [fix]
244
+ description: "Summarize round, guide next steps."
245
+ prompt: "Run full test suite in {{test_path}}/$ARGUMENTS/. Report: 1) passed/skipped/failed delta vs last round. 2) List remaining skipped tests by category (logic vs widget vs platform). 3) If skipped tests remain, end with: Run /rescue $ARGUMENTS to continue. 4) If all tests pass, end with: Module $ARGUMENTS rescue complete."
208
246
 
209
247
  core-align:
210
248
  name: Core Align
@@ -212,5 +250,6 @@ workflows:
212
250
  steps:
213
251
  - id: align
214
252
  role: core_aligner
253
+ mode: align
215
254
  description: "Compare {{v1_path}}/ and {{v2_path}}/core/ module by module. Fix mismatches."
216
255
  prompt: "Compare v1 ({{v1_path}}/) and v2 core ({{v2_path}}/core/lib/). List mismatches. Fix by copying v1 logic, only changing DI (GetX→Riverpod). Run flutter analyze after each fix."
@@ -6,6 +6,7 @@ version: "0.1.0"
6
6
  id: template_frontend_quality
7
7
  name: Frontend Quality Standards
8
8
  type: project
9
+ namespace: fe
9
10
 
10
11
  cascade:
11
12
  inherits: ["species:default"]
@@ -6,6 +6,7 @@ version: "0.1.0"
6
6
  id: template_full_pipeline
7
7
  name: Full Development Pipeline
8
8
  type: project
9
+ namespace: fp
9
10
 
10
11
  cascade:
11
12
  inherits: ["species:default"]
@@ -99,25 +100,51 @@ roles:
99
100
 
100
101
  contexts: {}
101
102
 
103
+ modes:
104
+ plan:
105
+ description: "Read requirements, produce design docs. No source code edits."
106
+ tool_permissions:
107
+ deny: [Edit]
108
+ scope:
109
+ write: ["docs/tasks/**"]
110
+ implement:
111
+ description: "Implement features. Write to src/ and test/."
112
+ scope:
113
+ write: ["src/**", "test/**"]
114
+ test:
115
+ description: "Run and fix tests. Write to test/ only."
116
+ scope:
117
+ write: ["test/**"]
118
+ review:
119
+ description: "Review code. No source code edits."
120
+ tool_permissions:
121
+ deny: [Edit]
122
+ scope:
123
+ write: ["docs/reviews/**"]
124
+
102
125
  workflow:
103
126
  name: dev-pipeline
104
127
  description: Plan, implement, test, review cycle with retry
105
128
  steps:
106
129
  - id: plan
107
130
  role: planner
131
+ mode: plan
108
132
  description: Read task and produce design document
109
133
  run_if: "round == 1"
110
134
  prompt: "Read task {{task_id}} from BOARD.md. Produce a design document."
111
135
  - id: implement
112
136
  role: implementer
137
+ mode: implement
113
138
  description: Implement according to design
114
139
  prompt: "Implement task {{task_id}} following the design document."
115
140
  - id: test
116
141
  role: tester
142
+ mode: test
117
143
  description: Run tests and fix failures
118
144
  prompt: "Run tests. Fix failures. Add missing tests for {{task_id}}."
119
145
  - id: review
120
146
  role: reviewer
147
+ mode: review
121
148
  description: Review and output verdict
122
149
  prompt: "Review changes for {{task_id}}. Output PASS or FAIL."
123
150
  transitions:
@@ -5,6 +5,7 @@ version: "0.1.0"
5
5
  id: template_mobile_dev
6
6
  name: Mobile Development Standards
7
7
  type: project
8
+ namespace: mob
8
9
 
9
10
  cascade:
10
11
  inherits: ["species:default"]
@@ -7,6 +7,7 @@ version: "0.1.0"
7
7
  id: template_monorepo_governance
8
8
  name: Monorepo Governance
9
9
  type: project
10
+ namespace: mono
10
11
 
11
12
  cascade:
12
13
  inherits: ["species:default"]
@@ -7,6 +7,7 @@ version: "0.1.0"
7
7
  id: template_multi_perspective_review
8
8
  name: Multi-Perspective Review
9
9
  type: project
10
+ namespace: mpr
10
11
 
11
12
  cascade:
12
13
  inherits: ["species:default"]
@@ -93,17 +94,30 @@ roles:
93
94
  - Document trade-offs and accepted risks
94
95
  - If unclear, escalate to human
95
96
 
97
+ modes:
98
+ debate:
99
+ description: "Argue for or against proposed change. Read-only."
100
+ tool_permissions:
101
+ deny: [Edit, Write, NotebookEdit]
102
+ decide:
103
+ description: "Make final decision. Read-only."
104
+ tool_permissions:
105
+ deny: [Edit, Write, NotebookEdit]
106
+
96
107
  workflows:
97
108
  debate-review:
98
109
  name: Debate Review
99
110
  steps:
100
111
  - id: advocate
101
112
  role: advocate
113
+ mode: debate
102
114
  description: Argue for the proposed change
103
115
  - id: critique
104
116
  role: critic
117
+ mode: debate
105
118
  description: Argue against the proposed change
106
119
  - id: decide
107
120
  role: arbiter
121
+ mode: decide
108
122
  depends_on: [advocate, critique]
109
123
  description: Final decision with rationale
@@ -6,6 +6,7 @@ version: "0.1.0"
6
6
  id: template_pr_submitter
7
7
  name: PR Submitter Checklist
8
8
  type: project
9
+ namespace: pr
9
10
 
10
11
  cascade:
11
12
  inherits: ["species:default"]