@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
@@ -0,0 +1,165 @@
1
+ ---
2
+ oat_status: in_progress
3
+ oat_ready_for: null
4
+ oat_blockers: []
5
+ oat_last_updated: YYYY-MM-DD
6
+ oat_current_task_id: p01
7
+ oat_generated: false
8
+ oat_template: true
9
+ oat_template_name: implementation-brief
10
+ ---
11
+
12
+ # Implementation: {Project Name}
13
+
14
+ **Started:** YYYY-MM-DD
15
+ **Last Updated:** YYYY-MM-DD
16
+
17
+ > This journal records execution of the Project Brief in `plan.md` and is used
18
+ > to resume interrupted sessions.
19
+ >
20
+ > Conventions:
21
+ >
22
+ > - Progress counts phase-units: each `## Phase pNN:` in `plan.md` is one unit,
23
+ > accepted only by the exact line `**Status:** completed` in its section here.
24
+ > A provisional phase never counts as complete.
25
+ > - `oat_current_task_id` points at the **next unit to do**: a phase ID (`p02`)
26
+ > or an open execution record (`p02-t03`). Set it to `null` when every phase
27
+ > is accepted.
28
+ > - Marker lines are exact, one per line, directly under the phase heading:
29
+ > `**Status:** pending | in_progress | completed | failed | extracted`,
30
+ > `**Base:** <full SHA>`, `**Head:** <full SHA>`, and
31
+ > `**Executor:** root | phase-implementer:<id> | worker:<id> | inline:<exception-ref> | reconciled`.
32
+ > `**Status:** extracted` always pairs with `**Extracted to:** <slug>` naming
33
+ > the linked project; without it the phase reads as `pending`.
34
+ > Phase ownership ends at the next heading, so a task record's status is never
35
+ > read as its phase's status.
36
+ > - `### Task pNN-tNN:` blocks are execution records, opened when work starts
37
+ > and closed at commit with the SHA or a terminal status
38
+ > (`completed | failed | cancelled | no-change`). They never change phase totals.
39
+ > - Reviews are **not** units. Track review status in `plan.md` under `## Reviews`.
40
+
41
+ ## Progress Overview
42
+
43
+ | Phase | Status | Units | Accepted |
44
+ | ----- | ------- | ----- | -------- |
45
+ | p01 | pending | 1 | 0/1 |
46
+ | p02 | pending | 1 | 0/1 |
47
+
48
+ **Total:** 0/[N] phases accepted
49
+
50
+ ---
51
+
52
+ ## Phase p01: [Phase Name]
53
+
54
+ **Status:** pending
55
+ **Base:** [full base SHA, recorded when the phase starts]
56
+ **Head:** [full head SHA, recorded when the phase's work ends, before its review]
57
+ **Executor:** [root | phase-implementer:<id> | worker:<id> | inline:<exception-ref> | reconciled]
58
+
59
+ [Summary prose: verification, review disposition, authority changes, deviations, next action.]
60
+
61
+ <!-- Execution records follow the summary. Replace this example with real records when work starts: -->
62
+
63
+ ```markdown
64
+ ### Task p01-t01: [Execution record name]
65
+
66
+ **Status:** completed
67
+ **Commit:** [full commit SHA]
68
+ **Executor:** worker:w1
69
+
70
+ Intent, files, proof command, result.
71
+ ```
72
+
73
+ ---
74
+
75
+ ## Phase p02: [Phase Name]
76
+
77
+ **Status:** pending
78
+
79
+ ---
80
+
81
+ ## Orchestration Runs
82
+
83
+ _Each run from `oat-project-implement` appends an entry below with:_
84
+ _- Run header (number, timestamp, branch, tier, policy, phase counts)_
85
+ _- Phase Outcomes table_
86
+ _- Parallel Groups list_
87
+ _- Outstanding Items_
88
+
89
+ <!-- orchestration-runs-start -->
90
+
91
+ _Orchestration runs from `oat-project-implement` are appended here, most-recent-first within the file but append-only at the bottom of the log._
92
+
93
+ <!-- orchestration-runs-end -->
94
+
95
+ ---
96
+
97
+ ## Implementation Log
98
+
99
+ Chronological log of implementation progress.
100
+
101
+ ### YYYY-MM-DD
102
+
103
+ **Session Start:** [time]
104
+
105
+ - [x] p01: [Phase name] - [head SHA]
106
+ - [ ] p02: [Phase name] - in progress
107
+
108
+ **What changed (high level):**
109
+
110
+ - [short bullets suitable for PR/docs]
111
+
112
+ **Decisions:**
113
+
114
+ - [Decision made and rationale]
115
+
116
+ **Follow-ups / TODO:**
117
+
118
+ - [anything discovered during implementation that should be captured for later]
119
+
120
+ **Blockers:**
121
+
122
+ - [Blocker description] - [status: resolved/pending]
123
+
124
+ **Session End:** [time]
125
+
126
+ ---
127
+
128
+ ## Deviations from Plan / Design
129
+
130
+ Document any intentional deviations from the brief. Include accepted review findings where the shipped implementation is source of truth and the brief needs alignment.
131
+
132
+ | Phase / Review | Source Artifact | Planned / Documented | Actual / Accepted | Reason | Source of Truth | Follow-up |
133
+ | -------------- | --------------- | -------------------- | ----------------- | ------ | --------------- | --------- |
134
+ | - | - | - | - | - | - | - |
135
+
136
+ ## Final Summary (for PR/docs)
137
+
138
+ **What shipped:**
139
+
140
+ - [capability 1]
141
+
142
+ **Behavioral changes (user-facing):**
143
+
144
+ - [bullet]
145
+
146
+ **Key files / modules:**
147
+
148
+ - `[path]` - [purpose]
149
+
150
+ **Verification performed:**
151
+
152
+ - [tests/lint/typecheck/build/manual steps]
153
+
154
+ **Outcomes audit:**
155
+
156
+ - Outcome 1: [observed evidence (accepted phase, commit, or verification result) or the recorded deferral]
157
+
158
+ **Brief deltas (if any):**
159
+
160
+ - [what changed vs plan.md and why]
161
+
162
+ ## References
163
+
164
+ - Brief: `plan.md`
165
+ - Research: `references/research/`
@@ -0,0 +1,140 @@
1
+ ---
2
+ oat_status: in_progress
3
+ oat_ready_for: null
4
+ oat_blockers: []
5
+ oat_last_updated: YYYY-MM-DD
6
+ oat_phase: plan
7
+ oat_phase_status: in_progress
8
+ oat_plan_hill_phases: [] # [] = none for brief modes
9
+ oat_plan_parallel_groups: [] # groups of phases that run concurrently in worktrees; [] = fully sequential
10
+ oat_plan_source: brief
11
+ oat_import_reference: null
12
+ oat_import_source_path: null
13
+ oat_import_provider: null
14
+ oat_generated: false
15
+ oat_template: true
16
+ oat_template_name: plan-brief
17
+ ---
18
+
19
+ # Project Brief: {Project Name}
20
+
21
+ > Execute this brief using `oat-project-implement`. Phases are the units of
22
+ > progress: each `## Phase pNN:` block carries intent and exit evidence instead
23
+ > of planned tasks, and only the next phase must be concrete. Execution records
24
+ > (`### Task pNN-tNN:`) live in `implementation.md`, never here.
25
+
26
+ **Commit Convention:** `{type}({scope}): {description}` - e.g., `feat(p01-t01): add user auth endpoint`
27
+
28
+ **Phase block grammar (strict):** each phase is one `## Phase pNN: <name>`
29
+ heading followed by a blank line and these exact lines:
30
+
31
+ ```markdown
32
+ **Intent:** one or more non-empty lines
33
+ **Exit evidence:** one or more non-empty lines
34
+ **Provisional:** no
35
+ ```
36
+
37
+ Phase IDs are stable and document order governs execution. `**Provisional:**`
38
+ accepts `yes` or `no`; absent means `no`. The first phase must not be
39
+ provisional. Do not add `### Task` headings to phases.
40
+
41
+ ## Goal
42
+
43
+ [State the outcome this project must achieve and why it matters.]
44
+
45
+ ## Outcomes
46
+
47
+ <!-- Number each outcome and name the evidence that will show it holds. Completion is audited against this list. -->
48
+
49
+ 1. **[Observable outcome]** — Evidence: [test, command, artifact, or review that will prove it]
50
+ 2. **[Observable outcome]** — Evidence: [test, command, artifact, or review that will prove it]
51
+
52
+ ## Approach
53
+
54
+ [Describe the intended approach: the modules and contracts involved and how the change fits them.]
55
+
56
+ <!-- Optional: add a `### Design` subsection when architecture decisions need recording. Delete this comment otherwise. -->
57
+
58
+ ## Constraints and Out of Scope
59
+
60
+ - **Constraint:** [A rule the work must respect.]
61
+ - **Out of scope:** [Adjacent work intentionally excluded.]
62
+
63
+ ## Decisions
64
+
65
+ - [Record each decision made by the user during the interview, with its rationale.]
66
+
67
+ ## Known Unknowns
68
+
69
+ - [Open question] — Settled by: [phase ID that resolves it]
70
+
71
+ ## Delivery endpoint and authority
72
+
73
+ - **Endpoint:** [open | merged] — [what "delivered" means for this project]
74
+ - **Authority:** [who approves the brief, phase acceptance, and the delivery; what the agent may decide alone]
75
+
76
+ ## Milestones
77
+
78
+ <!-- Reserved for goal mode. Brief projects deliver once and leave this section empty. -->
79
+
80
+ ## Phase p01: [Phase Name]
81
+
82
+ **Intent:** [What this phase changes and why.]
83
+ **Exit evidence:** [The verification that shows the phase is done.]
84
+ **Provisional:** no
85
+
86
+ ## Phase p02: [Phase Name]
87
+
88
+ **Intent:** [What this phase is expected to change; refine before it starts.]
89
+ **Exit evidence:** [The verification expected to show the phase is done.]
90
+ **Provisional:** yes
91
+
92
+ ---
93
+
94
+ ## Parallelism
95
+
96
+ Phases that have no overlapping file modifications may run concurrently. To declare parallelism:
97
+
98
+ ```yaml
99
+ oat_plan_parallel_groups: [['p02', 'p03']]
100
+ ```
101
+
102
+ Each inner array is a group of phases that execute in parallel (each in its own worktree) and merge back in plan order after all pass. Groups may be declared whenever the phases become concrete.
103
+
104
+ Default is `[]` (fully sequential, no worktrees).
105
+
106
+ ---
107
+
108
+ ## Reviews
109
+
110
+ | Scope | Type | Status | Date | Artifact | Reviewed Head | Invocation | Gate Target |
111
+ | ----- | -------- | ------- | ---- | -------- | ------------- | ---------- | ----------- |
112
+ | plan | artifact | pending | - | - | - | - | - |
113
+ | p01 | code | pending | - | - | - | - | - |
114
+ | final | code | pending | - | - | - | - | - |
115
+
116
+ Add one `code` row per phase as phases become concrete. For code-review events,
117
+ `Reviewed Head` is the full 40-character SHA at the head of the reviewed range.
118
+ Writers must preserve every existing row and every unknown trailing cell.
119
+
120
+ **Status values:** `pending` → `received` → `fixes_added` → `fixes_completed` → `passed`
121
+
122
+ ---
123
+
124
+ ## Implementation Complete
125
+
126
+ **Summary:**
127
+
128
+ - Phase p01: [Description]
129
+
130
+ **Total: [N] phases**
131
+
132
+ Ready for final code review and PR preparation.
133
+
134
+ ---
135
+
136
+ ## References
137
+
138
+ - Journal: `implementation.md`
139
+ - Research: `references/research/`
140
+ - Project log: `project-log.md` (when enabled)
@@ -7,7 +7,7 @@ oat_phase: plan
7
7
  oat_phase_status: in_progress
8
8
  oat_plan_hill_phases: [] # phases to pause AFTER completing (empty = every phase)
9
9
  oat_plan_parallel_groups: [] # groups of phases that run concurrently in worktrees; [] = fully sequential
10
- oat_plan_source: spec-driven # spec-driven | quick | imported | lite
10
+ oat_plan_source: spec-driven # spec-driven | quick | imported | lite | brief
11
11
  oat_import_reference: null # e.g., references/imported-plan.md
12
12
  oat_import_source_path: null # original source path provided by user
13
13
  oat_import_provider: null # codex | cursor | claude | null
@@ -8,7 +8,7 @@ oat_parent: null # optional child-only coordination parent slug
8
8
  oat_siblings: [] # optional child-only sibling slugs
9
9
  oat_depends_on: [] # optional child-only sibling dependencies
10
10
  oat_children: [] # optional coordination-parent child slugs
11
- oat_hill_checkpoints: { OAT_HILL_CHECKPOINTS } # Configured: which phases require human-in-the-loop lifecycle approval
11
+ oat_hill_checkpoints: { OAT_HILL_CHECKPOINTS } # Configured: which phases require human-in-the-loop lifecycle approval; [] = none for brief modes
12
12
  oat_hill_completed: [] # Progress: which HiLL checkpoints have been completed
13
13
  oat_parallel_execution: false
14
14
  oat_phase: { OAT_PHASE } # Current phase: discovery | spec | design | plan | implement | decomposition
@@ -34,7 +34,7 @@ oat_phase_status: in_progress # Status: in_progress | complete | pr_open
34
34
  # - { harness: cursor, model: gpt-5.5-xhigh }
35
35
  # source: project-state
36
36
  # oat_dispatch_ceiling: # legacy compatibility alias for capped managed provider targets
37
- oat_workflow_mode: { OAT_WORKFLOW_MODE } # spec-driven | quick | import | lite
37
+ oat_workflow_mode: { OAT_WORKFLOW_MODE } # spec-driven | quick | import | lite | brief | goal
38
38
  oat_workflow_origin: native # native | imported
39
39
  # oat_skill_gate_overrides: # optional; per-project posture for configured lifecycle gates
40
40
  # oat-project-implement: disabled # only the literal value `disabled`; absence means follow configuration
@@ -82,6 +82,12 @@ oat_workflow_origin: native # native | imported
82
82
  # config_fingerprint: '<stable hash of resolved gate declaration>'
83
83
  # reviewed_head: null # full SHA of the commit the gate reviewed; provenance only
84
84
  # decided_at: null # ISO 8601 UTC
85
+ # oat_brief_gate: # optional; persisted brief artifact gate outcome, absent when no gate is configured; provenance only, read back by no route (core record: gate-approval-record.md)
86
+ # status: allowed # allowed | blocked
87
+ # disposition: passed # passed | warned | prompt_approved | project_disabled; null when blocked
88
+ # config_fingerprint: '<stable hash of resolved gate declaration>'
89
+ # reviewed_head: null # full SHA of the commit the gate reviewed; provenance only
90
+ # decided_at: null # ISO 8601 UTC
85
91
  oat_docs_updated: null # null | skipped | complete — documentation sync status
86
92
  oat_pr_status: null # null | ready | open | closed | merged — actual PR state for the current project
87
93
  oat_pr_url: null # null | string — tracked PR URL when a PR exists
@@ -1,3 +1,5 @@
1
+ import type { CarrierEvaluation, ReviewEvaluation } from '../../project/delivery/evidence.js';
2
+ import { type GoalDelivery } from '@open-agent-toolkit/control-plane';
1
3
  /**
2
4
  * The closeout invariant shared by `oat project closeout-check` and
3
5
  * `oat project complete-state` (BL-260806-fail-closed-when-configured).
@@ -11,6 +13,13 @@
11
13
  * persists. Once a snapshot exists it is authoritative: current configuration
12
14
  * is never consulted, so a later config change cannot invalidate a persisted
13
15
  * run.
16
+ *
17
+ * A goal project additionally passes the goal terminal boundary before either
18
+ * success return (`complete` or `not_required`): the terminal declaration, an
19
+ * exhaustive outcome audit validated by the control plane's single audit
20
+ * predicate, resolved extraction and delivery coverage over current
21
+ * observations. A complete snapshot cannot waive it, and every refusal names
22
+ * the actual next owner.
14
23
  */
15
24
  export declare const SEQUENCE_FIELD = "oat_post_implement_sequence";
16
25
  export declare const RECOVERY_SKILL = "oat-project-implement";
@@ -29,9 +38,15 @@ export interface CloseoutSnapshot {
29
38
  approval: (typeof APPROVALS)[number];
30
39
  postApproval: SequenceStep[];
31
40
  postApprovalCompleted: SequenceStep[];
41
+ /**
42
+ * Goal only: steps recorded complete by delivery coverage rather than by
43
+ * their skill (`satisfied_by: { pr: delivery-coverage }`). Recorded only
44
+ * once the step's position in the stored order is reached.
45
+ */
46
+ satisfiedBy: Partial<Record<SequenceStep, 'delivery-coverage'>>;
32
47
  failure: unknown;
33
48
  }
34
- export type CloseoutInvariant = 'snapshot_missing' | 'snapshot_malformed' | 'sequence_failed' | 'pre_approval_step_pending' | 'approval_pending' | 'post_approval_step_pending' | 'sequence_not_complete';
49
+ export type CloseoutInvariant = 'goal_inputs_unreadable' | 'goal_not_declared' | 'goal_audit_invalid' | 'goal_extraction_unresolved' | 'goal_observation_failed' | 'goal_coverage_incomplete' | 'snapshot_missing' | 'snapshot_malformed' | 'sequence_failed' | 'pre_approval_step_pending' | 'approval_pending' | 'post_approval_step_pending' | 'sequence_not_complete';
35
50
  export type CloseoutNextOwner = {
36
51
  kind: 'snapshot';
37
52
  skill: string;
@@ -51,6 +66,11 @@ export type CloseoutNextOwner = {
51
66
  } | {
52
67
  kind: 'sequence-status';
53
68
  skill: string;
69
+ } | {
70
+ /** Goal boundary refusals name the actual next owner (A3). */
71
+ kind: 'goal';
72
+ skill: string;
73
+ reasons: GoalCloseoutReason[];
54
74
  };
55
75
  export type SnapshotRequirementReason = 'lite' | 'autonomous' | 'configured';
56
76
  export interface CloseoutInputs {
@@ -73,7 +93,8 @@ export type CloseoutResult = {
73
93
  status: 'incomplete';
74
94
  invariant: CloseoutInvariant;
75
95
  detail: string;
76
- route: typeof RECOVERY_SKILL;
96
+ /** The skill that owns recovery: implement, or the goal boundary's next owner. */
97
+ route: string;
77
98
  nextOwner: CloseoutNextOwner;
78
99
  inputs: CloseoutInputs;
79
100
  };
@@ -83,8 +104,103 @@ export interface EvaluateCloseoutOptions {
83
104
  env: NodeJS.ProcessEnv;
84
105
  /** Resolves the effective layered `workflow.postImplementSequence`; called only when needed. */
85
106
  resolveConfigured: () => Promise<boolean>;
107
+ /**
108
+ * Goal mode only: the boundary inputs loaded read-only by
109
+ * `checkProjectCloseout`. A goal project evaluated without them refuses.
110
+ */
111
+ goal?: GoalCloseoutInputs;
112
+ }
113
+ /** One extracted phase's child project, as observed on disk. */
114
+ export interface ExtractedChildFact {
115
+ slug: string;
116
+ /** `found` only when exactly one project directory carries the slug. */
117
+ status: 'found' | 'missing' | 'ambiguous' | 'unreadable';
118
+ lifecycle: string | null;
119
+ /** The child's `oat_extracted_from` backlink. */
120
+ extractedFrom: string | null;
121
+ }
122
+ /** The shared evaluator's verdict for one terminal delivery's effective scope. */
123
+ export interface DeliveryEvidenceFact {
124
+ /** The effective scope the evidence was evaluated against. */
125
+ scope: string[];
126
+ review: ReviewEvaluation;
127
+ exit: CarrierEvaluation;
128
+ }
129
+ /**
130
+ * Everything the goal boundary needs, as data: the brief, the journal, the
131
+ * registry with current host observations merged into its members, the
132
+ * observation failures, each extracted child's identity, backlink and
133
+ * lifecycle, and the evidence evaluated for each terminal delivery. Null
134
+ * contents mean the input could not be read.
135
+ */
136
+ export interface GoalCloseoutInputs {
137
+ goalSlug: string;
138
+ planContent: string | null;
139
+ implementationContent: string | null;
140
+ deliveries: GoalDelivery[] | null;
141
+ observationFailures: string[];
142
+ children: ExtractedChildFact[];
143
+ evidence: Record<string, DeliveryEvidenceFact>;
86
144
  }
87
- export declare function parseCloseoutSnapshot(value: unknown): CloseoutSnapshot;
145
+ export type GoalCloseoutReasonCode = 'plan-unreadable' | 'journal-unreadable' | 'registry-unreadable' | 'not-declared' | 'audit-invalid' | 'extraction-target-mismatch' | 'child-missing' | 'child-backlink-mismatch' | 'child-incomplete' | 'child-deferral-under-met' | 'member-unobserved' | 'delivery-duplicate-id' | 'delivery-self-link' | 'delivery-missing-target' | 'delivery-link-mismatch' | 'delivery-conflicting-predecessor' | 'delivery-source-not-superseded' | 'delivery-missing-link' | 'delivery-cycle' | 'delivery-replaced-after-endpoint' | 'correction-claims-inherited-scope' | 'delivery-registering' | 'terminal-scopes-overlap' | 'endpoint-unmet' | 'evidence-unevaluated' | 'review-not-fresh' | 'exit-carrier-not-fresh' | 'scope-claim-unknown' | 'scope-claim-unaccepted' | 'phase-uncovered';
146
+ export interface GoalCloseoutReason {
147
+ code: GoalCloseoutReasonCode;
148
+ message: string;
149
+ /** Phase, delivery or child the reason is about, when it has one. */
150
+ subject?: string;
151
+ }
152
+ /** A terminal delivery and its effective scope after transitive resolution. */
153
+ export interface TerminalDelivery {
154
+ delivery: GoalDelivery;
155
+ /** Its frozen scope plus every predecessor's, ordered by the brief. */
156
+ effectiveScope: string[];
157
+ /** The superseded predecessors whose obligations it inherits. */
158
+ inherits: string[];
159
+ }
160
+ export interface DeliveryGraph {
161
+ terminals: TerminalDelivery[];
162
+ errors: GoalCloseoutReason[];
163
+ }
164
+ /**
165
+ * Validate the supersession graph and resolve every replacement chain to its
166
+ * terminal delivery (A4). In v1.5 each replacement has at most one direct
167
+ * predecessor: `covers_scope_of` names it and the predecessor's
168
+ * `superseded_by` points back. Missing targets, self-links, cycles,
169
+ * conflicting predecessors, mismatched links, a non-superseded source and a
170
+ * replacement of a delivery that already reached its endpoint are refused.
171
+ * `corrects_delivery_id` is additive and inherits no coverage, so a
172
+ * correction may not claim its target's scope.
173
+ */
174
+ export declare function resolveDeliveryGraph(deliveries: readonly GoalDelivery[], phaseOrder?: readonly string[]): DeliveryGraph;
175
+ /**
176
+ * The goal delivery coverage predicate (A4), over current observations:
177
+ * no registering entries; a valid supersession graph whose terminal
178
+ * deliveries have disjoint effective scopes; every terminal delivery at its
179
+ * agreed endpoint with a passed, fresh integrated review and an allowed,
180
+ * fresh exit-gate result evaluated against its entire effective scope; and
181
+ * every audited-accepted phase in exactly one terminal effective scope, with
182
+ * no claim of an unknown or unaccepted phase.
183
+ */
184
+ export declare function evaluateGoalCoverage(input: {
185
+ deliveries: readonly GoalDelivery[];
186
+ phaseOrder: readonly string[];
187
+ acceptedPhases: ReadonlySet<string>;
188
+ evidence: Readonly<Record<string, DeliveryEvidenceFact>>;
189
+ }): GoalCloseoutReason[];
190
+ interface GoalBoundaryVerdict {
191
+ invariant: CloseoutInvariant;
192
+ reasons: GoalCloseoutReason[];
193
+ }
194
+ /**
195
+ * The goal terminal boundary (A3, A4): declaration, an exhaustive audit
196
+ * validated through the single audit predicate, resolved extraction, member
197
+ * observation and delivery coverage, in that order. Returns null when every
198
+ * check holds. Pure: every input arrives as data.
199
+ */
200
+ export declare function evaluateGoalBoundary(frontmatter: Record<string, unknown>, goal: GoalCloseoutInputs | undefined): GoalBoundaryVerdict | null;
201
+ /** The state's `oat_workflow_mode`, or null when the frontmatter cannot be read. */
202
+ export declare function readStateWorkflowMode(stateContent: string): string | null;
203
+ export declare function parseCloseoutSnapshot(value: unknown, workflowMode?: string | null): CloseoutSnapshot;
88
204
  export declare function evaluateCloseout(options: EvaluateCloseoutOptions): Promise<CloseoutResult>;
89
205
  /**
90
206
  * The one refusal message both commands print, so a skill or operator sees the
@@ -1 +1 @@
1
- {"version":3,"file":"closeout-invariant.d.ts","sourceRoot":"","sources":["../../../../src/commands/project/closeout-check/closeout-invariant.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"closeout-invariant.d.ts","sourceRoot":"","sources":["../../../../src/commands/project/closeout-check/closeout-invariant.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAKL,KAAK,YAAY,EAElB,MAAM,mCAAmC,CAAC;AAG3C;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,eAAO,MAAM,cAAc,gCAAgC,CAAC;AAC5D,eAAO,MAAM,cAAc,0BAA0B,CAAC;AAOtD,QAAA,MAAM,mBAAmB,YAAI,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAU,CAAC;AAC5E,QAAA,MAAM,iBAAiB,YACrB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,QAAQ,EACR,UAAU,CACF,CAAC;AACX,QAAA,MAAM,SAAS,YAAI,SAAS,EAAE,UAAU,EAAE,cAAc,CAAU,CAAC;AACnE,QAAA,MAAM,OAAO,YAAI,YAAY,EAAE,oBAAoB,CAAU,CAAC;AAG9D,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAChE,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,eAAe,CAAC;AAE7D,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAKpD,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,EAAE,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACxC,WAAW,EAAE,YAAY,EAAE,CAAC;IAC5B,oBAAoB,EAAE,YAAY,EAAE,CAAC;IACrC,QAAQ,EAAE,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;IACrC,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,qBAAqB,EAAE,YAAY,EAAE,CAAC;IACtC;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAChE,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,iBAAiB,GACzB,wBAAwB,GACxB,mBAAmB,GACnB,oBAAoB,GACpB,4BAA4B,GAC5B,yBAAyB,GACzB,0BAA0B,GAC1B,kBAAkB,GAClB,oBAAoB,GACpB,iBAAiB,GACjB,2BAA2B,GAC3B,kBAAkB,GAClB,4BAA4B,GAC5B,uBAAuB,CAAC;AAE5B,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACzE;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,MAAM,EAAE,SAAS,CAAC,oBAAoB,EAAE,wBAAwB,CAAC,CAAC;CACnE,GACD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC1C;IACE,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B,CAAC;AAEN,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,YAAY,GAAG,YAAY,CAAC;AAE7E,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;IACxC,wGAAwG;IACxG,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC/B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,MAAM,cAAc,GACtB;IACE,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;CACxB,GACD;IACE,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC;CACxB,GACD;IACE,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,iBAAiB,CAAC;IAC7B,MAAM,EAAE,cAAc,CAAC;CACxB,CAAC;AAEN,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,gGAAgG;IAChG,iBAAiB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C;;;OAGG;IACH,IAAI,CAAC,EAAE,kBAAkB,CAAC;CAC3B;AAMD,gEAAgE;AAChE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,YAAY,CAAC;IACzD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iDAAiD;IACjD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,kFAAkF;AAClF,MAAM,WAAW,oBAAoB;IACnC,8DAA8D;IAC9D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,gBAAgB,CAAC;IACzB,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,UAAU,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAClC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CAChD;AAED,MAAM,MAAM,sBAAsB,GAC9B,iBAAiB,GACjB,oBAAoB,GACpB,qBAAqB,GACrB,cAAc,GACd,eAAe,GACf,4BAA4B,GAC5B,eAAe,GACf,yBAAyB,GACzB,kBAAkB,GAClB,0BAA0B,GAC1B,mBAAmB,GACnB,uBAAuB,GACvB,oBAAoB,GACpB,yBAAyB,GACzB,wBAAwB,GACxB,kCAAkC,GAClC,gCAAgC,GAChC,uBAAuB,GACvB,gBAAgB,GAChB,kCAAkC,GAClC,mCAAmC,GACnC,sBAAsB,GACtB,yBAAyB,GACzB,gBAAgB,GAChB,sBAAsB,GACtB,kBAAkB,GAClB,wBAAwB,GACxB,qBAAqB,GACrB,wBAAwB,GACxB,iBAAiB,CAAC;AAEtB,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAyCD,+EAA+E;AAC/E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,YAAY,CAAC;IACvB,uEAAuE;IACvE,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,iEAAiE;IACjE,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,MAAM,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AAUD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,SAAS,YAAY,EAAE,EACnC,UAAU,GAAE,SAAS,MAAM,EAAO,GACjC,aAAa,CA+Mf;AA8BD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,UAAU,EAAE,SAAS,YAAY,EAAE,CAAC;IACpC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;CAC1D,GAAG,kBAAkB,EAAE,CAgHvB;AAED,UAAU,mBAAmB;IAC3B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,IAAI,EAAE,kBAAkB,GAAG,SAAS,GACnC,mBAAmB,GAAG,IAAI,CA6G5B;AA0HD,oFAAoF;AACpF,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOzE;AAuHD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,YAAY,GAAE,MAAM,GAAG,IAAW,GACjC,gBAAgB,CAsFlB;AAoGD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,cAAc,CAAC,CAgFzB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,CAAC,GACxD,MAAM,CAeR"}