@open-agent-toolkit/cli 0.2.28 → 0.2.30
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.
- package/assets/bundle-metadata.json +4 -0
- package/assets/docs/cli-utilities/configuration.md +11 -1
- package/assets/docs/workflows/projects/artifacts.md +5 -0
- package/assets/docs/workflows/projects/autonomy.md +25 -0
- package/assets/docs/workflows/projects/index.md +1 -0
- package/assets/docs/workflows/projects/lifecycle.md +23 -0
- package/assets/docs/workflows/projects/retro.md +261 -0
- package/assets/docs/workflows/skills/index.md +6 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-project-autonomous/SKILL.md +17 -1
- package/assets/skills/oat-project-autonomous/references/gate-inventory.md +41 -41
- package/assets/skills/oat-project-complete/SKILL.md +42 -6
- package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +41 -41
- package/assets/skills/oat-project-implement/SKILL.md +1 -1
- package/assets/skills/oat-project-implement/references/completion-and-closeout.md +20 -6
- package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +41 -41
- package/assets/skills/oat-project-import-plan/SKILL.md +7 -3
- package/assets/skills/oat-project-plan/SKILL.md +6 -3
- package/assets/skills/oat-project-plan-writing/SKILL.md +32 -5
- package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +41 -41
- package/assets/skills/oat-project-quick-start/SKILL.md +7 -3
- package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +41 -41
- package/assets/skills/oat-project-retro/SKILL.md +310 -0
- package/assets/skills/oat-project-retro/references/apply-procedure.md +212 -0
- package/assets/skills/oat-project-retro/references/evidence-and-lanes.md +91 -0
- package/assets/skills/oat-project-retro/references/retro-quality-bar.md +100 -0
- package/assets/skills/oat-project-retro-file/SKILL.md +387 -0
- package/assets/templates/project-retro.md +236 -0
- package/dist/commands/config/index.d.ts.map +1 -1
- package/dist/commands/config/index.js +81 -0
- package/dist/commands/init/tools/shared/skill-manifest.d.ts +2 -2
- package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -1
- package/dist/commands/init/tools/shared/skill-manifest.js +3 -0
- package/dist/config/oat-config.d.ts +12 -1
- package/dist/config/oat-config.d.ts.map +1 -1
- package/dist/config/oat-config.js +38 -2
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +8 -0
- package/dist/fs/assets.d.ts +1 -0
- package/dist/fs/assets.d.ts.map +1 -1
- package/dist/fs/assets.js +36 -1
- package/dist/release/public-package-contract.d.ts.map +1 -1
- package/dist/release/public-package-contract.js +1 -0
- package/package.json +2 -2
|
@@ -568,7 +568,11 @@ Workflow preference keys live under the `workflow.*` namespace:
|
|
|
568
568
|
- `workflow.hillCheckpointDefault` — `every` or `final`. Default HiLL checkpoint behavior in `oat-project-implement`: pause after every phase or only after the last phase. When unset, the skill prompts.
|
|
569
569
|
- `workflow.archiveOnComplete` — boolean. Skip the "Archive after completion?" prompt in `oat-project-complete`. When unset, the skill prompts.
|
|
570
570
|
- `workflow.createPrOnComplete` — boolean. Skip the "Open a PR?" prompt in `oat-project-complete`; when true, completion auto-triggers PR creation. When unset, the skill prompts.
|
|
571
|
-
- `workflow.postImplementSequence` — legacy `wait`, `summary`, `pr`, or `docs-pr`, or `{ "preApproval": [...], "postApproval": [...] }`. Legacy values remain strings
|
|
571
|
+
- `workflow.postImplementSequence` — legacy `wait`, `summary`, `pr`, or `docs-pr`, or `{ "preApproval": [...], "postApproval": [...] }`. Legacy values remain strings and keep their existing mappings. Structured arrays contain ordered, globally unique `summary`, `document`, `pr`, and `retro` steps. `retro` is post-approval only: a structured value containing it in `preApproval` is rejected. Pre-approval steps run after final review and before final HiLL approval; post-approval steps run only after that approval. Plain retrieval keeps legacy strings and prints structured values as compact JSON; `--json` returns the raw value.
|
|
572
|
+
- `workflow.retro.filing.repo` — `issues`, `backlog`, or `none`; unset by default. Selects the repo-lane filing destination.
|
|
573
|
+
- `workflow.retro.filing.upstream` — `issues` or `none`; unset by default. Selects the upstream-lane filing destination.
|
|
574
|
+
- `workflow.retro.apply` — `auto` or `ask`; defaults to `ask` behavior when unset. `auto` authorizes bounded promotion application in non-interactive runs; `ask` is propose-only when no interaction is possible.
|
|
575
|
+
- `workflow.retro.upstreamRepo` — `owner/repo`; unset in CLI configuration. Retro guidance defaults it to `voxmedia/open-agent-toolkit`.
|
|
572
576
|
- `workflow.reviewExecutionModel` — `subagent`, `inline`, or `fresh-session`. Default final-review execution model in `oat-project-implement`. `subagent` and `inline` run automatically. `fresh-session` is a soft preference: the skill prints guidance to run the review in another session but still offers escape hatches to `subagent` or `inline` if you change your mind. When unset, the skill prompts.
|
|
573
577
|
- `workflow.autoReviewAtHillCheckpoints` — boolean. Automatically run the extra lifecycle review when a HiLL checkpoint is reached. This does not control Tier 1 per-phase `oat-reviewer` gates, which run after each phase in Tier 1 regardless of this setting. When unset, the skill prompts.
|
|
574
578
|
- `workflow.autoNarrowReReviewScope` — boolean, default `true`. Re-reviews automatically use the guarded range after the prior matching review's recorded head. Unset and `true` enable narrowing without a prompt; set `false` to opt out and use the nominal full scope.
|
|
@@ -585,6 +589,12 @@ Workflow preference keys live under the `workflow.*` namespace:
|
|
|
585
589
|
- `workflow.gates.skills` / `workflow.gates.execTargets` — structured per-skill final gate commands and exec-target registry. Use `oat gate set`, `oat gate target set`, `oat gate review`, and `oat gate cross-provider-exec`; do not use `oat config set` for these objects.
|
|
586
590
|
- `workflow.gateTimeouts.code` / `workflow.gateTimeouts.artifact` — validated default gate-review budgets in milliseconds. Both resolve through `local > shared > user`.
|
|
587
591
|
|
|
592
|
+
Explicit `workflow.retro.apply: auto` or `workflow.retro.filing.*`
|
|
593
|
+
configuration counts as consent for the corresponding non-interactive action.
|
|
594
|
+
Without those settings, non-interactive retro generation records proposals but
|
|
595
|
+
does not apply or file them. Interactive runs still present the applicable
|
|
596
|
+
promotion and filing choices before side effects.
|
|
597
|
+
|
|
588
598
|
The two project-log keys use the standard workflow precedence:
|
|
589
599
|
`local > shared > user > default`.
|
|
590
600
|
|
|
@@ -30,6 +30,11 @@ Mode-sensitive notes:
|
|
|
30
30
|
- `pr/*.md`: generated PR descriptions
|
|
31
31
|
- `references/imported-plan.md`: preserved source plan for import mode
|
|
32
32
|
- `references/split-plan.json`: persisted split plan for a coordination parent, used as the durable resume source when `oat-project-split` is interrupted
|
|
33
|
+
- `references/project-retro.md`: optional post-approval retrospective with
|
|
34
|
+
machine-scannable repo-improvement (`RP-NN`) and upstream-feedback (`UP-NN`)
|
|
35
|
+
registers. Promotion and filing rollups let the retro skills resume approved
|
|
36
|
+
applications and tracker filing without repeating settled work. See
|
|
37
|
+
[Project Retrospectives](retro.md).
|
|
33
38
|
|
|
34
39
|
### Explainer artifacts
|
|
35
40
|
|
|
@@ -66,6 +66,31 @@ The canonical autonomy contract and exhaustive gate inventory
|
|
|
66
66
|
`references/docs/autonomy-contract.md`) map each prompt to its autonomous
|
|
67
67
|
resolution and provenance.
|
|
68
68
|
|
|
69
|
+
### Dispatch-ladder scope selection
|
|
70
|
+
|
|
71
|
+
An incomplete reusable dispatch ladder is auto-resolvable when an authorized
|
|
72
|
+
adoption-compatible config scope is available. Autonomous planning checks
|
|
73
|
+
config-file existence in this fixed order without prompting or reordering from
|
|
74
|
+
effective value or matrix-cell provenance:
|
|
75
|
+
|
|
76
|
+
1. user config (`~/.oat/config.json`);
|
|
77
|
+
2. repo-local config (`.oat/config.local.json`);
|
|
78
|
+
3. shared config (`.oat/config.json`), only when repository policy already
|
|
79
|
+
authorizes that write.
|
|
80
|
+
|
|
81
|
+
Before writing, planning rejects a candidate that would preserve a
|
|
82
|
+
provider-level scalar in that scope or remain shadowed by one at higher
|
|
83
|
+
precedence. It always tries the next authorized compatible candidate and stops
|
|
84
|
+
without mutation only when none remains.
|
|
85
|
+
|
|
86
|
+
The planner runs exactly one matching `oat config adopt dispatch-matrix`
|
|
87
|
+
command, records file-existence and compatibility evidence plus the selected
|
|
88
|
+
scope, and re-runs dispatch preflight. Existing explicit cells remain unchanged;
|
|
89
|
+
their provenance does not select the persistence scope. No authorized
|
|
90
|
+
compatible scope, or a ladder that remains incomplete after adoption, is still
|
|
91
|
+
a repository-policy boundary. `OAT_NON_INTERACTIVE=1` without
|
|
92
|
+
`OAT_AUTONOMOUS=1` does not select a scope and continues to fail closed.
|
|
93
|
+
|
|
69
94
|
## Review contract
|
|
70
95
|
|
|
71
96
|
Autonomous execution preserves independent review:
|
|
@@ -12,6 +12,7 @@ Projects are where the workflow layer becomes concrete: lifecycle phases, `state
|
|
|
12
12
|
## Contents
|
|
13
13
|
|
|
14
14
|
- [Lifecycle](lifecycle.md) - End-to-end flow from discovery through completion.
|
|
15
|
+
- [Project Retrospectives](retro.md) - Generate evidence-grounded retros, apply repo improvements, and file tracker feedback.
|
|
15
16
|
- [Autonomous Project Execution](autonomy.md) - Session-scoped autonomy signals, gate boundaries, review requirements, and execution learnings.
|
|
16
17
|
- [OAT in Cursor Cloud](cursor-cloud.md) - Project-home, provisioning, asset-precedence, and execution-surface guidance for cloud agents.
|
|
17
18
|
- [Design Modes](design-modes.md) - How full design balances collaborative, selective collaborative, and draft-and-review interaction.
|
|
@@ -110,12 +110,35 @@ approval, and only then runs post-approval steps. The snapshot is restart-safe:
|
|
|
110
110
|
an incomplete sequence routes back to implementation and resumes from its first
|
|
111
111
|
incomplete step.
|
|
112
112
|
|
|
113
|
+
Structured sequences accept `summary`, `document`, `pr`, and `retro`.
|
|
114
|
+
`retro` is post-approval only: placing it in `preApproval` invalidates the
|
|
115
|
+
structured value. This placement lets the retrospective include the final
|
|
116
|
+
approval and feedback tail while still running before project completion
|
|
117
|
+
freezes lifecycle artifacts. The legacy string mappings are unchanged and do
|
|
118
|
+
not add a retro step.
|
|
119
|
+
|
|
120
|
+
When a pending post-approval `retro` step runs, OAT dispatches
|
|
121
|
+
`oat-project-retro` in generate mode. Applying repo improvements and filing
|
|
122
|
+
tracker items remain separately consented through interactive confirmation or
|
|
123
|
+
`workflow.retro.*` configuration.
|
|
124
|
+
|
|
113
125
|
`oat-project-next` checks `oat_implement_exit_gate` before every normal
|
|
114
126
|
post-implementation route. Missing, pending, blocked, malformed, or stale state
|
|
115
127
|
routes back to `oat-project-implement` even when `oat_phase_status` is
|
|
116
128
|
`complete` or `pr_open`. Only an allowed, fresh disposition can continue to
|
|
117
129
|
summary, documentation, PR, or project completion.
|
|
118
130
|
|
|
131
|
+
### Retrospective completion safety net
|
|
132
|
+
|
|
133
|
+
Before an interactive completion archives the project,
|
|
134
|
+
`oat-project-complete` checks for
|
|
135
|
+
`{PROJECT_PATH}/references/project-retro.md`. If the artifact is missing, it
|
|
136
|
+
offers to generate one before completion. If the artifact exists, completion
|
|
137
|
+
does not offer another retro; it may note unsettled promotion or filing
|
|
138
|
+
registers. Non-interactive completion skips this offer, so autonomous
|
|
139
|
+
generation occurs only through an explicitly configured post-approval `retro`
|
|
140
|
+
step.
|
|
141
|
+
|
|
119
142
|
When `workflow.autoReviewAtHillCheckpoints` is enabled or `plan.md` frontmatter sets `oat_auto_review_at_hill_checkpoints`, completing a HiLL checkpoint automatically runs the extra lifecycle review scoped to every implementation phase not already covered by a passed whole-phase code review, through the just-completed checkpoint. Mid-implementation multi-phase reviews use inclusive phase-range scopes such as `p02-p03`; the final implementation checkpoint uses `code final`. The review uses auto-disposition mode (minors auto-converted to fix tasks, no user prompts). Disabled by default. Legacy `autoReviewAtCheckpoints` and `oat_auto_review_at_checkpoints` are still read as fallbacks. This does not control Tier 1 per-phase `oat-reviewer` gates.
|
|
120
143
|
|
|
121
144
|
### Phase-review setup during planning
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Project Retrospectives
|
|
3
|
+
description: Generate evidence-grounded project retrospectives, apply repo improvements, and file tracker feedback.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Project Retrospectives
|
|
7
|
+
|
|
8
|
+
OAT project retrospectives capture how an implementation run went and route
|
|
9
|
+
what should change next. The workflow uses two skills:
|
|
10
|
+
|
|
11
|
+
- `oat-project-retro` generates
|
|
12
|
+
`{PROJECT_PATH}/references/project-retro.md` and applies approved repo
|
|
13
|
+
improvements.
|
|
14
|
+
- `oat-project-retro-file` files tracker-bound feedback into repository or
|
|
15
|
+
upstream GitHub issues and OAT backlog items.
|
|
16
|
+
|
|
17
|
+
A configured `retro` post-approval sequence step can generate the artifact
|
|
18
|
+
after final feedback exists and before project completion freezes lifecycle
|
|
19
|
+
artifacts. Interactive completion also offers generation when the artifact is
|
|
20
|
+
missing. Neither path applies or files findings without separate consent.
|
|
21
|
+
|
|
22
|
+
## Generate a retrospective
|
|
23
|
+
|
|
24
|
+
Ask to run the project retro, or configure `retro` in
|
|
25
|
+
`workflow.postImplementSequence.postApproval`. Generate mode resolves the active
|
|
26
|
+
project, inventories evidence, renders the retro artifact, and records the run
|
|
27
|
+
in the project log when that log exists.
|
|
28
|
+
|
|
29
|
+
Evidence is read in this order:
|
|
30
|
+
|
|
31
|
+
1. `project-log.md`
|
|
32
|
+
2. `oat-execution-learnings.md`, when present
|
|
33
|
+
3. Lifecycle artifacts such as `implementation.md`, `state.md`, `plan.md`,
|
|
34
|
+
design and discovery artifacts, reviews, and evidence ledgers
|
|
35
|
+
4. The current session or run transcript when the environment makes it
|
|
36
|
+
available
|
|
37
|
+
|
|
38
|
+
The artifact identifies every used or unavailable source. Missing transcript
|
|
39
|
+
access is recorded rather than hidden, and runtime claims fall back to durable
|
|
40
|
+
ledgers when transcript output is incomplete. Findings distinguish confirmed
|
|
41
|
+
causes, hypotheses, and inconclusive mechanisms.
|
|
42
|
+
|
|
43
|
+
Evidence status remains `used | unavailable`. When an evidence family is
|
|
44
|
+
partial, split it into truthful source entries, such as
|
|
45
|
+
`archived-review-markdown: unavailable` and `gate-receipts: used`, rather than
|
|
46
|
+
recording `review-artifacts: unavailable`. Do not add a `partial` evidence
|
|
47
|
+
status. Derivative current-run reconnaissance transcripts are not original
|
|
48
|
+
project-run evidence.
|
|
49
|
+
|
|
50
|
+
### Scale depth to the evidence
|
|
51
|
+
|
|
52
|
+
Keep output concise by default. Every section must add distinct information.
|
|
53
|
+
Prefer references to evidence over repeated chronology. For a small project,
|
|
54
|
+
keep core sections brief. Use subsections and tables only for evidence-rich
|
|
55
|
+
projects where they improve decisions. The required core and register
|
|
56
|
+
contracts stay intact; evidence volume controls depth, not a new configuration
|
|
57
|
+
or consent setting.
|
|
58
|
+
|
|
59
|
+
Each material incident remains understandable without opening another
|
|
60
|
+
artifact. Use stable evidence anchors such as project-log event IDs, artifact
|
|
61
|
+
headings, review paths, decision IDs, and commit IDs. Anchors supplement but
|
|
62
|
+
never replace explanation.
|
|
63
|
+
|
|
64
|
+
Narrative sections have distinct ownership:
|
|
65
|
+
|
|
66
|
+
- `Challenges and Struggles` owns the complete incident narrative: what
|
|
67
|
+
happened, impact, response, and result.
|
|
68
|
+
- `Where We Changed Course` records only the trigger, changed direction, and
|
|
69
|
+
outcome.
|
|
70
|
+
- `Domain Learnings` abstracts reusable lessons without replaying chronology.
|
|
71
|
+
- `Gotchas for Humans` and `Gotchas for Autonomous Agents` contain
|
|
72
|
+
future-facing instructions rather than incident summaries.
|
|
73
|
+
|
|
74
|
+
Every retro contains two machine-scannable registers:
|
|
75
|
+
|
|
76
|
+
- **Repo Improvements (`RP-NN`)** route each item through
|
|
77
|
+
`Disposition: apply` for a bounded repo edit or `Disposition: file` for a
|
|
78
|
+
tracker follow-up.
|
|
79
|
+
- **OAT Upstream Feedback (`UP-NN`)** contains sanitized, tracker-ready
|
|
80
|
+
suggestions for toolkit improvements. The section remains present with an
|
|
81
|
+
explicit empty state when no upstream item is warranted.
|
|
82
|
+
|
|
83
|
+
Per-item statuses and frontmatter rollups make interrupted and repeated runs
|
|
84
|
+
resumable. The promotions rollup covers RP apply-items; the filing rollup covers
|
|
85
|
+
UP items plus RP file-items.
|
|
86
|
+
|
|
87
|
+
### Project-log receipt
|
|
88
|
+
|
|
89
|
+
When a project log exists, generate mode appends this one-line structural
|
|
90
|
+
receipt:
|
|
91
|
+
|
|
92
|
+
```text
|
|
93
|
+
retro artifact=<path> evidence_used=<csv> evidence_unavailable=<csv> promotions=<number> upstream=<number> apply=<performed|declined|skipped|deferred> filing=<performed|declined|skipped|deferred>
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Source identifiers are validated, deduplicated, sorted bytewise ascending, and
|
|
97
|
+
joined with commas and no spaces; an empty source list is `none`. Counts
|
|
98
|
+
describe the generated registers.
|
|
99
|
+
|
|
100
|
+
Before any apply decision or filing dispatch, capture one immutable eligibility
|
|
101
|
+
snapshot for that action. Apply snapshots contain unsettled RP apply-items;
|
|
102
|
+
filing snapshots contain the lane-tagged union of unsettled UP items and RP
|
|
103
|
+
file-items. Do not recompute initial eligibility after an action changes the
|
|
104
|
+
registers.
|
|
105
|
+
|
|
106
|
+
Derive each outcome from that snapshot with this precedence:
|
|
107
|
+
|
|
108
|
+
1. An initially empty snapshot is `skipped`.
|
|
109
|
+
2. An action-level interactive rejection before entry is `declined`.
|
|
110
|
+
3. Non-entry, failure, or any snapshot member still unsettled is `deferred`.
|
|
111
|
+
4. An entered action that completes normally with no snapshot member remaining
|
|
112
|
+
is `performed`.
|
|
113
|
+
|
|
114
|
+
This makes an all-settled successful action `performed`, even though its
|
|
115
|
+
post-action eligible set is empty. For mixed filing lanes, any initially
|
|
116
|
+
eligible lane left unsettled by absent or `none` routing makes the single filing
|
|
117
|
+
outcome `deferred`; normal completion that settles every initial lane is
|
|
118
|
+
`performed`.
|
|
119
|
+
|
|
120
|
+
The append uses stable structural identity and the exact rendered body:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
oat project log append --project "$PROJECT_PATH" --structural \
|
|
124
|
+
--producer oat-project-retro \
|
|
125
|
+
--ref project-retro \
|
|
126
|
+
--body "$RECEIPT_BODY"
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Apply repo improvements
|
|
130
|
+
|
|
131
|
+
Invoke apply mode directly with wording such as "apply the retro findings."
|
|
132
|
+
Apply mode requires an existing retro and never regenerates it. It processes
|
|
133
|
+
only RP items whose authoritative disposition is `apply` and whose status is
|
|
134
|
+
`proposed` or `approved`.
|
|
135
|
+
|
|
136
|
+
Interactive runs present each item, target, rationale, and concrete edit before
|
|
137
|
+
approval. Non-interactive runs apply items only when
|
|
138
|
+
`workflow.retro.apply: auto`; an absent value or `ask` leaves proposals
|
|
139
|
+
untouched when no interaction is possible.
|
|
140
|
+
|
|
141
|
+
Application follows the item type:
|
|
142
|
+
|
|
143
|
+
- documentation updates the canonical existing page;
|
|
144
|
+
- agent instructions update the narrowest existing instruction surface;
|
|
145
|
+
- rules update the canonical scoped rule;
|
|
146
|
+
- decisions use `oat decision new` after an exact duplicate check; and
|
|
147
|
+
- code follow-ups default to `Disposition: file` and remain outside apply mode.
|
|
148
|
+
|
|
149
|
+
After a successful application, the skill records `Status: applied` and an
|
|
150
|
+
`Applied-ref`. Re-runs skip settled items and recover an exact prior side effect
|
|
151
|
+
instead of applying it twice.
|
|
152
|
+
|
|
153
|
+
For a docs item whose safely normalized target canonical path has the exact,
|
|
154
|
+
case-sensitive final component `project-log.md`, apply mode uses
|
|
155
|
+
`oat project log append` and never directly edits the log. Absolute paths,
|
|
156
|
+
traversal, and ambiguous normalization fail closed; suffixes and prefixed
|
|
157
|
+
lookalikes remain ordinary docs targets.
|
|
158
|
+
|
|
159
|
+
The proposal must identify the prior heading or event being corrected and
|
|
160
|
+
preserve the original entry. The appended judgment uses `--type feedback`,
|
|
161
|
+
`--scope project`, `--area "retro correction $RP_ID"`, and a body whose stable
|
|
162
|
+
identity includes both the RP ID and original-entry anchor. Before appending,
|
|
163
|
+
perform semantic post-side-effect recovery. The skill recovers an exact
|
|
164
|
+
uncommitted or committed correction and stops on partial, divergent, or
|
|
165
|
+
multiple matches before it appends.
|
|
166
|
+
|
|
167
|
+
The correction is committed first without retro writeback. A later retro-only
|
|
168
|
+
writeback records `Status: applied` and an `Applied-ref` naming the full
|
|
169
|
+
correction commit plus exact generated heading. `Applied-ref` is considered
|
|
170
|
+
recorded only after the correction and retro writeback are durably committed.
|
|
171
|
+
Append failure creates neither commit; correction-commit failure leaves the RP
|
|
172
|
+
unsettled for exact recovery; writeback failure preserves the correction commit
|
|
173
|
+
and retries only the writeback. This remains a bounded docs special case; it
|
|
174
|
+
adds no RP type and does not weaken the normal docs apply contract.
|
|
175
|
+
|
|
176
|
+
## File tracker feedback
|
|
177
|
+
|
|
178
|
+
Run `oat-project-retro-file` against the active project's retro or an explicit
|
|
179
|
+
artifact path. It extracts every UP item and each RP item with
|
|
180
|
+
`Disposition: file`; it never mutates apply-items.
|
|
181
|
+
|
|
182
|
+
Before item approval, the skill reports a lane-by-destination capability
|
|
183
|
+
matrix:
|
|
184
|
+
|
|
185
|
+
| Lane | Destination | Preflight |
|
|
186
|
+
| -------- | ----------- | ----------------------------------------------------- |
|
|
187
|
+
| Repo | Issues | GitHub issues enabled and `gh` authenticated |
|
|
188
|
+
| Repo | Backlog | Canonical OAT backlog initialized and writable |
|
|
189
|
+
| Upstream | Issues | Upstream issues enabled and creation authorized |
|
|
190
|
+
| Either | None | Intentionally disabled; no external capability needed |
|
|
191
|
+
|
|
192
|
+
Interactive runs confirm or override configured lane defaults and choose a
|
|
193
|
+
disposition for each suspected duplicate:
|
|
194
|
+
|
|
195
|
+
1. **Strengthen** the existing issue or backlog item with new evidence.
|
|
196
|
+
2. **File as new** despite the candidate.
|
|
197
|
+
3. **Skip** without filing.
|
|
198
|
+
4. **Link existing** without adding content.
|
|
199
|
+
|
|
200
|
+
Strengthening is the default when applicable, but it is still an external
|
|
201
|
+
write. Non-interactive configuration does not authorize modifying an existing
|
|
202
|
+
destination; an unambiguous duplicate may be linked without an external write,
|
|
203
|
+
while ambiguous candidates remain unsettled for interactive review.
|
|
204
|
+
|
|
205
|
+
### Local receipts and reruns
|
|
206
|
+
|
|
207
|
+
Before skipping an already-filed item, the filing skill runs a pre-selection
|
|
208
|
+
integrity pass. A local backlog destination is complete only when its path
|
|
209
|
+
exists, its current contents still represent the retro proposal, its full
|
|
210
|
+
`Destination-receipt` names the latest exact-path commit containing that path,
|
|
211
|
+
and `Remote-visibility` is `pushed` or `unpushed`. A valid exact recovery may
|
|
212
|
+
retain `filed` without mutating the destination. A missing or invalid local
|
|
213
|
+
receipt that cannot be recovered cannot remain `filed`.
|
|
214
|
+
|
|
215
|
+
New and strengthened local destinations use destination-first ordering: commit
|
|
216
|
+
the destination mutation alone, verify that commit contains the backlog path
|
|
217
|
+
and excludes retro writeback, then record its receipt in a later retro
|
|
218
|
+
writeback commit. A failed destination commit never produces `filed`. A local
|
|
219
|
+
link performs no destination mutation, but must recover and validate the latest
|
|
220
|
+
exact-path commit before it can be filed.
|
|
221
|
+
|
|
222
|
+
Remote visibility is independent of local durability. No configured upstream
|
|
223
|
+
means `unpushed`; the skill never pushes without separate authorization.
|
|
224
|
+
GitHub destinations use a validated issue URL and explicitly leave
|
|
225
|
+
`Destination-receipt` and `Remote-visibility` as `—`.
|
|
226
|
+
|
|
227
|
+
Public destinations receive a sanitization check when the source repository is
|
|
228
|
+
private. Filing records the confirmed URL or backlog path in `Destination` and
|
|
229
|
+
updates the filing rollup. Unavailable lanes and missing backlog metadata are
|
|
230
|
+
reported rather than silently rerouted or invented.
|
|
231
|
+
|
|
232
|
+
## Configure non-interactive consent
|
|
233
|
+
|
|
234
|
+
The `workflow.retro` namespace controls non-interactive actions:
|
|
235
|
+
|
|
236
|
+
| Key | Values | Unset behavior |
|
|
237
|
+
| -------------------------------- | --------------------------- | ------------------------------------------- |
|
|
238
|
+
| `workflow.retro.apply` | `auto`, `ask` | Propose only |
|
|
239
|
+
| `workflow.retro.filing.repo` | `issues`, `backlog`, `none` | No repo-lane filing |
|
|
240
|
+
| `workflow.retro.filing.upstream` | `issues`, `none` | No upstream-lane filing |
|
|
241
|
+
| `workflow.retro.upstreamRepo` | `owner/repo` | Guidance uses `voxmedia/open-agent-toolkit` |
|
|
242
|
+
|
|
243
|
+
Explicit `auto` or filing destinations count as consent only for their bounded
|
|
244
|
+
action. Architecture, security, product-scope, credential, destructive, and
|
|
245
|
+
duplicate-mutation boundaries still require direction. See
|
|
246
|
+
[Configuration](../../cli-utilities/configuration.md#workflow-preferences-workflow)
|
|
247
|
+
for the full key reference.
|
|
248
|
+
|
|
249
|
+
## Summary versus retrospective
|
|
250
|
+
|
|
251
|
+
| | Summary | Retrospective |
|
|
252
|
+
| --------------------- | ----------------------------- | ------------------------------------------------ |
|
|
253
|
+
| Primary question | What did we build and decide? | How did the run go, and what should change next? |
|
|
254
|
+
| Session transcript | Optional | Required when available |
|
|
255
|
+
| OAT upstream feedback | Rare | Required section or explicit empty lane |
|
|
256
|
+
| Tone | Institutional memory | Reflective and operational |
|
|
257
|
+
| Default path | `summary.md` | `references/project-retro.md` |
|
|
258
|
+
|
|
259
|
+
Use the summary to preserve the delivered system and its decisions. Use the
|
|
260
|
+
retro to preserve execution lessons, course changes, repo improvements, and
|
|
261
|
+
upstream toolkit feedback.
|
|
@@ -24,6 +24,10 @@ Use this section when you want to choose the right OAT skill for a task. If you
|
|
|
24
24
|
- Split a broad discovery or brainstorm into child projects: `oat-project-split`
|
|
25
25
|
- Retroactively capture existing work: `oat-project-capture`
|
|
26
26
|
- Run or receive reviews: `oat-project-review-provide`, `oat-project-review-receive`, or the non-project review variants
|
|
27
|
+
- Generate an evidence-grounded project retrospective, apply approved repo
|
|
28
|
+
improvements, or file tracker feedback: `oat-project-retro` and
|
|
29
|
+
`oat-project-retro-file`. See
|
|
30
|
+
[Project Retrospectives](../projects/retro.md).
|
|
27
31
|
- Capture a scoped, shippable backlog item: `oat-pjm-add-backlog-item` directly when the work is already scoped, or `oat-brainstorm` when the thought hasn't converged yet — the brainstorm dispatcher's "scoped backlog item" destination pre-fills the title / description / acceptance criteria / scope estimate / priority from the conversation and then runs `oat-pjm-add-backlog-item` with confirmed inputs
|
|
28
32
|
- Manage the repo backlog and reference docs: `oat-pjm-update-repo-reference`, `oat-pjm-review-backlog`
|
|
29
33
|
- Turn a repo audit, maintainability review, backlog review, backlog directory, or backlog item into standalone external implementation plans: `oat-repo-improve`. Plans land under `.oat/repo/reference/external-plans/`; execute them directly or optionally pass one to `oat-project-import-plan` for tracked OAT execution.
|
|
@@ -74,6 +78,8 @@ Use this section when you want to choose the right OAT skill for a task. If you
|
|
|
74
78
|
- `oat-project-pr-progress`
|
|
75
79
|
- `oat-project-pr-final`
|
|
76
80
|
- `oat-project-document`
|
|
81
|
+
- `oat-project-retro`
|
|
82
|
+
- `oat-project-retro-file`
|
|
77
83
|
- `oat-explainer-kit`
|
|
78
84
|
- `oat-wrap-up`
|
|
79
85
|
- `oat-project-complete`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-project-autonomous
|
|
3
|
-
version: 1.0.
|
|
3
|
+
version: 1.0.6
|
|
4
4
|
description: Use when a user explicitly asks to run an OAT project autonomously end-to-end. Activates session-only autonomy, resumes the correct lifecycle phase, and drives the existing OAT skills through final PR or a reported boundary.
|
|
5
5
|
argument-hint: '<goal | project-slug | ticket-ref>'
|
|
6
6
|
disable-model-invocation: true
|
|
@@ -72,6 +72,9 @@ waits.
|
|
|
72
72
|
- Selecting quick or spec-driven mode from the review-density rule.
|
|
73
73
|
- Invoking existing OAT lifecycle and dispatch skills in their required order.
|
|
74
74
|
- Auto-resolving only the gates authorized by the autonomy contract.
|
|
75
|
+
- Selecting the first existing compatible dispatch-ladder config scope through
|
|
76
|
+
the canonical user → local → authorized-shared order and adopting the bundled
|
|
77
|
+
matrix once.
|
|
75
78
|
- Committing and pushing completed phase boundaries, subject to repository
|
|
76
79
|
policy, and reporting explicit boundary stops.
|
|
77
80
|
|
|
@@ -297,6 +300,19 @@ Invoke each lifecycle skill by name and let it own its complete workflow,
|
|
|
297
300
|
artifacts, gates, commits, and state transitions. Re-read project status after
|
|
298
301
|
each return and route to the next earliest incomplete owner.
|
|
299
302
|
|
|
303
|
+
When planning finds an incomplete dispatch ladder, apply the gate inventory's
|
|
304
|
+
autonomous ownership resolution instead of treating ordinary non-interactive
|
|
305
|
+
behavior as authoritative. Check config-file existence in this fixed order:
|
|
306
|
+
user config, repo-local config, authorized shared config. Do not prompt or
|
|
307
|
+
reorder candidates from effective value or matrix-cell provenance. Before
|
|
308
|
+
writing, test each existing candidate in order, skip any that preserves a
|
|
309
|
+
provider scalar or is shadowed by one at higher precedence, and block without
|
|
310
|
+
mutation only when no authorized adoption-compatible scope remains. Existing
|
|
311
|
+
explicit matrix cells are preserved by adoption; their provenance does not
|
|
312
|
+
choose the persistence scope. Run exactly one matching
|
|
313
|
+
`oat config adopt dispatch-matrix` command and re-run the reviewer preflight.
|
|
314
|
+
Block when the ladder remains incomplete after adoption.
|
|
315
|
+
|
|
300
316
|
At every required artifact or code review:
|
|
301
317
|
|
|
302
318
|
1. Resolve the route before launch through
|