@open-agent-toolkit/cli 0.1.31 → 0.1.33

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 (98) hide show
  1. package/assets/docs/cli-utilities/config-and-local-state.md +19 -6
  2. package/assets/docs/cli-utilities/tool-packs.md +13 -8
  3. package/assets/docs/reference/cli-reference.md +14 -13
  4. package/assets/docs/reference/file-locations.md +2 -1
  5. package/assets/docs/reference/oat-directory-structure.md +35 -22
  6. package/assets/migration/pjm-restructure.md +500 -0
  7. package/assets/public-package-versions.json +4 -4
  8. package/assets/scripts/resolve-tracking.sh +52 -0
  9. package/assets/skills/deep-research/SKILL.md +2 -2
  10. package/assets/skills/oat-brainstorm/SKILL.md +3 -3
  11. package/assets/skills/oat-brainstorm/references/destinations.md +10 -2
  12. package/assets/skills/oat-brainstorm/references/dogfood-results.md +4 -4
  13. package/assets/skills/oat-pjm-add-backlog-item/SKILL.md +17 -20
  14. package/assets/skills/oat-pjm-decision/SKILL.md +129 -0
  15. package/assets/skills/oat-pjm-review-backlog/SKILL.md +17 -17
  16. package/assets/skills/oat-pjm-review-backlog/references/backlog-review-template.md +2 -2
  17. package/assets/skills/oat-pjm-review-backlog/references/priority-alignment-template.md +13 -13
  18. package/assets/skills/oat-pjm-update-repo-reference/SKILL.md +34 -25
  19. package/assets/skills/oat-project-complete/SKILL.md +2 -2
  20. package/assets/skills/oat-project-document/SKILL.md +4 -3
  21. package/assets/skills/oat-project-import-plan/SKILL.md +2 -2
  22. package/assets/skills/oat-project-summary/SKILL.md +76 -8
  23. package/assets/templates/backlog-item.md +1 -1
  24. package/assets/templates/current-state.md +11 -2
  25. package/assets/templates/decision.md +18 -0
  26. package/assets/templates/pjm-agents.md +13 -0
  27. package/assets/templates/reference-agents.md +14 -0
  28. package/assets/templates/repo-agents.md +13 -0
  29. package/assets/templates/roadmap.md +8 -3
  30. package/dist/commands/backlog/index.d.ts +1 -0
  31. package/dist/commands/backlog/index.d.ts.map +1 -1
  32. package/dist/commands/backlog/index.js +48 -11
  33. package/dist/commands/backlog/init.js +1 -1
  34. package/dist/commands/backlog/regenerate-index.d.ts.map +1 -1
  35. package/dist/commands/backlog/regenerate-index.js +24 -5
  36. package/dist/commands/backlog/shared/generate-id.d.ts +1 -3
  37. package/dist/commands/backlog/shared/generate-id.d.ts.map +1 -1
  38. package/dist/commands/backlog/shared/generate-id.js +4 -64
  39. package/dist/commands/cleanup/artifacts/artifacts.d.ts.map +1 -1
  40. package/dist/commands/cleanup/artifacts/artifacts.js +4 -1
  41. package/dist/commands/decision/index.d.ts +20 -0
  42. package/dist/commands/decision/index.d.ts.map +1 -0
  43. package/dist/commands/decision/index.js +177 -0
  44. package/dist/commands/decision/init.d.ts +7 -0
  45. package/dist/commands/decision/init.d.ts.map +1 -0
  46. package/dist/commands/decision/init.js +53 -0
  47. package/dist/commands/decision/migrate.d.ts +24 -0
  48. package/dist/commands/decision/migrate.d.ts.map +1 -0
  49. package/dist/commands/decision/migrate.js +270 -0
  50. package/dist/commands/decision/new.d.ts +16 -0
  51. package/dist/commands/decision/new.d.ts.map +1 -0
  52. package/dist/commands/decision/new.js +118 -0
  53. package/dist/commands/decision/regenerate-index.d.ts +14 -0
  54. package/dist/commands/decision/regenerate-index.d.ts.map +1 -0
  55. package/dist/commands/decision/regenerate-index.js +122 -0
  56. package/dist/commands/decision/shared/generate-id.d.ts +2 -0
  57. package/dist/commands/decision/shared/generate-id.d.ts.map +1 -0
  58. package/dist/commands/decision/shared/generate-id.js +5 -0
  59. package/dist/commands/doctor/index.d.ts +5 -0
  60. package/dist/commands/doctor/index.d.ts.map +1 -1
  61. package/dist/commands/doctor/index.js +15 -0
  62. package/dist/commands/index.d.ts.map +1 -1
  63. package/dist/commands/index.js +2 -0
  64. package/dist/commands/init/tools/shared/skill-manifest.d.ts +2 -2
  65. package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -1
  66. package/dist/commands/init/tools/shared/skill-manifest.js +5 -1
  67. package/dist/commands/pjm/doctor.d.ts +7 -0
  68. package/dist/commands/pjm/doctor.d.ts.map +1 -0
  69. package/dist/commands/pjm/doctor.js +250 -0
  70. package/dist/commands/pjm/index.d.ts +7 -0
  71. package/dist/commands/pjm/index.d.ts.map +1 -1
  72. package/dist/commands/pjm/index.js +135 -10
  73. package/dist/commands/pjm/init.d.ts +3 -2
  74. package/dist/commands/pjm/init.d.ts.map +1 -1
  75. package/dist/commands/pjm/init.js +42 -33
  76. package/dist/commands/pjm/migrate.d.ts +36 -0
  77. package/dist/commands/pjm/migrate.d.ts.map +1 -0
  78. package/dist/commands/pjm/migrate.js +393 -0
  79. package/dist/commands/shared/date-id.d.ts +2 -0
  80. package/dist/commands/shared/date-id.d.ts.map +1 -0
  81. package/dist/commands/shared/date-id.js +10 -0
  82. package/dist/commands/shared/managed-index.d.ts +22 -0
  83. package/dist/commands/shared/managed-index.d.ts.map +1 -0
  84. package/dist/commands/shared/managed-index.js +92 -0
  85. package/dist/commands/shared/slug.d.ts +2 -0
  86. package/dist/commands/shared/slug.d.ts.map +1 -0
  87. package/dist/commands/shared/slug.js +57 -0
  88. package/dist/commands/shared/strip-template-frontmatter.d.ts +2 -0
  89. package/dist/commands/shared/strip-template-frontmatter.d.ts.map +1 -0
  90. package/dist/commands/shared/strip-template-frontmatter.js +16 -0
  91. package/dist/commands/sync/apply.d.ts.map +1 -1
  92. package/dist/commands/sync/apply.js +6 -2
  93. package/dist/manifest/manager.d.ts.map +1 -1
  94. package/dist/manifest/manager.js +4 -1
  95. package/dist/release/public-package-contract.d.ts.map +1 -1
  96. package/dist/release/public-package-contract.js +10 -1
  97. package/package.json +2 -2
  98. package/assets/templates/decision-record.md +0 -21
@@ -7,7 +7,7 @@
7
7
  > sessions while writing this document. The fold-back commit safety contract
8
8
  > in particular has **not** been exercised against real working-tree state.
9
9
  > The follow-up live-dogfood task is tracked as a backlog item — see
10
- > `.oat/repo/reference/backlog/items/live-dogfood-oat-brainstorm.md`
10
+ > `.oat/repo/pjm/backlog/items/live-dogfood-oat-brainstorm.md`
11
11
  > ("Live dogfood for `oat-brainstorm` — fold-back commit safety + 9
12
12
  > destination families"). Treat the contents below as a contract spec for
13
13
  > what live dogfood will assert, not as a record of completed runs.
@@ -387,7 +387,7 @@ Same as Scenario 2 through Step 8.
387
387
  Scope: m
388
388
  Priority: p2
389
389
 
390
- Confirm to write this to a new bl-XXXX file, or tell me what to change.
390
+ Confirm to write this to a new backlog item file, or tell me what to change.
391
391
  ```
392
392
 
393
393
  User confirms or revises field-by-field.
@@ -401,8 +401,8 @@ Same as Scenario 2 through Step 8.
401
401
 
402
402
  **Artifact produced**
403
403
 
404
- - `.oat/repo/reference/backlog/items/<slug>.md` (e.g.,
405
- `bl-XXXX-provider-view-sync-drift.md`) with full payload.
404
+ - `.oat/repo/pjm/backlog/items/<BL-YYMMDD-slug>.md` (e.g.,
405
+ `BL-260622-provider-view-sync-drift.md`) with full payload.
406
406
  - Backlog index regenerated.
407
407
 
408
408
  **Verifiable from skill content**
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-pjm-add-backlog-item
3
- version: 1.1.1
3
+ version: 1.2.0
4
4
  description: Use when the user requests or confirms adding a new repo backlog item — e.g. "add a backlog item for X", "capture that as backlog", "track that follow-up", "file a backlog ticket", or confirms a previously offered backlog capture. Do NOT auto-invoke when a follow-up is mentioned. Creates the item file in the file-per-item backlog structure, regenerates the index, and prompts for curated overview updates.
5
5
  disable-model-invocation: false
6
6
  user-invocable: true
@@ -9,7 +9,7 @@ allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion
9
9
 
10
10
  # Add Backlog Item
11
11
 
12
- Create a new file-backed backlog item under `.oat/repo/reference/backlog/items/` and refresh the generated backlog index.
12
+ Create a new file-backed backlog item under `.oat/repo/pjm/backlog/items/` and refresh the generated backlog index.
13
13
 
14
14
  ## Mode Assertion
15
15
 
@@ -64,29 +64,26 @@ Do not hand-create the managed marker block in `backlog/index.md`. The scaffold
64
64
  <!-- END OAT BACKLOG-INDEX -->
65
65
  ```
66
66
 
67
- ### Step 3: Prepare Paths and Filename
67
+ ### Step 3: Generate ID
68
68
 
69
- 1. Derive a kebab-case slug from the title.
70
- 2. Set the output path:
69
+ Run:
71
70
 
72
71
  ```bash
73
- ITEM_PATH=".oat/repo/reference/backlog/items/{slug}.md"
72
+ oat backlog generate-id "{title}"
74
73
  ```
75
74
 
76
- 3. If the file already exists, ask the user whether to overwrite it or pick a different slug.
75
+ The CLI returns a deterministic `BL-YYMMDD-slug` value derived from the creation date and the title. It performs no scan, hash, counter, or random allocation.
77
76
 
78
- ### Step 4: Generate ID
77
+ If the command reports a same-day same-slug filename collision against an existing `items/<id>.md` or `archived/<id>.md`, do not overwrite the existing record. Disambiguate by using a more specific title and re-running `oat backlog generate-id`.
79
78
 
80
- Run:
79
+ ### Step 4: Prepare Output Path
80
+
81
+ Set the output path using the returned ID so the filename stem equals the ID:
81
82
 
82
83
  ```bash
83
- oat backlog generate-id "{slug}"
84
+ ITEM_PATH=".oat/repo/pjm/backlog/items/{id}.md"
84
85
  ```
85
86
 
86
- Use the returned `bl-XXXX` value as the backlog item ID.
87
-
88
- If the initial hash collides with an existing backlog item ID, the CLI should retry with a disambiguated seed until it returns an unused ID. If the command reports a duplicate or collision issue, do not continue writing the item until the generated ID is unique across `backlog/items/*.md`.
89
-
90
87
  ### Step 5: Copy Template and Fill Frontmatter
91
88
 
92
89
  1. Use `.oat/templates/backlog-item.md` as the source template.
@@ -108,10 +105,10 @@ If the initial hash collides with an existing backlog item ID, the CLI should re
108
105
 
109
106
  ### Step 6: Write the Backlog Item
110
107
 
111
- Write the completed file to:
108
+ Write the completed file to the path resolved in Step 4:
112
109
 
113
110
  ```bash
114
- .oat/repo/reference/backlog/items/{slug}.md
111
+ .oat/repo/pjm/backlog/items/{id}.md
115
112
  ```
116
113
 
117
114
  Use the template field order from `.oat/templates/backlog-item.md`.
@@ -124,11 +121,11 @@ Run:
124
121
  oat backlog regenerate-index
125
122
  ```
126
123
 
127
- This refreshes the managed table inside `.oat/repo/reference/backlog/index.md`.
124
+ This refreshes the managed table inside `.oat/repo/pjm/backlog/index.md`.
128
125
 
129
126
  ### Step 8: Update Curated Overview
130
127
 
131
- Read `.oat/repo/reference/backlog/index.md` and update the `## Curated Overview` section with a brief human-written note when helpful, for example:
128
+ Read `.oat/repo/pjm/backlog/index.md` and update the `## Curated Overview` section with a brief human-written note when helpful, for example:
132
129
 
133
130
  - New theme added to the backlog
134
131
  - Priority or sequencing implications
@@ -148,8 +145,8 @@ Report:
148
145
 
149
146
  ## Success Criteria
150
147
 
151
- - New item file exists under `.oat/repo/reference/backlog/items/`
148
+ - New item file exists under `.oat/repo/pjm/backlog/items/` with a `BL-YYMMDD-slug` filename matching its `id`
152
149
  - Item includes populated frontmatter and both required body sections
153
150
  - `scope_estimate` was proposed and confirmed
154
151
  - `oat backlog regenerate-index` ran successfully
155
- - `.oat/repo/reference/backlog/index.md` remains valid, with managed section untouched except by regeneration
152
+ - `.oat/repo/pjm/backlog/index.md` remains valid, with managed section untouched except by regeneration
@@ -0,0 +1,129 @@
1
+ ---
2
+ name: oat-pjm-decision
3
+ version: 1.0.0
4
+ description: Use when the user requests or confirms recording a durable repo decision — e.g. "capture that as a decision", "write an ADR for X", "record this architectural choice", or confirms a previously offered decision capture. Creates a file-per-record decision under reference/decisions/ via `oat decision new` and refreshes the generated decision index. Do NOT auto-invoke for routine choices that do not warrant durable history.
5
+ disable-model-invocation: false
6
+ user-invocable: true
7
+ allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion
8
+ ---
9
+
10
+ # Record Repo Decision
11
+
12
+ Capture a durable decision as a file-per-record entry under `.oat/repo/reference/decisions/` using the canonical `oat decision` command group, then refresh the generated decision index.
13
+
14
+ ## Mode Assertion
15
+
16
+ **OAT MODE: Repo Decision Capture**
17
+
18
+ **Purpose:** Record durable decision history as file-per-record decisions with deterministic IDs, preserved body prose, and a refreshed generated index — never by hand-editing a shared monolith.
19
+
20
+ ## Progress Indicators (User-Facing)
21
+
22
+ When executing this skill, provide lightweight progress feedback so the user can tell what’s happening after they confirm.
23
+
24
+ - Print a phase banner once at start using horizontal separators, e.g.:
25
+
26
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
27
+ OAT ▸ RECORD DECISION
28
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
29
+
30
+ - Before multi-step work, print short step indicators, e.g.:
31
+ - `[1/4] Resolving decision details…`
32
+ - `[2/4] Ensuring decision scaffold…`
33
+ - `[3/4] Creating decision record…`
34
+ - `[4/4] Filling body and confirming index…`
35
+
36
+ ## Process
37
+
38
+ ### Step 1: Resolve Inputs
39
+
40
+ Collect the decision details from the user or surrounding context:
41
+
42
+ - Title (a short noun phrase, e.g. "Adopt date+slug backlog IDs")
43
+ - Context (why the decision is needed; the forces at play)
44
+ - Decision (what was chosen)
45
+ - Consequences (trade-offs, follow-ups, what this enables or blocks)
46
+ - Optional status: `proposed` (default), `accepted`, or `superseded`
47
+
48
+ If the title is missing, ask the user.
49
+ If context is missing, ask for 1-3 sentences describing the situation.
50
+
51
+ ### Step 2: Ensure Decision Scaffold
52
+
53
+ Before creating records, ensure the canonical decision scaffold and exact managed index markers exist:
54
+
55
+ ```bash
56
+ oat decision init
57
+ ```
58
+
59
+ This command is idempotent. The scaffold writes `reference/decisions/index.md` with the exact markers required by the CLI:
60
+
61
+ ```md
62
+ <!-- OAT DECISION-INDEX -->
63
+ <!-- END OAT DECISION-INDEX -->
64
+ ```
65
+
66
+ Do not hand-create or rename the managed marker block. Decisions default to `.oat/repo/reference/decisions/`; pass `--decisions-root <path>` only when an explicit override is required.
67
+
68
+ ### Step 3: Create the Decision Record
69
+
70
+ Create the file-per-record decision with the canonical command:
71
+
72
+ ```bash
73
+ oat decision new "<title>" --status <status> --context "<context>"
74
+ ```
75
+
76
+ The CLI:
77
+
78
+ - Generates a deterministic `DR-YYMMDD-slug` ID from the creation date and title.
79
+ - Writes one record file whose filename stem equals the ID.
80
+ - Strips template frontmatter and seeds the body from `.oat/templates/decision.md`.
81
+ - Regenerates the managed decision index.
82
+
83
+ The slug is **capped at 30 characters** at the last whole-word boundary, with trailing
84
+ stop-words (`a, an, the, of, for, and, to, in, on, as, with`) trimmed. Choose a concise,
85
+ meaningful title that stays readable within that 30-character budget.
86
+
87
+ If the command reports a filename collision (same-day same-slug), use a more specific title to disambiguate rather than overwriting an existing record. Never hand-author a decision file or edit `index.md` inside the managed markers.
88
+
89
+ ### Step 4: Fill the Decision Body
90
+
91
+ Open the created record at `.oat/repo/reference/decisions/<DR-YYMMDD-slug>.md` and complete the body sections that the template seeds as `TODO`:
92
+
93
+ - `## Context`
94
+ - `## Decision`
95
+ - `## Consequences`
96
+
97
+ Preserve the frontmatter (`id`, `title`, `date`, `status`, `legacy_id`). Do not change the `id` — the filename stem must keep matching it.
98
+
99
+ ### Step 5: Regenerate and Verify the Index
100
+
101
+ If you edited the body only, the index already reflects the record. If you changed any indexed frontmatter field (`status` or `title`), regenerate the managed index:
102
+
103
+ ```bash
104
+ oat decision regenerate-index
105
+ ```
106
+
107
+ Confirm `.oat/repo/reference/decisions/index.md` lists the new record with columns `ID | Date | Status | Title | Legacy` and that the managed marker section was refreshed by the CLI, not by hand.
108
+
109
+ ### Step 6: Summarize to the User
110
+
111
+ Report:
112
+
113
+ - Decision record path and generated `DR-YYMMDD-slug` ID
114
+ - Final status
115
+ - Whether the managed decision index was regenerated
116
+ - Any follow-up captured as a backlog item or roadmap note
117
+
118
+ ## Notes on Taxonomy
119
+
120
+ - Durable decision history lives under `reference/decisions/`, not under `pjm/`.
121
+ - Active operational planning (`current-state.md`, `roadmap.md`, `backlog/`) lives under `pjm/`.
122
+ - Legacy `reference/decision-record.md` monoliths are migrated into file-per-record decisions with `oat decision migrate`; do not write new decisions back into a monolith.
123
+
124
+ ## Success Criteria
125
+
126
+ - New decision file exists under `.oat/repo/reference/decisions/` with a `DR-YYMMDD-slug` filename matching its `id`
127
+ - Body includes Context, Decision, and Consequences
128
+ - The managed decision index was refreshed via `oat decision new`/`oat decision regenerate-index`, not hand-edited
129
+ - No new decision content was written into a legacy `decision-record.md` monolith
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-pjm-review-backlog
3
- version: 1.2.0
3
+ version: 1.3.0
4
4
  description: Use when prioritizing the file-backed repo backlog or evaluating roadmap alignment. Produces value-effort ratings, dependency mapping, and execution recommendations.
5
5
  argument-hint: '[backlog-root] [--roadmap=<path>] [--output=<path>]'
6
6
  disable-model-invocation: true
@@ -10,7 +10,7 @@ user-invocable: true
10
10
 
11
11
  # Review Backlog
12
12
 
13
- Analyze the file-backed backlog under `.oat/repo/reference/backlog/` to produce a structured review with value-effort ratings, dependency graph, parallel work lanes, and a recommended execution sequence. Optionally cross-reference a roadmap to identify alignment gaps.
13
+ Analyze the file-backed backlog under `.oat/repo/pjm/backlog/` to produce a structured review with value-effort ratings, dependency graph, parallel work lanes, and a recommended execution sequence. Optionally cross-reference a roadmap to identify alignment gaps.
14
14
 
15
15
  ## Mode Assertion
16
16
 
@@ -20,12 +20,12 @@ Analyze the file-backed backlog under `.oat/repo/reference/backlog/` to produce
20
20
 
21
21
  ## Reference Format Convention
22
22
 
23
- Whenever a backlog item is referenced — in the written review document, in chat output, or in the inline summary at the end — it **must include both the ID and a human-readable title**. Bare IDs like `bl-281c` are not acceptable in user-facing output, because readers do not have a board lookup in front of them.
23
+ Whenever a backlog item is referenced — in the written review document, in chat output, or in the inline summary at the end — it **must include both the ID and a human-readable title**. Bare IDs like `BL-260529-control-plane-state-read` are not acceptable in user-facing output, because readers do not have a board lookup in front of them.
24
24
 
25
25
  Use one of these formats:
26
26
 
27
- - **Inline / prose:** `` `bl-281c` (control-plane state-read migration) ``
28
- - **Tables / lists:** `**bl-281c** — Control-plane state-read migration`
27
+ - **Inline / prose:** `` `BL-260529-control-plane-state-read` (control-plane state-read migration) ``
28
+ - **Tables / lists:** `**BL-260529-control-plane-state-read** — Control-plane state-read migration`
29
29
  - **Compact lists where space is tight (e.g., dependency graphs):** an ID-only token is acceptable **only if** a legend in the same section maps every ID to its title.
30
30
 
31
31
  This convention applies equally to:
@@ -59,10 +59,10 @@ When executing this skill, provide lightweight progress feedback so the user can
59
59
 
60
60
  Parse from `$ARGUMENTS`:
61
61
 
62
- - **backlog-root**: (optional) Path to the backlog root directory. Defaults to `.oat/repo/reference/backlog/`.
62
+ - **backlog-root**: (optional) Path to the backlog root directory. Defaults to `.oat/repo/pjm/backlog/`.
63
63
  - **--roadmap=\<path\>**: (optional) Path to a roadmap document for alignment analysis.
64
- - **--output=\<path\>**: (optional) Where to write the living review. Defaults to `.oat/repo/reference/backlog/reviews/backlog-and-roadmap-review.md`.
65
- - **--archive-dated**: (optional) Also write a dated snapshot alongside the living review at `.oat/repo/reference/backlog/reviews/backlog-and-roadmap-review-YYYY-MM-DD.md`. Default: off.
64
+ - **--output=\<path\>**: (optional) Where to write the living review. Defaults to `.oat/repo/pjm/backlog/reviews/backlog-and-roadmap-review.md`.
65
+ - **--archive-dated**: (optional) Also write a dated snapshot alongside the living review at `.oat/repo/pjm/backlog/reviews/backlog-and-roadmap-review-YYYY-MM-DD.md`. Default: off.
66
66
 
67
67
  ## Process
68
68
 
@@ -71,7 +71,7 @@ Parse from `$ARGUMENTS`:
71
71
  **Backlog root:**
72
72
 
73
73
  1. If `backlog-root` is provided, use it directly.
74
- 2. Otherwise, default to `.oat/repo/reference/backlog/`.
74
+ 2. Otherwise, default to `.oat/repo/pjm/backlog/`.
75
75
  3. Confirm these inputs exist:
76
76
  - `backlog/index.md`
77
77
  - `backlog/items/*.md`
@@ -81,18 +81,18 @@ Parse from `$ARGUMENTS`:
81
81
  **Roadmap document (optional):**
82
82
 
83
83
  1. If `--roadmap` is provided, use it directly.
84
- 2. Otherwise, look for `.oat/repo/reference/roadmap.md`.
84
+ 2. Otherwise, look for `.oat/repo/pjm/roadmap.md`.
85
85
  3. Ask the user whether to include roadmap alignment if a roadmap is available.
86
86
 
87
87
  **Output path:**
88
88
 
89
89
  1. If `--output` is provided, use it directly.
90
- 2. Otherwise, default to `.oat/repo/reference/backlog/reviews/backlog-and-roadmap-review.md` (the living, single-file review co-located with the backlog).
90
+ 2. Otherwise, default to `.oat/repo/pjm/backlog/reviews/backlog-and-roadmap-review.md` (the living, single-file review co-located with the backlog).
91
91
  3. If the `backlog/reviews/` directory does not exist yet, create it before writing. Do not fall back to `.oat/repo/reviews/` — backlog review artifacts now live under the file-backed backlog, not the repo-wide reviews directory.
92
92
 
93
93
  **Dated snapshot (optional):**
94
94
 
95
- If `--archive-dated` is passed, also write a copy to `.oat/repo/reference/backlog/reviews/backlog-and-roadmap-review-YYYY-MM-DD.md` in the **same directory** as the living review. Do not write dated snapshots to `.oat/repo/reviews/`.
95
+ If `--archive-dated` is passed, also write a copy to `.oat/repo/pjm/backlog/reviews/backlog-and-roadmap-review-YYYY-MM-DD.md` in the **same directory** as the living review. Do not write dated snapshots to `.oat/repo/reviews/`.
96
96
 
97
97
  ### Step 2: Read and Catalog Backlog Items
98
98
 
@@ -172,7 +172,7 @@ If a roadmap was provided:
172
172
 
173
173
  Use the template at `.agents/skills/oat-pjm-review-backlog/references/backlog-review-template.md`.
174
174
 
175
- Write the **living** review to the resolved output path (default `.oat/repo/reference/backlog/reviews/backlog-and-roadmap-review.md`). If `--archive-dated` was passed, also write a dated snapshot alongside it (`backlog-and-roadmap-review-YYYY-MM-DD.md` in the same directory). Never split living and dated outputs across different directories — they must live together under `backlog/reviews/`.
175
+ Write the **living** review to the resolved output path (default `.oat/repo/pjm/backlog/reviews/backlog-and-roadmap-review.md`). If `--archive-dated` was passed, also write a dated snapshot alongside it (`backlog-and-roadmap-review-YYYY-MM-DD.md` in the same directory). Never split living and dated outputs across different directories — they must live together under `backlog/reviews/`.
176
176
 
177
177
  Ensure:
178
178
 
@@ -190,7 +190,7 @@ After writing the review, provide:
190
190
  - Top 3 recommended next actions
191
191
  - Key risks or gaps discovered
192
192
 
193
- When listing specific items in this summary, follow the **Reference Format Convention** above — every backlog item must appear as `` `bl-XXXX` (human-readable title) `` (or the bold-with-em-dash variant in tables). Do not emit bare IDs.
193
+ When listing specific items in this summary, follow the **Reference Format Convention** above — every backlog item must appear as `` `BL-YYMMDD-slug` (human-readable title) `` (or the bold-with-em-dash variant in tables). Do not emit bare IDs.
194
194
 
195
195
  ### Step 9: Offer Priority Alignment Walkthrough (Optional, Collaborative)
196
196
 
@@ -204,7 +204,7 @@ After the summary, ask the operator:
204
204
 
205
205
  > Want to walk through the review together and produce a one-page execution view at `backlog/reviews/priority-alignment.md`? It captures phased order, parallelism, and a recommended kickoff stack — a faster reference than the full review.
206
206
 
207
- If `.oat/repo/reference/backlog/reviews/priority-alignment.md` already exists, frame it as an **update** to the existing document rather than a fresh create. Read the existing file first so the walkthrough builds on it.
207
+ If `.oat/repo/pjm/backlog/reviews/priority-alignment.md` already exists, frame it as an **update** to the existing document rather than a fresh create. Read the existing file first so the walkthrough builds on it.
208
208
 
209
209
  If the operator declines, stop after the summary. Do not silently write or modify `priority-alignment.md`.
210
210
 
@@ -220,7 +220,7 @@ If the operator declines, stop after the summary. Do not silently write or modif
220
220
  - Are there calendar constraints (freezes, releases, time off) that affect ordering?
221
221
  - Does the operator want an optional axis like "planning investment" or "design effort" as a column? (Some repos find this useful; many don't. Default: omit unless operator opts in.)
222
222
  3. **Iterate on phase names, ordering, and the kickoff stack** until the operator is satisfied. Phase names should reflect the repo's actual initiatives, not generic placeholders.
223
- 4. **Write or update** `.oat/repo/reference/backlog/reviews/priority-alignment.md` using the template at `.agents/skills/oat-pjm-review-backlog/references/priority-alignment-template.md`. Add a new Changelog entry summarizing what shifted in this pass.
223
+ 4. **Write or update** `.oat/repo/pjm/backlog/reviews/priority-alignment.md` using the template at `.agents/skills/oat-pjm-review-backlog/references/priority-alignment-template.md`. Add a new Changelog entry summarizing what shifted in this pass.
224
224
  5. **Confirm the result** with the operator: file path, top-of-doc Status line, and the kickoff stack.
225
225
 
226
226
  When referencing backlog items inside the priority-alignment doc, the **Reference Format Convention** still applies — link to the item file and pair the ID with a human-readable title.
@@ -232,6 +232,6 @@ When referencing backlog items inside the priority-alignment doc, the **Referenc
232
232
  - Parallel lanes and execution waves are actionable
233
233
  - Roadmap alignment gaps are surfaced when roadmap input is present
234
234
  - Output document follows the review template structure
235
- - Living review is written to `.oat/repo/reference/backlog/reviews/backlog-and-roadmap-review.md` (unless `--output` is explicitly overridden); dated snapshots, when emitted, live in the same `backlog/reviews/` directory and never under `.oat/repo/reviews/`
235
+ - Living review is written to `.oat/repo/pjm/backlog/reviews/backlog-and-roadmap-review.md` (unless `--output` is explicitly overridden); dated snapshots, when emitted, live in the same `backlog/reviews/` directory and never under `.oat/repo/reviews/`
236
236
  - The operator is offered (but never forced into) a collaborative walkthrough that produces or updates `backlog/reviews/priority-alignment.md`; if the operator accepts, the file is written using the priority-alignment template and includes a Changelog entry for this pass; if the operator declines, no file is created or modified
237
237
  - Every user-facing reference to a backlog item pairs the ID with a human-readable title (per the Reference Format Convention)
@@ -1,8 +1,8 @@
1
1
  # Backlog & Roadmap Review
2
2
 
3
3
  **Date:** {YYYY-MM-DD}
4
- **Scope:** {Description of what was reviewed, e.g., "All active items under `.oat/repo/reference/backlog/items/`"}
5
- **Roadmap:** {Path to roadmap if included, e.g. `.oat/repo/reference/roadmap.md`, or "N/A"}
4
+ **Scope:** {Description of what was reviewed, e.g., "All active items under `.oat/repo/pjm/backlog/items/`"}
5
+ **Roadmap:** {Path to roadmap if included, e.g. `.oat/repo/pjm/roadmap.md`, or "N/A"}
6
6
  **Purpose:** Prioritize by value/effort, surface dependencies, and recommend an execution sequence
7
7
 
8
8
  > If a one-page execution companion exists in this directory, see [`priority-alignment.md`](./priority-alignment.md) — produced via the optional walkthrough at the end of `oat-pjm-review-backlog`. It is the short, ordered "what to do next" view of this full review.
@@ -35,9 +35,9 @@ If the team doesn't find it useful, omit the column entirely.
35
35
 
36
36
  Items already started, in code review, or otherwise mid-flight. Close these out before — or alongside — the next phase.
37
37
 
38
- | Item | Scope | Notes |
39
- | ------------------------------------------------ | ---------- | -------------------------------------------- |
40
- | [Item title](../items/{filename}.md) (`bl-XXXX`) | {S/M/L/XL} | {Status, blocker if any, next concrete step} |
38
+ | Item | Scope | Notes |
39
+ | ------------------------------------------------------------- | ---------- | -------------------------------------------- |
40
+ | [Item title](../items/{BL-YYMMDD-slug}.md) (`BL-YYMMDD-slug`) | {S/M/L/XL} | {Status, blocker if any, next concrete step} |
41
41
 
42
42
  ---
43
43
 
@@ -50,9 +50,9 @@ Items already started, in code review, or otherwise mid-flight. Close these out
50
50
 
51
51
  {One short paragraph: what this phase represents, how many tracks can run in parallel inside it, any kickoff constraints (e.g. "weekly pair is one combined kickoff").}
52
52
 
53
- | Item | Scope | {Optional column} | Parallel with | Notes |
54
- | ------------------------------------------------ | ---------- | ----------------- | -------------------- | --------------------------------------- |
55
- | [Item title](../items/{filename}.md) (`bl-XXXX`) | {S/M/L/XL} | {Low/Med/High} | `bl-YYYY`, `bl-ZZZZ` | {One-line context — gotchas, decisions} |
53
+ | Item | Scope | {Optional column} | Parallel with | Notes |
54
+ | ------------------------------------------------------------- | ---------- | ----------------- | ---------------------------------------------- | --------------------------------------- |
55
+ | [Item title](../items/{BL-YYMMDD-slug}.md) (`BL-YYMMDD-slug`) | {S/M/L/XL} | {Low/Med/High} | `BL-YYMMDD-other-slug`, `BL-YYMMDD-third-slug` | {One-line context — gotchas, decisions} |
56
56
 
57
57
  ---
58
58
 
@@ -60,10 +60,10 @@ Items already started, in code review, or otherwise mid-flight. Close these out
60
60
 
61
61
  Quick lookup for "can I start X while Y is in flight?"
62
62
 
63
- | Can run together | Keep sequential |
64
- | --------------------- | -------------------------- |
65
- | `bl-XXXX` ∥ `bl-YYYY` | `bl-AAAA` before `bl-BBBB` |
66
- | {…} | {…} |
63
+ | Can run together | Keep sequential |
64
+ | ------------------------------------------- | ----------------------------------------------------- |
65
+ | `BL-YYMMDD-one-slug` ∥ `BL-YYMMDD-two-slug` | `BL-YYMMDD-first-slug` before `BL-YYMMDD-second-slug` |
66
+ | {…} | {…} |
67
67
 
68
68
  ---
69
69
 
@@ -71,9 +71,9 @@ Quick lookup for "can I start X while Y is in flight?"
71
71
 
72
72
  Three concrete actions for the next development cycle. Not a ranked list of everything — just what to do _first_.
73
73
 
74
- 1. **{Close|Kick off|Defer}** [`bl-XXXX`](../items/{filename}.md) — {one-line reason: why now, what it unblocks}
75
- 2. **{Close|Kick off|Defer}** [`bl-YYYY`](../items/{filename}.md) — {one-line reason}
76
- 3. **{Close|Kick off|Defer}** [`bl-ZZZZ`](../items/{filename}.md) — {one-line reason}
74
+ 1. **{Close|Kick off|Defer}** [`BL-YYMMDD-first-slug`](../items/{BL-YYMMDD-first-slug}.md) — {one-line reason: why now, what it unblocks}
75
+ 2. **{Close|Kick off|Defer}** [`BL-YYMMDD-second-slug`](../items/{BL-YYMMDD-second-slug}.md) — {one-line reason}
76
+ 3. **{Close|Kick off|Defer}** [`BL-YYMMDD-third-slug`](../items/{BL-YYMMDD-third-slug}.md) — {one-line reason}
77
77
 
78
78
  ---
79
79
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: oat-pjm-update-repo-reference
3
- version: 1.1.1
4
- description: Use when repo reference artifacts need updating — roadmap, decision records, backlog status, or completed history. Frequently invoked at project completion, often chained from `oat-project-document`, to ensure `.oat/repo/reference/` state reflects what shipped.
3
+ version: 1.2.0
4
+ description: Use when repo reference artifacts need updating — roadmap, decision records, backlog status, or completed history. Frequently invoked at project completion, often chained from `oat-project-document`, to ensure active `.oat/repo/pjm/` state and durable `.oat/repo/reference/` records reflect what shipped.
5
5
  disable-model-invocation: false
6
6
  user-invocable: true
7
7
  allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion
@@ -9,13 +9,13 @@ allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion
9
9
 
10
10
  # Update Repo Reference
11
11
 
12
- Keep this repo's OAT reference documentation consistent as implementation evolves, using the file-backed backlog structure under `.oat/repo/reference/backlog/`.
12
+ Keep this repo's OAT reference documentation consistent as implementation evolves. Active operational state lives under `.oat/repo/pjm/` (current-state, roadmap, and the file-backed backlog); durable decision history lives under `.oat/repo/reference/decisions/`.
13
13
 
14
14
  ## Mode Assertion
15
15
 
16
16
  **OAT MODE: Repo Reference Sync**
17
17
 
18
- **Purpose:** Update backlog, roadmap, completed history, and decision records so repo reference docs stay trustworthy after implementation changes.
18
+ **Purpose:** Update backlog, roadmap, completed history, and decision records so active `pjm/` state and durable `reference/` records stay trustworthy after implementation changes.
19
19
 
20
20
  ## Progress Indicators (User-Facing)
21
21
 
@@ -53,7 +53,7 @@ Before editing any backlog files or running backlog regeneration, run:
53
53
  oat backlog init
54
54
  ```
55
55
 
56
- This command is idempotent and ensures `.oat/repo/reference/backlog/index.md` exists with the exact managed markers required by the CLI:
56
+ This command is idempotent and ensures `.oat/repo/pjm/backlog/index.md` exists with the exact managed markers required by the CLI:
57
57
 
58
58
  ```md
59
59
  <!-- OAT BACKLOG-INDEX -->
@@ -68,28 +68,35 @@ For recently completed or in-progress projects, read `discovery.md`, `spec.md`,
68
68
 
69
69
  Promote notable findings into one of:
70
70
 
71
- - Backlog item files under `.oat/repo/reference/backlog/items/`
72
- - Completed summaries in `.oat/repo/reference/backlog/completed.md`
73
- - Decision record entries in `.oat/repo/reference/decision-record.md`
74
- - Roadmap updates in `.oat/repo/reference/roadmap.md`
71
+ - Backlog item files under `.oat/repo/pjm/backlog/items/`
72
+ - Completed summaries in `.oat/repo/pjm/backlog/completed.md`
73
+ - Decision records under `.oat/repo/reference/decisions/`, created with
74
+ `oat decision new "<title>"` (delegate to `oat-pjm-decision` for a guided
75
+ capture). Do not hand-author decision files or write into a legacy
76
+ `decision-record.md` monolith.
77
+ - Roadmap updates in `.oat/repo/pjm/roadmap.md`
75
78
 
76
79
  ### Step 4: Update Canonical Reference Docs
77
80
 
78
81
  Update these files as applicable:
79
82
 
80
- 1. `.oat/repo/reference/current-state.md`
81
- 2. `.oat/repo/reference/roadmap.md`
83
+ 1. `.oat/repo/pjm/current-state.md`
84
+ 2. `.oat/repo/pjm/roadmap.md`
82
85
  - Use the `Now / Next / Later` structure when editing roadmap priorities.
83
- 3. `.oat/repo/reference/backlog/index.md`
86
+ 3. `.oat/repo/pjm/backlog/index.md`
84
87
  - Update only the `## Curated Overview` section by hand.
85
88
  - Do not hand-edit the managed marker section.
86
- 4. `.oat/repo/reference/backlog/items/*.md`
89
+ 4. `.oat/repo/pjm/backlog/items/*.md`
87
90
  - Add or update active backlog items as file-backed records.
88
- 5. `.oat/repo/reference/backlog/completed.md`
91
+ 5. `.oat/repo/pjm/backlog/completed.md`
89
92
  - Keep newest completed summaries first.
90
- 6. `.oat/repo/reference/backlog/archived/*.md`
93
+ 6. `.oat/repo/pjm/backlog/archived/*.md`
91
94
  - Add rich historical item files only when a completed item needs preserved detail.
92
- 7. `.oat/repo/reference/decision-record.md`
95
+ 7. `.oat/repo/reference/decisions/`
96
+ - Create new decisions with `oat decision new` (see `oat-pjm-decision`); the
97
+ command writes one `DR-YYMMDD-slug` record and regenerates the managed
98
+ decision index. Do not hand-edit `reference/decisions/index.md` inside its
99
+ managed markers.
93
100
 
94
101
  If you modify backlog item files or the completed archive structure, run:
95
102
 
@@ -101,15 +108,16 @@ oat backlog regenerate-index
101
108
 
102
109
  Use the `Grep` tool for focused searches:
103
110
 
104
- - Search for stale legacy references with pattern `backlog\.md|backlog-completed\.md|deferred-phases\.md` across `.oat/repo/reference`, `docs/oat`, `.agents/skills`, and `AGENTS.md`.
105
- - Search for the new file-backed paths with pattern `\.oat/repo/reference/backlog/(index|completed|items|archived)` across the same locations.
111
+ - Search for stale legacy references with pattern `reference/backlog|reference/roadmap|reference/current-state|decision-record\.md` across `.oat/repo`, `docs/oat`, `.agents/skills`, and `AGENTS.md`. These indicate active state still pointing at the retired `reference/` operational layout (legacy/migration notes excepted).
112
+ - Search for the active paths with pattern `\.oat/repo/pjm/backlog/(index|completed|items|archived)` and `\.oat/repo/reference/decisions/` across the same locations.
106
113
 
107
114
  Confirm that:
108
115
 
109
- - Active work lives in `backlog/items/`
110
- - Human narrative updates stay in `backlog/index.md` curated section
111
- - Completed summaries live in `backlog/completed.md`
112
- - Roadmap wording matches the current `Now / Next / Later` structure
116
+ - Active work lives in `pjm/backlog/items/`
117
+ - Human narrative updates stay in `pjm/backlog/index.md` curated section
118
+ - Completed summaries live in `pjm/backlog/completed.md`
119
+ - Roadmap wording matches the current `Now / Next / Later` structure in `pjm/roadmap.md`
120
+ - Decisions are file-per-record under `reference/decisions/`, created via `oat decision new`
113
121
 
114
122
  ### Step 6: Output
115
123
 
@@ -123,6 +131,7 @@ Provide:
123
131
  ## Success Criteria
124
132
 
125
133
  - Repo reference docs reflect current OAT behavior
126
- - Backlog updates use the file-backed structure
127
- - Managed backlog index section is refreshed via CLI, not hand-edited
128
- - Stale references to retired backlog/deferred files are removed or called out
134
+ - Active backlog, roadmap, and current-state updates live under `pjm/`
135
+ - Decision history is captured as file-per-record decisions under `reference/decisions/` via `oat decision new`, not in a legacy monolith
136
+ - Managed backlog and decision index sections are refreshed via CLI, not hand-edited
137
+ - Stale references to the retired `reference/` operational layout are removed or called out
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-complete
3
- version: 1.4.9
3
+ version: 1.5.0
4
4
  description: Use when all implementation work is finished and the project is ready to close. Marks the OAT project lifecycle as complete.
5
5
  disable-model-invocation: true
6
6
  user-invocable: true
@@ -329,7 +329,7 @@ When archiving, the project artifacts at `{PROJECT_PATH}/{plan,implementation,di
329
329
  - Use the **current/head branch** for the blob link (the same `{BRANCH}` value used by `oat-project-pr-final` Step 4 for every other reference). Step 8 creates the export on the current checkout and Step 10 commits + pushes it on the feature branch, so the link resolves immediately while the PR is open and continues to resolve after merge once the file lands on the base branch.
330
330
  - Anti-pattern: do **not** point this link at the base branch (`main` / resolved default branch). The export does not exist on the base branch until the PR merges, so a `blob/main/...` link 404s for the entire window the PR is open — the same class of broken link this whole step exists to prevent.
331
331
  - When `archive.summaryExportPath` is unset or `summary.md` is missing, omit this bullet rather than emit a broken link.
332
- - **Keep References bullets** that resolve independently of the archive: backlog item links under `.oat/repo/reference/backlog/`, decision-record links under `.oat/repo/reference/decisions/`, repo-reference docs, ticket URLs, and anything else under tracked paths outside the project directory.
332
+ - **Keep References bullets** that resolve independently of the archive: backlog item links under `.oat/repo/pjm/backlog/`, decision record links under `.oat/repo/reference/decisions/`, repo-reference docs, ticket URLs, and anything else under tracked paths outside the project directory.
333
333
  - Apply the existing `localPaths`-based exclusion rule from `oat-project-pr-final` Step 4 on top of these rules — it already covers `.oat/**/pr` and `.oat/**/reviews/archived` and may catch additional patterns configured per repo.
334
334
 
335
335
  Anti-pattern: do not "rescue" a dropped artifact by linking to its archived path under `.oat/projects/archived/<name>/...`. That path is gitignored on every checkout and never reaches the remote.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-document
3
- version: 1.4.1
3
+ version: 1.5.0
4
4
  description: Use when the user requests or confirms documenting an active OAT project — e.g. "document the project", "update the docs", "run oat-project-document", or confirms a previously offered documentation run. Do NOT auto-invoke when implementation completes. Analyzes project artifacts, presents a documentation delta plan, and applies approved changes.
5
5
  argument-hint: '[project-path] [--auto]'
6
6
  disable-model-invocation: false
@@ -260,8 +260,9 @@ Scan the repository for all documentation and instruction surfaces.
260
260
  - Note directories for new apps/packages that lack a README
261
261
 
262
262
  4. **Reference files:**
263
- - Check `.oat/repo/reference/` directory
264
- - Read: `current-state.md`, `backlog/index.md`, `backlog/completed.md`, `roadmap.md`, `decision-record.md`, and relevant `backlog/items/*.md` files as needed (whichever exist)
263
+ - Check the active PJM layer under `.oat/repo/pjm/` and the durable layer under `.oat/repo/reference/`
264
+ - Read (whichever exist): `pjm/current-state.md`, `pjm/roadmap.md`, `pjm/backlog/index.md`, `pjm/backlog/completed.md`, relevant `pjm/backlog/items/*.md` files, and `reference/decisions/index.md` plus relevant `reference/decisions/*.md` records
265
+ - Legacy repos may still have `reference/current-state.md`, `reference/roadmap.md`, `reference/backlog/`, or a `reference/decision-record.md` monolith until they run `oat pjm migrate`; read those only as a fallback when the `pjm/` and `reference/decisions/` equivalents are absent
265
266
 
266
267
  **4b. Instruction surfaces (secondary — strong signals only):**
267
268
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-import-plan
3
- version: 1.3.3
3
+ version: 1.4.0
4
4
  description: Use when you have an external markdown plan to execute with OAT. Preserves the source plan and normalizes it into canonical plan.md format.
5
5
  argument-hint: '<path-to-plan.md> [--provider codex|cursor|claude] [--project <name>]'
6
6
  disable-model-invocation: true
@@ -115,7 +115,7 @@ Inputs:
115
115
 
116
116
  If source path is not provided, discover likely recent plans first. The discovery script checks both provider plan directories and this repository's external plan directory by default:
117
117
 
118
- - `.oat/repo/reference/external-plans/`
118
+ - `.oat/repo/reference/external-plans/` — the durable destination for imported provider/external plans, as documented in the repo reference guide (`.oat/repo/reference/AGENTS.md`). External plans are durable reference material and stay under `reference/`, never under the active `pjm/` operational layer.
119
119
 
120
120
  ```bash
121
121
  bash .agents/skills/oat-project-import-plan/scripts/find-recent-provider-plans.sh --hours 24