@theglitchking/persistent-planning 2.0.0 → 3.0.1
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/marketplace.json +45 -0
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +67 -0
- package/README.md +46 -35
- package/commands/start-atom.md +93 -0
- package/commands/start-planning.md +74 -24
- package/commands/start-task.md +83 -0
- package/docs/atom-granularity.md +156 -0
- package/docs/lg-mode.md +135 -0
- package/docs/workspace-json.md +85 -0
- package/package.json +6 -2
- package/scripts/detect-mode.sh +67 -0
- package/scripts/init-atom.sh +139 -0
- package/scripts/init-phase.sh +141 -0
- package/scripts/init-planning.sh +233 -0
- package/scripts/init-task.sh +118 -0
- package/scripts/lib/planning.sh +161 -0
- package/templates/lg/atom.md +45 -0
- package/templates/lg/notes.md +40 -0
- package/templates/lg/phase.md +42 -0
- package/templates/lg/task.md +54 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: NOTES_TITLE_PLACEHOLDER
|
|
3
|
+
tier: plan
|
|
4
|
+
domains:
|
|
5
|
+
- planning
|
|
6
|
+
status: active
|
|
7
|
+
last_updated: "NOTES_DATE_PLACEHOLDER"
|
|
8
|
+
plan_kind: notes
|
|
9
|
+
scope: NOTES_SCOPE_PLACEHOLDER
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Notes: NOTES_TITLE_PLACEHOLDER
|
|
13
|
+
|
|
14
|
+
**Scope**: `NOTES_SCOPE_PLACEHOLDER` (which phase / task this notes file is attached to)
|
|
15
|
+
|
|
16
|
+
## Key Findings
|
|
17
|
+
[Findings that emerged during plan implementation. Things that didn't fit cleanly into
|
|
18
|
+
a task or atom but matter for context.]
|
|
19
|
+
|
|
20
|
+
## Research Sources
|
|
21
|
+
[External references, internal docs, conversations that informed decisions.]
|
|
22
|
+
|
|
23
|
+
## Synthesized Findings
|
|
24
|
+
[Patterns, themes, distilled understanding from the research.]
|
|
25
|
+
|
|
26
|
+
## Decisions Made
|
|
27
|
+
[Notes-level decisions that affect the parent task or phase. Promote to the parent's
|
|
28
|
+
Decisions Made section if they have wider impact.]
|
|
29
|
+
|
|
30
|
+
## Errors & Solutions
|
|
31
|
+
[Errors encountered + how they were resolved. Useful for future similar work.]
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Append-Only Log
|
|
36
|
+
[Chronological record of progress. Each entry is dated. Useful for handoff and
|
|
37
|
+
reconstructing context after time away.]
|
|
38
|
+
|
|
39
|
+
### NOTES_DATE_PLACEHOLDER — Initialized
|
|
40
|
+
- Notes file created
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: PHASE_TITLE_PLACEHOLDER
|
|
3
|
+
tier: plan
|
|
4
|
+
domains:
|
|
5
|
+
- planning
|
|
6
|
+
status: draft
|
|
7
|
+
last_updated: "PHASE_DATE_PLACEHOLDER"
|
|
8
|
+
plan_kind: phase
|
|
9
|
+
parent: null
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Phase: PHASE_TITLE_PLACEHOLDER
|
|
13
|
+
|
|
14
|
+
## Goal
|
|
15
|
+
[One sentence describing what this phase achieves and the strategic boundary it represents.]
|
|
16
|
+
|
|
17
|
+
## Tasks
|
|
18
|
+
[Tasks created with `/start-task --parent PHASE_SLUG_PLACEHOLDER` will be tracked here.
|
|
19
|
+
Each task is a bounded deliverable. Tasks default to dependencies-first scheduling.
|
|
20
|
+
Tasks with no inter-dependencies can be marked `parallelizable: true` in their frontmatter
|
|
21
|
+
so subagent teams can pick them up concurrently.]
|
|
22
|
+
|
|
23
|
+
- [ ] (no tasks yet — run `/start-task "Task name" --parent PHASE_SLUG_PLACEHOLDER`)
|
|
24
|
+
|
|
25
|
+
## Decisions Made
|
|
26
|
+
[Phase-level decisions that affect multiple tasks. Format: `**Decision**: rationale`.]
|
|
27
|
+
|
|
28
|
+
## Status
|
|
29
|
+
**Currently draft** — phase has been initialized but no tasks defined.
|
|
30
|
+
|
|
31
|
+
Status enum: `draft | active | paused | done | archived`
|
|
32
|
+
|
|
33
|
+
When all tasks are `done`, mark this phase `done`. When archived, this directory and
|
|
34
|
+
its tasks/atoms move to `.planning/archive/PHASE_SLUG_PLACEHOLDER/`.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Layer reference (lg mode)
|
|
39
|
+
- **Phase** (this file): strategic grouping of related tasks
|
|
40
|
+
- **Task** (`.planning/PHASE_SLUG_PLACEHOLDER/<task-slug>/task.md`): bounded deliverable
|
|
41
|
+
- **Atom** (`.planning/PHASE_SLUG_PLACEHOLDER/<task-slug>/atoms/<atom-slug>.md`): subagent hand-off unit
|
|
42
|
+
- **Notes** (`.planning/PHASE_SLUG_PLACEHOLDER/notes.md` or per-task `notes.md`): cross-cutting references
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: TASK_TITLE_PLACEHOLDER
|
|
3
|
+
tier: plan
|
|
4
|
+
domains:
|
|
5
|
+
- planning
|
|
6
|
+
status: draft
|
|
7
|
+
last_updated: "TASK_DATE_PLACEHOLDER"
|
|
8
|
+
plan_kind: task
|
|
9
|
+
parent: PHASE_SLUG_PLACEHOLDER
|
|
10
|
+
depends_on: []
|
|
11
|
+
parallelizable: false
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Task: TASK_TITLE_PLACEHOLDER
|
|
15
|
+
|
|
16
|
+
**Phase**: `PHASE_SLUG_PLACEHOLDER`
|
|
17
|
+
|
|
18
|
+
## Goal
|
|
19
|
+
[One sentence describing the deliverable end-state for this task.]
|
|
20
|
+
|
|
21
|
+
## Atoms
|
|
22
|
+
[Atomic checkbox items that will be picked up by subagents. Each atom should be
|
|
23
|
+
something a single subagent can complete in one focused pass.
|
|
24
|
+
|
|
25
|
+
For complex atoms that need explicit subagent context, spawn a standalone atom file
|
|
26
|
+
via `/start-atom "Atom name" --parent TASK_SLUG_PLACEHOLDER` — these become files
|
|
27
|
+
under `atoms/` that subagents read via the planning MCP.
|
|
28
|
+
|
|
29
|
+
Inline checkbox vs. standalone atom file — see anti-pattern doc:
|
|
30
|
+
docs/atom-granularity.md.]
|
|
31
|
+
|
|
32
|
+
- [ ] (no atoms yet — add inline checkboxes here for simple atoms,
|
|
33
|
+
or run `/start-atom "Atom name" --parent TASK_SLUG_PLACEHOLDER` for complex ones)
|
|
34
|
+
|
|
35
|
+
## Decisions Made
|
|
36
|
+
[Task-level decisions. Format: `**Decision**: rationale`.]
|
|
37
|
+
|
|
38
|
+
## Status
|
|
39
|
+
**Currently draft** — task has been initialized but no atoms defined.
|
|
40
|
+
|
|
41
|
+
Status enum: `draft | active | paused | done | archived`
|
|
42
|
+
|
|
43
|
+
## Dependencies
|
|
44
|
+
This task does not currently depend on other tasks. Edit `depends_on:` in frontmatter
|
|
45
|
+
to declare dependencies on other tasks within the same phase. Tasks with no
|
|
46
|
+
inter-dependencies should set `parallelizable: true`.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Layer reference
|
|
51
|
+
- **Phase** (`../phase.md`): the strategic grouping this task belongs to
|
|
52
|
+
- **This task**: the bounded deliverable
|
|
53
|
+
- **Atoms** (`atoms/<atom-slug>.md`): subagent hand-off units (sequential within this task)
|
|
54
|
+
- **Notes** (`notes.md`): cross-cutting references for this task's implementation
|