@open-agent-toolkit/cli 0.3.13 → 0.3.15
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/README.md +1 -1
- package/assets/bundle-metadata.json +1 -1
- package/assets/docs/contributing/index.md +14 -1
- package/assets/docs/contributing/markdown-features.md +38 -0
- package/assets/docs/contributing/skills.md +64 -2
- package/assets/docs/contributing/smoke-testing.md +23 -16
- package/assets/docs/contributing/updating-model-guidance.md +2 -2
- package/assets/docs/contributing/verifying-cursor-pins.md +1 -1
- package/assets/docs/docs-tooling/add-docs-to-a-repo.md +32 -0
- package/assets/docs/docs-tooling/agent-instructions.md +131 -0
- package/assets/docs/docs-tooling/index.md +1 -0
- package/assets/docs/docs-tooling/meta.json +1 -1
- package/assets/docs/docs-tooling/workflows.md +338 -2
- package/assets/docs/{cli-utilities → getting-started}/bootstrap.md +60 -5
- package/assets/docs/getting-started/concepts.md +120 -0
- package/assets/docs/getting-started/index.md +68 -0
- package/assets/docs/getting-started/meta.json +4 -0
- package/assets/docs/getting-started/quickstart.md +174 -0
- package/assets/docs/{cli-utilities → getting-started}/tool-packs.md +142 -14
- package/assets/docs/index.md +47 -48
- package/assets/docs/meta.json +6 -7
- package/assets/docs/provider-sync/commands.md +25 -2
- package/assets/docs/provider-sync/config.md +60 -1
- package/assets/docs/provider-sync/index.md +31 -15
- package/assets/docs/provider-sync/instruction-sync.md +32 -1
- package/assets/docs/provider-sync/manifest-and-drift.md +92 -0
- package/assets/docs/provider-sync/meta.json +1 -0
- package/assets/docs/provider-sync/pilot-with-a-team.md +236 -0
- package/assets/docs/provider-sync/scope-and-surface.md +37 -3
- package/assets/docs/reference/cli-reference.md +33 -33
- package/assets/docs/{cli-utilities → reference}/config-and-local-state.md +25 -9
- package/assets/docs/{cli-utilities → reference}/configuration.md +151 -34
- package/assets/docs/reference/file-locations.md +4 -1
- package/assets/docs/reference/index.md +13 -1
- package/assets/docs/reference/meta.json +7 -1
- package/assets/docs/reference/oat-directory-structure.md +1 -1
- package/assets/docs/{workflows/projects/artifacts.md → reference/project-artifacts.md} +4 -4
- package/assets/docs/{workflows/projects/state-machine.md → reference/project-state-machine.md} +28 -21
- package/assets/docs/{workflows/projects/repo-analysis.md → reference/repository-pr-comments.md} +2 -2
- package/assets/docs/reference/troubleshooting.md +125 -10
- package/assets/docs/reference/what-oat-writes.md +410 -0
- package/assets/docs/skills/brainstorm.md +77 -0
- package/assets/docs/skills/diagnostics.md +56 -0
- package/assets/docs/{workflows/skills → skills}/explainer-kit.md +121 -0
- package/assets/docs/skills/index.md +416 -0
- package/assets/docs/{workflows/skills → skills}/meta.json +4 -2
- package/assets/docs/{workflows/skills → skills}/recon.md +49 -0
- package/assets/docs/skills/repo-improve.md +254 -0
- package/assets/docs/skills/research.md +237 -0
- package/assets/docs/skills/session-closeout.md +61 -0
- package/assets/docs/workflows/advanced/autonomy.md +344 -0
- package/assets/docs/workflows/{projects → advanced}/cursor-cloud.md +69 -1
- package/assets/docs/workflows/{projects → advanced}/dispatch-ceiling.md +163 -18
- package/assets/docs/workflows/{projects → advanced}/evidence-layers.md +20 -13
- package/assets/docs/workflows/advanced/index.md +19 -0
- package/assets/docs/workflows/advanced/meta.json +13 -0
- package/assets/docs/workflows/{projects → advanced}/orchestration-model.md +108 -35
- package/assets/docs/workflows/{projects → advanced}/programmatic-execution.md +4 -4
- package/assets/docs/{cli-utilities → workflows/advanced}/workflow-gates.md +162 -8
- package/assets/docs/workflows/advanced/worktree-bootstrap.md +83 -0
- package/assets/docs/workflows/approvals-and-automation.md +261 -0
- package/assets/docs/workflows/backlog-and-planning/backlog-lifecycle.md +348 -0
- package/assets/docs/workflows/backlog-and-planning/index.md +13 -0
- package/assets/docs/workflows/backlog-and-planning/meta.json +4 -0
- package/assets/docs/workflows/backlog-and-planning/remote-project-management.md +303 -0
- package/assets/docs/workflows/choose-workflow.md +114 -0
- package/assets/docs/workflows/ideas/index.md +3 -3
- package/assets/docs/workflows/ideas/lifecycle.md +225 -1
- package/assets/docs/workflows/index.md +11 -62
- package/assets/docs/workflows/meta.json +10 -2
- package/assets/docs/workflows/projects/closeout/closeout-skills.md +538 -0
- package/assets/docs/workflows/projects/closeout/index.md +14 -0
- package/assets/docs/workflows/projects/closeout/meta.json +4 -0
- package/assets/docs/workflows/projects/{pr-flow.md → closeout/pr-flow.md} +1 -1
- package/assets/docs/workflows/projects/{retro.md → closeout/retro.md} +1 -1
- package/assets/docs/workflows/projects/execution/execution-skills.md +258 -0
- package/assets/docs/workflows/projects/{implementation-execution.md → execution/implementation-execution.md} +52 -38
- package/assets/docs/workflows/projects/execution/index.md +15 -0
- package/assets/docs/workflows/projects/execution/meta.json +9 -0
- package/assets/docs/workflows/projects/execution/picking-up-projects.md +376 -0
- package/assets/docs/{cli-utilities → workflows/projects/execution}/project-log.md +1 -1
- package/assets/docs/workflows/projects/index.md +38 -49
- package/assets/docs/workflows/projects/lifecycle.md +159 -74
- package/assets/docs/workflows/projects/meta.json +2 -23
- package/assets/docs/workflows/projects/{design-modes.md → planning/design-modes.md} +29 -0
- package/assets/docs/workflows/projects/planning/hill-checkpoints.md +167 -0
- package/assets/docs/workflows/projects/planning/index.md +16 -0
- package/assets/docs/workflows/projects/planning/meta.json +10 -0
- package/assets/docs/workflows/projects/planning/planning-skills.md +381 -0
- package/assets/docs/workflows/projects/{splitting.md → planning/splitting.md} +3 -3
- package/assets/docs/workflows/projects/planning/starting-projects.md +511 -0
- package/assets/docs/workflows/projects/{reviews.md → reviews/index.md} +51 -5
- package/assets/docs/workflows/projects/reviews/meta.json +4 -0
- package/assets/docs/workflows/projects/reviews/review-flavors.md +650 -0
- package/assets/docs/workflows/projects/{reviewing-oat-prs.md → reviews/reviewing-oat-prs.md} +3 -3
- package/assets/docs/workflows/waves/index.md +12 -0
- package/assets/docs/workflows/waves/meta.json +4 -0
- package/assets/docs/workflows/waves/wave-workflows.md +206 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-docs/SKILL.md +19 -19
- package/assets/skills/oat-docs-analyze/SKILL.md +1 -1
- package/assets/skills/oat-docs-apply/SKILL.md +1 -1
- package/assets/skills/oat-docs-authoring/SKILL.md +1 -1
- package/assets/skills/oat-docs-bootstrap/SKILL.md +1 -1
- package/assets/skills/oat-doctor/SKILL.md +25 -25
- package/assets/templates/docs-app-fuma/app/[[...slug]]/page.tsx +14 -2
- package/assets/templates/docs-app-fuma/app/globals.css +1 -0
- package/dist/release/public-package-contract.js +1 -1
- package/package.json +2 -2
- package/assets/docs/cli-utilities/backlog-lifecycle.md +0 -80
- package/assets/docs/cli-utilities/index.md +0 -74
- package/assets/docs/cli-utilities/meta.json +0 -13
- package/assets/docs/cli-utilities/remote-project-management.md +0 -191
- package/assets/docs/guide/concepts.md +0 -88
- package/assets/docs/guide/index.md +0 -31
- package/assets/docs/guide/meta.json +0 -4
- package/assets/docs/quickstart.md +0 -88
- package/assets/docs/workflows/projects/autonomy.md +0 -196
- package/assets/docs/workflows/projects/hill-checkpoints.md +0 -93
- package/assets/docs/workflows/projects/picking-up-projects.md +0 -124
- package/assets/docs/workflows/projects/review-flavors.md +0 -138
- package/assets/docs/workflows/skills/index.md +0 -184
- package/assets/docs/workflows/skills/repo-improve.md +0 -89
- package/assets/docs/workflows/wave-workflows.md +0 -77
|
@@ -5,16 +5,99 @@ description: 'Common issues and fixes for skills visibility, worktrees, sync, an
|
|
|
5
5
|
|
|
6
6
|
# Troubleshooting
|
|
7
7
|
|
|
8
|
+
The commands on this page use the installed `oat` command. A few entries also
|
|
9
|
+
give a `pnpm run ...` form; those work only inside a checkout of the OAT source
|
|
10
|
+
repository and are labelled that way.
|
|
11
|
+
|
|
8
12
|
## Skills not visible in host UI
|
|
9
13
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
14
|
+
A skill shows up in your coding tool only when two things are true: the skill
|
|
15
|
+
is installed (a folder with a `SKILL.md` under `.agents/skills/` in this
|
|
16
|
+
repository, or under `~/.agents/skills/` in your home directory), and the
|
|
17
|
+
tool can read it. Some tools, such as Claude Code, read a provider view: a
|
|
18
|
+
link or copy that OAT creates in the tool's own folder, such as
|
|
19
|
+
`.claude/skills`. Others, such as Cursor, read `.agents/skills` directly.
|
|
20
|
+
|
|
21
|
+
**Diagnose first.** These commands only read; they change nothing.
|
|
22
|
+
|
|
23
|
+
1. Check whether the skill is installed, and where:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
oat tools info <skill-name>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
It prints the skill's pack, its scope (`project` for this repository,
|
|
30
|
+
`user` for your home directory) and its status, then a "Provider views"
|
|
31
|
+
block for each scope with one row per coding tool.
|
|
32
|
+
- `Tool '<skill-name>' not found.` means the skill is not installed at
|
|
33
|
+
either scope. Install the pack that contains it (see the fixes below), or
|
|
34
|
+
create the skill at `.agents/skills/<skill-name>/SKILL.md`. To see every
|
|
35
|
+
installed skill with its pack and scope, run `oat tools list`.
|
|
36
|
+
- `in-sync` on your tool's row means its view of the skill is in place, so
|
|
37
|
+
go to the last fix step and start a new session.
|
|
38
|
+
- `missing-additive`, `removed` or `modified` means your tool's view is
|
|
39
|
+
absent or out of date. The block ends with a `Repair:` line that gives
|
|
40
|
+
the exact `oat sync --scope ...` command to run.
|
|
41
|
+
- `inactive` means that tool is not active at that scope, so OAT creates
|
|
42
|
+
no view for it. Enable it, as shown in the fixes below.
|
|
43
|
+
|
|
44
|
+
2. Check whether the repository's provider views are in sync:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
oat status --scope project
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Each row names a tool and a skill. `✓ in_sync` means the view is in place.
|
|
51
|
+
`✗ missing provider entry missing` means the view has not been created
|
|
52
|
+
yet; `oat sync` creates it. `No managed entries found.` means OAT manages
|
|
53
|
+
no provider views in this repository, which usually means no tool that
|
|
54
|
+
needs views is enabled. Run `oat providers list --scope project` to see
|
|
55
|
+
which tools are enabled or detected.
|
|
56
|
+
|
|
57
|
+
**Then fix**, always with an explicit scope:
|
|
58
|
+
|
|
59
|
+
- Enable the tool if step 1 or 2 showed it is not active, for example
|
|
60
|
+
`oat providers set --scope project --enabled claude`.
|
|
61
|
+
- For skills in this repository (`.agents/skills`), preview and then
|
|
62
|
+
regenerate the provider views:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
oat sync --scope project --dry-run
|
|
66
|
+
oat sync --scope project
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
- For skills installed at user scope (`~/.agents/skills`, where a tool pack
|
|
70
|
+
installs when you give no `--scope`), run `oat sync --scope user`. This
|
|
71
|
+
writes provider views in your home directory, such as `~/.claude/skills`.
|
|
72
|
+
- If the skill comes from a pack that is not installed, install that pack with
|
|
73
|
+
an explicit scope, for example `oat tools install research --scope project`
|
|
74
|
+
(this repository) or `oat tools install research --scope user` (your home
|
|
75
|
+
directory). If you installed a pack with `--no-sync`, running the install
|
|
76
|
+
again does not create the views; run `oat sync` for that scope instead.
|
|
77
|
+
- Reload the tool or start a new session: most tools read their skill list
|
|
78
|
+
when a session starts.
|
|
79
|
+
- If your repository's `AGENTS.md` names skills or packs, check that it
|
|
80
|
+
matches what `oat tools list` reports. The `<!-- OAT tools -->` block that
|
|
81
|
+
`--project-guidance` writes lists the installed packs and the folders
|
|
82
|
+
agents should scan for skills; it does not list each skill.
|
|
83
|
+
- If you are working in the OAT source repository: run
|
|
84
|
+
`pnpm run cli -- sync --scope all`, which runs the CLI from source and syncs
|
|
85
|
+
both project and user scope.
|
|
13
86
|
|
|
14
87
|
## Worktree checkout missing provider links
|
|
15
88
|
|
|
16
|
-
-
|
|
17
|
-
|
|
89
|
+
- In the new worktree, run `oat sync --scope project` to recreate the
|
|
90
|
+
project's provider views. Add `--dry-run` first to preview.
|
|
91
|
+
- To prepare the whole worktree, including local-only files and the
|
|
92
|
+
repository's setup and readiness checks, invoke
|
|
93
|
+
`/oat-worktree-bootstrap --existing` in your coding agent. See
|
|
94
|
+
[Worktree bootstrap](../workflows/advanced/worktree-bootstrap.md).
|
|
95
|
+
- If you are working in the OAT source repository: run
|
|
96
|
+
`pnpm run worktree:init`. This command copies local-only files from the main
|
|
97
|
+
worktree, installs dependencies, configures Git hooks, builds the workspace,
|
|
98
|
+
and runs `oat sync` with no scope flag. A bare `oat sync` uses
|
|
99
|
+
`--scope all`, so it refreshes user-scope provider views in your home
|
|
100
|
+
directory as well as the project's.
|
|
18
101
|
|
|
19
102
|
## Codex appears detected but no skill sync actions are listed
|
|
20
103
|
|
|
@@ -85,12 +168,18 @@ Use [Instruction Sync](../provider-sync/instruction-sync.md) for the full strate
|
|
|
85
168
|
|
|
86
169
|
## `doctor` warns about canonical directories
|
|
87
170
|
|
|
88
|
-
- Run `oat init` for the relevant scope.
|
|
171
|
+
- Run `oat init` for the relevant scope. The check's name says which scope is
|
|
172
|
+
missing directories: for `project:canonical_directories` run
|
|
173
|
+
`oat init --scope project`, and for `user:canonical_directories` run
|
|
174
|
+
`oat init --scope user`. A bare `oat init` initializes both.
|
|
89
175
|
- Re-run `oat doctor` after initialization.
|
|
90
176
|
|
|
91
177
|
## `doctor` warns about outdated installed OAT skills
|
|
92
178
|
|
|
93
|
-
- Run `oat
|
|
179
|
+
- Run `oat tools update --pack <pack> --scope <project|user>` to update an
|
|
180
|
+
installed pack, or `oat tools install <pack> --scope <project|user>` to
|
|
181
|
+
install one. The older form `oat init tools` is a legacy command that still
|
|
182
|
+
installs or updates the bundled tool packs.
|
|
94
183
|
- In TTY mode, select which outdated skills to update when prompted.
|
|
95
184
|
- In non-interactive mode, run the scoped command doctor prints:
|
|
96
185
|
`oat tools update --pack <pack> --scope <scope>`.
|
|
@@ -212,7 +301,7 @@ Both commands report managed pack state with a scoped recovery command:
|
|
|
212
301
|
contract and does not clear this finding. `oat tools update` cannot fix it.
|
|
213
302
|
Enable a provider with `oat providers set --scope user --enabled <provider>`
|
|
214
303
|
and run `oat sync --scope user`; reinstalling at project scope is not
|
|
215
|
-
required. See [Tool packs](../
|
|
304
|
+
required. See [Tool packs](../getting-started/tool-packs.md) for how
|
|
216
305
|
user-scope agents reach each provider.
|
|
217
306
|
|
|
218
307
|
## `status` or `doctor` reports `packs:inventory`
|
|
@@ -229,7 +318,21 @@ and the home root becomes `~` when user scope is checked. Redaction is a literal
|
|
|
229
318
|
replacement of those exact root paths, so a path outside them, such as a global
|
|
230
319
|
bundle path in an assets error, stays absolute in the message.
|
|
231
320
|
|
|
232
|
-
|
|
321
|
+
With an installed CLI, reinstall it so its bundled assets are complete and
|
|
322
|
+
match the CLI version, then rerun the command named in the diagnostic. If you
|
|
323
|
+
set `OAT_ASSETS_DIR`, point it at a complete asset bundle built for this CLI
|
|
324
|
+
version, or unset it to use the bundled copy.
|
|
325
|
+
|
|
326
|
+
```bash
|
|
327
|
+
npm install --global @open-agent-toolkit/cli
|
|
328
|
+
oat status # or: oat doctor
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
The diagnostic's own recovery line says to run `pnpm build`. That applies only
|
|
332
|
+
when you run the CLI from a checkout of the OAT source repository.
|
|
333
|
+
|
|
334
|
+
If you are working in the OAT source repository: rebuild the CLI workspace,
|
|
335
|
+
then rerun the command named in the diagnostic:
|
|
233
336
|
|
|
234
337
|
```bash
|
|
235
338
|
pnpm build
|
|
@@ -373,7 +476,11 @@ failure, which is intentional — you asked for a scope that does not exist here
|
|
|
373
476
|
|
|
374
477
|
## Manifest not found or invalid
|
|
375
478
|
|
|
376
|
-
- Missing manifest: run `sync` or `init
|
|
479
|
+
- Missing manifest: run `sync` or `init`. For the repository's manifest
|
|
480
|
+
(`.oat/sync/manifest.json`), use `oat sync --scope project` or
|
|
481
|
+
`oat init --scope project`; without `--scope`, both commands also write to
|
|
482
|
+
your home directory. For the user manifest (`~/.oat/sync/manifest.json`),
|
|
483
|
+
use `--scope user`.
|
|
377
484
|
- Invalid manifest: repair/remove file and rerun
|
|
378
485
|
|
|
379
486
|
## Status/output mismatches with lifecycle expectations
|
|
@@ -405,10 +512,18 @@ package.
|
|
|
405
512
|
|
|
406
513
|
## Reference artifacts
|
|
407
514
|
|
|
515
|
+
In your own repository, these project files hold the evidence most entries on
|
|
516
|
+
this page refer to:
|
|
517
|
+
|
|
408
518
|
- `.oat/projects/<scope>/<project>/implementation.md`
|
|
409
519
|
- `.oat/projects/<scope>/<project>/reviews/`
|
|
410
520
|
- `.oat/projects/<scope>/<project>/explainers/<slug>/manifest.json`
|
|
411
521
|
- `.oat/projects/<scope>/<project>/explainers/<slug>/qa/result.json`
|
|
522
|
+
|
|
523
|
+
If you are working on OAT itself, in a checkout of the OAT source repository,
|
|
524
|
+
the checks behind `oat doctor`, `oat status` and `oat instructions` live in
|
|
525
|
+
these source files:
|
|
526
|
+
|
|
412
527
|
- `packages/cli/src/commands/doctor/index.ts`
|
|
413
528
|
- `packages/cli/src/commands/status/index.ts`
|
|
414
529
|
- `packages/cli/src/commands/tools/shared/pack-inventory.ts`
|
|
@@ -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)
|