@windyroad/jtbd 0.13.2 → 0.13.3

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.
@@ -90,5 +90,5 @@
90
90
  }
91
91
  },
92
92
  "name": "wr-jtbd",
93
- "version": "0.13.2"
93
+ "version": "0.13.3"
94
94
  }
package/agents/agent.md CHANGED
@@ -61,7 +61,7 @@ All review criteria come from the JTBD documentation. Read the docs first and ap
61
61
  - If the change involves API interactions, do the actions align with the job's expected flow?
62
62
  - Are new actions documented in the relevant job's action list?
63
63
 
64
- ### Unratified Dependency (build-upon guard — ADR-068 enforcement surface 3)
64
+ ### Unratified Dependency (build-upon guard — ADR-109)
65
65
 
66
66
  When the change or plan under review **explicitly cites, implements, or serves** a specific persona or job — an `@jtbd JTBD-NNN` annotation, a `persona: <name>` reference, or it is authoring that artifact's own flow — check whether that persona/job has been **ratified** (carries `human-oversight: confirmed` in its frontmatter) before letting the change stand. You have `Bash`, so run the predicate by **exit code** (you do NOT need to grep frontmatter yourself):
67
67
 
@@ -70,7 +70,7 @@ wr-jtbd-is-job-or-persona-unconfirmed <persona-name | JTBD-NNN>
70
70
  ```
71
71
 
72
72
  - **Exit 0** (frontmatter lacks the marker AND the artifact is not superseded AND it does not carry the rejected-pending-supersede + supersede-ticket pair) → the artifact is **unratified**. Emit **ISSUES FOUND / [Unratified Dependency]** with action: "ratify `<persona | JTBD-NNN>` via `/wr-jtbd:confirm-jobs-and-personas` before this lands." (The predicate prints the resolved path on stdout.)
73
- - **Exit 1** (ratified, superseded, or rejected-pending-supersede with a tracked `supersede-ticket: P<NNN>` — ADR-068 amendment per P316) → do NOT flag. A user-rejected artifact with a tracked supersede ticket is ratified-equivalent for the build-upon guard.
73
+ - **Exit 1** (ratified, superseded, or rejected-pending-supersede with a tracked `supersede-ticket: P<NNN>` — ADR-066 amendment per P316) → do NOT flag. A user-rejected artifact with a tracked supersede ticket is ratified-equivalent for the build-upon guard.
74
74
  - **Exit 2** (ref not found) → the change cites a persona/job that does not exist; that is a separate Job Gap / Persona Mismatch, not an Unratified Dependency.
75
75
 
76
76
  **Key the flag on the oversight marker, NEVER on `status:`.** `status: proposed`/`accepted` and `human-oversight:` are orthogonal axes (ADR-066). Building on a **ratified** job whose `status` is still `proposed` is fine — do NOT flag it; only the *unratified* (marker-absent, non-superseded) case flags.
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env bash
2
2
  # jtbd-oversight-marker-discipline.sh — PreToolUse:Edit|Write hook
3
- # (P348 / ADR-068 amendment 2026-06-02). JTBD-side sibling of
3
+ # (P348 / ADR-110). JTBD-side sibling of
4
4
  # architect-oversight-marker-discipline.sh. Denies Edit/Write operations
5
5
  # that introduce `human-oversight: confirmed` into a docs/jtbd/ artefact's
6
6
  # (persona.md or JTBD-NNN-*.md) frontmatter unless a session-scoped
@@ -22,7 +22,7 @@
22
22
  # architect-oversight-marker-discipline.sh (and JTBD sibling) hooks remain
23
23
  # active as the safety net: a marker-only diff that introduces
24
24
  # `human-oversight: confirmed` still requires the per-ADR session evidence
25
- # marker (P348 / ADR-066 amendment 2026-06-02).
25
+ # marker (P348 / ADR-110).
26
26
  #
27
27
  # Conservative boundary: any non-empty line outside the marker grammar
28
28
  # (frontmatter delimiters that shift position, status:/date: changes, body
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@windyroad/jtbd",
3
- "version": "0.13.2",
3
+ "version": "0.13.3",
4
4
  "description": "Jobs-to-be-done enforcement for UI changes",
5
5
  "bin": {
6
6
  "windyroad-jtbd": "./bin/install.mjs"
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env bash
2
2
  # wr-jtbd — mark a JTBD/persona's human-oversight: confirmed marker write as
3
- # user-substance-confirmed (P348 / ADR-068 amendment 2026-06-02).
3
+ # user-substance-confirmed (P348 / ADR-110).
4
4
  #
5
5
  # JTBD-side sibling of packages/architect/scripts/mark-oversight-confirmed.sh.
6
6
  # Companion to jtbd-oversight-marker-discipline.sh (also P348). SKILLs invoke
@@ -20,7 +20,7 @@
20
20
  #
21
21
  # AFK iter subprocesses with no AskUserQuestion access MUST write
22
22
  # `human-oversight: unconfirmed` instead (the new enum value codified in
23
- # ADR-068 amendment 2026-06-02), which the drain
23
+ # ADR-110), which the drain
24
24
  # (/wr-jtbd:confirm-jobs-and-personas) later promotes.
25
25
  #
26
26
  # Marker convention:
@@ -89,7 +89,7 @@ Use AskUserQuestion to present the drafted personas and ask:
89
89
  - Any missing user segments?
90
90
  - Any constraints or pain points to add?
91
91
 
92
- **Born-confirmed write (ADR-068 — structurally gated by P348 amendment 2026-06-02).** Once the user confirms a persona via this AskUserQuestion pass, IMMEDIATELY call the marker-evidence helper THEN insert the two lines into that persona's frontmatter — after the `description:` line:
92
+ **Born-confirmed write (ADR-068 — structurally gated by ADR-110).** Once the user confirms a persona via this AskUserQuestion pass, IMMEDIATELY call the marker-evidence helper THEN insert the two lines into that persona's frontmatter — after the `description:` line:
93
93
 
94
94
  ```bash
95
95
  wr-jtbd-mark-oversight-confirmed docs/jtbd/<persona-name>/persona.md
@@ -100,7 +100,7 @@ human-oversight: confirmed
100
100
  oversight-date: YYYY-MM-DD # today
101
101
  ```
102
102
 
103
- The `wr-jtbd-mark-oversight-confirmed` call writes the session-scoped evidence marker (`/tmp/oversight-confirmed-<sha>-<sid>`) that the `jtbd-oversight-marker-discipline.sh` PreToolUse hook reads to authorise the subsequent Edit/Write — without the helper call, the hook will DENY the marker write. This is the load-bearing born-confirmed gate: a persona authored through update-guide enters the world human-oversighted ONLY because the helper above paired the user's substance-confirm answer to the marker write. Do NOT write the marker for a persona the user has not confirmed. AFK iter subprocesses spawned via `claude -p` have no `AskUserQuestion` access; they MUST write `human-oversight: unconfirmed` (the AFK fallback enum value codified in ADR-068 amendment 2026-06-02), which the drain (`/wr-jtbd:confirm-jobs-and-personas`) later promotes interactively. The marker is orthogonal to status.
103
+ The `wr-jtbd-mark-oversight-confirmed` call writes the session-scoped evidence marker (`/tmp/oversight-confirmed-<sha>-<sid>`) that the `jtbd-oversight-marker-discipline.sh` PreToolUse hook reads to authorise the subsequent Edit/Write — without the helper call, the hook will DENY the marker write. This is the load-bearing born-confirmed gate: a persona authored through update-guide enters the world human-oversighted ONLY because the helper above paired the user's substance-confirm answer to the marker write. Do NOT write the marker for a persona the user has not confirmed. AFK iter subprocesses spawned via `claude -p` have no `AskUserQuestion` access; they MUST write `human-oversight: unconfirmed` (the AFK fallback enum value codified in ADR-110), which the drain (`/wr-jtbd:confirm-jobs-and-personas`) later promotes interactively. The marker is orthogonal to status.
104
104
 
105
105
  ### 5. Draft jobs
106
106
 
@@ -148,7 +148,7 @@ Use AskUserQuestion to present the drafted jobs and ask:
148
148
  - Do the job statements ring true?
149
149
  - Any missing jobs or user flows?
150
150
 
151
- **Born-confirmed write (ADR-068 — structurally gated by P348 amendment 2026-06-02).** Once the user confirms a job via this AskUserQuestion pass, IMMEDIATELY call the marker-evidence helper THEN insert the two lines into that job's frontmatter — after the `date-created:` line:
151
+ **Born-confirmed write (ADR-068 — structurally gated by ADR-110).** Once the user confirms a job via this AskUserQuestion pass, IMMEDIATELY call the marker-evidence helper THEN insert the two lines into that job's frontmatter — after the `date-created:` line:
152
152
 
153
153
  ```bash
154
154
  wr-jtbd-mark-oversight-confirmed docs/jtbd/<persona-name>/JTBD-NNN-<kebab-title>.proposed.md
@@ -159,7 +159,7 @@ human-oversight: confirmed
159
159
  oversight-date: YYYY-MM-DD # today
160
160
  ```
161
161
 
162
- Without the `wr-jtbd-mark-oversight-confirmed` call, the `jtbd-oversight-marker-discipline.sh` PreToolUse hook will DENY the marker write. A job authored through update-guide is born human-oversighted ONLY because the helper above paired the user's substance-confirm answer to the marker write. Do NOT write the marker for a job the user has not confirmed. AFK iter subprocesses MUST write `human-oversight: unconfirmed` instead (the AFK fallback enum value codified in ADR-068 amendment 2026-06-02); the drain (`/wr-jtbd:confirm-jobs-and-personas`) later promotes it interactively. The marker is orthogonal to `status:`.
162
+ Without the `wr-jtbd-mark-oversight-confirmed` call, the `jtbd-oversight-marker-discipline.sh` PreToolUse hook will DENY the marker write. A job authored through update-guide is born human-oversighted ONLY because the helper above paired the user's substance-confirm answer to the marker write. Do NOT write the marker for a job the user has not confirmed. AFK iter subprocesses MUST write `human-oversight: unconfirmed` instead (the AFK fallback enum value codified in ADR-110); the drain (`/wr-jtbd:confirm-jobs-and-personas`) later promotes it interactively. The marker is orthogonal to `status:`.
163
163
 
164
164
  ### 7. Generate README.md index
165
165