@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
@@ -0,0 +1,410 @@
1
+ ---
2
+ title: What OAT Writes
3
+ description: 'Every file, link and Git ref that OAT commands create in your repository, under your home directory and on origin, what to commit, and how to remove all of it.'
4
+ ---
5
+
6
+ # What OAT Writes
7
+
8
+ This page lists what each OAT command writes in your repository, under your
9
+ home directory and on your shared `origin` remote, which of those files belong
10
+ in Git, and how to back out of OAT completely. Everything here was observed by
11
+ running OAT CLI version 0.3.14 on macOS. The removal procedure in
12
+ [Remove everything](#remove-everything) was run end to end twice, once
13
+ originally and once in an independent re-run, and both times it returned the
14
+ repository and the home directory to their pre-OAT state.
15
+
16
+ A few terms used below. **Canonical assets** are the skills and agent
17
+ definitions OAT keeps under `.agents/`; they are the source you edit. A
18
+ **provider view** is the copy or link OAT creates from a canonical asset in the
19
+ folder a coding tool reads, such as `.claude/skills/`. **Scope** says where a
20
+ command works: `project` means the current repository, `user` means your home
21
+ directory, and `all` means both. A **tool pack** is a named bundle of skills,
22
+ agents, templates and scripts that `oat tools install` adds.
23
+
24
+ ## The short version
25
+
26
+ - With `--scope project`, `oat init`, `oat sync` and `oat tools install <pack>`
27
+ write only inside the repository. Two forms are exceptions:
28
+ `oat tools install --scope project` without a pack name also installs the
29
+ `core` pack under your home directory, and `oat init --scope project --setup`
30
+ installs every pack there.
31
+ - Without `--scope`, `oat init` and `oat sync` use scope `all`, so they can
32
+ also write under your home directory, and `oat tools install <pack>` installs
33
+ a pack that is not yet installed under your home directory (user scope).
34
+ - The `core` pack is user-only: it installs under your home directory or not at
35
+ all.
36
+ - Tracked projects default to **synced** scope, which keeps a project's files on
37
+ a dedicated Git ref. Creating one commits a small pointer file to your current
38
+ branch and pushes `refs/oat/projects/<name>` to `origin`. Apart from
39
+ `oat project prune`, which deletes that ref again, no other command observed
40
+ here changed `origin`, and none pushed a branch.
41
+ - There is no single uninstall command. The manual steps in
42
+ [Remove everything](#remove-everything) return the repository's files and your
43
+ home directory to their pre-OAT state; Git history keeps OAT's commits.
44
+
45
+ ## What each command writes
46
+
47
+ Where a file already existed, OAT appended its own marked block instead of
48
+ replacing it. This held for `.gitignore`, `.gitattributes`, an existing
49
+ `pre-commit` hook and the other settings in an existing `.codex/config.toml`
50
+ (OAT does change `multi_agent` and `max_depth` there; see the
51
+ [provider table](#syncing-provider-views)). A pre-existing
52
+ `~/.claude/settings.json` was left untouched.
53
+
54
+ ### Setting up
55
+
56
+ | Command | In the repository | Under your home directory | On `origin` |
57
+ | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- | ----------- |
58
+ | `oat init --scope project` | `.gitignore` and `.gitattributes` (created, or an `# OAT core` block appended); `.oat/sync/manifest.json`; empty `.agents/skills`, `.agents/agents`, `.agents/rules` | Nothing | Nothing |
59
+ | `oat init` (scope `all`) | The same as above | `~/.oat/sync/manifest.json` and an empty `~/.agents/skills` | Nothing |
60
+
61
+ `oat init` creates no `AGENTS.md` and no `.oat/config.json`. Run
62
+ non-interactively, it installs no hook unless you pass `--hook`.
63
+
64
+ ### The optional pre-commit hook
65
+
66
+ | Command | Writes |
67
+ | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
68
+ | `oat init --scope project --hook` | `.git/hooks/pre-commit`. If a hook already exists, OAT appends a marked block and keeps your lines. |
69
+ | The same, with `core.hooksPath` set | The hook goes to that path instead. With `core.hooksPath .githooks`, it was written to `.githooks/pre-commit` inside the working tree, where it can be committed. |
70
+
71
+ The hook runs `oat status --scope project --hook` only if an `oat` binary is on
72
+ your `PATH`. When provider views are out of date it prints
73
+ `oat: managed provider views are out of sync - run 'oat sync --scope project'`.
74
+ It never blocks a commit.
75
+
76
+ ### Syncing provider views
77
+
78
+ `oat providers set --scope project --enabled <providers>` writes
79
+ `.oat/sync/config.json`. `oat sync` then creates views for each enabled
80
+ provider and rewrites `.oat/sync/manifest.json`, the file that records which
81
+ views OAT manages. A provider does not have to be enabled: an existing
82
+ `.claude/` directory in the repository, or `~/.claude/` in your home directory,
83
+ is enough for `oat sync` to create Claude views.
84
+
85
+ | Provider | Repository views created by `oat sync --scope project` |
86
+ | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
87
+ | Claude | `.claude/skills/<name>` and `.claude/agents/<name>.md`, relative symlinks into `.agents/` |
88
+ | Cursor | `.cursor/agents/`: relative symlinks for agents, plus generated model-variant files marked `# oat-managed: true` |
89
+ | Copilot | `.github/agents/`, relative symlinks |
90
+ | Codex | `.codex/agents/*.toml` and `.codex/config.toml`, generated files. In an existing `config.toml`, OAT adds its `[agents.<name>]` tables and sets `[features] multi_agent = true` and `[agents] max_depth` to at least 2, changing those two values if you had set them lower; your other settings stay. |
91
+ | Gemini | Nothing |
92
+
93
+ OAT creates skill views only for Claude. It reports the other providers' skill
94
+ support as `native-read` and creates no skill views for them. No generated
95
+ file contained an absolute path.
96
+
97
+ | Command | Under your home directory |
98
+ | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
99
+ | `oat sync --scope project` | Nothing |
100
+ | `oat sync` (scope `all`) | When it detects a provider in your home directory (observed: an existing `~/.claude/`), relative symlinks in `~/.claude/skills/` and `~/.claude/agents/` for your user-scope skills and agents, and `~/.oat/sync/manifest.json`. With no `~/.claude/` and nothing installed at user scope, nothing. |
101
+
102
+ ### Installing tool packs
103
+
104
+ | Command | In the repository | Under your home directory |
105
+ | ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
106
+ | `oat tools install <pack> --scope project` | The pack's skills in `.agents/skills/`, plus any agents in `.agents/agents/`, templates in `.oat/templates/` and scripts in `.oat/scripts/` it ships; `tools.<pack>: true` in `.oat/config.json`. Views for enabled providers, unless you pass `--no-sync`. | Nothing |
107
+ | `oat tools install --scope user` | Nothing, unless the workflows pack is already installed at project scope (see [surprises](#known-surprises-in-0314)) | `~/.agents/skills/`, `~/.agents/agents/`, `~/.oat/config.json`, `~/.oat/docs/`, `~/.oat/ideas/`, `~/.oat/scripts/`, `~/.oat/templates/`. Provider links only if a provider is detected. |
108
+ | `oat tools install core` | Nothing | `~/.oat/config.json`, `~/.agents/skills/oat-docs`, `~/.agents/skills/oat-doctor`, and `~/.oat/docs/` (a bundled copy of these docs) |
109
+
110
+ Some packs write more at project scope. The ideas pack adds
111
+ `.oat/ideas/backlog.md` and `.oat/ideas/scratchpad.md`. The workflows pack adds
112
+ `.oat/projects-root`, `.oat/projects/local/.gitkeep`,
113
+ `.oat/projects/archived/.gitkeep` and a `projects.root` setting. Passing
114
+ `--project-guidance` adds a marked `<!-- OAT tools -->` block to `AGENTS.md`,
115
+ creating the file if needed. Installing every pack at once with
116
+ `oat tools install --scope project` puts core in your home directory and the
117
+ other seven packs in the repository, and also adds a `localPaths` setting and a
118
+ `# OAT local paths` block to `.gitignore`.
119
+
120
+ No tool pack command wrote to `origin`.
121
+
122
+ ### Creating tracked projects
123
+
124
+ A tracked project is the set of planning and implementation files OAT keeps for
125
+ one piece of work. Its scope decides where those files live.
126
+
127
+ | Command | In the repository | On `origin` |
128
+ | ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
129
+ | `oat project new <name>` (synced default) | Commits `.oat/projects/synced/<name>.json`, a small pointer file, to the current branch. Creates the project files in an ignored linked Git worktree at `.oat/projects/synced/<name>/`. | Pushes `refs/oat/projects/<name>`. The branch is not pushed. |
130
+ | `oat project new <name> --scope shared` | Commits six Markdown files under `.oat/projects/shared/<name>/` to the current branch. The commit contains only those files; other staged or unstaged changes are left alone. | Nothing |
131
+ | `oat project new <name> --scope local` | Writes the project under `.oat/projects/local/<name>/`, which is ignored. No commit. | Nothing |
132
+
133
+ Every scope also writes two ignored files: `.oat/config.local.json`, which
134
+ records the active project, and `.oat/state.md`, a generated dashboard. A
135
+ synced project also adds Git's own `.git/worktrees/<name>` and a local
136
+ `refs/oat/projects/<name>` ref.
137
+
138
+ Without an `origin` remote, the default command exits with
139
+ `Synced project creation requires a configured origin remote. Configure origin or use --scope local.`
140
+ and writes nothing. To make another scope the default, run
141
+ `oat config set projects.defaultScope shared` (or `local`), which edits the
142
+ tracked `.oat/config.json`.
143
+
144
+ ## What to commit
145
+
146
+ "Ignored" means OAT's own `.gitignore` block matches the path. "Machine data"
147
+ is anything that differs between machines.
148
+
149
+ ### Setup and configuration
150
+
151
+ | Path | What it is | Ignored? | Machine data? | Commit it? |
152
+ | ----------------------------------------- | --------------------------------------------------- | -------- | ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------- |
153
+ | `.gitignore` (OAT blocks) | Rules that keep OAT's local files out of Git | No | No | Yes: these rules are what keep the local-only files below out of commits |
154
+ | `.gitattributes` (OAT block) | Marks `.oat/projects/shared/**` as generated | No | No | Safe to commit: nothing in it differs between machines |
155
+ | `.oat/config.json` | Installed packs, project settings | No | No | Yes: `projects.defaultScope` can only be set in this file, and `projects.root` and `localPaths` are always written here |
156
+ | `.oat/sync/config.json` | Which providers the repository enables | No | No | Yes: without it, `oat sync` falls back to detecting provider folders |
157
+ | `.oat/sync/manifest.json` | Record of the views OAT manages | No | Timestamps and OAT version; no paths | Team choice (see below) |
158
+ | `.oat/config.local.json`, `.oat/state.md` | Active project; generated dashboard | Yes | Yes | Ignored by OAT's own rules |
159
+ | `AGENTS.md` (OAT block) | Guidance for agents, only with `--project-guidance` | No | No | Team choice (see below) |
160
+ | `<hooksPath>/pre-commit` | The hook, when `core.hooksPath` is inside the tree | No | No | Team choice (see below) |
161
+
162
+ ### Canonical assets and pack files
163
+
164
+ | Path | What it is | Ignored? | Machine data? | Commit it? |
165
+ | ----------------------------------------------------------------------- | -------------------------------------- | -------- | ------------- | --------------------------------------------------------------------- |
166
+ | `.agents/skills/`, `.agents/agents/` | Canonical skills and agents | No | No | Yes: it is the source your team edits, and committed views link to it |
167
+ | `.oat/templates/`, `.oat/scripts/`, `.oat/ideas/`, `.oat/projects-root` | Files a pack installs at project scope | No | No | Team choice (see below) |
168
+ | `.oat/projects/local/.gitkeep`, `.oat/projects/archived/.gitkeep` | Placeholders | No | No | Yes: OAT's own rules explicitly un-ignore them |
169
+
170
+ ### Provider views
171
+
172
+ | Path | What it is | Ignored? | Machine data? | Commit it? |
173
+ | -------------------------------------------------------------------------------------------- | --------------------------------- | -------- | ------------- | ---------------------------------------------- |
174
+ | `.claude/skills/`, `.claude/agents/`, `.github/agents/`, symlinks in `.cursor/agents/` | Relative symlinks into `.agents/` | No | No | Yes: relative links, the same on every machine |
175
+ | Generated files in `.cursor/agents/`, `.codex/agents/`, OAT's tables in `.codex/config.toml` | Generated copies | No | No | Team choice (see below) |
176
+
177
+ ### Projects
178
+
179
+ | Path | What it is | Ignored? | Machine data? | Commit it? |
180
+ | ------------------------------------------------------------ | ---------------------------------------- | ----------------------------------------------- | ------------------------------- | --------------------------------------------------------- |
181
+ | `.oat/projects/shared/<name>/` | A shared project's files | No | Dates only | OAT commits it for you |
182
+ | `.oat/projects/synced/<name>.json` | Pointer to the synced project's ref | No | A creation timestamp | OAT commits it for you |
183
+ | `.oat/projects/synced/<name>/` | Linked Git worktree | Yes | Yes: an absolute `gitdir:` path | No: contains an absolute path; ignored by OAT's own rules |
184
+ | `.oat/projects/local/<name>/` | A local project's files | Yes | Dates only | Ignored by OAT's own rules |
185
+ | `.oat/projects/**/pr/`, `.oat/projects/**/reviews/archived/` | Project PR material and archived reviews | Only if the `# OAT local paths` block was added | No | Team choice (see below) |
186
+
187
+ **Where "Team choice" applies:**
188
+
189
+ - **`.oat/sync/manifest.json`.** A sync that changes a view, or that runs with
190
+ a different CLI version than the last one, rewrites it with new timestamps
191
+ and its own version, so committing it adds diffs to sync commits and to
192
+ mixed-version teams. Leaving it out means a fresh clone
193
+ has no record of which views OAT manages. How OAT behaves in a clone without
194
+ it is not covered here.
195
+ - **Generated provider files** (Cursor model variants, Codex agents and
196
+ `config.toml` tables). Committed, they arrive with every clone. Not
197
+ committed, each teammate runs `oat sync --scope project` to generate them.
198
+ Either way, `oat tools remove` does not delete them; see
199
+ [Backing out](#backing-out).
200
+ - **Pack files in `.oat/`** (templates, scripts, ideas, `projects-root`).
201
+ Committed, every clone has them. Not committed, each teammate needs the same
202
+ `oat tools install` to get them.
203
+ - **`AGENTS.md` guidance block.** It tells agents how to refresh views, but the
204
+ command it recommends, `oat sync --scope all`, also writes under each
205
+ reader's home directory.
206
+ - **A hook inside the working tree.** Committed, everyone using that hooks path
207
+ gets the drift warning. A hook in `.git/hooks` is never committed.
208
+ - **`pr/` and `reviews/archived/` folders.** Whether PR material and archived
209
+ reviews are shared through Git or stay on each machine. Whether OAT ignores
210
+ them depends on which install command you ran; see
211
+ [surprises](#known-surprises-in-0314).
212
+
213
+ ## A new teammate after cloning
214
+
215
+ 1. **Install the CLI.** The README gives
216
+ `npm install --global @open-agent-toolkit/cli` and requires Node.js 22.17 or
217
+ newer and Git 2.31 or newer.
218
+ 2. **Check the views.** Run `oat status --scope project`. Committed symlink
219
+ views are relative links into `.agents/`, so they point at the same files in
220
+ every clone. A row marked `✗ missing` means a view was not committed or not
221
+ yet generated; run `oat sync --scope project` to create it. Generated Cursor
222
+ and Codex files exist only if your team committed them. After a sync, OAT
223
+ reports Claude views as `restart-required`: start a new Claude Code session
224
+ to pick them up.
225
+ 3. **Add the hook if you want it.** `.git/hooks` is not part of a clone, so
226
+ each teammate who wants the drift warning runs
227
+ `oat init --scope project --hook`.
228
+ 4. **Install personal packs separately.** User-scope packs live under each
229
+ person's `~/.agents` and `~/.oat`, so nobody receives them from the
230
+ repository. A teammate who wants them runs `oat tools install --scope user`,
231
+ which installs all eight packs. Run inside a repository where the workflows
232
+ pack is installed at project scope, it also edits that repository; see
233
+ [surprises](#known-surprises-in-0314).
234
+ 5. **Fetch synced projects explicitly.** A fresh clone does not receive
235
+ `refs/oat/*`, so synced projects are not in it. See
236
+ [Picking Up Projects](../workflows/projects/execution/picking-up-projects.md)
237
+ to list and pull them. Ignored files (`.oat/config.local.json`,
238
+ `.oat/state.md`, local projects) never travel.
239
+
240
+ ## Backing out
241
+
242
+ ### Stop without removing anything
243
+
244
+ Disabling a provider does not remove its views.
245
+ `oat providers set --scope project --disabled claude` only updates
246
+ `.oat/sync/config.json`. The existing `.claude/skills/` links stay, and a
247
+ following `oat sync` removes nothing. `oat status` then reports
248
+ `No managed entries found.` while the manifest still lists those links. To
249
+ remove views, use the commands below or delete them yourself.
250
+
251
+ The hook does nothing when no `oat` binary is on `PATH`, and
252
+ `oat init --scope project --no-hook` removes it.
253
+
254
+ ### Supported removal commands
255
+
256
+ | Command | Removes | Leaves behind |
257
+ | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
258
+ | `oat tools remove --pack <pack> --scope project` (one pack at a time) | The pack's skills and agents in `.agents/`, their symlink views (Claude, Copilot, Cursor symlinks), and its `.oat/scripts/*.sh` | `.oat/templates/`, `.oat/ideas/`, `.oat/projects-root`, `.oat/config.json` (with a stale `tools.requiredBy` entry), `.oat/sync/`, both `.gitignore` blocks, `.gitattributes`, projects, empty folders, and all generated Cursor and Codex files |
259
+ | `oat tools remove --all` | Nothing: exits 2 with `Pack core does not allow project scope`, with or without `--scope project` | Everything |
260
+ | `oat tools remove --all --scope user` | With only core installed at user scope: `~/.agents/skills/oat-docs`, `~/.agents/skills/oat-doctor`, `~/.oat/docs/` and their `~/.claude/skills/` links | `~/.oat/config.json` (now `{"version": 1}`), `~/.oat/sync/manifest.json`, an empty `~/.agents/skills/` and an empty `~/.claude/skills/` |
261
+ | `oat remove skill <name> --scope project` | The canonical skill, its Claude view and its manifest entry | Nothing for that skill |
262
+ | `oat project prune <name>` (synced projects only) | The worktree, the pointer file, the local ref and the ref on `origin`; commits `chore(oat): prune synced project <name>` on the current branch | An empty `.oat/projects/synced/` |
263
+ | `oat init --scope project --no-hook` | OAT's hook block. If the file holds only OAT's block, the whole `pre-commit` file is deleted. | Your own hook lines, byte for byte |
264
+
265
+ No command deletes a shared or local project. `oat project prune` refuses a
266
+ shared project, and `oat project archive` moves a project to
267
+ `.oat/projects/archived/<name>` rather than deleting it.
268
+
269
+ ### Remove everything
270
+
271
+ These steps were run in a repository that had adopted OAT with Claude as its
272
+ only provider, the hook, packs at project scope, core at user scope, and one
273
+ project of each scope. Afterwards the repository's files, its `.git/hooks`
274
+ folder, its local Git config and the home directory matched their pre-OAT
275
+ state exactly, and no `refs/oat/*` ref remained locally or on `origin`. The
276
+ run started with a `.gitignore` but no `.gitattributes`; adjust steps 5 and 6
277
+ if yours differ.
278
+
279
+ > [!WARNING]
280
+ > These steps delete files. Run `git status` first and commit or set aside
281
+ > anything you want to keep. `rm -r .agents` also deletes skills your team
282
+ > wrote, and `rm -r .oat` deletes every shared and local project. The home
283
+ > directory steps were verified only for a machine where `~/.oat` and
284
+ > `~/.agents` did not exist before OAT and `~/.claude/skills` was an empty
285
+ > folder OAT had created. If yours held anything of your own, remove only
286
+ > what OAT created. The same applies to a `.claude/` folder that existed in the
287
+ > repository before OAT.
288
+
289
+ 1. Remove the hook: `oat init --scope project --no-hook`. In a terminal,
290
+ `oat init` first shows the provider selection; keep the current choices.
291
+ 2. Delete each synced project, including its ref on `origin`:
292
+ `oat project prune <name>`. Without the command, run
293
+ `git worktree remove .oat/projects/synced/<name>`,
294
+ `git update-ref -d refs/oat/projects/<name>` and
295
+ `git push origin --delete refs/oat/projects/<name>`, then
296
+ `git rm .oat/projects/synced/<name>.json`.
297
+ 3. Remove user-scope packs and their links in `~/.claude`:
298
+ `oat tools remove --all --scope user`.
299
+ 4. Remove each pack you installed at project scope, one command per pack:
300
+ `oat tools remove --pack <pack> --scope project`, where `<pack>` is any of
301
+ `ideas`, `docs`, `workflows`, `utility`, `research`, `brainstorm` and
302
+ `project-management` that you installed. The PACK column of
303
+ `oat tools list --scope project` shows them.
304
+ 5. Untrack and delete OAT's repository files:
305
+
306
+ ```sh
307
+ git rm -r -q --cached .agents .claude .oat .gitattributes
308
+ rm -r .agents .claude .oat .gitattributes
309
+ ```
310
+
311
+ Leave out any path that does not exist or that Git does not track;
312
+ otherwise `git rm` stops without removing anything. If `.gitattributes`
313
+ existed before
314
+ OAT, leave it out too and delete only its `# OAT core` block.
315
+
316
+ 6. In `.gitignore`, delete the `# OAT core` … `# END OAT core` block, the
317
+ `# OAT local paths` … `# END OAT local paths` block if present, and the
318
+ blank line OAT added before each.
319
+ 7. Commit: `git add .gitignore && git commit -m "remove oat"`.
320
+ 8. Clean the home directory. If `~/.oat` and `~/.agents` did not exist before
321
+ OAT, run `rm -r ~/.oat ~/.agents`. Otherwise delete only `~/.oat` and the
322
+ skills and agents OAT installed under `~/.agents`; other tools also read
323
+ `~/.agents/skills` directly, so it may hold your own skills. Then run
324
+ `rmdir ~/.claude/skills`, which fails safely if the folder still holds
325
+ anything.
326
+
327
+ If you had enabled Cursor, Copilot or Codex, OAT also created the paths in the
328
+ [provider table](#syncing-provider-views). Removing those was not part of this
329
+ run.
330
+
331
+ Git history still contains the OAT commits: your commit that added OAT's files,
332
+ the project scaffold commits and the prune commit stay on your branch, and
333
+ anything you pushed stays on `origin`. Deleting `refs/oat/projects/<name>`
334
+ removes the ref, not the data: the project files it pointed to stay in
335
+ `origin`'s storage until the host garbage-collects them, so do not rely on
336
+ prune to erase sensitive content. Rewriting history is not covered here.
337
+
338
+ ## Known surprises in 0.3.14
339
+
340
+ These are current behaviors as of version 0.3.14.
341
+
342
+ - `oat tools install core --scope project` prints `Installed core tool pack.`
343
+ but writes nothing.
344
+ - `oat init --scope project --setup` installs all eight packs under your home
345
+ directory, and runs `gh repo view`, which makes the `gh` CLI write
346
+ `~/.local/state/gh/device-id`.
347
+ - `oat tools install --scope user` writes into the current repository when the
348
+ workflows pack is already installed there at project scope: it adds
349
+ `localPaths` to `.oat/config.json` and a `# OAT local paths` block to
350
+ `.gitignore`.
351
+ - `oat tools install workflows --scope project` does not add that block, but
352
+ `oat tools install --scope project` does, so `pr/` and `reviews/archived/`
353
+ folders are committable in one setup and ignored in the other.
354
+ - `oat tools remove --all` fails unless you add `--scope user`.
355
+ - After removing packs, a stale `tools.requiredBy` entry stays in
356
+ `.oat/config.json`, and `oat status` reports the utility pack as missing and
357
+ suggests `oat tools update`.
358
+ - Removing a pack leaves its generated Cursor and Codex files, and a later
359
+ `oat sync` reports no changes.
360
+ - An existing `.claude/` folder, in the repository or your home directory, is
361
+ enough for `oat sync` to create Claude views without enabling Claude.
362
+ - After `oat tools install <pack> --no-sync`, running the same install again
363
+ reports `unchanged` and creates no views; run `oat sync --scope project`.
364
+ - The `AGENTS.md` block from `--project-guidance` recommends
365
+ `oat sync --scope all`, which also writes under your home directory.
366
+ - `oat project new --scope local` prints `Scaffold commit: skipped (--no-commit)`
367
+ even when you did not pass that flag.
368
+ - Piping `oat tools list` or `oat status` into `head` crashes with an
369
+ `Error: write EPIPE` stack trace.
370
+
371
+ ## Not covered here
372
+
373
+ - **Interactive prompts.** Every run here was non-interactive. The hook,
374
+ provider and local-path questions that `oat init` and `--setup` ask are
375
+ described in [CLI Bootstrap](../getting-started/bootstrap.md).
376
+ - **Installing and upgrading the CLI.** See
377
+ [Quickstart](../getting-started/quickstart.md) and
378
+ [Upgrading from an earlier CLI](../getting-started/tool-packs.md#upgrading-from-an-earlier-cli).
379
+ - **Other platforms.** Only macOS was observed, where every view was a relative
380
+ symlink or a generated file. For the copy strategy, see
381
+ [Sync Config](../provider-sync/config.md#links-or-copies).
382
+ - **User scope for providers other than Claude.** See
383
+ [Scope and Surface](../provider-sync/scope-and-surface.md).
384
+ - **Project management adoption** (`oat pjm init` and the `.oat/repo/` tree).
385
+ See [Install vs. initialize](../getting-started/tool-packs.md#install-vs-initialize).
386
+ - **Instruction files and rules.** `CLAUDE.md` shims from
387
+ `oat instructions sync`, and syncing rules from `.agents/rules`, including how
388
+ to remove them. See [Instruction Sync](../provider-sync/instruction-sync.md).
389
+ - **Later project commands.** `oat project push`, `pull`, `archive`, `migrate`,
390
+ archive storage, and what later lifecycle steps push to `origin`. See
391
+ [Picking Up Projects](../workflows/projects/execution/picking-up-projects.md)
392
+ and [Closeout Skills](../workflows/projects/closeout/closeout-skills.md).
393
+ - **Other maintenance commands.** `oat remove skills --pack`, `oat local`,
394
+ `oat tools update`, `outdated` and `migrate`. See
395
+ [Tool Packs](../getting-started/tool-packs.md) and
396
+ [Config and Local State](config-and-local-state.md).
397
+ - **Files you place at a view path yourself.** See
398
+ [Manifest and Drift](../provider-sync/manifest-and-drift.md).
399
+ - **`gh repo view` against a real GitHub remote**, and Git versions older than
400
+ 2.31.
401
+
402
+ ## Related
403
+
404
+ - [Quickstart](../getting-started/quickstart.md)
405
+ - [CLI Bootstrap](../getting-started/bootstrap.md)
406
+ - [Tool Packs and Installed Assets](../getting-started/tool-packs.md)
407
+ - [Manifest and Drift](../provider-sync/manifest-and-drift.md)
408
+ - [Provider Interop CLI Scope and Surface](../provider-sync/scope-and-surface.md)
409
+ - [File Locations](file-locations.md)
410
+ - [Starting Projects](../workflows/projects/planning/starting-projects.md)
@@ -0,0 +1,77 @@
1
+ ---
2
+ title: Brainstorm Before Choosing a Workflow
3
+ description: Explore a problem conversationally, compare approaches, and choose an explicit destination without starting implementation.
4
+ ---
5
+
6
+ # Brainstorm Before Choosing a Workflow
7
+
8
+ ## oat-brainstorm
9
+
10
+ **Invocation:** `/oat-brainstorm` is the reliable way to start it, or ask,
11
+ “Let's brainstorm how to make large imports easier to recover without changing
12
+ the UI yet.” These are agent instructions; Codex can use `$oat-brainstorm`. An
13
+ explicit request to brainstorm activates the mode; an ordinary review,
14
+ debugging session, or status check should not be taken over automatically.
15
+ Looser phrasing such as “I've been thinking about…” gets an ordinary
16
+ conversational answer; after two such exploratory turns the agent offers once
17
+ to switch into structured brainstorm mode. If your opening request says the
18
+ work should become several projects, the skill frames the conversation around
19
+ the child projects and then hands off to `oat-project-split`, which creates
20
+ them.
21
+
22
+ **Prerequisites:** A topic worth exploring. Needs an active OAT project:
23
+ optional. No OAT project (a tracked unit of work under `.oat/projects/`) or
24
+ repository setup is required to start the conversation; if a project is
25
+ active, the skill can offer to fold the result into it. Installed tool packs
26
+ (groups of OAT skills you install with `oat tools install`) and repository
27
+ capabilities determine which destinations are available later.
28
+
29
+ **Example scenario:** Support keeps helping customers recover failed uploads,
30
+ but the team does not yet know whether to improve resumability, error
31
+ messages, or operating procedures. Explore the constraints and compare a few
32
+ approaches before deciding whether this needs a project at all. When you say
33
+ you are done, the skill offers the destinations available in your setup; you
34
+ might pick “Doc-to-path,” confirm `docs/brainstorms/import-recovery.md`, and
35
+ get a Markdown write-up of the approaches, the chosen direction, and the open
36
+ questions at that path, with nothing committed.
37
+
38
+ The skill asks focused questions, presents alternatives with trade-offs, and
39
+ helps establish a recommended direction. It does not treat brainstorming as
40
+ approval to implement code or scaffold a specification. If an active project
41
+ is relevant, it can offer to fold the result into that project or preserve it
42
+ as a reference; an independent idea remains an option. Fold-back writes the
43
+ synthesis into the project's design, discovery, or plan file and commits that
44
+ one file on your current branch (for a synced project, one whose files live in
45
+ a separate project checkout, it pushes that checkout with `oat project push`
46
+ instead). Saving a brainstorming reference file under the active project also
47
+ commits or pushes that file. Promoting to a new project runs
48
+ `oat project new`, which scaffolds the project and makes it your active
49
+ project, and then writes a completed `discovery.md` (or, for a lite project,
50
+ fills in its `plan.md`). Capturing a new idea also sets it as your active
51
+ idea in local OAT config. Each destination is confirmed before anything is
52
+ written.
53
+
54
+ **What it does without asking:** During the conversation it only reads: it
55
+ checks which tool packs are installed and whether a project is active. If the
56
+ topic is visual it offers, as a separate question, to start a local
57
+ browser-based visual companion; nothing starts unless you accept, and once
58
+ accepted it runs a small local Node server and keeps its session files under
59
+ `.oat/brainstorm/` (or `~/.oat/brainstorm/` at user scope). Nothing else is
60
+ written until you choose a destination and confirm its name, path, or target
61
+ file. After that confirmation the skill writes the destination and, for
62
+ fold-back or a project reference file, commits (or pushes, for a synced
63
+ project) without a further prompt. It does not write code or start the next
64
+ project phase.
65
+
66
+ **Expected output:** A shared understanding of the problem, candidate
67
+ approaches, and a confirmed next step. Depending on installed packs and your
68
+ choice, the result can be a closing summary in the conversation (no file), a
69
+ Markdown document at a path you name, a new or extended idea (`ideas` pack), a
70
+ backlog item (`project-management` pack), a new OAT project, or an update to
71
+ the active project (`workflows` pack). The destination is confirmed, not
72
+ selected merely because a pack is installed.
73
+
74
+ **Next step:** Choose where the result belongs and approve that handoff. For
75
+ an unresolved technical assumption, use [research](research.md) first. For a
76
+ direction ready to plan, choose the appropriate project workflow rather than
77
+ treating the brainstorming conversation as an executable plan.
@@ -0,0 +1,56 @@
1
+ ---
2
+ title: Diagnose Your OAT Setup
3
+ description: Inspect OAT configuration, repository adoption, instructions, documentation, and installed tools before choosing a repair.
4
+ ---
5
+
6
+ # Diagnose Your OAT Setup
7
+
8
+ ## oat-doctor
9
+
10
+ **Invocation:** `/oat-doctor` for the diagnostic sweep, or
11
+ `/oat-doctor --summary` for the compact tools/dashboard view. These are agent
12
+ instructions rather than shell commands; Codex uses `$oat-doctor`. The skill
13
+ is explicit-invocation only, so use the slash or `$` form rather than relying
14
+ on the agent to pick it when you describe the problem. Summary mode is not a
15
+ shortened run of every diagnostic area.
16
+
17
+ **Prerequisites:** Access to the repository and the OAT CLI available as
18
+ `oat` on your PATH. Needs an active OAT project: no. An uninitialized
19
+ repository can still receive bootstrap guidance; missing adoption (the
20
+ repository has not been set up for that OAT feature yet) is a finding, not
21
+ evidence that all checks passed.
22
+
23
+ **Example scenario:** A teammate installed a tool pack but cannot see its
24
+ skills in their provider. Run the full doctor sweep to distinguish installed
25
+ tools, configuration, and provider-instruction issues before reinstalling
26
+ anything. Pick the tools area when the report asks which area to explore, then
27
+ approve or run the fix it names. Use summary mode
28
+ later when you only need the tools/dashboard snapshot.
29
+
30
+ The full sweep covers configuration, project-management adoption, agent
31
+ instructions, documentation, and tools. The skill interprets diagnostic
32
+ findings rather than assuming a nonzero diagnostic exit means the entire tool
33
+ is broken. After the report, it asks which area to explore further (an area,
34
+ `all`, or `done`) and repeats until you choose `done`. Inspection is read-only
35
+ by default. In an interactive run, a specifically approved, supported repair
36
+ command can be executed once; a general request to diagnose is not approval
37
+ for updates, installation, or synchronization. Non-interactive and report-only
38
+ runs stop at the report.
39
+
40
+ **What it does without asking:** It runs read-only `oat` commands with JSON
41
+ output and reads configuration and instruction files. It writes, deletes, and
42
+ commits nothing, and starts no subagents. It runs a repair only after you
43
+ approve that exact command, and only if the command is one of `oat config set`,
44
+ `oat config unset`, `oat config adopt`, `oat pjm init`,
45
+ `oat instructions sync`, `oat tools update`, or `oat tools install`. It never
46
+ runs any other command, such as `oat sync` to refresh provider views; those
47
+ commands, and hand-offs to other skills, are yours to run.
48
+
49
+ **Expected output:** A diagnostic report explaining what is healthy, what is
50
+ missing or inconsistent, and which bounded action could address it. A report
51
+ does not itself establish that a proposed repair ran or that the provider has
52
+ reloaded the result.
53
+
54
+ **Next step:** Approve the exact repair you want, or investigate the reported
55
+ area separately. After a repair, rerun the relevant check and verify the
56
+ original symptom rather than relying only on command completion.