@open-agent-toolkit/cli 0.2.36 → 0.2.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/bundle-metadata.json +1 -1
- package/assets/docs/cli-utilities/backlog-lifecycle.md +18 -0
- package/assets/docs/cli-utilities/bootstrap.md +6 -3
- package/assets/docs/cli-utilities/config-and-local-state.md +26 -12
- package/assets/docs/cli-utilities/configuration.md +36 -13
- package/assets/docs/cli-utilities/tool-packs.md +423 -51
- package/assets/docs/provider-sync/scope-and-surface.md +4 -1
- package/assets/docs/reference/cli-reference.md +5 -3
- package/assets/docs/reference/file-locations.md +28 -4
- package/assets/docs/reference/troubleshooting.md +132 -2
- package/assets/docs/workflows/projects/lifecycle.md +21 -2
- package/assets/public-package-versions.json +4 -4
- package/assets/scripts/generate-oat-state.sh +441 -0
- package/assets/scripts/generate-thin-index.sh +200 -0
- package/assets/skills/oat-agent-instructions-analyze/SKILL.md +10 -5
- package/assets/skills/oat-agent-instructions-apply/SKILL.md +30 -5
- package/assets/skills/oat-brainstorm/SKILL.md +34 -8
- package/assets/skills/oat-brainstorm/references/destinations.md +6 -1
- package/assets/skills/oat-docs-analyze/SKILL.md +9 -4
- package/assets/skills/oat-docs-apply/SKILL.md +6 -3
- package/assets/skills/oat-pjm-add-backlog-item/SKILL.md +14 -1
- package/assets/skills/oat-pjm-decision/SKILL.md +22 -10
- package/assets/skills/oat-pjm-review-backlog/SKILL.md +20 -3
- package/assets/skills/oat-pjm-update-repo-reference/SKILL.md +20 -10
- package/assets/skills/oat-project-autonomous/references/gate-inventory.md +1 -1
- package/assets/skills/oat-project-document/SKILL.md +21 -3
- package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +1 -1
- package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +1 -1
- package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +1 -1
- package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +1 -1
- package/assets/skills/oat-project-summary/SKILL.md +23 -11
- package/assets/skills/oat-repo-knowledge-index/SKILL.md +6 -3
- package/dist/commands/backlog/index.d.ts +2 -0
- package/dist/commands/backlog/index.d.ts.map +1 -1
- package/dist/commands/backlog/index.js +67 -23
- package/dist/commands/backlog/new.d.ts +3 -0
- package/dist/commands/backlog/new.d.ts.map +1 -1
- package/dist/commands/backlog/new.js +8 -21
- package/dist/commands/decision/agents-guidance.d.ts.map +1 -1
- package/dist/commands/decision/agents-guidance.js +2 -1
- package/dist/commands/decision/index.d.ts +2 -0
- package/dist/commands/decision/index.d.ts.map +1 -1
- package/dist/commands/decision/index.js +19 -3
- package/dist/commands/decision/new.d.ts +4 -0
- package/dist/commands/decision/new.d.ts.map +1 -1
- package/dist/commands/decision/new.js +11 -30
- package/dist/commands/doctor/index.d.ts +4 -0
- package/dist/commands/doctor/index.d.ts.map +1 -1
- package/dist/commands/doctor/index.js +254 -9
- package/dist/commands/init/tools/brainstorm/index.d.ts.map +1 -1
- package/dist/commands/init/tools/brainstorm/index.js +20 -6
- package/dist/commands/init/tools/docs/index.d.ts.map +1 -1
- package/dist/commands/init/tools/docs/index.js +4 -1
- package/dist/commands/init/tools/ideas/index.d.ts.map +1 -1
- package/dist/commands/init/tools/ideas/index.js +4 -1
- package/dist/commands/init/tools/index.d.ts +11 -2
- package/dist/commands/init/tools/index.d.ts.map +1 -1
- package/dist/commands/init/tools/index.js +459 -351
- package/dist/commands/init/tools/install-state.d.ts +2 -0
- package/dist/commands/init/tools/install-state.d.ts.map +1 -1
- package/dist/commands/init/tools/install-state.js +11 -0
- package/dist/commands/init/tools/project-management/agents-guidance.d.ts.map +1 -1
- package/dist/commands/init/tools/project-management/agents-guidance.js +3 -1
- package/dist/commands/init/tools/project-management/index.d.ts +1 -0
- package/dist/commands/init/tools/project-management/index.d.ts.map +1 -1
- package/dist/commands/init/tools/project-management/index.js +24 -55
- package/dist/commands/init/tools/project-management/install-project-management.d.ts +4 -0
- package/dist/commands/init/tools/project-management/install-project-management.d.ts.map +1 -1
- package/dist/commands/init/tools/project-management/install-project-management.js +4 -1
- package/dist/commands/init/tools/research/index.d.ts.map +1 -1
- package/dist/commands/init/tools/research/index.js +4 -1
- package/dist/commands/init/tools/shared/copy-helpers.d.ts.map +1 -1
- package/dist/commands/init/tools/shared/copy-helpers.js +10 -0
- package/dist/commands/init/tools/shared/skill-manifest.d.ts +15 -15
- package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -1
- package/dist/commands/init/tools/shared/skill-manifest.js +17 -122
- package/dist/commands/init/tools/utility/index.d.ts.map +1 -1
- package/dist/commands/init/tools/utility/index.js +4 -1
- package/dist/commands/init/tools/workflows/index.d.ts.map +1 -1
- package/dist/commands/init/tools/workflows/index.js +4 -1
- package/dist/commands/init/tools/workflows/install-workflows.d.ts.map +1 -1
- package/dist/commands/init/tools/workflows/install-workflows.js +2 -4
- package/dist/commands/pjm/adoption.d.ts +12 -0
- package/dist/commands/pjm/adoption.d.ts.map +1 -0
- package/dist/commands/pjm/adoption.js +47 -0
- package/dist/commands/pjm/doctor.d.ts +3 -2
- package/dist/commands/pjm/doctor.d.ts.map +1 -1
- package/dist/commands/pjm/doctor.js +28 -13
- package/dist/commands/pjm/index.d.ts +2 -0
- package/dist/commands/pjm/index.d.ts.map +1 -1
- package/dist/commands/pjm/index.js +11 -3
- package/dist/commands/pjm/init.d.ts +3 -0
- package/dist/commands/pjm/init.d.ts.map +1 -1
- package/dist/commands/pjm/init.js +37 -32
- package/dist/commands/pjm/migrate.d.ts +1 -0
- package/dist/commands/pjm/migrate.d.ts.map +1 -1
- package/dist/commands/pjm/migrate.js +1 -0
- package/dist/commands/pjm/template-source.d.ts +14 -0
- package/dist/commands/pjm/template-source.d.ts.map +1 -0
- package/dist/commands/pjm/template-source.js +56 -0
- package/dist/commands/remove/skills/remove-skills.d.ts.map +1 -1
- package/dist/commands/remove/skills/remove-skills.js +10 -19
- package/dist/commands/status/index.d.ts +5 -0
- package/dist/commands/status/index.d.ts.map +1 -1
- package/dist/commands/status/index.js +203 -2
- package/dist/commands/sync/index.d.ts.map +1 -1
- package/dist/commands/sync/index.js +40 -7
- package/dist/commands/sync/sync.types.d.ts +4 -0
- package/dist/commands/sync/sync.types.d.ts.map +1 -1
- package/dist/commands/tools/has/has-pack.d.ts +11 -2
- package/dist/commands/tools/has/has-pack.d.ts.map +1 -1
- package/dist/commands/tools/has/has-pack.js +33 -20
- package/dist/commands/tools/index.d.ts.map +1 -1
- package/dist/commands/tools/index.js +3 -1
- package/dist/commands/tools/info/info-tool.d.ts +3 -0
- package/dist/commands/tools/info/info-tool.d.ts.map +1 -1
- package/dist/commands/tools/info/info-tool.js +29 -4
- package/dist/commands/tools/list/list-tools.d.ts +3 -0
- package/dist/commands/tools/list/list-tools.d.ts.map +1 -1
- package/dist/commands/tools/list/list-tools.js +31 -4
- package/dist/commands/tools/migrate/index.d.ts +26 -0
- package/dist/commands/tools/migrate/index.d.ts.map +1 -0
- package/dist/commands/tools/migrate/index.js +312 -0
- package/dist/commands/tools/migrate/migrate-pack.d.ts +81 -0
- package/dist/commands/tools/migrate/migrate-pack.d.ts.map +1 -0
- package/dist/commands/tools/migrate/migrate-pack.js +324 -0
- package/dist/commands/tools/outdated/outdated-tools.d.ts +11 -0
- package/dist/commands/tools/outdated/outdated-tools.d.ts.map +1 -1
- package/dist/commands/tools/outdated/outdated-tools.js +33 -5
- package/dist/commands/tools/remove/index.d.ts.map +1 -1
- package/dist/commands/tools/remove/index.js +73 -20
- package/dist/commands/tools/remove/remove-tools.d.ts +28 -0
- package/dist/commands/tools/remove/remove-tools.d.ts.map +1 -1
- package/dist/commands/tools/remove/remove-tools.js +156 -26
- package/dist/commands/tools/shared/apply-pack-reconcile.d.ts +41 -0
- package/dist/commands/tools/shared/apply-pack-reconcile.d.ts.map +1 -0
- package/dist/commands/tools/shared/apply-pack-reconcile.js +126 -0
- package/dist/commands/tools/shared/auto-sync.d.ts +5 -2
- package/dist/commands/tools/shared/auto-sync.d.ts.map +1 -1
- package/dist/commands/tools/shared/auto-sync.js +1 -0
- package/dist/commands/tools/shared/content-digest.d.ts +3 -0
- package/dist/commands/tools/shared/content-digest.d.ts.map +1 -0
- package/dist/commands/tools/shared/content-digest.js +57 -0
- package/dist/commands/tools/shared/format-pack-inventory.d.ts +3 -0
- package/dist/commands/tools/shared/format-pack-inventory.d.ts.map +1 -0
- package/dist/commands/tools/shared/format-pack-inventory.js +21 -0
- package/dist/commands/tools/shared/install-sync-context.d.ts.map +1 -1
- package/dist/commands/tools/shared/install-sync-context.js +2 -25
- package/dist/commands/tools/shared/pack-inventory.d.ts +46 -0
- package/dist/commands/tools/shared/pack-inventory.d.ts.map +1 -0
- package/dist/commands/tools/shared/pack-inventory.js +207 -0
- package/dist/commands/tools/shared/pack-lifecycle.d.ts +34 -0
- package/dist/commands/tools/shared/pack-lifecycle.d.ts.map +1 -0
- package/dist/commands/tools/shared/pack-lifecycle.js +67 -0
- package/dist/commands/tools/shared/pack-manifest.d.ts +11 -0
- package/dist/commands/tools/shared/pack-manifest.d.ts.map +1 -0
- package/dist/commands/tools/shared/pack-manifest.js +384 -0
- package/dist/commands/tools/shared/pack-paths.d.ts +21 -0
- package/dist/commands/tools/shared/pack-paths.d.ts.map +1 -0
- package/dist/commands/tools/shared/pack-paths.js +35 -0
- package/dist/commands/tools/shared/pack-reconcile.d.ts +64 -0
- package/dist/commands/tools/shared/pack-reconcile.d.ts.map +1 -0
- package/dist/commands/tools/shared/pack-reconcile.js +158 -0
- package/dist/commands/tools/shared/project-tools-config.d.ts.map +1 -1
- package/dist/commands/tools/shared/project-tools-config.js +12 -38
- package/dist/commands/tools/shared/scan-tools.js +2 -2
- package/dist/commands/tools/shared/scoped-pack-intent.d.ts +34 -0
- package/dist/commands/tools/shared/scoped-pack-intent.d.ts.map +1 -0
- package/dist/commands/tools/shared/scoped-pack-intent.js +116 -0
- package/dist/commands/tools/shared/types.d.ts +22 -0
- package/dist/commands/tools/shared/types.d.ts.map +1 -1
- package/dist/commands/tools/update/index.d.ts.map +1 -1
- package/dist/commands/tools/update/index.js +30 -5
- package/dist/commands/tools/update/update-tools.d.ts +9 -1
- package/dist/commands/tools/update/update-tools.d.ts.map +1 -1
- package/dist/commands/tools/update/update-tools.js +176 -64
- package/dist/config/oat-config.d.ts +6 -0
- package/dist/config/oat-config.d.ts.map +1 -1
- package/dist/config/oat-config.js +49 -20
- package/dist/fs/paths.d.ts +12 -0
- package/dist/fs/paths.d.ts.map +1 -1
- package/dist/fs/paths.js +87 -1
- package/package.json +2 -2
|
@@ -17,6 +17,7 @@ This capability is intentionally independent from OAT workflow artifacts. Teams
|
|
|
17
17
|
- Cursor's `.cursor/skills` and `~/.cursor/skills` directories are provider-local extension and adoption surfaces, not managed output directories.
|
|
18
18
|
- Copilot's legacy `.github/skills` and `~/.copilot/skills` directories are adoption sources, not managed output directories. Copilot agents and project rules still use `.github/agents`, `~/.copilot/agents`, and `.github/instructions` provider views.
|
|
19
19
|
- Manifest tracking: `.oat/sync/manifest.json` (project) and `~/.oat/sync/manifest.json` (user)
|
|
20
|
+
- Canonical skills and agents installed by OAT tool packs exist at both scopes: `.agents/skills`, `.agents/agents` for project scope, and `~/.agents/skills`, `~/.agents/agents` for user scope. Every reusable pack defaults to user scope on a fresh install, so user-scope canonical content is the common case rather than the exception.
|
|
20
21
|
|
|
21
22
|
Rules are currently project-scoped canonical content. Unlike skills and agents, synced rule files for Claude, Cursor, and Copilot are rendered copies with provider-specific frontmatter and filename extensions.
|
|
22
23
|
|
|
@@ -30,6 +31,8 @@ Rules are currently project-scoped canonical content. Unlike skills and agents,
|
|
|
30
31
|
- Obsolete managed mappings are deleted only when their provider paths are verified clean; changed or unverified paths are preserved and detached from manifest ownership
|
|
31
32
|
- Canonical `.agents/agents` is source of truth for subagents; provider views are derived
|
|
32
33
|
- Canonical `.agents/rules` is source of truth for rules; provider rule files are derived rendered copies
|
|
34
|
+
- Each scope syncs independently. When the same canonical asset exists at both project and user scope, OAT reports the duplication with both paths and versions and does **not** infer which copy a provider executes; resolve it explicitly with `oat tools migrate`
|
|
35
|
+
- Pack removal and migration drive a symmetric removal sync: the exact canonical paths that were removed are pruned from provider views in that scope only, and only after the canonical source is confirmed absent
|
|
33
36
|
|
|
34
37
|
## Implemented command surface
|
|
35
38
|
|
|
@@ -43,7 +46,7 @@ Rules are currently project-scoped canonical content. Unlike skills and agents,
|
|
|
43
46
|
## Adjacent CLI commands (commonly used with provider interop)
|
|
44
47
|
|
|
45
48
|
- `oat init` (bootstrap canonical structure and sync config) — see `../cli-utilities/bootstrap.md`
|
|
46
|
-
- `oat tools ...` (install/update/remove/list/inspect tools) — see `../cli-utilities/tool-packs.md`
|
|
49
|
+
- `oat tools ...` (install/update/remove/migrate/list/inspect tools) — see `../cli-utilities/tool-packs.md`
|
|
47
50
|
- `oat doctor` (environment + skill-version diagnostics) — see `../reference/cli-reference.md`
|
|
48
51
|
|
|
49
52
|
## Provider enablement model
|
|
@@ -12,7 +12,7 @@ The CLI is also a standalone value path. You can use `oat init`, `oat sync`, `oa
|
|
|
12
12
|
## Contents
|
|
13
13
|
|
|
14
14
|
- [CLI Bootstrap](../cli-utilities/bootstrap.md) - Bootstrap a repo with `oat init`, guided setup, and initial provider adoption.
|
|
15
|
-
- [Tool Packs](../cli-utilities/tool-packs.md) - Install, update, inspect, and remove bundled OAT skills and agents.
|
|
15
|
+
- [Tool Packs](../cli-utilities/tool-packs.md) - Install, update, inspect, migrate, and remove bundled OAT skills and agents at project or user scope.
|
|
16
16
|
- [Config and Local State](../cli-utilities/config-and-local-state.md) - Config, backlog, local paths, diagnostics, and related utility commands.
|
|
17
17
|
- [Workflow Gates](../cli-utilities/workflow-gates.md) - Per-skill final commands, review gates, and cross-runtime prompt dispatch.
|
|
18
18
|
- [Docs Tooling Commands](../docs-tooling/commands.md) - Docs app scaffolding, migration, index generation, and nav sync.
|
|
@@ -41,8 +41,8 @@ The first practical expansion path is to keep improving the existing owners: [Do
|
|
|
41
41
|
| Command group | What it covers | Go deeper |
|
|
42
42
|
| ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
|
|
43
43
|
| `oat init` | Bootstrap canonical OAT directories, sync config, optional hooks, and guided setup. | [CLI Bootstrap](../cli-utilities/bootstrap.md) |
|
|
44
|
-
| `oat tools ...` | Install, inspect, update, and
|
|
45
|
-
| `oat pjm ...` |
|
|
44
|
+
| `oat tools ...` | Install, inspect, update, remove, and migrate bundled OAT tool packs and assets across project and user scope. | [Tool Packs](../cli-utilities/tool-packs.md) |
|
|
45
|
+
| `oat pjm ...` | Adopt PJM for a repository and record it (`init`), run read-only adoption and reference diagnostics (`doctor`), and migrate legacy layouts to `pjm/` + `reference/` (`migrate`). Adoption is separate from pack placement. | [Install vs. initialize](../cli-utilities/tool-packs.md#install-vs-initialize) |
|
|
46
46
|
| `oat decision ...` | Create, index, and migrate file-per-record repo decisions under `reference/decisions/` (`init`, `new`, `regenerate-index`, `migrate`). | [Config and Local State](../cli-utilities/config-and-local-state.md#oat-decision-) |
|
|
47
47
|
| `oat backlog ...` / `oat local ...` | File-backed backlog helpers, local path sync, and local-only operational support. | [Config and Local State](../cli-utilities/config-and-local-state.md) |
|
|
48
48
|
| `oat config ...` / `oat instructions ...` | Config discovery, source-aware config dumps, supported mutations, and instruction-integrity helpers. | [Config and Local State](../cli-utilities/config-and-local-state.md) |
|
|
@@ -56,6 +56,8 @@ The first practical expansion path is to keep improving the existing owners: [Do
|
|
|
56
56
|
|
|
57
57
|
Notable commands introduced in the current CLI surface:
|
|
58
58
|
|
|
59
|
+
- `oat tools migrate --pack <pack> --from <scope> --to <scope>` - move one installed pack between project and user scope. Always previews first, installs and re-inventories the destination before touching the source, and offers source removal only after the destination is verified complete. Declining or running non-interactively leaves the pack installed at both scopes rather than failing. `--dry-run` stops after the preview; there is no force flag. See [Tool Packs](../cli-utilities/tool-packs.md#oat-tools-migrate).
|
|
60
|
+
- `oat pjm doctor --json` - read-only repository PJM diagnostics whose result carries an additive `adoption` object (`state` of `declared` | `inferred-legacy` | `partial-initialization` | `none`, `repoRoot`, and `recovery`). This, not `oat tools has project-management`, is the check that answers whether _this repository_ adopted PJM.
|
|
59
61
|
- `oat config dump --json` - merged config with source attribution
|
|
60
62
|
- `oat project status --json` - full parsed state for the active tracked project. **Stable contract for skills:** the JSON output is a typed read interface for OAT skills; the field set consumed by migrated skills is locked by `MIGRATED_FIELDS` in `packages/cli/src/commands/project/status.test.ts`. Removing or renaming any of `project.{name, path, phase, phaseStatus, workflowMode, docsUpdated, lastCommit, prStatus, prUrl}` is a breaking change and will fail the contract test.
|
|
61
63
|
- `oat project status --field <path>` - print one arbitrary dot-path field from the same status payload, e.g. `project.workflowMode` or `project.timestamps.stateUpdated`. Missing/null fields print `null`; object and array fields print compact JSON.
|
|
@@ -11,9 +11,9 @@ For detailed `.oat/` tree semantics, see:
|
|
|
11
11
|
|
|
12
12
|
## Canonical agent assets
|
|
13
13
|
|
|
14
|
-
- Skills: `.agents/skills/`
|
|
15
|
-
- Agents/subagents: `.agents/agents/`
|
|
16
|
-
- Rules: `.agents/rules/`
|
|
14
|
+
- Skills: `.agents/skills/` (project) and `~/.agents/skills/` (user)
|
|
15
|
+
- Agents/subagents: `.agents/agents/` (project) and `~/.agents/agents/` (user)
|
|
16
|
+
- Rules: `.agents/rules/` (project only)
|
|
17
17
|
- Cursor reads project skills directly from `.agents/skills/` and user skills
|
|
18
18
|
directly from `~/.agents/skills/`. `.cursor/skills/` remains a Cursor-only
|
|
19
19
|
extension and adoption surface, not generated output.
|
|
@@ -23,6 +23,29 @@ For detailed `.oat/` tree semantics, see:
|
|
|
23
23
|
still sync to `.github/agents/` and `~/.copilot/agents/`, and project rules
|
|
24
24
|
still sync to `.github/instructions/`.
|
|
25
25
|
|
|
26
|
+
## Managed tool-pack assets by scope
|
|
27
|
+
|
|
28
|
+
Every reusable tool pack defaults to user scope on a fresh install, so both
|
|
29
|
+
columns are ordinary states.
|
|
30
|
+
|
|
31
|
+
| Asset kind | Project scope | User scope |
|
|
32
|
+
| ----------------- | -------------------------- | ---------------------------- |
|
|
33
|
+
| Pack skills | `.agents/skills/<name>/` | `~/.agents/skills/<name>/` |
|
|
34
|
+
| Pack agents | `.agents/agents/<name>.md` | `~/.agents/agents/<name>.md` |
|
|
35
|
+
| Pack templates | `.oat/templates/<name>` | `~/.oat/templates/<name>` |
|
|
36
|
+
| Pack scripts | `.oat/scripts/<name>` | `~/.oat/scripts/<name>` |
|
|
37
|
+
| Bundled docs tree | not applicable | `~/.oat/docs/` |
|
|
38
|
+
|
|
39
|
+
Project-scope templates under `.oat/templates/` are owner overrides that OAT
|
|
40
|
+
seeds once and never rewrites; the managed default lives at user scope and in
|
|
41
|
+
the bundle. PJM templates resolve repository → user → bundle.
|
|
42
|
+
|
|
43
|
+
Pack intent is stored per scope:
|
|
44
|
+
|
|
45
|
+
- Project intent: `tools.<pack>: true` in `.oat/config.json`
|
|
46
|
+
- User intent: `tools.<pack>: true` in `~/.oat/config.json`
|
|
47
|
+
- Repository PJM adoption: `pjm.initialized` and `pjm.schemaVersion` in `.oat/config.json`
|
|
48
|
+
|
|
26
49
|
## OAT runtime/state
|
|
27
50
|
|
|
28
51
|
- Repo runtime config (non-sync settings): `.oat/config.json`
|
|
@@ -52,7 +75,8 @@ Config ownership note:
|
|
|
52
75
|
|
|
53
76
|
## OAT workflow
|
|
54
77
|
|
|
55
|
-
- Templates: `.oat/templates/`
|
|
78
|
+
- Templates: `.oat/templates/` (repo overrides) and `~/.oat/templates/` (managed defaults)
|
|
79
|
+
- Shared scripts: `.oat/scripts/` and `~/.oat/scripts/`
|
|
56
80
|
- Runtime sync state: `.oat/sync/`
|
|
57
81
|
- Repo knowledge: `.oat/repo/knowledge/`
|
|
58
82
|
- Active PJM operational layer: `.oat/repo/pjm/` (`current-state.md`, `roadmap.md`, `backlog/`)
|
|
@@ -78,6 +78,7 @@ Use [Instruction Sync](../provider-sync/instruction-sync.md) for the full strate
|
|
|
78
78
|
- Run `oat init tools` to install/update bundled OAT tool packs.
|
|
79
79
|
- In TTY mode, select which outdated skills to update when prompted.
|
|
80
80
|
- In non-interactive mode, rerun the relevant pack subcommand with `--force` if you want to overwrite outdated installed skills.
|
|
81
|
+
- For pack-level drift rather than a single skill, prefer the scoped command doctor prints: `oat tools update --pack <pack> --scope <scope>`.
|
|
81
82
|
|
|
82
83
|
## `sync` reports an unsafe provider parent
|
|
83
84
|
|
|
@@ -106,8 +107,11 @@ OAT intentionally does not automate this recovery.
|
|
|
106
107
|
|
|
107
108
|
## A user-installed pack is missing from shared `tools.*`
|
|
108
109
|
|
|
109
|
-
This is expected. `.oat/config.json#tools` records project
|
|
110
|
-
|
|
110
|
+
This is expected. `.oat/config.json#tools` records **project-scope** intent
|
|
111
|
+
only. A user install writes `tools.<pack>: true` to `~/.oat/config.json`
|
|
112
|
+
instead, and never touches repository config. Since every reusable pack now
|
|
113
|
+
defaults to user scope on a fresh install, an empty repository `tools` map is
|
|
114
|
+
normal.
|
|
111
115
|
|
|
112
116
|
Check effective project-plus-user availability with:
|
|
113
117
|
|
|
@@ -121,6 +125,130 @@ To confirm specifically that the user copy is present, run:
|
|
|
121
125
|
oat tools has <pack> --scope user
|
|
122
126
|
```
|
|
123
127
|
|
|
128
|
+
## `oat tools has <pack>` reports `false` for a pack I installed
|
|
129
|
+
|
|
130
|
+
Availability is complete-only: a scope counts only when every managed asset the
|
|
131
|
+
current release declares for it is present. A partially installed pack — for
|
|
132
|
+
example one missing a skill added in a newer release — reports `false`.
|
|
133
|
+
|
|
134
|
+
Read the reason from the JSON result and repair the named scope:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
oat --json tools has <pack>
|
|
138
|
+
oat tools update --pack <pack> --scope <project|user>
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
`completeness` shows `complete`, `partial`, or `absent` per scope, and `missing`
|
|
142
|
+
lists the exact managed assets and paths behind a `false`.
|
|
143
|
+
|
|
144
|
+
## `status` or `doctor` reports a partial or stale pack
|
|
145
|
+
|
|
146
|
+
Both commands report managed pack state with a scoped recovery command:
|
|
147
|
+
|
|
148
|
+
- `partial` — some managed assets are missing, or intent is declared with none
|
|
149
|
+
installed. Fix with `oat tools update --pack <pack> --scope <scope>`.
|
|
150
|
+
- `stale` — installed assets are behind the bundled release. Same fix.
|
|
151
|
+
- `newer` — installed assets are ahead of the bundle. This is informational and
|
|
152
|
+
usually means the CLI is older than the assets; update the CLI rather than
|
|
153
|
+
downgrading the pack.
|
|
154
|
+
- `retained-override` — an owner-owned seeded asset exists at the scope, so the
|
|
155
|
+
managed default is intentionally not applied there. This covers repository
|
|
156
|
+
templates under `.oat/templates/` **and** seeded content such as
|
|
157
|
+
`.oat/ideas/backlog.md` and `.oat/ideas/scratchpad.md`. Deleting the file is
|
|
158
|
+
the right move only for a **template** you want OAT to manage again; never
|
|
159
|
+
delete seeded content you have edited, because the next install or update
|
|
160
|
+
reseeds the bundled default in its place and your edits are gone. The finding
|
|
161
|
+
is informational and carries no recovery command for exactly that reason.
|
|
162
|
+
- `user-agent-unmaterialized` — the pack installed canonical agents into
|
|
163
|
+
`~/.agents/agents/`, but user scope materializes no provider view for them
|
|
164
|
+
beyond the bundled managed role files. `oat tools update` cannot fix this.
|
|
165
|
+
Install the pack at project scope (`oat tools install <pack> --scope project`)
|
|
166
|
+
when you need its agents. See
|
|
167
|
+
[Tool packs](../cli-utilities/tool-packs.md) for the full limitation.
|
|
168
|
+
|
|
169
|
+
## `status` or `doctor` reports `legacy-false-conflict`
|
|
170
|
+
|
|
171
|
+
An older repository left `tools.<pack>: false` in shared config while managed
|
|
172
|
+
assets for that pack are present. The `false` is never honored as an opt-out.
|
|
173
|
+
Choose one:
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
# adopt the existing install and rewrite intent as true
|
|
177
|
+
oat tools update --pack <pack> --scope <project|user>
|
|
178
|
+
|
|
179
|
+
# or remove the pack and delete the intent key entirely
|
|
180
|
+
oat tools remove --pack <pack> --scope <project|user>
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## `status` or `doctor` reports `duplicate-scope`
|
|
184
|
+
|
|
185
|
+
The pack is installed at both project and user scope. This is a legitimate
|
|
186
|
+
state, and OAT deliberately does **not** infer which copy a provider executes.
|
|
187
|
+
Resolve it explicitly when you want one owner:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
oat tools migrate --pack <pack> --from project --to user --dry-run
|
|
191
|
+
oat tools migrate --pack <pack> --from project --to user
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
The destination is installed and verified before source removal is offered, so
|
|
195
|
+
declining the confirmation leaves you exactly where you started — installed at
|
|
196
|
+
both scopes — rather than in a broken half-state.
|
|
197
|
+
|
|
198
|
+
## `oat tools migrate` leaves the pack at both scopes
|
|
199
|
+
|
|
200
|
+
That is the safe outcome, not a failure. Migration verifies the destination
|
|
201
|
+
first and removes the source only after an explicit confirmation. Declining, or
|
|
202
|
+
running non-interactively, reports status `retained-both`. Rerun the command
|
|
203
|
+
interactively to finish the move; the destination work is already done.
|
|
204
|
+
|
|
205
|
+
If source removal or its sync failed partway, the command prints structured
|
|
206
|
+
recovery instructions and retains source intent. Rerun the same command to
|
|
207
|
+
complete it. Never delete the source by hand while the recovery instructions are
|
|
208
|
+
outstanding.
|
|
209
|
+
|
|
210
|
+
## A PJM command refuses to write and asks for `oat pjm init`
|
|
211
|
+
|
|
212
|
+
Installing the `project-management` pack installs the **capability**. It does
|
|
213
|
+
not adopt PJM for a repository, and `oat backlog init` / `oat decision init` are
|
|
214
|
+
not alternate adoption paths. `oat pjm`, `oat backlog`, and `oat decision`
|
|
215
|
+
mutations fail closed until adoption is recorded.
|
|
216
|
+
|
|
217
|
+
Inspect the state, then adopt:
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
oat pjm doctor --json # read adoption.state
|
|
221
|
+
oat pjm init
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
`adoption.state` is `declared` (explicit marker present), `inferred-legacy`
|
|
225
|
+
(complete legacy scaffold, no marker), `partial-initialization` (incomplete
|
|
226
|
+
scaffold — rerun `oat pjm init`), or `none`. `oat pjm init` records
|
|
227
|
+
`pjm.initialized` in `.oat/config.json` after verifying the canonical scaffold.
|
|
228
|
+
|
|
229
|
+
## A PJM template change is not taking effect
|
|
230
|
+
|
|
231
|
+
PJM templates resolve repository → user → bundle, first match wins. A
|
|
232
|
+
repository template under `.oat/templates/` is an owner override that pack
|
|
233
|
+
updates never rewrite, so it shadows the managed user default.
|
|
234
|
+
|
|
235
|
+
Delete the repository copy to fall back to the managed default, or update the
|
|
236
|
+
managed default itself:
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
oat tools update --pack project-management --scope user
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
## `--scope all` fails outside a Git repository
|
|
243
|
+
|
|
244
|
+
It should not. `oat status --scope all` and `oat doctor --scope all` complete
|
|
245
|
+
the user-scope work and report project scope as unavailable.
|
|
246
|
+
`oat tools update --scope all` also completes the user-scope work, but it skips
|
|
247
|
+
project scope silently rather than naming it in the result, so an empty project
|
|
248
|
+
section there means "no repository here", not "nothing to update". An
|
|
249
|
+
explicitly requested `--scope project` outside a repository is still a hard
|
|
250
|
+
failure, which is intentional — you asked for a scope that does not exist here.
|
|
251
|
+
|
|
124
252
|
## Manifest not found or invalid
|
|
125
253
|
|
|
126
254
|
- Missing manifest: run `sync` or `init`
|
|
@@ -183,4 +311,6 @@ be upgraded in place; restart them to receive an authenticated `ekrt2` token.
|
|
|
183
311
|
- `.oat/projects/<scope>/<project>/reviews/`
|
|
184
312
|
- `.oat/projects/<scope>/<project>/explainers/<slug>/qa/`
|
|
185
313
|
- `packages/cli/src/commands/doctor/index.ts`
|
|
314
|
+
- `packages/cli/src/commands/status/index.ts`
|
|
315
|
+
- `packages/cli/src/commands/tools/shared/pack-inventory.ts`
|
|
186
316
|
- `packages/cli/src/commands/instructions/`
|
|
@@ -18,7 +18,7 @@ OAT lifecycle order:
|
|
|
18
18
|
7. Summary (`oat-project-summary`) — generates `summary.md` as institutional memory; `oat-project-pr-final` and `oat-project-complete` auto-refresh it when missing or stale
|
|
19
19
|
8. PR (`oat-project-pr-progress` / `oat-project-pr-final`) — sets `pr_open` status
|
|
20
20
|
9. Revision loop (`oat-project-revise`) — optional; accepts post-PR feedback
|
|
21
|
-
10. Documentation sync (`oat-project-document`) — optional; reads project artifacts and code evidence to identify docs needing updates, checks for missing coverage of newly shipped capability areas,
|
|
21
|
+
10. Documentation sync (`oat-project-document`) — optional; reads project artifacts and code evidence to identify docs needing updates, checks for missing coverage of newly shipped capability areas, and auto-runs `oat-pjm-update-repo-reference` before scanning docs only when the PJM capability is available **and** this repository has adopted PJM
|
|
22
22
|
11. Complete (`oat-project-complete`)
|
|
23
23
|
|
|
24
24
|
**Shortcut:** `oat-project-next` reads project state and invokes the correct next skill automatically — use it instead of remembering which skill comes next. Complements `oat-project-progress` (which is read-only diagnostic).
|
|
@@ -63,7 +63,7 @@ from missing state.
|
|
|
63
63
|
After implementation closeout finishes:
|
|
64
64
|
|
|
65
65
|
1. **Summary** (`oat-project-summary`) — generates `summary.md` as institutional memory from project artifacts; PR-final and completion will auto-refresh it if you have not already run it or if it is stale
|
|
66
|
-
2. **Documentation** (`oat-project-document`) — optional sync of project docs;
|
|
66
|
+
2. **Documentation** (`oat-project-document`) — optional sync of project docs; decides whether repo-reference refresh should run before docs analysis using two independent checks, and should recommend new docs pages/directories when the shipped work introduces a capability area that the docs app does not already cover
|
|
67
67
|
3. **PR** (`oat-project-pr-final`) — creates PR description (auto-refreshes `summary.md` first when needed, then uses it as source), sets `oat_phase_status: pr_open`, and tracks actual PR existence with `oat_pr_status` / `oat_pr_url`
|
|
68
68
|
4. **Revision loop** (`oat-project-revise`) — accepts post-PR feedback:
|
|
69
69
|
- Inline feedback creates `p-revN` revision phases with `prevN-tNN` task IDs
|
|
@@ -308,6 +308,25 @@ See the [Workflow preferences section in the Configuration guide](../../cli-util
|
|
|
308
308
|
- Projects root is stored in `.oat/config.json` (`projects.root`) and can be read via `oat config get projects.root`.
|
|
309
309
|
- Workflow skills prefer `oat config get activeProject` / `oat config get projects.root` rather than reading pointer files directly.
|
|
310
310
|
|
|
311
|
+
## Capability availability versus repository adoption
|
|
312
|
+
|
|
313
|
+
Lifecycle skills that touch repository project-management state make two
|
|
314
|
+
separate checks, and both must hold before any PJM write:
|
|
315
|
+
|
|
316
|
+
1. **Capability availability** — `oat tools has project-management` answers
|
|
317
|
+
whether the PJM skills and templates are installed and complete at project or
|
|
318
|
+
user scope. Since packs default to user scope, this is usually satisfied by a
|
|
319
|
+
user-scope install with no repository footprint.
|
|
320
|
+
2. **Repository adoption** — `oat pjm doctor --json` answers whether _this_
|
|
321
|
+
repository adopted PJM. Branch on its `adoption.state` field: `declared` and
|
|
322
|
+
`inferred-legacy` allow repository PJM writes; `partial-initialization` and
|
|
323
|
+
`none` stop with `oat pjm init` as the recovery.
|
|
324
|
+
|
|
325
|
+
Pack presence is never treated as evidence of repository adoption. A skill that
|
|
326
|
+
finds the capability available but the repository unadopted reports the
|
|
327
|
+
actionable `oat pjm init` stop instead of scaffolding implicitly. See
|
|
328
|
+
[Install vs. initialize](../../cli-utilities/tool-packs.md#install-vs-initialize).
|
|
329
|
+
|
|
311
330
|
## Brainstorming integration with the project lifecycle
|
|
312
331
|
|
|
313
332
|
`oat-brainstorm` (in the `brainstorm` tool pack) interacts with the project lifecycle in two distinct ways: it can **seed a brand new project** from a brainstorming conversation when no project is active, or **fold back into an active project** when one is.
|