@open-agent-toolkit/cli 0.3.12 → 0.3.14

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 (152) hide show
  1. package/README.md +1 -1
  2. package/assets/bundle-metadata.json +1 -1
  3. package/assets/docs/contributing/index.md +14 -1
  4. package/assets/docs/contributing/skills.md +64 -2
  5. package/assets/docs/contributing/smoke-testing.md +3 -3
  6. package/assets/docs/contributing/updating-model-guidance.md +2 -2
  7. package/assets/docs/contributing/verifying-cursor-pins.md +1 -1
  8. package/assets/docs/docs-tooling/add-docs-to-a-repo.md +112 -15
  9. package/assets/docs/docs-tooling/agent-instructions.md +131 -0
  10. package/assets/docs/docs-tooling/commands.md +74 -30
  11. package/assets/docs/docs-tooling/index.md +7 -6
  12. package/assets/docs/docs-tooling/meta.json +1 -1
  13. package/assets/docs/docs-tooling/workflows.md +357 -11
  14. package/assets/docs/{cli-utilities → getting-started}/bootstrap.md +60 -5
  15. package/assets/docs/{guide → getting-started}/concepts.md +28 -10
  16. package/assets/docs/getting-started/index.md +68 -0
  17. package/assets/docs/getting-started/meta.json +4 -0
  18. package/assets/docs/getting-started/quickstart.md +174 -0
  19. package/assets/docs/{cli-utilities → getting-started}/tool-packs.md +146 -15
  20. package/assets/docs/index.md +47 -48
  21. package/assets/docs/meta.json +6 -7
  22. package/assets/docs/provider-sync/commands.md +26 -3
  23. package/assets/docs/provider-sync/config.md +60 -1
  24. package/assets/docs/provider-sync/index.md +31 -15
  25. package/assets/docs/provider-sync/instruction-sync.md +43 -5
  26. package/assets/docs/provider-sync/manifest-and-drift.md +85 -0
  27. package/assets/docs/provider-sync/meta.json +1 -0
  28. package/assets/docs/provider-sync/pilot-with-a-team.md +236 -0
  29. package/assets/docs/provider-sync/scope-and-surface.md +37 -3
  30. package/assets/docs/reference/cli-reference.md +34 -34
  31. package/assets/docs/{cli-utilities → reference}/config-and-local-state.md +25 -9
  32. package/assets/docs/{cli-utilities → reference}/configuration.md +151 -34
  33. package/assets/docs/reference/docs-index-contract.md +19 -4
  34. package/assets/docs/reference/file-locations.md +7 -2
  35. package/assets/docs/reference/index.md +13 -1
  36. package/assets/docs/reference/meta.json +7 -1
  37. package/assets/docs/reference/oat-directory-structure.md +24 -22
  38. package/assets/docs/{workflows/projects/artifacts.md → reference/project-artifacts.md} +4 -4
  39. package/assets/docs/{workflows/projects/state-machine.md → reference/project-state-machine.md} +1 -1
  40. package/assets/docs/{workflows/projects/repo-analysis.md → reference/repository-pr-comments.md} +2 -2
  41. package/assets/docs/reference/troubleshooting.md +125 -10
  42. package/assets/docs/reference/what-oat-writes.md +410 -0
  43. package/assets/docs/skills/brainstorm.md +77 -0
  44. package/assets/docs/skills/diagnostics.md +56 -0
  45. package/assets/docs/{workflows/skills → skills}/explainer-kit.md +121 -0
  46. package/assets/docs/skills/index.md +416 -0
  47. package/assets/docs/{workflows/skills → skills}/meta.json +4 -2
  48. package/assets/docs/{workflows/skills → skills}/recon.md +49 -0
  49. package/assets/docs/skills/repo-improve.md +254 -0
  50. package/assets/docs/skills/research.md +237 -0
  51. package/assets/docs/skills/session-closeout.md +61 -0
  52. package/assets/docs/workflows/advanced/autonomy.md +344 -0
  53. package/assets/docs/workflows/{projects → advanced}/cursor-cloud.md +69 -1
  54. package/assets/docs/workflows/{projects → advanced}/dispatch-ceiling.md +163 -18
  55. package/assets/docs/workflows/{projects → advanced}/evidence-layers.md +1 -1
  56. package/assets/docs/workflows/advanced/index.md +19 -0
  57. package/assets/docs/workflows/advanced/meta.json +13 -0
  58. package/assets/docs/workflows/{projects → advanced}/orchestration-model.md +63 -4
  59. package/assets/docs/workflows/{projects → advanced}/programmatic-execution.md +4 -4
  60. package/assets/docs/{cli-utilities → workflows/advanced}/workflow-gates.md +162 -8
  61. package/assets/docs/workflows/advanced/worktree-bootstrap.md +83 -0
  62. package/assets/docs/workflows/approvals-and-automation.md +261 -0
  63. package/assets/docs/workflows/backlog-and-planning/backlog-lifecycle.md +348 -0
  64. package/assets/docs/workflows/backlog-and-planning/index.md +13 -0
  65. package/assets/docs/workflows/backlog-and-planning/meta.json +4 -0
  66. package/assets/docs/workflows/backlog-and-planning/remote-project-management.md +303 -0
  67. package/assets/docs/workflows/choose-workflow.md +114 -0
  68. package/assets/docs/workflows/ideas/index.md +3 -3
  69. package/assets/docs/workflows/ideas/lifecycle.md +218 -1
  70. package/assets/docs/workflows/index.md +11 -62
  71. package/assets/docs/workflows/meta.json +10 -2
  72. package/assets/docs/workflows/projects/closeout/closeout-skills.md +538 -0
  73. package/assets/docs/workflows/projects/closeout/index.md +14 -0
  74. package/assets/docs/workflows/projects/closeout/meta.json +4 -0
  75. package/assets/docs/workflows/projects/{pr-flow.md → closeout/pr-flow.md} +1 -1
  76. package/assets/docs/workflows/projects/{retro.md → closeout/retro.md} +1 -1
  77. package/assets/docs/workflows/projects/execution/execution-skills.md +258 -0
  78. package/assets/docs/workflows/projects/{implementation-execution.md → execution/implementation-execution.md} +8 -8
  79. package/assets/docs/workflows/projects/execution/index.md +15 -0
  80. package/assets/docs/workflows/projects/execution/meta.json +9 -0
  81. package/assets/docs/workflows/projects/execution/picking-up-projects.md +376 -0
  82. package/assets/docs/{cli-utilities → workflows/projects/execution}/project-log.md +1 -1
  83. package/assets/docs/workflows/projects/index.md +38 -49
  84. package/assets/docs/workflows/projects/lifecycle.md +47 -11
  85. package/assets/docs/workflows/projects/meta.json +2 -23
  86. package/assets/docs/workflows/projects/{design-modes.md → planning/design-modes.md} +29 -0
  87. package/assets/docs/workflows/projects/planning/hill-checkpoints.md +167 -0
  88. package/assets/docs/workflows/projects/planning/index.md +16 -0
  89. package/assets/docs/workflows/projects/planning/meta.json +10 -0
  90. package/assets/docs/workflows/projects/planning/planning-skills.md +381 -0
  91. package/assets/docs/workflows/projects/{splitting.md → planning/splitting.md} +3 -3
  92. package/assets/docs/workflows/projects/planning/starting-projects.md +511 -0
  93. package/assets/docs/workflows/projects/{reviews.md → reviews/index.md} +51 -5
  94. package/assets/docs/workflows/projects/reviews/meta.json +4 -0
  95. package/assets/docs/workflows/projects/reviews/review-flavors.md +643 -0
  96. package/assets/docs/workflows/projects/{reviewing-oat-prs.md → reviews/reviewing-oat-prs.md} +3 -3
  97. package/assets/docs/workflows/waves/index.md +12 -0
  98. package/assets/docs/workflows/waves/meta.json +4 -0
  99. package/assets/docs/workflows/waves/wave-workflows.md +206 -0
  100. package/assets/public-package-versions.json +4 -4
  101. package/assets/skills/oat-docs/SKILL.md +19 -19
  102. package/assets/skills/oat-docs-analyze/SKILL.md +27 -7
  103. package/assets/skills/oat-docs-analyze/references/quality-checklist.md +16 -3
  104. package/assets/skills/oat-docs-apply/SKILL.md +20 -3
  105. package/assets/skills/oat-docs-authoring/SKILL.md +11 -7
  106. package/assets/skills/oat-docs-authoring/references/docs-root-resolution.md +12 -5
  107. package/assets/skills/oat-docs-authoring/references/lifecycle-boundaries.md +7 -7
  108. package/assets/skills/oat-docs-authoring/references/oat-fumadocs-contract.md +13 -3
  109. package/assets/skills/oat-docs-authoring/references/targeted-authoring-workflow.md +5 -4
  110. package/assets/skills/oat-docs-authoring/references/validation.md +11 -1
  111. package/assets/skills/oat-docs-bootstrap/SKILL.md +31 -8
  112. package/assets/skills/oat-docs-bootstrap/assets/AGENTS.md.template +2 -1
  113. package/assets/skills/oat-doctor/SKILL.md +25 -25
  114. package/assets/skills/oat-project-document/SKILL.md +21 -2
  115. package/assets/templates/docs-markdown/contributing.md +35 -0
  116. package/assets/templates/docs-markdown/index.md +18 -0
  117. package/dist/commands/docs/index-generate/index.d.ts.map +1 -1
  118. package/dist/commands/docs/index-generate/index.js +41 -8
  119. package/dist/commands/docs/init/index.d.ts +17 -2
  120. package/dist/commands/docs/init/index.d.ts.map +1 -1
  121. package/dist/commands/docs/init/index.js +194 -14
  122. package/dist/commands/docs/init/markdown.d.ts +39 -0
  123. package/dist/commands/docs/init/markdown.d.ts.map +1 -0
  124. package/dist/commands/docs/init/markdown.js +317 -0
  125. package/dist/commands/docs/init/resolve-options.d.ts +3 -1
  126. package/dist/commands/docs/init/resolve-options.d.ts.map +1 -1
  127. package/dist/commands/docs/init/resolve-options.js +36 -0
  128. package/dist/commands/docs/init/scaffold.d.ts.map +1 -1
  129. package/dist/commands/docs/init/scaffold.js +11 -0
  130. package/dist/commands/shared/agents-md.d.ts +7 -0
  131. package/dist/commands/shared/agents-md.d.ts.map +1 -1
  132. package/dist/commands/shared/agents-md.js +131 -91
  133. package/dist/commands/tools/shared/pack-manifest.d.ts.map +1 -1
  134. package/dist/commands/tools/shared/pack-manifest.js +1 -0
  135. package/dist/config/oat-config.d.ts +2 -1
  136. package/dist/config/oat-config.d.ts.map +1 -1
  137. package/dist/config/oat-config.js +4 -2
  138. package/package.json +2 -2
  139. package/assets/docs/cli-utilities/backlog-lifecycle.md +0 -80
  140. package/assets/docs/cli-utilities/index.md +0 -74
  141. package/assets/docs/cli-utilities/meta.json +0 -13
  142. package/assets/docs/cli-utilities/remote-project-management.md +0 -191
  143. package/assets/docs/guide/index.md +0 -31
  144. package/assets/docs/guide/meta.json +0 -4
  145. package/assets/docs/quickstart.md +0 -88
  146. package/assets/docs/workflows/projects/autonomy.md +0 -196
  147. package/assets/docs/workflows/projects/hill-checkpoints.md +0 -93
  148. package/assets/docs/workflows/projects/picking-up-projects.md +0 -124
  149. package/assets/docs/workflows/projects/review-flavors.md +0 -138
  150. package/assets/docs/workflows/skills/index.md +0 -184
  151. package/assets/docs/workflows/skills/repo-improve.md +0 -89
  152. package/assets/docs/workflows/wave-workflows.md +0 -77
@@ -1,191 +0,0 @@
1
- ---
2
- title: Remote Project Management
3
- description: Safely bind OAT planning records to GitHub, Linear, or Jira through provider-neutral host capabilities.
4
- ---
5
-
6
- # Remote Project Management
7
-
8
- Remote project management connects an OAT backlog item or project to a remote
9
- GitHub, Linear, or Jira record. OAT owns policy, previews, approvals, durable
10
- operation state, and authoritative read-back verification. The host agent owns
11
- live execution capability discovery.
12
-
13
- Remote management is deliberately explicit. It does not turn every plan task
14
- into a remote issue, run background synchronization, or treat a provider result
15
- as proof of success.
16
-
17
- ## Prerequisite
18
-
19
- Confirm that file-backed project management is adopted before using a remote
20
- command:
21
-
22
- ```bash
23
- oat pjm doctor --json
24
- ```
25
-
26
- Continue only when `adoption.state` is `declared` or `inferred-legacy`. Run
27
- `oat pjm init` first when adoption is absent or only partially initialized.
28
-
29
- ## Lifecycle operations
30
-
31
- The command family is `oat pjm remote`:
32
-
33
- ```bash
34
- oat pjm remote intake github:example/repository#123 --to-backlog BL-123 --capability-evidence-stdin --json
35
- oat pjm remote publish --binding rb_example --capability-evidence-stdin --json
36
- oat pjm remote refresh --binding rb_example --capability-evidence-stdin --json
37
- oat pjm remote reconcile --binding rb_example --capability-evidence-stdin --json
38
- oat pjm remote closeout --project .oat/projects/shared/example --capability-evidence-stdin --json
39
- oat pjm remote discussion --binding rb_example --limit 20 --capability-evidence-stdin --json
40
- oat pjm remote resolve relink --binding rb_example github:example/repository#456 --capability-evidence-stdin --json
41
- oat pjm remote resolve detach --binding rb_example --json
42
- oat pjm remote resolve recreate --binding rb_example --capability-evidence-stdin --json
43
- oat pjm remote doctor --json
44
- oat pjm remote migrate --check --json
45
- ```
46
-
47
- Before each provider-contacting example, the host discovers live capability and
48
- supplies only its bounded provider-neutral evidence on standard input. Mutation
49
- commands also require the current caller-owned authority evidence requested by
50
- their live help.
51
-
52
- - `intake` reads one remote record into a selected local backlog target and
53
- creates the binding.
54
- - `publish` creates or updates one explicitly selected binding.
55
- - `refresh` updates retained snapshots without writing remotely.
56
- - `reconcile` classifies local, remote, and baseline changes before proposing
57
- any write.
58
- - `closeout` prepares a reviewed batch while preserving independent per-binding
59
- outcomes.
60
- - `discussion` returns one bounded, sanitized page as non-persisted evidence.
61
- - `resolve relink`, `detach`, and `recreate` handle anomalous bindings without
62
- discarding identity history or retrying an uncertain create blindly.
63
- - `doctor` and `migrate` diagnose or repair local records without contacting a
64
- provider.
65
-
66
- Use `--help` on the live command for current options. JSON output uses one
67
- versioned envelope and may return a nonzero shell exit for a safely persisted
68
- `pending`, `needs-review`, `partial`, `uncertain`, or `blocked` outcome.
69
-
70
- ## Repository-owned policy
71
-
72
- Remote policy lives only in the shared repository config at `.oat/config.json`.
73
- The safe defaults are local operational state, no description publication, and
74
- read-only authority:
75
-
76
- ```json
77
- {
78
- "pjm": {
79
- "remote": {
80
- "schemaVersion": 1,
81
- "storage": { "state": "local" },
82
- "policy": {
83
- "description": "none",
84
- "authority": { "default": "read-only" }
85
- }
86
- }
87
- }
88
- }
89
- ```
90
-
91
- Use the config command instead of editing nested values by hand:
92
-
93
- ```bash
94
- oat config set pjm.remote.policy.description managed-section --shared
95
- oat config set pjm.remote.policy.authority.operations.update-fields user-approved --shared
96
- oat config set pjm.remote.policy.providers.github.authority.operations.create user-approved --shared
97
- ```
98
-
99
- Description modes are `none`, `managed-section`, and `replace`. Authority modes
100
- are `read-only`, `user-approved`, `user-authorized`, and `autonomous`.
101
- For each operation, OAT resolves the repository operation override, then its
102
- repository default, then the built-in read-only fallback. A matching provider
103
- operation override or provider default replaces that repository result and may
104
- broaden it. Binding defaults and operation restrictions then clamp authority,
105
- while purpose field grants intersect to narrow the outbound fields. Provider
106
- configuration never bypasses hard approval floors or the requirement for
107
- current caller-owned authority evidence; missing, stale, or mismatched evidence
108
- fails closed. Autonomous configuration is not a background grant.
109
-
110
- ## Live host capability boundary
111
-
112
- At operation time, the host agent inspects currently granted MCP or connector
113
- descriptions for the requested semantic operation and exact account, workspace,
114
- site, or repository context. If no capable connector is available, it may
115
- inspect the live help of an already configured provider CLI before the first
116
- provider-contacting command.
117
-
118
- OAT does not store provider tool names, native schemas, captured catalogs,
119
- executable names, flags, or CLI dialects. The host returns only bounded,
120
- sanitized capability evidence through `--capability-evidence-stdin`. It must not
121
- install tools, request credential values, or switch execution surfaces after an
122
- attempt begins. The CLI may then emit one provider-neutral `externalAction`.
123
- The host executes that exact action at most once and returns one bounded
124
- observation with `oat pjm remote operation continue`.
125
-
126
- ## Content and outbound safety
127
-
128
- Inbound provider text is retained only through an allowlist of core fields and
129
- adapter-approved extensions. If a retained text field triggers a conservative
130
- sensitive-content signal, OAT suppresses that whole field and marks the
131
- snapshot incomplete. This is a bounded field-safety rule, not general DLP or
132
- credential-value parsing.
133
-
134
- Every remote create or update consumes only an explicit normalized projection.
135
- The universal provider-neutral pre-write gate evaluates that projection before
136
- preview, approval, action, and authoritative read-back. It never scans the
137
- repository, worktree, Git history, or arbitrary files for secrets. Missing,
138
- stale, failed, or blocked safety evidence prevents execution.
139
-
140
- ## Previews, approval floors, and uncertainty
141
-
142
- Mutation-capable commands persist and return a preview before execution. The
143
- preview digest binds the target, normalized fields, remote revision,
144
- capability, safety result, and effective policy. If any load-bearing input
145
- changes, the approval is stale.
146
-
147
- Fresh approval is always required for complete description replacement,
148
- relink, detach, recreate, destructive operations, and promotion to shared
149
- operational storage. `user-approved` authority also requires applying the exact
150
- persisted preview. Higher configured authority cannot bypass those floors.
151
-
152
- The host submits a bounded observation with `oat pjm remote operation continue`.
153
- Only an OAT `ok` envelope after authoritative read-back means success. A
154
- connector response, process exit, or visible remote change is evidence rather
155
- than a verdict. If a create or update is uncertain, do not retry it blindly;
156
- use the recovery guidance in the envelope so OAT can search, relink, recreate,
157
- or reconcile without producing duplicates.
158
-
159
- ## Storage and worktrees
160
-
161
- Portable binding metadata follows its backlog or project owner. Shared backlog
162
- metadata lives under `.oat/repo/pjm/remote/bindings`; project metadata lives
163
- under that project's `remote/bindings` directory. Local projects keep their
164
- portable metadata in the local operational store.
165
-
166
- Operational snapshots, journals, batches, and receipts default to a
167
- repository-fingerprinted directory under the Git common directory:
168
- `.git/oat/pjm-remote/<repository-fingerprint>/`. All linked worktrees for one
169
- repository therefore share the same local operational state, while another
170
- clone gets its own store.
171
-
172
- Shared operational storage is opt-in and may expose remote planning content to
173
- everyone with repository access. It requires a persisted preview and fresh
174
- approval, and it is rejected for local projects. Preview the exact proposed
175
- paths through `oat pjm remote storage shared --help` before applying them.
176
-
177
- ## Offline behavior
178
-
179
- OAT can inspect portable bindings, the bounded local snapshot, journals,
180
- receipts, and pending recovery instructions while offline. `remote doctor` and
181
- `migrate` are local-only. Provider refresh, publication, reconciliation writes,
182
- and authoritative verification remain pending or blocked until matching live
183
- capability evidence is available; offline state never fabricates remote
184
- freshness or success.
185
-
186
- ## Related references
187
-
188
- - [Configuration](configuration.md)
189
- - [CLI Reference](../reference/cli-reference.md)
190
- - [File Locations](../reference/file-locations.md)
191
- - [Troubleshooting](../reference/troubleshooting.md)
@@ -1,31 +0,0 @@
1
- ---
2
- title: User Guide
3
- description: User-facing guide for operating OAT across provider sync, docs tooling, workflow execution, skills, and ideas.
4
- ---
5
-
6
- # User Guide
7
-
8
- This page is now a compatibility router.
9
-
10
- The old catch-all User Guide is being split into clearer adoption lanes so new users can choose the part of OAT that matches what they actually need.
11
-
12
- ## Contents
13
-
14
- - [Core Concepts](concepts.md) - High-level mental model while concept material is being redistributed.
15
-
16
- ## Status
17
-
18
- This guide bucket remains visible so older links have a stable landing page. New docs should go into the canonical top-level sections below instead of adding more pages under `guide/`.
19
-
20
- ## Canonical Sections
21
-
22
- - [Provider Sync](../provider-sync/index.md) - Provider interoperability, drift, sync, and config behavior.
23
- - [Agentic Workflows](../workflows/index.md) - Tracked projects, ideas, workflow skills, and lifecycle execution.
24
- - [Docs Tooling](../docs-tooling/index.md) - Docs app setup, docs commands, and docs workflow entry points.
25
- - [CLI Utilities](../cli-utilities/index.md) - Bootstrap, tool packs, configuration, and general CLI surfaces.
26
- - [Reference](../reference/index.md) - Durable contracts and reference material.
27
-
28
- ## Legacy Pages Still Under Guide
29
-
30
- - [Core Concepts](concepts.md) - High-level mental model while concept material is being redistributed.
31
- - This guide bucket is being retired. Use the canonical top-level sections above for active documentation.
@@ -1,4 +0,0 @@
1
- {
2
- "title": "User Guide",
3
- "pages": ["concepts"]
4
- }
@@ -1,88 +0,0 @@
1
- ---
2
- title: Quickstart
3
- description: 'Start-here guide for choosing the right OAT adoption path.'
4
- ---
5
-
6
- # Quickstart
7
-
8
- Use this page to choose the OAT path that matches what you are actually trying to do.
9
-
10
- This page is intentionally lightweight. It is not the full command manual. Once you choose a path, continue into the owning section for the deeper operational detail.
11
-
12
- ## Prerequisites
13
-
14
- - Node.js 22.17 or newer
15
- - Git 2.31 or newer
16
-
17
- OAT does not run an up-front Git version check. Git compatibility is evaluated
18
- best-effort by each command, and a missing or unsupported Git operation exits as
19
- a system error.
20
-
21
- ## Choose a Path
22
-
23
- ### Provider Sync
24
-
25
- Use this path when you want canonical skills, agents, and rules to stay aligned across provider surfaces such as Claude, Cursor, Copilot, Gemini, or Codex.
26
-
27
- Best fit:
28
-
29
- - you want cross-provider sync and drift checks
30
- - you care about canonical-to-provider asset management
31
- - you do not necessarily need tracked project workflows
32
-
33
- Continue here:
34
-
35
- - [Provider Sync](provider-sync/index.md)
36
-
37
- ### Agentic Workflows
38
-
39
- Use this path when you want tracked, resumable implementation work with explicit lifecycle artifacts, reviews, and handoff-friendly state.
40
-
41
- Best fit:
42
-
43
- - you want structured project execution
44
- - you want lifecycle artifacts like `state.md`, `plan.md`, and `implementation.md`
45
- - you want a workflow layer on top of the base CLI/tooling
46
-
47
- Continue here:
48
-
49
- - [Agentic Workflows](workflows/index.md)
50
-
51
- ### Docs Tooling
52
-
53
- Use this path when you are bootstrapping or maintaining a documentation surface with OAT.
54
-
55
- Best fit:
56
-
57
- - you need docs app setup or maintenance workflows
58
- - you care about docs navigation, docs commands, and docs-specific analysis/apply flows
59
- - you want the docs-system contract rather than the broader workflow layer
60
-
61
- Continue here:
62
-
63
- - [Docs Tooling](docs-tooling/index.md)
64
-
65
- ### CLI Utilities
66
-
67
- Use this path when you want general OAT CLI help outside the dedicated provider-sync, workflows, and docs-tooling lanes.
68
-
69
- Best fit:
70
-
71
- - you want bootstrap/setup guidance
72
- - you want tool-pack, configuration, local-state, or utility command guidance
73
- - you want a general CLI surface map rather than one specific product lane
74
-
75
- Continue here:
76
-
77
- - [CLI Utilities](cli-utilities/index.md)
78
-
79
- ## If You Are Unsure
80
-
81
- Start with the path that best matches the primary thing you need right now.
82
-
83
- - If you are trying to sync canonical assets across tools, choose Provider Sync.
84
- - If you are trying to run a tracked implementation workflow, choose Agentic Workflows.
85
- - If you are working on the docs system itself, choose Docs Tooling.
86
- - If you mainly need command-line setup or utility guidance, choose CLI Utilities.
87
-
88
- You can adopt more than one lane over time. OAT is designed so these sections can be used together or independently.
@@ -1,196 +0,0 @@
1
- ---
2
- title: Autonomous Project Execution
3
- description: 'Session-scoped autonomy signals, gate boundaries, review requirements, and execution-learnings behavior for OAT projects.'
4
- ---
5
-
6
- # Autonomous Project Execution
7
-
8
- OAT autonomy is an explicit session policy for driving a project through its
9
- lifecycle without waiting at ordinary interactive gates. It does not bypass the
10
- gate-owning skills: each skill still applies its own checks, records provenance,
11
- and either resolves the gate or reports a boundary.
12
-
13
- The provider-agnostic entry point is `oat-project-autonomous`. Invoke it
14
- deliberately with a goal, project slug, ticket reference, or active project. A
15
- restart does not silently resume autonomy; invoke the skill again and it resumes
16
- from the persisted project state.
17
-
18
- ## Activation contract
19
-
20
- An autonomous session uses both signals:
21
-
22
- ```bash
23
- export OAT_AUTONOMOUS=1
24
- export OAT_NON_INTERACTIVE=1
25
- ```
26
-
27
- `OAT_AUTONOMOUS=1` implies and sets `OAT_NON_INTERACTIVE=1` for the current
28
- run. The distinction is intentional:
29
-
30
- - `OAT_NON_INTERACTIVE=1` selects existing safe no-prompt paths for one
31
- workflow.
32
- - `OAT_AUTONOMOUS=1` additionally enables lifecycle chaining, defined gate
33
- resolutions, boundary stops, and provenance requirements.
34
-
35
- Both signals are session-scoped. Never write them to `state.md`, `plan.md`,
36
- repository config, user config, or any other durable artifact. A later
37
- interactive session therefore needs no autonomy cleanup and behaves
38
- interactively around the state the autonomous run left behind.
39
-
40
- ## Gate outcomes
41
-
42
- Every interactive lifecycle gate has one of two autonomous outcomes:
43
-
44
- 1. **Auto-resolve** using an existing safe path, then record the decision and
45
- evidence.
46
- 2. **Boundary stop** with a structured blocker and a resumable next step.
47
-
48
- The main boundary classes are:
49
-
50
- - **Product judgment** — repository evidence cannot resolve material scope or
51
- requirements ambiguity.
52
- - **Destructive-change risk** — an action could discard work, delete data,
53
- rewrite history, or broadly restructure an unapproved surface.
54
- - **Unresolved Critical findings** — a blocking review has not passed.
55
- - **Repository-policy approval** — protected operations require authority the
56
- session does not have.
57
- - **Missing credentials** — a required external action has no authenticated
58
- route or offline equivalent.
59
-
60
- A boundary is a successful fail-closed outcome, not permission to continue with
61
- a guessed answer. The run reports what stopped, the evidence, and the operator
62
- action needed to resume.
63
-
64
- The canonical autonomy contract and exhaustive gate inventory
65
- (`.agents/docs/autonomy-contract.md`, vendored into each consuming skill at
66
- `references/docs/autonomy-contract.md`) map each prompt to its autonomous
67
- resolution and provenance.
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 --keep-existing`
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
-
94
- ## Review contract
95
-
96
- Autonomous execution preserves independent review:
97
-
98
- - Discovery, design, and plan artifacts run their configured exit gates.
99
- Quick-start reviews the discovery, optional lightweight design, and plan as
100
- one bundle when those artifacts exist.
101
- - Review routing is selected before launch through the dispatch substrate.
102
- A configured gate target is preferred when available; otherwise policy may
103
- choose a target-preserving subagent route. Any reduced independence is
104
- explicit in the dispatch record.
105
- - Once a launch is accepted, it is terminal for route selection. Failures use
106
- bounded recovery with the same payload; they do not silently fall through to
107
- a cheaper or less independent reviewer.
108
- - Eligible review artifacts are received immediately. Fix tasks use the normal
109
- bounded implement-and-re-review loop.
110
- - Critical findings and failed blocking reviews stop progression. High
111
- findings follow the configured gate policy.
112
- - A normal phase or final lifecycle review cannot satisfy a configured
113
- implementation exit gate. Only gate invocation provenance with the matching
114
- run ID can authorize that boundary.
115
-
116
- Project review artifacts and review rows reference launcher-owned dispatch
117
- records. The configured invocation is authoritative evidence; child
118
- self-reporting is optional corroboration. See [Evidence
119
- Layers](evidence-layers.md) and [Reviews](reviews.md).
120
-
121
- ## HiLL and lifecycle closeout
122
-
123
- If checkpoint selection is unconfirmed when autonomy starts implementation,
124
- OAT takes the existing `workflow.hillCheckpointDefault: final` path explicitly:
125
-
126
- ```yaml
127
- oat_plan_hill_phases: ['<final-phase-id>']
128
- oat_auto_review_at_hill_checkpoints: true
129
- ```
130
-
131
- An existing valid explicit list is preserved. An existing `[]` is also
132
- preserved and means every phase, never no phases. At each configured checkpoint,
133
- autonomy runs and receives the review without waiting.
134
-
135
- At final closeout, autonomy follows the same authoritative order as an
136
- interactive run: final verification, mandatory final lifecycle review,
137
- configured implementation exit gate, pre-approval sequence, final HiLL
138
- approval, post-approval sequence, then implementation completion and success
139
- output. A `not_configured` resolution persists an explicit no-gate allowance
140
- before the sequence starts; a null, missing, or unrecognized resolver result
141
- fails closed as unresolved. A gate this project disabled persists an
142
- `allowed/configured` result with `disposition: project_disabled` and never
143
- launches the configured command.
144
-
145
- Autonomy does not turn an ordinary independent review into configured-gate
146
- provenance. A configured review must produce a gate-originated artifact with
147
- the matching run ID, and eligible receive must be durably reconciled. Blocked,
148
- ambiguous, malformed, or stale gate state is a boundary stop: the run remains
149
- resumable through `oat-project-implement` and cannot continue to approval,
150
- completion, or output.
151
-
152
- The default autonomous tail is summary, documentation, and final PR when no
153
- post-implementation sequence is configured; stored legacy or structured
154
- sequences retain their documented meaning.
155
-
156
- ## Execution-learnings loop
157
-
158
- Autonomous runs keep an append-only project-local
159
- `oat-execution-learnings.md`. Dated entries record an observation, impact, and
160
- recommendation under the source taxonomy: `gotcha`, `efficiency`,
161
- `documentation-gap`, `candidate-skill-content`, `decision`, or
162
- `environment-limited`.
163
-
164
- When the file exists, `oat-project-summary` synthesizes actionable
165
- recommendations into `## Autonomous Execution Learnings`, grouped as:
166
-
167
- - agent-instruction updates;
168
- - cloud-environment improvements;
169
- - code follow-ups;
170
- - workflow issues.
171
-
172
- Each recommendation links back to its source entry. Projects without the
173
- learnings file render normal summaries with no autonomous-learnings section.
174
- The summary export keeps the synthesized recommendations after project
175
- archival.
176
-
177
- ## Taking over interactively
178
-
179
- After an autonomous session ends:
180
-
181
- 1. Start a normal session without the autonomy environment signals.
182
- 2. Open the same project from its repository-local `.oat` directory.
183
- 3. Resume the owning lifecycle skill.
184
-
185
- Persisted review rows, task state, explicit HiLL checkpoints, and dispatch
186
- provenance remain valid. Interactive prompts and checkpoint pauses return
187
- normally because autonomy itself was never persisted.
188
-
189
- ## Related
190
-
191
- - [HiLL Checkpoints](hill-checkpoints.md) — checkpoint field semantics and
192
- interactive behavior.
193
- - [Implementation Execution](implementation-execution.md) — phase execution,
194
- review, fixes, and closeout.
195
- - [Cursor Cloud](cursor-cloud.md) — project-home and environment-readiness
196
- guidance for cloud runs.
@@ -1,93 +0,0 @@
1
- ---
2
- title: Human-in-the-Loop Lifecycle (HiLL) Checkpoints
3
- description: 'Checkpoint configuration and behavior for pauseable, human-in-the-loop lifecycle execution.'
4
- ---
5
-
6
- # Human-in-the-Loop Lifecycle (HiLL) Checkpoints
7
-
8
- OAT supports two checkpoint classes:
9
-
10
- - Workflow phase checkpoints
11
- - Plan phase checkpoints
12
-
13
- The [Phase gate review](reviews.md#phase-review-gate) (`oat_phase_review_gate`) is a separate, non-pausing mechanism — it does not pause on a passing gate and never modifies the HiLL keys below (`oat_hill_completed`, `oat_plan_hill_phases`).
14
-
15
- ## Workflow checkpoints (`state.md`)
16
-
17
- Frontmatter keys:
18
-
19
- - `oat_hill_checkpoints`
20
- - `oat_hill_completed`
21
-
22
- Example:
23
-
24
- ```yaml
25
- oat_hill_checkpoints: ['discovery', 'spec', 'design']
26
- oat_hill_completed: ['discovery']
27
- ```
28
-
29
- ## Plan phase checkpoints (`plan.md`)
30
-
31
- Frontmatter key written after implementation confirmation:
32
-
33
- - `oat_plan_hill_phases`
34
-
35
- Semantics:
36
-
37
- - Field absent: valid before the first `oat-project-implement` run confirms checkpoint selection. Planning may intentionally leave the field unset until that first execution starts.
38
- - Empty list: checkpoint after every phase boundary, but only after implementation has confirmed the choice and written `oat_plan_hill_phases: []` into `plan.md`.
39
- - Explicit list: checkpoint only after completing the named phases (`p01`, `p04`, etc).
40
-
41
- ### Lite checkpoint bypass
42
-
43
- Lite projects have no HiLL checkpoints. `oat-project-implement` resolves
44
- `oat_workflow_mode` from project state before any checkpoint field read, and
45
- when the mode is `lite` it resolves checkpoint state as `none` without reading
46
- or interpreting `oat_plan_hill_phases`. An empty list cannot represent lite's
47
- policy, because for every other mode an empty list means "checkpoint after every
48
- phase". `oat-project-implement`'s Lite checkpoint bypass writes:
49
-
50
- ```yaml
51
- oat_auto_review_at_hill_checkpoints: false # lite: no checkpoints
52
- ```
53
-
54
- The workflow preference prompt, the standard checkpoint prompt, and the
55
- auto-review preference prompt are all skipped in both interactive and autonomous
56
- runs. Only HiLL approval pauses are absent — the root-owned per-phase review and
57
- the final review remain required.
58
-
59
- The rest of this section applies to `spec-driven`, `quick`, and `import`
60
- projects.
61
-
62
- On the first implementation run, `oat-project-implement` must summarize every plan phase, state the total phase count and final phase ID, and then ask an explicit three-option checkpoint question:
63
-
64
- - Stop after each phase
65
- - Stop after specific phases
66
- - Stop only after the final phase is completed
67
-
68
- It then writes the confirmed value into `plan.md`. If the field is later missing during a resumed implementation run, treat that as bookkeeping drift rather than as an implicit default.
69
-
70
- Listed phases are where you stop **after completing them**, not before. `["p03"]` means "complete p03, then pause" — not "pause before starting p03." Setting the last phase ID (e.g., `["p03"]` when p03 is final) means "stop only at the end of implementation."
71
-
72
- ### Setting a default via `workflow.hillCheckpointDefault`
73
-
74
- The first-run checkpoint prompt can be skipped entirely by setting the `workflow.hillCheckpointDefault` preference:
75
-
76
- - `every` — automatically write `oat_plan_hill_phases: []` (pause after every phase) without prompting
77
- - `final` — automatically write `oat_plan_hill_phases: ["<final-phase-id>"]` (pause only at the end) without prompting
78
-
79
- When set, `oat-project-implement` reads the preference before the prompt and prints `HiLL checkpoints: <every|final> (from workflow.hillCheckpointDefault)`, skipping the interactive choice. When unset (default), the skill prompts as before.
80
-
81
- This is a personal preference — typically set at user scope so it applies to every repo:
82
-
83
- ```bash
84
- oat config set workflow.hillCheckpointDefault final --user
85
- ```
86
-
87
- See [Workflow preferences in the Configuration guide](../../cli-utilities/configuration.md#workflow-preferences-workflow) for the full list of preference keys and surface guidance.
88
-
89
- ## Reference artifacts
90
-
91
- - `.oat/templates/plan.md`
92
- - `.oat/projects/<scope>/<project>/plan.md`
93
- - `.oat/projects/<scope>/<project>/state.md`