@open-agent-toolkit/cli 0.1.31 → 0.1.32
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/docs/cli-utilities/config-and-local-state.md +18 -5
- package/assets/docs/cli-utilities/tool-packs.md +13 -8
- package/assets/docs/reference/cli-reference.md +14 -13
- package/assets/docs/reference/file-locations.md +2 -1
- package/assets/docs/reference/oat-directory-structure.md +35 -22
- package/assets/migration/pjm-restructure.md +500 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/deep-research/SKILL.md +2 -2
- package/assets/skills/oat-brainstorm/SKILL.md +3 -3
- package/assets/skills/oat-brainstorm/references/destinations.md +10 -2
- package/assets/skills/oat-brainstorm/references/dogfood-results.md +4 -4
- package/assets/skills/oat-pjm-add-backlog-item/SKILL.md +17 -20
- package/assets/skills/oat-pjm-decision/SKILL.md +129 -0
- package/assets/skills/oat-pjm-review-backlog/SKILL.md +17 -17
- package/assets/skills/oat-pjm-review-backlog/references/backlog-review-template.md +2 -2
- package/assets/skills/oat-pjm-review-backlog/references/priority-alignment-template.md +13 -13
- package/assets/skills/oat-pjm-update-repo-reference/SKILL.md +34 -25
- package/assets/skills/oat-project-complete/SKILL.md +2 -2
- package/assets/skills/oat-project-document/SKILL.md +4 -3
- package/assets/skills/oat-project-import-plan/SKILL.md +2 -2
- package/assets/skills/oat-project-summary/SKILL.md +76 -8
- package/assets/templates/backlog-item.md +1 -1
- package/assets/templates/current-state.md +11 -2
- package/assets/templates/decision.md +18 -0
- package/assets/templates/pjm-agents.md +13 -0
- package/assets/templates/reference-agents.md +14 -0
- package/assets/templates/repo-agents.md +13 -0
- package/assets/templates/roadmap.md +8 -3
- package/dist/commands/backlog/index.d.ts +1 -0
- package/dist/commands/backlog/index.d.ts.map +1 -1
- package/dist/commands/backlog/index.js +48 -11
- package/dist/commands/backlog/init.js +1 -1
- package/dist/commands/backlog/regenerate-index.d.ts.map +1 -1
- package/dist/commands/backlog/regenerate-index.js +24 -5
- package/dist/commands/backlog/shared/generate-id.d.ts +1 -3
- package/dist/commands/backlog/shared/generate-id.d.ts.map +1 -1
- package/dist/commands/backlog/shared/generate-id.js +4 -64
- package/dist/commands/cleanup/artifacts/artifacts.d.ts.map +1 -1
- package/dist/commands/cleanup/artifacts/artifacts.js +4 -1
- package/dist/commands/decision/index.d.ts +20 -0
- package/dist/commands/decision/index.d.ts.map +1 -0
- package/dist/commands/decision/index.js +177 -0
- package/dist/commands/decision/init.d.ts +7 -0
- package/dist/commands/decision/init.d.ts.map +1 -0
- package/dist/commands/decision/init.js +53 -0
- package/dist/commands/decision/migrate.d.ts +24 -0
- package/dist/commands/decision/migrate.d.ts.map +1 -0
- package/dist/commands/decision/migrate.js +270 -0
- package/dist/commands/decision/new.d.ts +16 -0
- package/dist/commands/decision/new.d.ts.map +1 -0
- package/dist/commands/decision/new.js +118 -0
- package/dist/commands/decision/regenerate-index.d.ts +14 -0
- package/dist/commands/decision/regenerate-index.d.ts.map +1 -0
- package/dist/commands/decision/regenerate-index.js +122 -0
- package/dist/commands/decision/shared/generate-id.d.ts +2 -0
- package/dist/commands/decision/shared/generate-id.d.ts.map +1 -0
- package/dist/commands/decision/shared/generate-id.js +5 -0
- package/dist/commands/doctor/index.d.ts +2 -0
- package/dist/commands/doctor/index.d.ts.map +1 -1
- package/dist/commands/doctor/index.js +6 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +2 -0
- package/dist/commands/init/tools/shared/skill-manifest.d.ts +2 -2
- package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -1
- package/dist/commands/init/tools/shared/skill-manifest.js +5 -1
- package/dist/commands/pjm/doctor.d.ts +3 -0
- package/dist/commands/pjm/doctor.d.ts.map +1 -0
- package/dist/commands/pjm/doctor.js +238 -0
- package/dist/commands/pjm/index.d.ts +7 -0
- package/dist/commands/pjm/index.d.ts.map +1 -1
- package/dist/commands/pjm/index.js +132 -10
- package/dist/commands/pjm/init.d.ts +3 -2
- package/dist/commands/pjm/init.d.ts.map +1 -1
- package/dist/commands/pjm/init.js +42 -33
- package/dist/commands/pjm/migrate.d.ts +36 -0
- package/dist/commands/pjm/migrate.d.ts.map +1 -0
- package/dist/commands/pjm/migrate.js +393 -0
- package/dist/commands/shared/date-id.d.ts +2 -0
- package/dist/commands/shared/date-id.d.ts.map +1 -0
- package/dist/commands/shared/date-id.js +10 -0
- package/dist/commands/shared/managed-index.d.ts +22 -0
- package/dist/commands/shared/managed-index.d.ts.map +1 -0
- package/dist/commands/shared/managed-index.js +92 -0
- package/dist/commands/shared/slug.d.ts +2 -0
- package/dist/commands/shared/slug.d.ts.map +1 -0
- package/dist/commands/shared/slug.js +57 -0
- package/dist/commands/shared/strip-template-frontmatter.d.ts +2 -0
- package/dist/commands/shared/strip-template-frontmatter.d.ts.map +1 -0
- package/dist/commands/shared/strip-template-frontmatter.js +16 -0
- package/dist/release/public-package-contract.d.ts.map +1 -1
- package/dist/release/public-package-contract.js +10 -1
- package/package.json +2 -2
- package/assets/templates/decision-record.md +0 -21
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-pjm-add-backlog-item
|
|
3
|
-
version: 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/
|
|
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:
|
|
67
|
+
### Step 3: Generate ID
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
2. Set the output path:
|
|
69
|
+
Run:
|
|
71
70
|
|
|
72
71
|
```bash
|
|
73
|
-
|
|
72
|
+
oat backlog generate-id "{title}"
|
|
74
73
|
```
|
|
75
74
|
|
|
76
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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.
|
|
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/
|
|
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 `
|
|
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:** `` `
|
|
28
|
-
- **Tables / lists:** `**
|
|
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/
|
|
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/
|
|
65
|
-
- **--archive-dated**: (optional) Also write a dated snapshot alongside the living review at `.oat/repo/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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 `` `
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
5
|
-
**Roadmap:** {Path to roadmap if included, e.g. `.oat/repo/
|
|
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
|
|
39
|
-
|
|
|
40
|
-
| [Item title](../items/{
|
|
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
|
|
54
|
-
|
|
|
55
|
-
| [Item title](../items/{
|
|
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
|
|
64
|
-
|
|
|
65
|
-
| `
|
|
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}** [`
|
|
75
|
-
2. **{Close|Kick off|Defer}** [`
|
|
76
|
-
3. **{Close|Kick off|Defer}** [`
|
|
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.
|
|
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/
|
|
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,
|
|
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
|
|
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/
|
|
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/
|
|
72
|
-
- Completed summaries in `.oat/repo/
|
|
73
|
-
- Decision
|
|
74
|
-
|
|
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/
|
|
81
|
-
2. `.oat/repo/
|
|
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/
|
|
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/
|
|
89
|
+
4. `.oat/repo/pjm/backlog/items/*.md`
|
|
87
90
|
- Add or update active backlog items as file-backed records.
|
|
88
|
-
5. `.oat/repo/
|
|
91
|
+
5. `.oat/repo/pjm/backlog/completed.md`
|
|
89
92
|
- Keep newest completed summaries first.
|
|
90
|
-
6. `.oat/repo/
|
|
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/
|
|
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
|
|
105
|
-
- Search for the
|
|
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
|
-
-
|
|
127
|
-
-
|
|
128
|
-
-
|
|
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.
|
|
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/
|
|
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.
|
|
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/`
|
|
264
|
-
- Read: `current-state.md`, `
|
|
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
|
+
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
|