@windyroad/jtbd 0.7.2 → 0.7.3-preview.296
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/.claude-plugin/plugin.json +1 -1
- package/README.md +22 -5
- package/hooks/jtbd-enforce-edit.sh +9 -0
- package/hooks/jtbd-eval.sh +5 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ The JTBD plugin:
|
|
|
12
12
|
|
|
13
13
|
1. **Detects** when an edit touches user-facing UI files
|
|
14
14
|
2. **Blocks** the edit until the JTBD agent has reviewed it
|
|
15
|
-
3. **Reviews** changes against your `docs/
|
|
15
|
+
3. **Reviews** changes against your `docs/jtbd/` directory (per-persona job files)
|
|
16
16
|
4. **Reports** alignment gaps -- features that don't map to a documented job, or that conflict with persona constraints
|
|
17
17
|
|
|
18
18
|
## Install
|
|
@@ -25,13 +25,13 @@ Restart Claude Code after installing.
|
|
|
25
25
|
|
|
26
26
|
## Usage
|
|
27
27
|
|
|
28
|
-
The plugin works automatically. On first use in a project without a JTBD
|
|
28
|
+
The plugin works automatically. On first use in a project without a JTBD directory, it blocks edits and directs you to create one:
|
|
29
29
|
|
|
30
30
|
```
|
|
31
31
|
/wr-jtbd:update-guide
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
This examines your existing features and asks about your user jobs, personas, and desired outcomes to generate a `docs/JOBS_TO_BE_DONE.md
|
|
34
|
+
This examines your existing features and asks about your user jobs, personas, and desired outcomes to generate `docs/jtbd/<persona>/persona.md` plus per-job files at `docs/jtbd/<persona>/JTBD-NNN-<title>.<status>.md`. If a legacy `docs/JOBS_TO_BE_DONE.md` exists, it is migrated into the directory structure on first run (per [ADR-008](../../docs/decisions/008-jtbd-directory-structure.proposed.md)).
|
|
35
35
|
|
|
36
36
|
## How It Works
|
|
37
37
|
|
|
@@ -40,15 +40,32 @@ This examines your existing features and asks about your user jobs, personas, an
|
|
|
40
40
|
| `jtbd-eval.sh` | Every prompt | Evaluates whether the task involves user-facing UI |
|
|
41
41
|
| `jtbd-enforce-edit.sh` | Edit or Write | Blocks edits until the JTBD agent has reviewed |
|
|
42
42
|
| `jtbd-mark-reviewed.sh` | Agent completes | Marks the review as done (TTL: 3600s) |
|
|
43
|
+
| `jtbd-slide-marker.sh` | Agent or Bash | Slides the review marker forward across non-edit operations so an active review session is not invalidated by intervening Bash or sub-agent calls |
|
|
43
44
|
|
|
44
45
|
## Agent
|
|
45
46
|
|
|
46
|
-
The `wr-jtbd:agent` reads your `docs/
|
|
47
|
+
The `wr-jtbd:agent` reads your `docs/jtbd/` directory and reviews proposed UI changes against:
|
|
47
48
|
|
|
48
|
-
- Documented user jobs and their success criteria
|
|
49
|
+
- Documented user jobs (per persona) and their success criteria
|
|
49
50
|
- Persona definitions and constraints
|
|
50
51
|
- Screen-to-job mappings
|
|
51
52
|
|
|
53
|
+
## Jobs to be Done
|
|
54
|
+
|
|
55
|
+
This plugin serves the [Jobs to be Done](../../docs/jtbd/) below. Per [ADR-051](../../docs/decisions/051-jtbd-anchored-readme-with-drift-advisory.proposed.md), the persona-grouped JTBD anchor is the canonical source of truth for the README's value framing.
|
|
56
|
+
|
|
57
|
+
### Solo developer
|
|
58
|
+
|
|
59
|
+
- **[JTBD-001 Enforce Governance Without Slowing Down](../../docs/jtbd/solo-developer/JTBD-001-enforce-governance.proposed.md)** — JTBD review fires automatically on every UI edit; manual review is replaced by an agent reading the persona files the project already maintains.
|
|
60
|
+
|
|
61
|
+
### Tech lead / consultant
|
|
62
|
+
|
|
63
|
+
- **[JTBD-202 Run Pre-Flight Governance Checks Before Release or Handover](../../docs/jtbd/tech-lead/JTBD-202-pre-flight-governance-check.proposed.md)** — `/wr-jtbd:review-jobs` produces an on-demand alignment report against documented jobs, attachable to a release note or handover doc.
|
|
64
|
+
|
|
65
|
+
### Plugin user
|
|
66
|
+
|
|
67
|
+
- **[JTBD-302 Trust That the README Describes the Plugin I Just Installed](../../docs/jtbd/plugin-user/JTBD-302-trust-readme-describes-installed-behaviour.proposed.md)** — this README is anchored on current JTBD job IDs; drift between prose and shipped behaviour is detectable at retro time per ADR-051.
|
|
68
|
+
|
|
52
69
|
## Updating and Uninstalling
|
|
53
70
|
|
|
54
71
|
```bash
|
|
@@ -68,6 +68,9 @@ case "$FILE_PATH" in
|
|
|
68
68
|
exit 0 ;;
|
|
69
69
|
*/MEMORY.md|*/.claude/projects/*/memory/*)
|
|
70
70
|
exit 0 ;;
|
|
71
|
+
# READ tolerance only — gate skips user edits to .claude/plans/. NOT a write
|
|
72
|
+
# target for agents. .claude/ is user-controlled config space; agents must not
|
|
73
|
+
# write project-generated artefacts here. See P131.
|
|
71
74
|
*/.claude/plans/*.md|*.claude/plans/*.md)
|
|
72
75
|
exit 0 ;;
|
|
73
76
|
*/RISK-POLICY.md)
|
|
@@ -80,6 +83,12 @@ case "$FILE_PATH" in
|
|
|
80
83
|
exit 0 ;;
|
|
81
84
|
*/docs/problems/*.md|docs/problems/*.md)
|
|
82
85
|
exit 0 ;;
|
|
86
|
+
# ADR-031 / RFC-002 T1 dual-pattern: per-state subdir layout
|
|
87
|
+
# (`docs/problems/<state>/<NNN>-<slug>.md`). Coexists with the
|
|
88
|
+
# flat-layout pattern above during the migration window. Drops to
|
|
89
|
+
# single-pattern at RFC-002 T6 once Slice A migration verifies.
|
|
90
|
+
*/docs/problems/*/*.md|docs/problems/*/*.md)
|
|
91
|
+
exit 0 ;;
|
|
83
92
|
*/docs/jtbd/*|docs/jtbd/*)
|
|
84
93
|
exit 0 ;;
|
|
85
94
|
*/docs/PRODUCT_DISCOVERY.md|docs/PRODUCT_DISCOVERY.md)
|
package/hooks/jtbd-eval.sh
CHANGED
|
@@ -41,6 +41,11 @@ Does NOT apply to: CSS, images, fonts, lockfiles, changesets, memory files,
|
|
|
41
41
|
plan files, docs/problems/ (problem tickets), docs/BRIEFING.md, docs/briefing/,
|
|
42
42
|
RISK-POLICY.md, .risk-reports/, docs/jtbd/,
|
|
43
43
|
docs/PRODUCT_DISCOVERY.md, docs/VOICE-AND-TONE.md, docs/STYLE-GUIDE.md.
|
|
44
|
+
NOTE: these exclusions are READ tolerance — the JTBD gate skips user
|
|
45
|
+
edits to these paths. They are NOT agent write targets. Never write
|
|
46
|
+
project-generated artefacts (plans, audits, scratch state) under
|
|
47
|
+
.claude/ — that is user-controlled config space. Project-generated
|
|
48
|
+
content belongs under docs/ or directly in problem-ticket bodies (P131).
|
|
44
49
|
HOOK_OUTPUT
|
|
45
50
|
mark_announced "jtbd" "$SESSION_ID"
|
|
46
51
|
fi
|