@open-agent-toolkit/cli 0.3.18 → 0.3.20

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 (132) hide show
  1. package/README.md +2 -1
  2. package/assets/agents/oat-phase-implementer.md +104 -3
  3. package/assets/agents/oat-reviewer.md +20 -5
  4. package/assets/bundle-metadata.json +1 -1
  5. package/assets/docs/reference/cli-reference.md +15 -7
  6. package/assets/docs/reference/oat-directory-structure.md +2 -0
  7. package/assets/docs/reference/project-artifacts.md +72 -1
  8. package/assets/docs/reference/project-state-machine.md +55 -6
  9. package/assets/docs/skills/brainstorm.md +3 -1
  10. package/assets/docs/skills/index.md +13 -9
  11. package/assets/docs/workflows/advanced/autonomy.md +12 -2
  12. package/assets/docs/workflows/advanced/dispatch-ceiling.md +2 -2
  13. package/assets/docs/workflows/advanced/workflow-gates.md +25 -7
  14. package/assets/docs/workflows/approvals-and-automation.md +25 -9
  15. package/assets/docs/workflows/choose-workflow.md +24 -8
  16. package/assets/docs/workflows/ideas/index.md +1 -1
  17. package/assets/docs/workflows/ideas/lifecycle.md +3 -2
  18. package/assets/docs/workflows/projects/closeout/closeout-skills.md +83 -5
  19. package/assets/docs/workflows/projects/closeout/pr-flow.md +9 -1
  20. package/assets/docs/workflows/projects/execution/execution-skills.md +27 -2
  21. package/assets/docs/workflows/projects/execution/implementation-execution.md +15 -0
  22. package/assets/docs/workflows/projects/execution/picking-up-projects.md +20 -1
  23. package/assets/docs/workflows/projects/lifecycle.md +172 -9
  24. package/assets/docs/workflows/projects/planning/hill-checkpoints.md +18 -1
  25. package/assets/docs/workflows/projects/planning/planning-skills.md +13 -10
  26. package/assets/docs/workflows/projects/planning/starting-projects.md +138 -20
  27. package/assets/docs/workflows/projects/reviews/index.md +36 -2
  28. package/assets/docs/workflows/projects/reviews/review-flavors.md +7 -3
  29. package/assets/public-package-versions.json +4 -4
  30. package/assets/skills/oat-brainstorm/SKILL.md +58 -9
  31. package/assets/skills/oat-brainstorm/references/destinations.md +12 -4
  32. package/assets/skills/oat-docs/SKILL.md +13 -4
  33. package/assets/skills/oat-pjm-review-backlog/SKILL.md +2 -2
  34. package/assets/skills/oat-project-autonomous/SKILL.md +20 -8
  35. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +156 -122
  36. package/assets/skills/oat-project-brief/SKILL.md +592 -0
  37. package/assets/skills/oat-project-brief/references/brief-contract.md +743 -0
  38. package/assets/skills/oat-project-brief/references/docs/autonomy-contract.md +412 -0
  39. package/assets/skills/oat-project-brief/references/docs/gate-approval-record.md +93 -0
  40. package/assets/skills/oat-project-capture/SKILL.md +2 -2
  41. package/assets/skills/oat-project-complete/SKILL.md +16 -2
  42. package/assets/skills/oat-project-discover/SKILL.md +4 -2
  43. package/assets/skills/oat-project-dispatch-subagents/SKILL.md +9 -1
  44. package/assets/skills/oat-project-document/SKILL.md +17 -1
  45. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +156 -122
  46. package/assets/skills/oat-project-goal/SKILL.md +697 -0
  47. package/assets/skills/oat-project-goal/references/docs/autonomy-contract.md +412 -0
  48. package/assets/skills/oat-project-goal/references/docs/gate-approval-record.md +93 -0
  49. package/assets/skills/oat-project-implement/SKILL.md +1 -1
  50. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +107 -0
  51. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +156 -122
  52. package/assets/skills/oat-project-implement/references/docs/gate-approval-record.md +13 -0
  53. package/assets/skills/oat-project-implement/references/phase-execution.md +173 -1
  54. package/assets/skills/oat-project-implement/references/plan-and-resume.md +124 -3
  55. package/assets/skills/oat-project-import-plan/SKILL.md +5 -1
  56. package/assets/skills/oat-project-lite/SKILL.md +4 -1
  57. package/assets/skills/oat-project-lite/references/docs/autonomy-contract.md +156 -122
  58. package/assets/skills/oat-project-new/SKILL.md +5 -1
  59. package/assets/skills/oat-project-next/SKILL.md +71 -14
  60. package/assets/skills/oat-project-next/references/docs/gate-approval-record.md +13 -0
  61. package/assets/skills/oat-project-plan/SKILL.md +24 -3
  62. package/assets/skills/oat-project-plan-writing/SKILL.md +8 -4
  63. package/assets/skills/oat-project-pr-final/SKILL.md +65 -3
  64. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +156 -122
  65. package/assets/skills/oat-project-pr-progress/SKILL.md +125 -4
  66. package/assets/skills/oat-project-progress/SKILL.md +63 -8
  67. package/assets/skills/oat-project-progress/references/docs/gate-approval-record.md +13 -0
  68. package/assets/skills/oat-project-promote-spec-driven/SKILL.md +2 -2
  69. package/assets/skills/oat-project-quick-start/SKILL.md +65 -1
  70. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +156 -122
  71. package/assets/skills/oat-project-quick-start/references/docs/gate-approval-record.md +13 -0
  72. package/assets/skills/oat-project-reconcile/SKILL.md +94 -3
  73. package/assets/skills/oat-project-review-provide/SKILL.md +397 -12
  74. package/assets/skills/oat-project-review-receive/SKILL.md +155 -1
  75. package/assets/skills/oat-project-revise/SKILL.md +51 -4
  76. package/assets/skills/oat-project-summary/SKILL.md +150 -2
  77. package/assets/skills/oat-wave-execute/SKILL.md +3 -2
  78. package/assets/templates/implementation-brief.md +165 -0
  79. package/assets/templates/plan-brief.md +140 -0
  80. package/assets/templates/plan.md +1 -1
  81. package/assets/templates/state.md +8 -2
  82. package/dist/commands/project/closeout-check/closeout-invariant.d.ts +119 -3
  83. package/dist/commands/project/closeout-check/closeout-invariant.d.ts.map +1 -1
  84. package/dist/commands/project/closeout-check/closeout-invariant.js +454 -2
  85. package/dist/commands/project/closeout-check/index.d.ts +21 -3
  86. package/dist/commands/project/closeout-check/index.d.ts.map +1 -1
  87. package/dist/commands/project/closeout-check/index.js +190 -4
  88. package/dist/commands/project/complete-state/index.d.ts +2 -1
  89. package/dist/commands/project/complete-state/index.d.ts.map +1 -1
  90. package/dist/commands/project/complete-state/index.js +7 -1
  91. package/dist/commands/project/delivery/check.d.ts +66 -0
  92. package/dist/commands/project/delivery/check.d.ts.map +1 -0
  93. package/dist/commands/project/delivery/check.js +232 -0
  94. package/dist/commands/project/delivery/evidence.d.ts +171 -0
  95. package/dist/commands/project/delivery/evidence.d.ts.map +1 -0
  96. package/dist/commands/project/delivery/evidence.js +902 -0
  97. package/dist/commands/project/delivery/index.d.ts +7 -0
  98. package/dist/commands/project/delivery/index.d.ts.map +1 -0
  99. package/dist/commands/project/delivery/index.js +13 -0
  100. package/dist/commands/project/delivery/refresh.d.ts +110 -0
  101. package/dist/commands/project/delivery/refresh.d.ts.map +1 -0
  102. package/dist/commands/project/delivery/refresh.js +441 -0
  103. package/dist/commands/project/index.d.ts.map +1 -1
  104. package/dist/commands/project/index.js +2 -0
  105. package/dist/commands/project/log/append.d.ts +6 -0
  106. package/dist/commands/project/log/append.d.ts.map +1 -1
  107. package/dist/commands/project/log/append.js +6 -1
  108. package/dist/commands/project/new/scaffold.d.ts +1 -1
  109. package/dist/commands/project/new/scaffold.d.ts.map +1 -1
  110. package/dist/commands/project/new/scaffold.js +81 -7
  111. package/dist/commands/project/promote/promote.d.ts +46 -1
  112. package/dist/commands/project/promote/promote.d.ts.map +1 -1
  113. package/dist/commands/project/promote/promote.js +646 -5
  114. package/dist/commands/project/validate-plan/frontmatter.d.ts +12 -0
  115. package/dist/commands/project/validate-plan/frontmatter.d.ts.map +1 -0
  116. package/dist/commands/project/validate-plan/frontmatter.js +27 -0
  117. package/dist/commands/project/validate-plan/index.d.ts.map +1 -1
  118. package/dist/commands/project/validate-plan/index.js +62 -18
  119. package/dist/commands/project/validate-plan/profiles.d.ts +69 -0
  120. package/dist/commands/project/validate-plan/profiles.d.ts.map +1 -0
  121. package/dist/commands/project/validate-plan/profiles.js +420 -0
  122. package/dist/commands/project/validate-plan/validate-plan.d.ts +3 -19
  123. package/dist/commands/project/validate-plan/validate-plan.d.ts.map +1 -1
  124. package/dist/commands/project/validate-plan/validate-plan.js +5 -82
  125. package/dist/commands/shared/frontmatter.d.ts +1 -1
  126. package/dist/commands/shared/frontmatter.d.ts.map +1 -1
  127. package/dist/commands/shared/frontmatter.js +2 -0
  128. package/dist/commands/state/generate.d.ts.map +1 -1
  129. package/dist/commands/state/generate.js +82 -2
  130. package/dist/commands/tools/shared/pack-manifest.d.ts.map +1 -1
  131. package/dist/commands/tools/shared/pack-manifest.js +4 -0
  132. package/package.json +2 -2
@@ -1,28 +1,12 @@
1
- export type FrontmatterResult = {
2
- kind: 'ok';
3
- data: Record<string, unknown>;
4
- } | {
5
- kind: 'no-frontmatter';
6
- data: Record<string, unknown>;
7
- } | {
8
- kind: 'invalid';
9
- message: string;
10
- };
11
- export declare function parseFrontmatterFromContent(content: string): FrontmatterResult;
1
+ export { parseFrontmatterFromContent, type FrontmatterResult, } from './frontmatter.js';
2
+ export { extractPhaseIds, resolvePlanProfile, validateLitePlan, validatePlanForProfile, type LitePlanValidationResult, type PlanProfile, type ValidationContext, type ValidationIssue, } from './profiles.js';
12
3
  export type ValidationResult = {
13
4
  valid: true;
14
5
  } | {
15
6
  valid: false;
16
7
  errors: string[];
17
8
  };
18
- export type LitePlanValidationResult = {
19
- ok: true;
20
- } | {
21
- ok: false;
22
- code: 'lite-multi-phase' | 'lite-parallel-groups' | 'lite-criterion-without-command';
23
- message: string;
24
- };
25
- export declare function validateLitePlan(planContent: string, workflowMode: string | null | undefined): LitePlanValidationResult;
26
9
  export declare function validateParallelGroups(groups: unknown, phaseIds: readonly string[]): ValidationResult;
10
+ /** Task-profile phase ids: unique task-heading phase ids, sorted. */
27
11
  export declare function extractPhaseIdsFromPlan(planContent: string): string[];
28
12
  //# sourceMappingURL=validate-plan.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-plan.d.ts","sourceRoot":"","sources":["../../../../src/commands/project/validate-plan/validate-plan.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzC,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,GACd,iBAAiB,CAyBnB;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GACf;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEvC,MAAM,MAAM,wBAAwB,GAChC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IACE,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EACA,kBAAkB,GAClB,sBAAsB,GACtB,gCAAgC,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAeN,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACtC,wBAAwB,CA8C1B;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,gBAAgB,CAgDlB;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAOrE"}
1
+ {"version":3,"file":"validate-plan.d.ts","sourceRoot":"","sources":["../../../../src/commands/project/validate-plan/validate-plan.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,2BAA2B,EAC3B,KAAK,iBAAiB,GACvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,eAAe,GACrB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,gBAAgB,GACxB;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GACf;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEvC,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,gBAAgB,CAgDlB;AAED,qEAAqE;AACrE,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAErE"}
@@ -1,79 +1,6 @@
1
- import YAML from 'yaml';
2
- const FRONTMATTER_PATTERN = /^---\s*\n([\s\S]*?)\n---\s*(?:\n|$)/;
3
- export function parseFrontmatterFromContent(content) {
4
- const match = content.match(FRONTMATTER_PATTERN);
5
- if (!match?.[1]) {
6
- return { kind: 'no-frontmatter', data: {} };
7
- }
8
- try {
9
- const parsed = YAML.parse(match[1]);
10
- if (parsed !== null &&
11
- typeof parsed === 'object' &&
12
- !Array.isArray(parsed)) {
13
- return { kind: 'ok', data: parsed };
14
- }
15
- return {
16
- kind: 'invalid',
17
- message: 'Frontmatter did not parse as an object',
18
- };
19
- }
20
- catch (err) {
21
- const message = err instanceof Error ? err.message : String(err);
22
- return {
23
- kind: 'invalid',
24
- message: `Malformed YAML in frontmatter: ${message}`,
25
- };
26
- }
27
- }
28
- function validationCriteria(planContent) {
29
- const heading = /^## Validation Criteria[ \t]*$/m.exec(planContent);
30
- if (!heading)
31
- return null;
32
- const bodyStart = heading.index + heading[0].length;
33
- const remaining = planContent.slice(bodyStart);
34
- const nextHeading = /^##\s+/m.exec(remaining);
35
- const body = remaining.slice(0, nextHeading?.index ?? remaining.length);
36
- return body
37
- .split('\n')
38
- .filter((line) => /^\s*-\s+/.test(line))
39
- .map((line) => line.replace(/^\s*-\s+(?:\[[ xX]\]\s*)?/, '').trim());
40
- }
41
- export function validateLitePlan(planContent, workflowMode) {
42
- if (workflowMode !== 'lite') {
43
- return { ok: true };
44
- }
45
- const phaseCount = planContent.match(/^## Phase\b.*$/gm)?.length ?? 0;
46
- if (phaseCount !== 1) {
47
- return {
48
- ok: false,
49
- code: 'lite-multi-phase',
50
- message: `Lite plans must contain exactly one phase; found ${phaseCount}.`,
51
- };
52
- }
53
- const frontmatter = parseFrontmatterFromContent(planContent);
54
- const groups = frontmatter.kind === 'invalid'
55
- ? undefined
56
- : frontmatter.data['oat_plan_parallel_groups'];
57
- if (groups !== undefined &&
58
- groups !== null &&
59
- !(Array.isArray(groups) && groups.length === 0)) {
60
- return {
61
- ok: false,
62
- code: 'lite-parallel-groups',
63
- message: 'Lite plans must declare no parallel groups.',
64
- };
65
- }
66
- const criteria = validationCriteria(planContent);
67
- const invalidCriterion = criteria?.find((criterion) => !criterion.startsWith('manual:') && !/`[^`\n]+`/.test(criterion));
68
- if (!criteria || criteria.length === 0 || invalidCriterion !== undefined) {
69
- return {
70
- ok: false,
71
- code: 'lite-criterion-without-command',
72
- message: 'Every lite Validation Criteria bullet must name a command in backticks or start with manual: after the bullet marker.',
73
- };
74
- }
75
- return { ok: true };
76
- }
1
+ import { extractPhaseIds } from './profiles.js';
2
+ export { parseFrontmatterFromContent, } from './frontmatter.js';
3
+ export { extractPhaseIds, resolvePlanProfile, validateLitePlan, validatePlanForProfile, } from './profiles.js';
77
4
  export function validateParallelGroups(groups, phaseIds) {
78
5
  // Missing or empty → valid (sequential execution, no parallelism declared)
79
6
  if (groups === undefined || groups === null) {
@@ -116,11 +43,7 @@ export function validateParallelGroups(groups, phaseIds) {
116
43
  }
117
44
  return errors.length > 0 ? { valid: false, errors } : { valid: true };
118
45
  }
46
+ /** Task-profile phase ids: unique task-heading phase ids, sorted. */
119
47
  export function extractPhaseIdsFromPlan(planContent) {
120
- const matches = planContent.match(/### Task (p\d+)-t\d+/g) ?? [];
121
- const ids = matches.map((m) => {
122
- const parts = m.split(' ');
123
- return parts[2].split('-')[0];
124
- });
125
- return Array.from(new Set(ids)).sort();
48
+ return extractPhaseIds(planContent, 'task');
126
49
  }
@@ -24,7 +24,7 @@ export declare const SKILL_GATE_OVERRIDE_SOURCE = "state.md:oat_skill_gate_overr
24
24
  * `skills.test.ts` pins this constant against the live `oat_gateable: true`
25
25
  * declarations so the two cannot drift apart.
26
26
  */
27
- export declare const GATE_AWARE_SKILLS: readonly ['oat-project-implement', 'oat-project-import-plan', 'oat-project-lite', 'oat-project-plan', 'oat-project-quick-start'];
27
+ export declare const GATE_AWARE_SKILLS: readonly ['oat-project-brief', 'oat-project-goal', 'oat-project-implement', 'oat-project-import-plan', 'oat-project-lite', 'oat-project-plan', 'oat-project-quick-start'];
28
28
  export type SkillGateOverrideValue = typeof SKILL_GATE_OVERRIDE_DISABLED;
29
29
  export interface ProjectSkillGateOverrides {
30
30
  /** False when the key is absent entirely: absence means follow configuration. */
@@ -1 +1 @@
1
- {"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/frontmatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/frontmatter.ts"],"names":[],"mappings":"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"}
@@ -69,6 +69,8 @@ export const SKILL_GATE_OVERRIDE_SOURCE = `state.md:${SKILL_GATE_OVERRIDE_FIELD}
69
69
  * declarations so the two cannot drift apart.
70
70
  */
71
71
  export const GATE_AWARE_SKILLS = [
72
+ 'oat-project-brief',
73
+ 'oat-project-goal',
72
74
  'oat-project-implement',
73
75
  'oat-project-import-plan',
74
76
  'oat-project-lite',
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/commands/state/generate.ts"],"names":[],"mappings":"AAQA,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAmB9E,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CAClD;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AA0ID,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAC/B,OAAO,CAET;AAomBD,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAkF9B"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/commands/state/generate.ts"],"names":[],"mappings":"AAQA,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAoB9E,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CAClD;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AA0ID,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAC/B,OAAO,CAET;AA8rBD,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAkF9B"}
@@ -11,7 +11,7 @@ import { resolveProjectsRoot } from '../shared/oat-paths.js';
11
11
  import { resolveScopeRoot } from '../shared/project-scope.js';
12
12
  import { readOatLocalConfig } from '../../config/oat-config.js';
13
13
  import { ensureDir, fileExists } from '../../fs/io.js';
14
- import { evaluateQuickPlanReadiness, quickPlanNotReadyReason, } from '@open-agent-toolkit/control-plane';
14
+ import { BRIEF_MODES, evaluateQuickPlanReadiness, quickPlanNotReadyReason, } from '@open-agent-toolkit/control-plane';
15
15
  import YAML from 'yaml';
16
16
  const defaultGit = {
17
17
  isGitRepo(root) {
@@ -238,6 +238,34 @@ function calculateStaleness(knowledge, git, repoRoot, today) {
238
238
  }
239
239
  return result;
240
240
  }
241
+ /**
242
+ * True when the frontmatter workflow mode belongs to the brief mode family.
243
+ * The dashboard keeps the raw frontmatter string, so it checks membership
244
+ * against the control plane's registry rather than a local list.
245
+ */
246
+ function isBriefWorkflow(workflowMode) {
247
+ return BRIEF_MODES.includes(workflowMode);
248
+ }
249
+ /**
250
+ * Printed for brief projects in the implement phase, where the router's
251
+ * brief-unit guard applies. The dashboard reads `state.md` frontmatter only
252
+ * and never phase-unit progress, so it cannot apply that guard at
253
+ * `implement:complete`/`pr_open`.
254
+ */
255
+ const BRIEF_ROUTER_AUTHORITY_NOTE = '> Brief projects count progress in phase-units, which this dashboard does not read. ' +
256
+ '`oat project status` and `oat-project-next` use the control-plane router, which is the ' +
257
+ 'authority for the brief-unit guard: an unaccepted phase-unit sends the project back to ' +
258
+ '`oat-project-implement` before any finalization step.';
259
+ /**
260
+ * Printed for goal projects in the implement phase. Goal routing reads
261
+ * milestone membership, recovery records, gate carriers, the delivery
262
+ * registry and phase-unit progress, none of which this dashboard reads.
263
+ */
264
+ const GOAL_ROUTER_AUTHORITY_NOTE = '> Goal projects route by milestone status, recovery records, gate carriers, the delivery ' +
265
+ 'registry and phase-units, which this dashboard does not read. `oat project status` and ' +
266
+ '`oat-project-next` use the control-plane router, which is the authority for goal milestone ' +
267
+ 'routing: it scopes implementation to the active milestone and sends review, delivery and ' +
268
+ 'recovery work to its owner.';
241
269
  function computeNextStep(project, hasProjects, state) {
242
270
  if (project.status === 'not set') {
243
271
  if (project.lastPausedProject) {
@@ -283,11 +311,17 @@ function computeNextStep(project, hasProjects, state) {
283
311
  // projects whose state.md still lists `spec` in oat_hill_checkpoints route
284
312
  // to oat-project-design here so they finish through the consolidated flow
285
313
  // rather than being pushed back at the deprecated standalone skill.
314
+ // Brief modes own their plan phase through the brief entry skill, as the
315
+ // router's mode-aware current-phase lookup does.
286
316
  const phaseSkillMap = {
287
317
  discovery: 'oat-project-discover',
288
318
  spec: 'oat-project-design',
289
319
  design: 'oat-project-design',
290
- plan: 'oat-project-plan',
320
+ plan: state.workflowMode === 'goal'
321
+ ? 'oat-project-goal'
322
+ : isBriefWorkflow(state.workflowMode)
323
+ ? 'oat-project-brief'
324
+ : 'oat-project-plan',
291
325
  implement: 'oat-project-implement',
292
326
  };
293
327
  return {
@@ -366,6 +400,41 @@ function computeNextStep(project, hasProjects, state) {
366
400
  step: 'oat-project-lite',
367
401
  reason: 'Continue lite planning',
368
402
  },
403
+ // Brief routes mirror the router's BRIEF_ROUTES. Parity with
404
+ // `recommendSkill` is bounded to these plan-phase states and
405
+ // `implement:in_progress` (generate.test.ts pins it): this dashboard has no
406
+ // phase-unit progress, so at `implement:complete`/`pr_open` a brief follows
407
+ // the shared post-implementation map below and the router, reached through
408
+ // `oat project status` and `oat-project-next`, is the authority for the
409
+ // brief-unit guard. The dashboard prints a note saying so.
410
+ 'brief:plan:in_progress': {
411
+ step: 'oat-project-brief',
412
+ reason: 'Continue the project brief',
413
+ },
414
+ 'brief:plan:complete': {
415
+ step: 'oat-project-implement',
416
+ reason: 'Start implementation from the approved brief',
417
+ },
418
+ 'brief:implement:in_progress': {
419
+ step: 'oat-project-implement',
420
+ reason: 'Continue implementation',
421
+ },
422
+ // Goal plan rows mirror the router's GOAL_ROUTES: the goal entry skill
423
+ // owns the brief, its milestones and milestone activation. Parity is
424
+ // bounded like brief's; in the implement phase the router's goal priority
425
+ // block is the authority and the dashboard prints a note saying so.
426
+ 'goal:plan:in_progress': {
427
+ step: 'oat-project-goal',
428
+ reason: 'Continue the goal brief and its milestones',
429
+ },
430
+ 'goal:plan:complete': {
431
+ step: 'oat-project-goal',
432
+ reason: 'Align and activate the first milestone',
433
+ },
434
+ 'goal:implement:in_progress': {
435
+ step: 'oat-project-implement',
436
+ reason: 'Continue implementation',
437
+ },
369
438
  };
370
439
  if (routeMap[key])
371
440
  return routeMap[key];
@@ -563,6 +632,15 @@ function buildDashboardMarkdown(project, state, knowledge, staleness, nextStep,
563
632
  lines.push('');
564
633
  lines.push(`**${nextStep.step}** - ${nextStep.reason}`);
565
634
  lines.push('');
635
+ if (project.status === 'active' &&
636
+ state &&
637
+ state.phase === 'implement' &&
638
+ isBriefWorkflow(state.workflowMode)) {
639
+ lines.push(state.workflowMode === 'goal'
640
+ ? GOAL_ROUTER_AUTHORITY_NOTE
641
+ : BRIEF_ROUTER_AUTHORITY_NOTE);
642
+ lines.push('');
643
+ }
566
644
  lines.push('## Quick Commands');
567
645
  lines.push('');
568
646
  lines.push('- `oat-project-progress` - Check current status');
@@ -571,6 +649,8 @@ function buildDashboardMarkdown(project, state, knowledge, staleness, nextStep,
571
649
  lines.push('- `oat-project-quick-start` - Create a quick workflow project');
572
650
  lines.push('- `oat-project-import-plan` - Import an external provider plan');
573
651
  lines.push('- `oat-project-lite` - Create a lite workflow project');
652
+ lines.push('- `oat-project-brief` - Create a brief workflow project');
653
+ lines.push('- `oat-project-goal` - Create a goal workflow project');
574
654
  lines.push('- `oat project open <name>` - Open or resume a project');
575
655
  lines.push('- `oat project pause [name]` - Pause active or named project');
576
656
  lines.push('- `oat-project-complete` - Mark project complete');
@@ -1 +1 @@
1
- {"version":3,"file":"pack-manifest.d.ts","sourceRoot":"","sources":["../../../../src/commands/tools/shared/pack-manifest.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,cAAc,EACd,QAAQ,EACT,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,cAAc,GACf,CAAC;AAEF,eAAO,MAAM,UAAU,4GASiB,CAAC;AAEzC,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,QAAQ,CAE3D;AAoID,eAAO,MAAM,aAAa,EAAE,SAAS,cAAc,EA2LlD,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,CAMhE;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,QAAQ,EACd,IAAI,CAAC,EAAE,aAAa,GACnB,SAAS,mBAAmB,EAAE,CAGhC;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAC9C,MAAM,EAAE,CAQV;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,CAIlE;AAoJD,wBAAgB,oBAAoB,CAClC,QAAQ,GAAE,SAAS,cAAc,EAAkB,GAClD,IAAI,CAiEN"}
1
+ {"version":3,"file":"pack-manifest.d.ts","sourceRoot":"","sources":["../../../../src/commands/tools/shared/pack-manifest.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,cAAc,EACd,QAAQ,EACT,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,cAAc,GACf,CAAC;AAEF,eAAO,MAAM,UAAU,4GASiB,CAAC;AAEzC,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,QAAQ,CAE3D;AAsID,eAAO,MAAM,aAAa,EAAE,SAAS,cAAc,EA6LlD,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,CAMhE;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,QAAQ,EACd,IAAI,CAAC,EAAE,aAAa,GACnB,SAAS,mBAAmB,EAAE,CAGhC;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAC9C,MAAM,EAAE,CAQV;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,CAIlE;AAoJD,wBAAgB,oBAAoB,CAClC,QAAQ,GAAE,SAAS,cAAc,EAAkB,GAClD,IAAI,CAiEN"}
@@ -77,6 +77,7 @@ const WORKFLOW_SKILL_NAMES = [
77
77
  'oat-cursor-cloud-projects',
78
78
  'oat-explainer-kit',
79
79
  'oat-project-autonomous',
80
+ 'oat-project-brief',
80
81
  'oat-project-capture',
81
82
  'oat-project-clear-active',
82
83
  'oat-project-complete',
@@ -85,6 +86,7 @@ const WORKFLOW_SKILL_NAMES = [
85
86
  'oat-project-dispatch-subagents',
86
87
  'oat-project-discover',
87
88
  'oat-project-document',
89
+ 'oat-project-goal',
88
90
  'oat-project-implement',
89
91
  'oat-project-import-plan',
90
92
  'oat-project-lite',
@@ -193,7 +195,9 @@ export const PACK_MANIFEST = [
193
195
  'design.md',
194
196
  'plan.md',
195
197
  'plan-lite.md',
198
+ 'plan-brief.md',
196
199
  'implementation.md',
200
+ 'implementation-brief.md',
197
201
  'summary.md',
198
202
  'project-log.md',
199
203
  'project-retro.md',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-agent-toolkit/cli",
3
- "version": "0.3.18",
3
+ "version": "0.3.20",
4
4
  "private": false,
5
5
  "description": "Open Agent Toolkit CLI",
6
6
  "homepage": "https://github.com/voxmedia/open-agent-toolkit/tree/main/packages/cli",
@@ -35,7 +35,7 @@
35
35
  "ora": "^9.0.0",
36
36
  "yaml": "2.8.2",
37
37
  "zod": "^3.25.76",
38
- "@open-agent-toolkit/control-plane": "0.3.18"
38
+ "@open-agent-toolkit/control-plane": "0.3.20"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/node": "^22.10.0",