@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.
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
#!/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-
|
|
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-
|
|
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
|
|
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-
|
|
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
|
|
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-
|
|
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
|
|