@theglitchking/persistent-planning 3.4.1 → 3.5.0

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 (47) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.documentation/INDEX.md +2 -2
  4. package/.documentation/REGISTRY.md +2 -2
  5. package/.documentation/agents/INDEX.md +2 -2
  6. package/.documentation/agents/REGISTRY.md +2 -2
  7. package/.documentation/api/INDEX.md +2 -2
  8. package/.documentation/api/REGISTRY.md +2 -2
  9. package/.documentation/architecture/INDEX.md +2 -2
  10. package/.documentation/architecture/REGISTRY.md +2 -2
  11. package/.documentation/architecture/lg-plan-artifact-lifecycle.md +4 -3
  12. package/.documentation/backups/INDEX.md +2 -2
  13. package/.documentation/backups/REGISTRY.md +2 -2
  14. package/.documentation/database/INDEX.md +2 -2
  15. package/.documentation/database/REGISTRY.md +2 -2
  16. package/.documentation/devops/INDEX.md +2 -2
  17. package/.documentation/devops/REGISTRY.md +2 -2
  18. package/.documentation/features/INDEX.md +2 -2
  19. package/.documentation/features/REGISTRY.md +2 -2
  20. package/.documentation/plans/INDEX.md +2 -2
  21. package/.documentation/plans/REGISTRY.md +2 -2
  22. package/.documentation/procedures/INDEX.md +2 -2
  23. package/.documentation/procedures/REGISTRY.md +2 -2
  24. package/.documentation/quickstart/INDEX.md +2 -2
  25. package/.documentation/quickstart/REGISTRY.md +2 -2
  26. package/.documentation/reference/INDEX.md +2 -2
  27. package/.documentation/reference/REGISTRY.md +2 -2
  28. package/.documentation/security/INDEX.md +2 -2
  29. package/.documentation/security/REGISTRY.md +2 -2
  30. package/.documentation/standards/INDEX.md +2 -2
  31. package/.documentation/standards/REGISTRY.md +2 -2
  32. package/.documentation/standards/mandatory-closing-phases.md +39 -25
  33. package/.documentation/testing/INDEX.md +2 -2
  34. package/.documentation/testing/REGISTRY.md +2 -2
  35. package/.documentation/testing/test-suite.md +3 -3
  36. package/.documentation/troubleshooting/INDEX.md +2 -2
  37. package/.documentation/troubleshooting/REGISTRY.md +2 -2
  38. package/.documentation/troubleshooting/stale-skill-dir-drift.md +3 -2
  39. package/.documentation/workflows/INDEX.md +2 -2
  40. package/.documentation/workflows/REGISTRY.md +2 -2
  41. package/CHANGELOG.md +62 -0
  42. package/bin/persistent-planning.js +0 -26
  43. package/package.json +2 -2
  44. package/scripts/init-phase.sh +11 -1
  45. package/scripts/init-planning.sh +9 -3
  46. package/skills/persistent-planning/SKILL.md +9 -3
  47. package/templates/lg/phase.md +9 -3
@@ -6,13 +6,13 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Official marketplace for persistent-planning - Persistent markdown-based planning for Claude Code. Context engineering pattern with task directories, progress tracking, and working memory that persists across sessions.",
9
- "version": "3.4.1"
9
+ "version": "3.5.0"
10
10
  },
11
11
  "plugins": [
12
12
  {
13
13
  "name": "persistent-planning",
14
14
  "description": "Persistent markdown-based planning for Claude Code. Uses on-disk markdown files as working memory for planning, progress tracking, and knowledge storage. Plans persist across sessions and support multiple concurrent tasks.",
15
- "version": "3.4.1",
15
+ "version": "3.5.0",
16
16
  "author": {
17
17
  "name": "TheGlitchKing"
18
18
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "persistent-planning",
3
- "version": "3.4.1",
3
+ "version": "3.5.0",
4
4
  "description": "Persistent markdown-based planning with task directories, progress tracking, and context engineering for multi-step Claude Code workflows",
5
5
  "author": {
6
6
  "name": "TheGlitchKing"
@@ -3,7 +3,7 @@ title: Documentation Index
3
3
  tier: reference
4
4
  domains: [root]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Navigation hub for all documentation
9
9
  ---
@@ -219,6 +219,6 @@ purpose: Navigation hub for all documentation
219
219
 
220
220
  ## Maintenance
221
221
 
222
- - **Last generated:** 2026-09-04
222
+ - **Last generated:** 2026-09-26
223
223
  - **Run maintenance:** `npx hit-em-with-the-docs maintain`
224
224
  - **Regenerate index:** `npx hit-em-with-the-docs index`
@@ -3,7 +3,7 @@ title: Documentation Registry
3
3
  tier: reference
4
4
  domains: [root]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Quick reference for all documentation domains
9
9
  ---
@@ -77,4 +77,4 @@ purpose: Quick reference for all documentation domains
77
77
 
78
78
  ---
79
79
 
80
- *Last updated: 2026-09-04*
80
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Agents Documentation Index
3
3
  tier: reference
4
4
  domains: [agents]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Complete listing of agents documentation
9
9
  ---
@@ -40,4 +40,4 @@ This domain covers: agent, agents, ai, assistant, expert, specialist, llm, langc
40
40
 
41
41
  ---
42
42
 
43
- *Last updated: 2026-09-04*
43
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Agents Registry
3
3
  tier: reference
4
4
  domains: [agents]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Quick reference for agents documentation
9
9
  ---
@@ -35,4 +35,4 @@ purpose: Quick reference for agents documentation
35
35
 
36
36
  ---
37
37
 
38
- *Last updated: 2026-09-04*
38
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: API Documentation Index
3
3
  tier: reference
4
4
  domains: [api]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Complete listing of api documentation
9
9
  ---
@@ -40,4 +40,4 @@ This domain covers: api, endpoint, endpoints, route, routes, rest, restful, grap
40
40
 
41
41
  ---
42
42
 
43
- *Last updated: 2026-09-04*
43
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: API Registry
3
3
  tier: reference
4
4
  domains: [api]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Quick reference for api documentation
9
9
  ---
@@ -35,4 +35,4 @@ purpose: Quick reference for api documentation
35
35
 
36
36
  ---
37
37
 
38
- *Last updated: 2026-09-04*
38
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Architecture Documentation Index
3
3
  tier: reference
4
4
  domains: [architecture]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Complete listing of architecture documentation
9
9
  ---
@@ -47,4 +47,4 @@ This domain covers: architecture, design, system, system-design, pattern, patter
47
47
 
48
48
  ---
49
49
 
50
- *Last updated: 2026-09-04*
50
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Architecture Registry
3
3
  tier: reference
4
4
  domains: [architecture]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Quick reference for architecture documentation
9
9
  ---
@@ -54,4 +54,4 @@ purpose: Quick reference for architecture documentation
54
54
 
55
55
  ---
56
56
 
57
- *Last updated: 2026-09-04*
57
+ *Last updated: 2026-09-26*
@@ -57,17 +57,18 @@ It **anchors on the MANDATORY marker, never on line numbers.** The list is a
57
57
  human-editable surface; positions do not survive contact with editing. This is tested
58
58
  against a hand-reordered, partially-checked, annotated list.
59
59
 
60
- ## The two closers
60
+ ## The three closers
61
61
 
62
- Every phase is scaffolded with both closing tasks as real directories:
62
+ Every phase is scaffolded with all three closing tasks as real directories, in this order:
63
63
 
64
64
  ```
65
+ <phase>/cleanup-remove-junk-and-unused-code/
65
66
  <phase>/validate-success-through-comprehensive-testing/
66
67
  <phase>/documentation-pass-create-update-deprecate-docs/
67
68
  ```
68
69
 
69
70
  Each gets `task.md` (with `mandatory: true`, `parallelizable: false`), `notes.md`,
70
- `atoms/`, and seeded atoms — not empty placeholders. They were previously two lines
71
+ `atoms/`, and seeded atoms — not empty placeholders. The original two were previously lines
71
72
  of prose in `phase.md`, which made the most important tasks in every plan the only
72
73
  ones with no artifact a subagent could read and nowhere to record decisions.
73
74
 
@@ -3,7 +3,7 @@ title: Backups Documentation Index
3
3
  tier: reference
4
4
  domains: [backups]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Complete listing of backups documentation
9
9
  ---
@@ -40,4 +40,4 @@ This domain covers: backup, backups, restore, recovery, disaster, disaster-recov
40
40
 
41
41
  ---
42
42
 
43
- *Last updated: 2026-09-04*
43
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Backups Registry
3
3
  tier: reference
4
4
  domains: [backups]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Quick reference for backups documentation
9
9
  ---
@@ -35,4 +35,4 @@ purpose: Quick reference for backups documentation
35
35
 
36
36
  ---
37
37
 
38
- *Last updated: 2026-09-04*
38
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Database Documentation Index
3
3
  tier: reference
4
4
  domains: [database]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Complete listing of database documentation
9
9
  ---
@@ -40,4 +40,4 @@ This domain covers: database, db, postgres, postgresql, mysql, sql, schema, migr
40
40
 
41
41
  ---
42
42
 
43
- *Last updated: 2026-09-04*
43
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Database Registry
3
3
  tier: reference
4
4
  domains: [database]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Quick reference for database documentation
9
9
  ---
@@ -35,4 +35,4 @@ purpose: Quick reference for database documentation
35
35
 
36
36
  ---
37
37
 
38
- *Last updated: 2026-09-04*
38
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: DevOps Documentation Index
3
3
  tier: reference
4
4
  domains: [devops]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Complete listing of devops documentation
9
9
  ---
@@ -40,4 +40,4 @@ This domain covers: devops, deployment, deploy, ci, cd, ci/cd, pipeline, docker,
40
40
 
41
41
  ---
42
42
 
43
- *Last updated: 2026-09-04*
43
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: DevOps Registry
3
3
  tier: reference
4
4
  domains: [devops]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Quick reference for devops documentation
9
9
  ---
@@ -35,4 +35,4 @@ purpose: Quick reference for devops documentation
35
35
 
36
36
  ---
37
37
 
38
- *Last updated: 2026-09-04*
38
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Features Documentation Index
3
3
  tier: reference
4
4
  domains: [features]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Complete listing of features documentation
9
9
  ---
@@ -40,4 +40,4 @@ This domain covers: feature, features, implementation, guide, how-to, tutorial,
40
40
 
41
41
  ---
42
42
 
43
- *Last updated: 2026-09-04*
43
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Features Registry
3
3
  tier: reference
4
4
  domains: [features]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Quick reference for features documentation
9
9
  ---
@@ -35,4 +35,4 @@ purpose: Quick reference for features documentation
35
35
 
36
36
  ---
37
37
 
38
- *Last updated: 2026-09-04*
38
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Plans Documentation Index
3
3
  tier: reference
4
4
  domains: [plans]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Complete listing of plans documentation
9
9
  ---
@@ -40,4 +40,4 @@ This domain covers: plan, plans, planning, roadmap, proposal, proposals, rfc, de
40
40
 
41
41
  ---
42
42
 
43
- *Last updated: 2026-09-04*
43
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Plans Registry
3
3
  tier: reference
4
4
  domains: [plans]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Quick reference for plans documentation
9
9
  ---
@@ -35,4 +35,4 @@ purpose: Quick reference for plans documentation
35
35
 
36
36
  ---
37
37
 
38
- *Last updated: 2026-09-04*
38
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Procedures Documentation Index
3
3
  tier: reference
4
4
  domains: [procedures]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Complete listing of procedures documentation
9
9
  ---
@@ -40,4 +40,4 @@ This domain covers: procedure, procedures, sop, standard-operating-procedure, st
40
40
 
41
41
  ---
42
42
 
43
- *Last updated: 2026-09-04*
43
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Procedures Registry
3
3
  tier: reference
4
4
  domains: [procedures]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Quick reference for procedures documentation
9
9
  ---
@@ -50,4 +50,4 @@ purpose: Quick reference for procedures documentation
50
50
 
51
51
  ---
52
52
 
53
- *Last updated: 2026-09-04*
53
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Quickstart Documentation Index
3
3
  tier: reference
4
4
  domains: [quickstart]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Complete listing of quickstart documentation
9
9
  ---
@@ -39,4 +39,4 @@ This domain covers: quickstart, quick-start, getting-started, setup, install, in
39
39
 
40
40
  ---
41
41
 
42
- *Last updated: 2026-09-04*
42
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Quickstart Registry
3
3
  tier: reference
4
4
  domains: [quickstart]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Quick reference for quickstart documentation
9
9
  ---
@@ -48,4 +48,4 @@ purpose: Quick reference for quickstart documentation
48
48
 
49
49
  ---
50
50
 
51
- *Last updated: 2026-09-04*
51
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Reference Documentation Index
3
3
  tier: reference
4
4
  domains: [reference]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Complete listing of reference documentation
9
9
  ---
@@ -46,4 +46,4 @@ This domain covers: schema, frontmatter, workspace.json, field, enum, cli, flags
46
46
 
47
47
  ---
48
48
 
49
- *Last updated: 2026-09-04*
49
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Reference Registry
3
3
  tier: reference
4
4
  domains: [reference]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Quick reference for reference documentation
9
9
  ---
@@ -52,4 +52,4 @@ purpose: Quick reference for reference documentation
52
52
 
53
53
  ---
54
54
 
55
- *Last updated: 2026-09-04*
55
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Security Documentation Index
3
3
  tier: reference
4
4
  domains: [security]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Complete listing of security documentation
9
9
  ---
@@ -40,4 +40,4 @@ This domain covers: security, auth, authentication, authorization, oauth, jwt, k
40
40
 
41
41
  ---
42
42
 
43
- *Last updated: 2026-09-04*
43
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Security Registry
3
3
  tier: reference
4
4
  domains: [security]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Quick reference for security documentation
9
9
  ---
@@ -35,4 +35,4 @@ purpose: Quick reference for security documentation
35
35
 
36
36
  ---
37
37
 
38
- *Last updated: 2026-09-04*
38
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Standards Documentation Index
3
3
  tier: reference
4
4
  domains: [standards]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Complete listing of standards documentation
9
9
  ---
@@ -40,4 +40,4 @@ This domain covers: standard, standards, convention, conventions, pattern, patte
40
40
 
41
41
  ---
42
42
 
43
- *Last updated: 2026-09-04*
43
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Standards Registry
3
3
  tier: reference
4
4
  domains: [standards]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Quick reference for standards documentation
9
9
  ---
@@ -50,4 +50,4 @@ purpose: Quick reference for standards documentation
50
50
 
51
51
  ---
52
52
 
53
- *Last updated: 2026-09-04*
53
+ *Last updated: 2026-09-26*
@@ -10,9 +10,9 @@ tags:
10
10
  status: active
11
11
  last_updated: '2026-08-31'
12
12
  version: 1.0.0
13
- purpose: The two phases every persistent-planning plan must end with — validate
14
- success through comprehensive testing, then a documentation pass — why they
15
- exist, how they are seeded, and how to keep them last.
13
+ purpose: The three phases every persistent-planning plan must end with — cleanup,
14
+ then validate success through comprehensive testing, then a documentation pass —
15
+ why they exist, how they are seeded, and how to keep them last.
16
16
  estimated_read_time: 4 minutes
17
17
  word_count: 770
18
18
  last_validated: '2026-08-31'
@@ -21,11 +21,12 @@ backlinks: []
21
21
 
22
22
  # Mandatory Closing Phases
23
23
 
24
- Every plan this plugin creates ends with the same two units of work, in the same
24
+ Every plan this plugin creates ends with the same three units of work, in the same
25
25
  order, no exceptions:
26
26
 
27
- 1. **Validate success through comprehensive testing**
28
- 2. **Documentation pass — create / update / deprecate as many docs as needed to capture what was done, where it lives, how to troubleshoot it**
27
+ 1. **Cleanup — remove junk and unused code this work created**
28
+ 2. **Validate success through comprehensive testing**
29
+ 3. **Documentation pass — create / update / deprecate as many docs as needed to capture what was done, where it lives, how to troubleshoot it**
29
30
 
30
31
  They are seeded into the templates so an agent never has to remember them, and
31
32
  they are marked `MANDATORY` in the artifact itself so an agent re-reading the
@@ -53,30 +54,30 @@ filesystem-as-working-memory reasoning behind the plan artifacts themselves —
53
54
 
54
55
  | Mode | Artifact | Section | Seeded as |
55
56
  |---|---|---|---|
56
- | sm | `.planning/<slug>/task_plan.md` | `## Phases` | Phase 5 and Phase 6 of 6 |
57
- | lg | `.planning/<phase-slug>/phase.md` | `## Tasks` | The last two task checkboxes |
57
+ | sm | `.planning/<slug>/task_plan.md` | `## Phases` | Phases 5, 6 and 7 of 7 |
58
+ | lg | `.planning/<phase-slug>/phase.md` | `## Tasks` | The last three task checkboxes |
58
59
 
59
- In **sm mode** the plan is a single file, so the two phases are literally the
60
- last two checkboxes under `## Phases`.
60
+ In **sm mode** the plan is a single file, so the three phases are literally the
61
+ last three checkboxes under `## Phases`.
61
62
 
62
63
  In **lg mode** the plan is a tree (phase → task → atom, see
63
- [Lg-Mode Layered Planning Guide](../architecture/lg-mode.md)). The closing pair is seeded at the
64
+ [Lg-Mode Layered Planning Guide](../architecture/lg-mode.md)). The closing group is seeded at the
64
65
  **phase** level, because a phase is the strategic unit that actually ships. Every
65
66
  phase validates its own work and documents its own work; a phase cannot be marked
66
- `done` until both closing tasks are `done`. Individual tasks and atoms do **not**
67
- each carry the pair — that would produce a documentation pass per atom, which is
67
+ `done` until all three closing tasks are `done`. Individual tasks and atoms do **not**
68
+ each carry the group — that would produce a documentation pass per atom, which is
68
69
  noise.
69
70
 
70
- Neither closing task may be marked `parallelizable: true`. They gate on
71
+ No closing task may be marked `parallelizable: true`. They gate on
71
72
  everything before them by definition.
72
73
 
73
74
  ## The ordering rule
74
75
 
75
- > New work is inserted **above** the closing pair, never after it.
76
+ > New work is inserted **above** the closing group, never after it.
76
77
 
77
- An agent adding phases to an sm plan renumbers the closing pair so they remain
78
- last (Phase 5/6 becomes Phase 7/8, and so on). An agent adding tasks to an lg
79
- phase appends them above the two closing checkboxes. The template states this
78
+ An agent adding phases to an sm plan renumbers the closing group so it remains
79
+ last (Phase 5/6/7 becomes Phase 6/7/8, and so on). An agent adding tasks to an lg
80
+ phase appends them above the three closing checkboxes. The template states this
80
81
  rule inline, directly beneath the checkboxes, so it survives the plan being read
81
82
  in isolation without this document.
82
83
 
@@ -85,6 +86,18 @@ enforceable — see [how it is tested](../testing/test-suite.md).
85
86
 
86
87
  ## What each phase actually requires
87
88
 
89
+ **Cleanup.** Remove what the work left behind: scratch and test scripts, temp
90
+ output and backups, debug and probe logging, one-off test functions, commented-out
91
+ code, and code, helpers, imports or dependencies left unused by abandoned
92
+ approaches. None of it fails a test and none of it is a doc, so neither of the
93
+ other closers catches it. Scope is only what this work created or changed — diff
94
+ against where it started — and never a refactor of code it did not touch. When
95
+ unsure whether something is used, record it in `notes.md` instead of deleting it.
96
+
97
+ Cleanup runs **first** of the three on purpose. It deletes things, so validation
98
+ has to come after it: the tests then prove every deletion safe against the code
99
+ that actually ships. Documentation stays last so it describes that final state.
100
+
88
101
  **Validate success through comprehensive testing.** Prove the work with a check
89
102
  that *fails if the change breaks*. A test that passes both before and after the
90
103
  change validates nothing. For this repository that means adding assertions to
@@ -105,8 +118,8 @@ in a domain and the indexes stay honest.
105
118
  Nothing to run — the phases arrive with the plan:
106
119
 
107
120
  ```bash
108
- /start-planning "Refactor auth" # sm: task_plan.md seeded with 6 phases
109
- /start-planning "Foundation" --mode lg # lg: phase.md seeded with 2 closing tasks
121
+ /start-planning "Refactor auth" # sm: task_plan.md seeded with 7 phases
122
+ /start-planning "Foundation" --mode lg # lg: phase.md seeded with 3 closing tasks
110
123
  ```
111
124
 
112
125
  To confirm the templates still seed them correctly after editing:
@@ -119,15 +132,16 @@ npm test
119
132
 
120
133
  | Symptom | Cause | Fix |
121
134
  |---|---|---|
122
- | A new plan has only 4 phases | Plan created by persistent-planning < 3.1.0 | Append the two closing phases by hand; upgrade the plugin |
123
- | Closing phases are no longer last | Work appended below them | Move the new phases above the pair and renumber |
124
- | `npm test` fails on "documentation phase is last" | A template edit added a checkbox after the pair, or reworded the pair | Restore the ordering in `scripts/init-planning.sh` / `templates/lg/phase.md` |
125
- | Phase marked `done` with closing tasks unchecked | Skipped the gate | Not done — finish both, then mark the phase |
135
+ | A new plan has only 4 phases | Plan created by persistent-planning < 3.1.0 | Append the closing phases by hand; upgrade the plugin |
136
+ | Closing phases are no longer last | Work appended below them | Move the new phases above the group and renumber |
137
+ | A plan has validate/docs closers but no cleanup | Plan created by persistent-planning < 3.5.0 | Add a cleanup phase or task above validate by hand, or leave it — the gate is additive |
138
+ | `npm test` fails on "documentation phase is last" | A template edit added a checkbox after the group, or reworded it | Restore the ordering in `scripts/init-planning.sh` / `templates/lg/phase.md` |
139
+ | Phase marked `done` with closing tasks unchecked | Skipped the gate | Not done — finish all three, then mark the phase |
126
140
 
127
141
 
128
142
  ## How they are enforced (3.3.0+)
129
143
 
130
- In lg mode the two closers are no longer only checkbox lines. `init-phase.sh` scaffolds
144
+ In lg mode the closers are no longer only checkbox lines. `init-phase.sh` scaffolds
131
145
  each as a real task directory — `task.md` with `mandatory: true`, `notes.md`, `atoms/`,
132
146
  and seeded atoms — so they are addressable artifacts like every other task.
133
147
 
@@ -3,7 +3,7 @@ title: Testing Documentation Index
3
3
  tier: reference
4
4
  domains: [testing]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Complete listing of testing documentation
9
9
  ---
@@ -39,4 +39,4 @@ This domain covers: test, testing, tests, unit, unit-test, integration, integrat
39
39
 
40
40
  ---
41
41
 
42
- *Last updated: 2026-09-04*
42
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Testing Registry
3
3
  tier: reference
4
4
  domains: [testing]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Quick reference for testing documentation
9
9
  ---
@@ -48,4 +48,4 @@ purpose: Quick reference for testing documentation
48
48
 
49
49
  ---
50
50
 
51
- *Last updated: 2026-09-04*
51
+ *Last updated: 2026-09-26*
@@ -34,7 +34,7 @@ its subject.
34
34
 
35
35
  The suite is also the thing that makes the
36
36
  [mandatory closing phases](../standards/mandatory-closing-phases.md) enforceable rather than
37
- aspirational: a template edit that pushes a checkbox below the closing pair turns
37
+ aspirational: a template edit that pushes a checkbox below the closing group turns
38
38
  the suite red.
39
39
 
40
40
  ## How to run it
@@ -51,8 +51,8 @@ is non-zero if anything failed, so it drops into CI unchanged.
51
51
 
52
52
  | Group | Asserts |
53
53
  |---|---|
54
- | sm mode | `task_plan.md` + `notes.md` land at the slugified path; the plan seeds 6 phases; validation is second-to-last and documentation is last; the ordering rule text is present; the task name is substituted; re-running does not clobber an edited plan |
55
- | lg mode | `detect-mode.sh` honors the `workspace.json` override; `phase.md` + `notes.md` are created; the two closing tasks are last and in order; HEWTD `tier: plan` frontmatter is present; no `PLACEHOLDER` tokens survive rendering; `task.md` is created with the right `parent:`; atom `sequence:` auto-increments 1 → 2 |
54
+ | sm mode | `task_plan.md` + `notes.md` land at the slugified path; the plan seeds 7 phases; cleanup is third-to-last, validation second-to-last, documentation last; the ordering rule text is present; the task name is substituted; re-running does not clobber an edited plan |
55
+ | lg mode | `detect-mode.sh` honors the `workspace.json` override; `phase.md` + `notes.md` are created; the three closing tasks are last and in order; HEWTD `tier: plan` frontmatter is present; no `PLACEHOLDER` tokens survive rendering; `task.md` is created with the right `parent:`; atom `sequence:` auto-increments 1 → 2 |
56
56
  | mode guards | `init-phase.sh` exits non-zero in sm mode |
57
57
 
58
58
  Every test runs the real script against a throwaway `CLAUDE_PROJECT_DIR` created
@@ -3,7 +3,7 @@ title: Troubleshooting Documentation Index
3
3
  tier: reference
4
4
  domains: [troubleshooting]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Complete listing of troubleshooting documentation
9
9
  ---
@@ -40,4 +40,4 @@ This domain covers: troubleshooting, troubleshoot, debug, debugging, issue, issu
40
40
 
41
41
  ---
42
42
 
43
- *Last updated: 2026-09-04*
43
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Troubleshooting Registry
3
3
  tier: reference
4
4
  domains: [troubleshooting]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Quick reference for troubleshooting documentation
9
9
  ---
@@ -50,4 +50,4 @@ purpose: Quick reference for troubleshooting documentation
50
50
 
51
51
  ---
52
52
 
53
- *Last updated: 2026-09-04*
53
+ *Last updated: 2026-09-26*
@@ -32,8 +32,9 @@ fixed in 3.2.0.
32
32
  A generated `task_plan.md` ends at Phase 4. A correct one ends:
33
33
 
34
34
  ```
35
- - [ ] Phase 5: Validate success through comprehensive testing (MANDATORY)
36
- - [ ] Phase 6: Documentation pass -- create/update/deprecate as many docs as needed to capture what was done, where it lives, how to troubleshoot it, etc. etc.. etc.. (MANDATORY)
35
+ - [ ] Phase 5: Cleanup -- remove junk and unused code this work created: scratch/test scripts, debug files, probe logging, one-off test functions, commented-out code, dead code from abandoned approaches (MANDATORY)
36
+ - [ ] Phase 6: Validate success through comprehensive testing (MANDATORY)
37
+ - [ ] Phase 7: Documentation pass -- create/update/deprecate as many docs as needed to capture what was done, where it lives, how to troubleshoot it, etc. etc.. etc.. (MANDATORY)
37
38
  ```
38
39
 
39
40
  and carries an `## On Completion` section naming `/plan-status` and `/archive-plan`.
@@ -3,7 +3,7 @@ title: Workflows Documentation Index
3
3
  tier: reference
4
4
  domains: [workflows]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Complete listing of workflows documentation
9
9
  ---
@@ -40,4 +40,4 @@ This domain covers: workflow, workflows, process, processes, flow, flowchart, se
40
40
 
41
41
  ---
42
42
 
43
- *Last updated: 2026-09-04*
43
+ *Last updated: 2026-09-26*
@@ -3,7 +3,7 @@ title: Workflows Registry
3
3
  tier: reference
4
4
  domains: [workflows]
5
5
  status: active
6
- last_updated: '2026-09-04'
6
+ last_updated: '2026-09-26'
7
7
  version: '1.0.0'
8
8
  purpose: Quick reference for workflows documentation
9
9
  ---
@@ -35,4 +35,4 @@ purpose: Quick reference for workflows documentation
35
35
 
36
36
  ---
37
37
 
38
- *Last updated: 2026-09-04*
38
+ *Last updated: 2026-09-26*
package/CHANGELOG.md CHANGED
@@ -2,6 +2,68 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [3.5.0] - 2026-09-26
6
+
7
+ ### Added — a mandatory cleanup closer at the end of every phase (#20)
8
+
9
+ Every plan now ends with three mandatory closers instead of two:
10
+
11
+ 1. **Cleanup — remove junk and unused code** (new)
12
+ 2. Validate success through comprehensive testing
13
+ 3. Documentation pass
14
+
15
+ Agent-driven work reliably leaves debris: scratch and test scripts, temp
16
+ output, probe logging, one-off test functions, commented-out code, and code or
17
+ imports left unused by abandoned approaches. None of it fails a test and none
18
+ of it is a doc, so neither existing closer caught it.
19
+
20
+ Cleanup runs *first* of the three so validation proves every deletion safe, and
21
+ docs describe the final state. Its scope is only what the phase created or
22
+ changed; uncertain items go in `notes.md` instead of being deleted.
23
+
24
+ - **lg**: `init-phase.sh` scaffolds `cleanup-remove-junk-and-unused-code/` as a
25
+ real task dir with `mandatory: true` and seeded atoms, third-to-last in
26
+ `phase.md`. Insertion and the completion gate needed no change — new tasks
27
+ already land above the first `MANDATORY` entry, and `plan-status.sh` already
28
+ gates on every `mandatory: true` task.
29
+ - **sm**: `task_plan.md` gains Phase 5 Cleanup; validate and docs renumber to 6
30
+ and 7. This is a deliberate change to the v2 sm template, as #5 was.
31
+
32
+ Existing plans are untouched; they simply lack the third closer.
33
+
34
+ ## [3.4.2] - 2026-09-05
35
+
36
+ ### Changed — the local `update` guard moves upstream into the runtime
37
+
38
+ 3.4.0 added a `preAction` guard in `bin/persistent-planning.js` because the
39
+ runtime's `update` resolved installation state from `<cwd>/node_modules` and
40
+ `CLAUDE_PLUGIN_ROOT` only, found neither in a marketplace-only install, and
41
+ exited 0 after an `npm update` that touched nothing. The guard worked, but it
42
+ was a workaround living in one plugin while every sibling stayed broken —
43
+ babel-fish#17 was the same defect reported against babel-fish.
44
+
45
+ Fixed properly in `@theglitchking/claude-plugin-runtime` 0.1.1, which this
46
+ release requires. `resolveInstall()` there probes npm dep → `CLAUDE_PLUGIN_ROOT`
47
+ → the marketplace record in `~/.claude/plugins/installed_plugins.json`, so the
48
+ 26-line guard is deleted rather than reimplemented.
49
+
50
+ The result is strictly better than the guard it replaces. Previously a
51
+ marketplace install satisfied the guard and fell through to a no-op `npm update`
52
+ that exited 0; now it is recognised, named by path, and refused with a pointer
53
+ at `/plugin` — the only thing that can actually update a plugin-cache copy.
54
+
55
+ The dependency floor is `^0.1.1`, not `^0.1.0`: the shared plugin dep tree at
56
+ `~/.claude/plugins/npm-cache` pins the runtime at 0.1.0 in its lockfile, and
57
+ 0.1.0 still satisfies `^0.1.0`, so the broken copy would have survived.
58
+
59
+ ### Fixed — the CLI test depended on the developer's own machine
60
+
61
+ `tests/run.sh` ran `update` in a temp workspace but inherited the real `$HOME`,
62
+ so once the runtime learned to read `~/.claude/plugins/installed_plugins.json`
63
+ the assertion passed or failed depending on whether the person running it
64
+ happened to have the plugin installed. `HOME` is now overridden, and the
65
+ marketplace branch is asserted against a fixture rather than a machine.
66
+
5
67
  ## [3.4.1] - 2026-09-04
6
68
 
7
69
  ### Fixed — the SessionStart hook could not survive a missing runtime (#18)
@@ -55,32 +55,6 @@ program
55
55
  .description("Persistent markdown-based planning for Claude Code.")
56
56
  .version(version);
57
57
 
58
- // The runtime's `update` resolves the installed version, finds none in a
59
- // marketplace-only install, prints "Current: (not installed) / Now: (not installed)"
60
- // and exits 0 -- a clean success for a no-op. Fail before it gets that far, and say
61
- // where we looked. Same defect as runRelink's missing third probe (issue #10, fix #4).
62
- // Deliberately NOT including the package this CLI runs from: under
63
- // `npx --no @theglitchking/persistent-planning update` that copy always exists, which
64
- // is what let the original bug report see a clean exit 0 for a no-op. Only a *managed*
65
- // install -- a project dependency or a marketplace plugin root -- is updatable.
66
- function installCandidates(cwd) {
67
- const out = [join(cwd, "node_modules", "@theglitchking", "persistent-planning", "package.json")];
68
- if (process.env.CLAUDE_PLUGIN_ROOT) out.push(join(process.env.CLAUDE_PLUGIN_ROOT, "package.json"));
69
- return out;
70
- }
71
-
72
- program.hook("preAction", (_thisCmd, actionCmd) => {
73
- if (actionCmd.name() !== "update") return;
74
- const candidates = installCandidates(process.cwd());
75
- if (candidates.some((p) => existsSync(p))) return;
76
- console.error("update failed: no managed install of @theglitchking/persistent-planning found.");
77
- console.error("Looked in:");
78
- for (const p of candidates) console.error(` ${p}`);
79
- console.error("\nInstall it with `npm i -D @theglitchking/persistent-planning`,");
80
- console.error("or update the marketplace plugin with `/plugin` inside Claude Code.");
81
- process.exit(1);
82
- });
83
-
84
58
  registerUpdateCommands(program, {
85
59
  packageName: PKG,
86
60
  pluginName: "persistent-planning",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theglitchking/persistent-planning",
3
- "version": "3.4.1",
3
+ "version": "3.5.0",
4
4
  "description": "Persistent markdown-based planning with task directories, progress tracking, and context engineering for multi-step Claude Code workflows",
5
5
  "type": "module",
6
6
  "bin": {
@@ -55,7 +55,7 @@
55
55
  },
56
56
  "homepage": "https://github.com/TheGlitchKing/persistent-planning#readme",
57
57
  "dependencies": {
58
- "@theglitchking/claude-plugin-runtime": "^0.1.0",
58
+ "@theglitchking/claude-plugin-runtime": "^0.1.1",
59
59
  "commander": "^14.0.0"
60
60
  },
61
61
  "devDependencies": {
@@ -125,7 +125,7 @@ planning_render_and_log \
125
125
  "NOTES_SCOPE_PLACEHOLDER=${PHASE_SLUG}" \
126
126
  "NOTES_DATE_PLACEHOLDER=${TODAY}"
127
127
 
128
- # Scaffold the two mandatory closing tasks as real task directories.
128
+ # Scaffold the three mandatory closing tasks as real task directories.
129
129
  #
130
130
  # They used to exist only as two checkbox lines in phase.md, so the most important
131
131
  # tasks in every plan were the only ones with no artifact for a subagent to read and
@@ -162,6 +162,16 @@ scaffold_closer() { # <slug> <title> <atom>...
162
162
  done
163
163
  }
164
164
 
165
+ # Cleanup comes first so validation proves every deletion safe.
166
+ scaffold_closer \
167
+ "cleanup-remove-junk-and-unused-code" \
168
+ "Cleanup — remove junk and unused code" \
169
+ "Scope it: diff against where this phase started — only what this phase created or changed is in scope" \
170
+ "Remove scratch/test scripts, debug files, temp output and backups this phase created" \
171
+ "Remove probe logging, one-off test functions and commented-out code" \
172
+ "Remove code, helpers, imports and dependencies left unused by abandoned approaches" \
173
+ "Never refactor code this phase did not touch; when unsure, record it in notes.md instead of deleting"
174
+
165
175
  scaffold_closer \
166
176
  "validate-success-through-comprehensive-testing" \
167
177
  "Validate success through comprehensive testing" \
@@ -105,12 +105,18 @@ if [ ! -f "$TASK_PLAN_FILE" ]; then
105
105
  - [ ] Phase 2: Research/gather information
106
106
  - [ ] Phase 3: Execute/build
107
107
  - [ ] Phase 4: Review and deliver
108
- - [ ] Phase 5: Validate success through comprehensive testing (MANDATORY)
109
- - [ ] Phase 6: Documentation pass -- create/update/deprecate as many docs as needed to capture what was done, where it lives, how to troubleshoot it, etc. etc.. etc.. (MANDATORY)
108
+ - [ ] Phase 5: Cleanup -- remove junk and unused code this work created: scratch/test scripts, debug files, probe logging, one-off test functions, commented-out code, dead code from abandoned approaches (MANDATORY)
109
+ - [ ] Phase 6: Validate success through comprehensive testing (MANDATORY)
110
+ - [ ] Phase 7: Documentation pass -- create/update/deprecate as many docs as needed to capture what was done, where it lives, how to troubleshoot it, etc. etc.. etc.. (MANDATORY)
110
111
 
111
- > Phases 5 and 6 are mandatory and MUST stay the last two phases of this plan.
112
+ > Phases 5, 6 and 7 are mandatory and MUST stay the last three phases of this plan.
112
113
  > Insert new work above them; never after. Renumber them if you add phases.
113
114
  >
115
+ > - **Cleanup**: remove what this work left behind -- scratch and test scripts, temp
116
+ > output, debug logging, one-off test functions, commented-out code, and code,
117
+ > imports or dependencies left unused by abandoned approaches. Only what this work
118
+ > changed; never refactor code it did not touch. When unsure, note it -- don't delete.
119
+ > Cleanup runs before validation so every deletion is proven safe by the tests.
114
120
  > - **Validate success**: prove the work with tests that fail if the change breaks.
115
121
  > - **Documentation pass**: create/update/deprecate every doc this change touches --
116
122
  > what it is, where it lives, how to fix it, how to operate it, why it matters.
@@ -160,12 +160,18 @@ Create this file FIRST for any complex task:
160
160
  - [ ] Phase 2: Research/gather information
161
161
  - [ ] Phase 3: Execute/build
162
162
  - [ ] Phase 4: Review and deliver
163
- - [ ] Phase 5: Validate success through comprehensive testing (MANDATORY)
164
- - [ ] Phase 6: Documentation pass -- create/update/deprecate as many docs as needed to capture what was done, where it lives, how to troubleshoot it, etc. etc.. etc.. (MANDATORY)
163
+ - [ ] Phase 5: Cleanup -- remove junk and unused code this work created: scratch/test scripts, debug files, probe logging, one-off test functions, commented-out code, dead code from abandoned approaches (MANDATORY)
164
+ - [ ] Phase 6: Validate success through comprehensive testing (MANDATORY)
165
+ - [ ] Phase 7: Documentation pass -- create/update/deprecate as many docs as needed to capture what was done, where it lives, how to troubleshoot it, etc. etc.. etc.. (MANDATORY)
165
166
 
166
- > Phases 5 and 6 are mandatory and MUST stay the last two phases of this plan.
167
+ > Phases 5, 6 and 7 are mandatory and MUST stay the last three phases of this plan.
167
168
  > Insert new work above them; never after. Renumber them if you add phases.
168
169
  >
170
+ > - **Cleanup**: remove what this work left behind -- scratch and test scripts, temp
171
+ > output, debug logging, one-off test functions, commented-out code, and code,
172
+ > imports or dependencies left unused by abandoned approaches. Only what this work
173
+ > changed; never refactor code it did not touch. When unsure, note it -- don't delete.
174
+ > Cleanup runs before validation so every deletion is proven safe by the tests.
169
175
  > - **Validate success**: prove the work with tests that fail if the change breaks.
170
176
  > - **Documentation pass**: create/update/deprecate every doc this change touches --
171
177
  > what it is, where it lives, how to fix it, how to operate it, why it matters.
@@ -21,13 +21,19 @@ Tasks with no inter-dependencies can be marked `parallelizable: true` in their f
21
21
  so subagent teams can pick them up concurrently.]
22
22
 
23
23
  _(no tasks yet — run `/start-task "Task name" --parent PHASE_SLUG_PLACEHOLDER`)_
24
+ - [ ] **Cleanup — remove junk and unused code** (`cleanup-remove-junk-and-unused-code`) (MANDATORY — third-to-last)
24
25
  - [ ] **Validate success through comprehensive testing** (`validate-success-through-comprehensive-testing`) (MANDATORY — second-to-last)
25
26
  - [ ] **Documentation pass — create/update/deprecate as many docs as needed to capture what was done, where it lives, how to troubleshoot it, etc. etc.. etc..** (`documentation-pass-create-update-deprecate-docs`) (MANDATORY — last)
26
27
 
27
- > The two mandatory closing tasks above MUST remain the last two tasks of this phase.
28
- > Add new tasks above them; never after. A phase cannot be marked `done` until both are
29
- > `done`, and neither may be `parallelizable` — they gate on everything before them.
28
+ > The three mandatory closing tasks above MUST remain the last three tasks of this phase.
29
+ > Add new tasks above them; never after. A phase cannot be marked `done` until all three
30
+ > are `done`, and none may be `parallelizable` — they gate on everything before them.
30
31
  >
32
+ > - **Cleanup**: remove what this phase left behind — scratch and test scripts, temp
33
+ > output, debug logging, one-off test functions, commented-out code, and code, imports
34
+ > or dependencies left unused by abandoned approaches. Only what this phase changed;
35
+ > never refactor code it did not touch. It runs before validation so the tests prove
36
+ > every deletion safe.
31
37
  > - **Validate success**: prove the phase's work with tests that fail if it breaks.
32
38
  > - **Documentation pass**: create/update/deprecate every doc this phase touches —
33
39
  > what it is, where it lives, how to fix it, how to operate it, why it matters.