@zalom/plastic 2.0.0-alpha.9 → 2.0.2
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/PLASTIC.md +13 -136
- package/README.md +357 -133
- package/agents/plastic-enforcer.md +21 -16
- package/agents/plastic-executor.md +15 -4
- package/agents/plastic-node-research.md +30 -0
- package/agents/plastic-node-verify.md +28 -0
- package/agents/plastic-node-work.md +33 -0
- package/agents/{plastic-advisor.md → plastic-primary-advisor.md} +7 -9
- package/agents/{plastic-faux-advisor.md → plastic-secondary-advisor.md} +9 -12
- package/assets/plastic-logo.svg +1 -0
- package/bin/crap +4 -0
- package/bin/lib/context_budget.rb +43 -6
- package/bin/lib/skill_census.rb +839 -0
- package/bin/plastic +8 -0
- package/bin/plastic-skill-census +114 -0
- package/bin/test +24 -4
- package/bin/verify-change +345 -0
- package/config_asks.yml +4 -4
- package/deprecations.yml +1 -1
- package/{skills/agent-advisor/references → docs/help}/advisor-protocol.md +19 -24
- package/{skills/auto/references → docs/help}/agent-architecture.md +16 -14
- package/docs/help/completion-and-done.md +53 -0
- package/docs/help/human-report-contract.md +152 -0
- package/{skills/conventions/references → docs/help}/knowledge-graph.md +9 -0
- package/{skills/conventions/references → docs/help}/locks-and-worktrees.md +11 -13
- package/{skills/conventions/references → docs/help}/maintenance-and-revisions.md +1 -1
- package/{skills/conventions/references → docs/help}/roadmaps.md +5 -4
- package/{skills/tutorial/references → docs/help}/track-1-guided.md +28 -47
- package/{skills/tutorial/references → docs/help}/track-2-auto.md +8 -8
- package/{skills/tutorial/references → docs/help}/track-3-projects-and-roadmaps.md +24 -17
- package/hooks/call-budget +4 -0
- package/hooks/hooks.json +24 -0
- package/hooks/message-display +55 -2
- package/hooks/session-start +5 -1
- package/hooks/statusline +32 -27
- package/hooks/stop +5 -0
- package/package.json +5 -3
- package/scripts/append-ledger +2 -1
- package/scripts/dashboard.rb +267 -16
- package/scripts/day-summary +2 -1
- package/scripts/doctor.rb +680 -39
- package/scripts/end-intent +378 -56
- package/scripts/exec-worktree +5 -5
- package/scripts/file-session-intent +2 -1
- package/scripts/graph-measure +249 -0
- package/scripts/hook-call-budget +222 -0
- package/scripts/hook-capture +24 -123
- package/scripts/hook-close +2 -1
- package/scripts/hook-message-display +7 -0
- package/scripts/hook-record +24 -16
- package/scripts/hook-savepoint +27 -3
- package/scripts/hook-session-start +359 -321
- package/scripts/hook-stop +58 -0
- package/scripts/index-projection +74 -0
- package/scripts/insight-append +17 -4
- package/scripts/install.rb +9 -7
- package/scripts/lib/action_graph_shim.rb +279 -0
- package/scripts/lib/active_delivery.rb +105 -0
- package/scripts/lib/agent_models.rb +63 -25
- package/scripts/lib/arm.rb +74 -91
- package/scripts/lib/atomic_write.rb +31 -0
- package/scripts/lib/backup.rb +65 -0
- package/scripts/lib/cli/command.rb +92 -0
- package/scripts/lib/cli/commands/auto.rb +18 -0
- package/scripts/lib/cli/commands/auto_brief.rb +44 -0
- package/scripts/lib/cli/commands/auto_lock.rb +111 -0
- package/scripts/lib/cli/commands/auto_report.rb +50 -0
- package/scripts/lib/cli/commands/auto_take.rb +68 -0
- package/scripts/lib/cli/commands/backup.rb +43 -0
- package/scripts/lib/cli/commands/checkout.rb +25 -0
- package/scripts/lib/cli/commands/continue.rb +66 -0
- package/scripts/lib/cli/commands/doctor.rb +81 -0
- package/scripts/lib/cli/commands/feedback.rb +40 -0
- package/scripts/lib/cli/commands/help.rb +69 -0
- package/scripts/lib/cli/commands/hook.rb +32 -0
- package/scripts/lib/cli/commands/index.rb +23 -0
- package/scripts/lib/cli/commands/install.rb +21 -0
- package/scripts/lib/cli/commands/installer_verb.rb +37 -0
- package/scripts/lib/cli/commands/intent.rb +19 -0
- package/scripts/lib/cli/commands/intent_answer.rb +37 -0
- package/scripts/lib/cli/commands/intent_command.rb +58 -0
- package/scripts/lib/cli/commands/intent_end.rb +75 -0
- package/scripts/lib/cli/commands/intent_new.rb +62 -0
- package/scripts/lib/cli/commands/intent_note.rb +43 -0
- package/scripts/lib/cli/commands/intent_rule.rb +36 -0
- package/scripts/lib/cli/commands/intent_show.rb +32 -0
- package/scripts/lib/cli/commands/intent_spec.rb +44 -0
- package/scripts/lib/cli/commands/intent_step.rb +79 -0
- package/scripts/lib/cli/commands/intent_verify.rb +26 -0
- package/scripts/lib/cli/commands/migrate.rb +16 -0
- package/scripts/lib/cli/commands/migrate_stores.rb +31 -0
- package/scripts/lib/cli/commands/next.rb +54 -0
- package/scripts/lib/cli/commands/project.rb +19 -0
- package/scripts/lib/cli/commands/project_links.rb +46 -0
- package/scripts/lib/cli/commands/project_list.rb +20 -0
- package/scripts/lib/cli/commands/project_new.rb +95 -0
- package/scripts/lib/cli/commands/query.rb +31 -0
- package/scripts/lib/cli/commands/render.rb +35 -0
- package/scripts/lib/cli/commands/roadmap.rb +19 -0
- package/scripts/lib/cli/commands/roadmap_check.rb +54 -0
- package/scripts/lib/cli/commands/roadmap_log.rb +54 -0
- package/scripts/lib/cli/commands/roadmap_migrate.rb +53 -0
- package/scripts/lib/cli/commands/roadmap_next.rb +77 -0
- package/scripts/lib/cli/commands/roadmap_show.rb +65 -0
- package/scripts/lib/cli/commands/rollback.rb +20 -0
- package/scripts/lib/cli/commands/search.rb +60 -0
- package/scripts/lib/cli/commands/session.rb +18 -0
- package/scripts/lib/cli/commands/session_commit.rb +42 -0
- package/scripts/lib/cli/commands/session_handoff.rb +34 -0
- package/scripts/lib/cli/commands/session_summary.rb +35 -0
- package/scripts/lib/cli/commands/status.rb +68 -0
- package/scripts/lib/cli/commands/subcommand_list.rb +36 -0
- package/scripts/lib/cli/commands/sync.rb +55 -0
- package/scripts/lib/cli/commands/uninstall.rb +20 -0
- package/scripts/lib/cli/commands/update.rb +20 -0
- package/scripts/lib/cli/commands/version.rb +53 -0
- package/scripts/lib/cli/frontier.rb +86 -0
- package/scripts/lib/cli/intent_progress.rb +36 -0
- package/scripts/lib/cli/legacy.rb +80 -0
- package/scripts/lib/cli/output.rb +137 -0
- package/scripts/lib/cli/scope.rb +134 -0
- package/scripts/lib/cli/table.rb +65 -0
- package/scripts/lib/cli.rb +94 -0
- package/scripts/lib/codex_adapter.rb +198 -0
- package/scripts/lib/compact_instructions.rb +13 -5
- package/scripts/lib/core_integrity.rb +71 -0
- package/scripts/lib/dashboard_screen.rb +40 -0
- package/scripts/lib/data_boundary.rb +132 -0
- package/scripts/lib/day_summary.rb +23 -14
- package/scripts/lib/doctor_core.rb +114 -38
- package/scripts/lib/doctor_session_ledger.rb +5 -53
- package/scripts/lib/engine_permissions.rb +88 -0
- package/scripts/lib/exec_worktree.rb +24 -21
- package/scripts/lib/feedback_report.rb +1 -1
- package/scripts/lib/graph_edges.rb +137 -0
- package/scripts/lib/graph_file.rb +246 -0
- package/scripts/lib/graph_measure.rb +645 -0
- package/scripts/lib/graph_measure_budget.rb +409 -0
- package/scripts/lib/graph_measure_cohorts.rb +487 -0
- package/scripts/lib/graph_measure_models.rb +413 -0
- package/scripts/lib/graph_measure_report.rb +532 -0
- package/scripts/lib/graph_tree.rb +98 -0
- package/scripts/lib/guarded_append.rb +155 -0
- package/scripts/lib/handoff.rb +40 -13
- package/scripts/lib/harness_adapter.rb +184 -0
- package/scripts/lib/hook_registry.rb +27 -3
- package/scripts/lib/hook_replay.rb +235 -0
- package/scripts/lib/index_entry.rb +62 -0
- package/scripts/lib/index_projection.rb +201 -0
- package/scripts/lib/insights.rb +1 -1
- package/scripts/lib/installer_core.rb +543 -71
- package/scripts/lib/intent_screen.rb +4 -4
- package/scripts/lib/intent_screen_ansi.rb +73 -12
- package/scripts/lib/intent_validator.rb +2 -2
- package/scripts/lib/lock.rb +10 -11
- package/scripts/lib/message_display.rb +350 -54
- package/scripts/lib/meter_watch.rb +185 -0
- package/scripts/lib/node_file.rb +234 -0
- package/scripts/lib/node_ids.rb +99 -0
- package/scripts/lib/node_input.rb +921 -0
- package/scripts/lib/node_input_compatibility.rb +62 -0
- package/scripts/lib/node_ledger.rb +386 -0
- package/scripts/lib/node_progress.rb +153 -0
- package/scripts/lib/node_return.rb +204 -0
- package/scripts/lib/node_worktree.rb +337 -0
- package/scripts/lib/outcome_report.rb +440 -0
- package/scripts/lib/preflight.rb +4 -6
- package/scripts/lib/project_config.rb +46 -0
- package/scripts/lib/project_validator.rb +3 -2
- package/scripts/lib/qmd_sync.rb +8 -7
- package/scripts/lib/ready_set.rb +462 -0
- package/scripts/lib/reference_archive.rb +45 -0
- package/scripts/lib/release_guard.rb +18 -0
- package/scripts/lib/report_screen.rb +1371 -47
- package/scripts/lib/rlm/corpus.rb +13 -0
- package/scripts/lib/rlm/probe.rb +29 -0
- package/scripts/lib/rlm/query.rb +22 -0
- package/scripts/lib/roadmap_graph.rb +210 -0
- package/scripts/lib/roadmap_migration.rb +95 -0
- package/scripts/lib/roadmap_queue.rb +170 -12
- package/scripts/lib/roadmap_render.rb +150 -0
- package/scripts/lib/roadmap_savepoint.rb +64 -14
- package/scripts/lib/runner_absorb.rb +703 -0
- package/scripts/lib/runner_answer.rb +206 -0
- package/scripts/lib/runner_core.rb +194 -0
- package/scripts/lib/runner_dispatch.rb +526 -0
- package/scripts/lib/runner_policy.rb +191 -0
- package/scripts/lib/runner_proposals.rb +275 -0
- package/scripts/lib/runner_rewind.rb +201 -0
- package/scripts/lib/runner_sweep.rb +231 -0
- package/scripts/lib/runner_until_empty.rb +252 -0
- package/scripts/lib/runner_watch.rb +389 -0
- package/scripts/lib/savepoint.rb +141 -19
- package/scripts/lib/scaffold_intent.rb +6 -3
- package/scripts/lib/screen_paint.rb +365 -28
- package/scripts/lib/screens/dashboard.rb +20 -0
- package/scripts/lib/screens/plan.rb +18 -0
- package/scripts/lib/screens/roadmap.rb +15 -0
- package/scripts/lib/search_index.rb +55 -0
- package/scripts/lib/session_close.rb +30 -28
- package/scripts/lib/session_git.rb +67 -19
- package/scripts/lib/session_ledger.rb +48 -4
- package/scripts/lib/session_usage.rb +190 -0
- package/scripts/lib/sqlite.rb +22 -0
- package/scripts/lib/stop_gate.rb +95 -0
- package/scripts/lib/store_discovery.rb +7 -6
- package/scripts/lib/store_layout.rb +54 -0
- package/scripts/lib/store_provisioning.rb +2 -1
- package/scripts/lib/store_sync.rb +85 -0
- package/scripts/lib/stores_move.rb +93 -0
- package/scripts/lib/untouched_scaffold.rb +51 -0
- package/scripts/lib/verify_intent.rb +36 -8
- package/scripts/lib/version_number.rb +48 -0
- package/scripts/lib/work_graph.rb +59 -0
- package/scripts/lib/work_graph_validator.rb +201 -0
- package/scripts/lib/worktree.rb +27 -32
- package/scripts/lib/worktree_sweep.rb +6 -5
- package/scripts/link-suggest +2 -1
- package/scripts/meter-watch +57 -0
- package/scripts/migrate-to-global +1 -1
- package/scripts/new-intent +4 -13
- package/scripts/node-input +92 -0
- package/scripts/node-run +225 -0
- package/scripts/node-transition +291 -0
- package/scripts/outcome-report +74 -0
- package/scripts/plastic-lock +65 -60
- package/scripts/project-links +6 -21
- package/scripts/promote-session-item +3 -2
- package/scripts/read-config +53 -9
- package/scripts/ready-set +126 -0
- package/scripts/release-check +123 -0
- package/scripts/report-screen +177 -16
- package/scripts/roadmap-graph +125 -0
- package/scripts/roadmap-savepoint +7 -0
- package/scripts/rollback.rb +5 -1
- package/scripts/runner +581 -0
- package/scripts/savepoint-note +11 -9
- package/scripts/session-commit +2 -1
- package/scripts/session-usage +56 -0
- package/scripts/skill-lint +115 -6
- package/scripts/spawn-preamble +2 -2
- package/scripts/update.rb +31 -4
- package/scripts/validate-work-graph +39 -0
- package/scripts/verify-intent +3 -2
- package/scripts/write-handoff +2 -1
- package/templates/agents.md +7 -7
- package/templates/config.yml +16 -9
- package/templates/dashboard-screen.md +22 -0
- package/templates/display-fixture.md +21 -0
- package/templates/graph.md +16 -0
- package/templates/index.md +1 -1
- package/templates/intent-screen.md +1 -1
- package/templates/node-decision.md +11 -0
- package/templates/node-research.md +13 -0
- package/templates/node-verify.md +13 -0
- package/templates/node-work.md +22 -0
- package/templates/outcome.md +8 -3
- package/templates/project.yml +1 -1
- package/templates/render.css +10 -0
- package/templates/report-plan.md +15 -0
- package/templates/report-roadmap-delivered.md +10 -0
- package/templates/report-roadmap-plan.md +9 -0
- package/templates/report-roadmap-state.md +9 -0
- package/templates/report-state.md +1 -1
- package/templates/roadmap.md +13 -0
- package/bin/plastic.js +0 -70
- package/scripts/lib/bridge.rb +0 -116
- package/skills/agent-advisor/SKILL.md +0 -92
- package/skills/auto/SKILL.md +0 -296
- package/skills/auto/evals/evals.json +0 -255
- package/skills/auto/references/end-tail.md +0 -66
- package/skills/auto/references/human-report-contract.md +0 -78
- package/skills/conventions/SKILL.md +0 -29
- package/skills/conventions/references/completion-and-done.md +0 -43
- package/skills/dashboard/SKILL.md +0 -169
- package/skills/dashboard/evals/evals.json +0 -38
- package/skills/dashboard/references/classification.md +0 -22
- package/skills/dashboard/templates/dashboard-global.md +0 -20
- package/skills/dashboard/templates/dashboard-project.md +0 -19
- package/skills/direct/SKILL.md +0 -66
- package/skills/direct/references/request-signals.md +0 -59
- package/skills/doctor/SKILL.md +0 -299
- package/skills/doctor/report.md +0 -102
- package/skills/feedback/SKILL.md +0 -98
- package/skills/feedback/references/transport-and-privacy.md +0 -65
- package/skills/feedback/report.md +0 -36
- package/skills/install/SKILL.md +0 -217
- package/skills/intent-continuing/SKILL.md +0 -154
- package/skills/intent-continuing/references/board-fill.md +0 -43
- package/skills/intent-continuing/references/boarding-matrix.md +0 -34
- package/skills/intent-continuing/references/context-management.md +0 -28
- package/skills/intent-continuing/references/liveness-ranking.md +0 -57
- package/skills/intent-creating/SKILL.md +0 -164
- package/skills/intent-creating/evals/evals.json +0 -72
- package/skills/intent-creating/references/lifecycle.md +0 -81
- package/skills/intent-creating/references/wikilinks.md +0 -8
- package/skills/intent-ending/SKILL.md +0 -176
- package/skills/intent-ending/evals/evals.json +0 -74
- package/skills/intent-executing/SKILL.md +0 -170
- package/skills/intent-executing/evals/evals.json +0 -66
- package/skills/intent-executing/implementer-prompt.md +0 -42
- package/skills/intent-executing/spec-reviewer-prompt.md +0 -27
- package/skills/intent-speccing/SKILL.md +0 -130
- package/skills/intent-speccing/evals/evals.json +0 -126
- package/skills/intent-speccing/references/design-principles.md +0 -44
- package/skills/intent-speccing/references/per-section-fill-rules.md +0 -92
- package/skills/intent-speccing/references/self-verify-checklist.md +0 -37
- package/skills/project-creating/SKILL.md +0 -162
- package/skills/project-creating/references/hubs-projects.md +0 -55
- package/skills/project-creating/references/project-scaffolding.md +0 -97
- package/skills/releasing/SKILL.md +0 -337
- package/skills/releasing/references/deprecations.md +0 -60
- package/skills/releasing/references/promotion-and-tagging.md +0 -66
- package/skills/releasing/references/release-lines.md +0 -105
- package/skills/roadmap/SKILL.md +0 -64
- package/skills/roadmap/references/file-format.md +0 -124
- package/skills/roadmap/references/operations.md +0 -112
- package/skills/rollback/SKILL.md +0 -91
- package/skills/tutorial/SKILL.md +0 -65
- package/skills/tutorial/evals/evals.json +0 -186
- package/skills/uninstall/SKILL.md +0 -75
- package/skills/update/SKILL.md +0 -126
- /package/{skills/auto/references → docs/help}/agent-report-contract.md +0 -0
- /package/{skills/intent-executing → docs/help}/code-quality-reviewer-prompt.md +0 -0
- /package/{skills/conventions/references → docs/help}/lifecycle-and-savepoints.md +0 -0
- /package/{skills/intent-executing → docs/help}/plan-reviewer-prompt.md +0 -0
package/PLASTIC.md
CHANGED
|
@@ -1,141 +1,18 @@
|
|
|
1
|
-
# Plastic
|
|
1
|
+
# Plastic
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
> (`references/<chapter>.md`: knowledge-graph, lifecycle-and-savepoints, locks-and-worktrees,
|
|
6
|
-
> completion-and-done, maintenance-and-revisions, roadmaps), read on demand.
|
|
3
|
+
Plastic is one command, `plastic`. Run `plastic help` for the list of commands
|
|
4
|
+
and `plastic help <command>` for one command's options.
|
|
7
5
|
|
|
8
|
-
|
|
6
|
+
Open a session with `plastic status`, which shows the active work in every
|
|
7
|
+
store. Then run `plastic continue` for the project you are in: where it stands
|
|
8
|
+
and what runs next. `plastic next` prints that one action on its own.
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
| **Thinking** | a conversation: each ruling an insight, then the action files | this session, then as in direct |
|
|
14
|
-
| **Auto** | a registered intent with a clear prompt | a background team under a lock and a worktree |
|
|
10
|
+
Every command ends with two lines. The `next:` line names the command to run
|
|
11
|
+
now, and you run it unless the person asks for something else. The `because:`
|
|
12
|
+
line gives the rule that chose it.
|
|
15
13
|
|
|
16
|
-
|
|
17
|
-
every intent: an intent's `## Insights` feed the observe phase.
|
|
14
|
+
Add `--json` to any command to get the same result as data.
|
|
18
15
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
accomplish, explore, or understand. The unit of work is always an intent, never a ticket. The
|
|
23
|
-
day ledger is one too: the session intent, one per calendar day, that direct work records into.
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
store/ID--three-to-five-words/
|
|
27
|
-
{ID}--{slug}.md # required: Intent, Context, Outcome, Insights, Links sections
|
|
28
|
-
checklist.md # while working: one item per executed request
|
|
29
|
-
savepoint.md # while working: one line per milestone, append-only
|
|
30
|
-
spec.md # backfilled at intent end: requests and decisions
|
|
31
|
-
plan.md # backfilled: what was thought
|
|
32
|
-
actions/ # backfilled: how it was done (at least one ACTION_N.md)
|
|
33
|
-
outcome.md # backfilled: what changed; mandatory at Completed and Abandoned
|
|
34
|
-
resources/ # {type}--{description}.md
|
|
35
|
-
revisions.md # optional: append-only maintenance audit trail
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
Frontmatter is identity and knowledge graph only, nothing operational: `id`, `intent`,
|
|
39
|
-
`sources` (direct ascendants, loaded strongly), `chain` (what it spawned, traversed lightly),
|
|
40
|
-
`created`, `author` (`human` or an agent name), `tags`. Only the day ledger adds `mode: direct`.
|
|
41
|
-
IDs follow Luhmann's alternating convention (`1`, `1a`, `1a1`, `1a1a`); siblings increment
|
|
42
|
-
(`1a`, `1b`).
|
|
43
|
-
|
|
44
|
-
## The Record: Stages as its Shape
|
|
45
|
-
|
|
46
|
-
| Stage | Section | Deliverable | Skill |
|
|
47
|
-
|---|---|---|---|
|
|
48
|
-
| **What** | `## Intent` | `{ID}--{slug}.md` | `plastic-intent-creating` |
|
|
49
|
-
| **Why** | `## Context` + Decisions | `spec.md` | `plastic-intent-speccing` (thinking mode) |
|
|
50
|
-
| **How** | `checklist.md` + `actions/` | `plan.md` | `plastic-intent-speccing` writes the action files |
|
|
51
|
-
| **Exec** | `## Outcome` | `outcome.md` | `plastic-intent-executing`; `plastic-intent-ending` closes |
|
|
52
|
-
|
|
53
|
-
Stages are the shape of the record, not checkpoints: nothing blocks a write. Only "how to
|
|
54
|
-
execute" (a checklist item plus its action) must exist before work; the rest is backfilled at
|
|
55
|
-
intent end from what was recorded while working.
|
|
56
|
-
|
|
57
|
-
Invoke a skill for your harness: Claude Code uses the slash form (`/plastic-intent-creating`);
|
|
58
|
-
Codex CLI uses a dollar prefix instead (`$plastic-intent-creating`), and may also select a skill
|
|
59
|
-
implicitly by matching its description.
|
|
60
|
-
|
|
61
|
-
`## Insights` is the append-only log of durable discoveries from every stage, newest at the
|
|
62
|
-
bottom, never prepended, each entry prefixed `{utc-iso8601} · {stage} · {author}`. Write
|
|
63
|
-
through `scripts/insight-append <intent_dir> <text> --stage S --author A`, which ships with
|
|
64
|
-
every install and update, formats the prefix, validates it, and appends at the bottom.
|
|
65
|
-
|
|
66
|
-
## Agents and Skills
|
|
67
|
-
|
|
68
|
-
An auto team is `plastic-enforcer` (the lead) plus `plastic-executor`; models live in
|
|
69
|
-
`agents.models.<harness>.<agent>`.
|
|
70
|
-
|
|
71
|
-
Twenty skills, each `plastic-<name>`, listed by your harness. `plastic-doctor` checks
|
|
72
|
-
installation health (core, store, and full scopes). `plastic-feedback` turns a Plastic quirk,
|
|
73
|
-
bug, or feature idea into a redacted local report and a prefilled GitHub issue URL; only the
|
|
74
|
-
user submits it. If the user hits one, offer to invoke the plastic-feedback skill yourself
|
|
75
|
-
instead of waiting to be asked. A release is a collection of intents; `plastic-releasing`
|
|
76
|
-
runs the flow. A roadmap is an ordered, delivery-side collection; `plastic-roadmap` owns it.
|
|
77
|
-
|
|
78
|
-
## State System
|
|
79
|
-
|
|
80
|
-
```
|
|
81
|
-
~/.plastic/ # Global store (git, never pushed)
|
|
82
|
-
INDEX.md # Structure note
|
|
83
|
-
config.yml, projects.yml # Preferences; slug -> path
|
|
84
|
-
store/ID--slug/ # Strategic intents
|
|
85
|
-
store/.sessions/<YYYYMMDD>/ # Day ledger: <YYYYMMDD>.md, checklist.md, savepoint.md
|
|
86
|
-
store/.tmp/<session>/ # current (the pointer), heartbeat; git-ignored
|
|
87
|
-
~/.plastic/projects/{slug}/ # Project store: INDEX.md, AGENTS.md, roadmaps/, store/
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
`<session>` is the first eight characters of the session id. The pointer holds a day id (the
|
|
91
|
-
day ledger takes the record) or an intent id (an auto team owns the record); session start
|
|
92
|
-
writes today's day id. The SessionStart hook picks the project store by matching the working
|
|
93
|
-
directory against `projects.yml`; no Plastic files land in project code.
|
|
94
|
-
|
|
95
|
-
Naming: intents are `ID--three-to-five-words`, the file matching the directory
|
|
96
|
-
(`1a1--slug/1a1--slug.md`); next id: `ruby ~/.plastic/scripts/folgezettel-id <parent_id>
|
|
97
|
-
<store_path>`. Day ledgers are digits only (`20260828`), never hyphenated, never flattened to
|
|
98
|
-
the store root, so the id allocator and every 1.x store walker skip them.
|
|
99
|
-
|
|
100
|
-
`INDEX.md` is a Zettelkasten structure note, not a table of contents. Sections: `## Active`,
|
|
101
|
-
`## Future`, `## Clusters`, `## Abandoned`, `## Completed`. One line per entry,
|
|
102
|
-
`- [<id> <terse title>](<dir>) <tags>`, about 80 characters: a title, not a summary.
|
|
103
|
-
|
|
104
|
-
## Rules for Skills
|
|
105
|
-
|
|
106
|
-
1. Work records into an intent: the day ledger by default, a registered intent when the
|
|
107
|
-
pointer names one. Researches are intents too; no separate folder.
|
|
108
|
-
2. Artifacts go in the intent directory, never in `docs/plans/` or `docs/specs/`: code goes in
|
|
109
|
-
the project, everything else in the intent. Capture observations in `## Insights`; at the
|
|
110
|
-
end write `outcome.md` and `## Outcome`, and update INDEX.md.
|
|
111
|
-
3. State is derived from what exists: `outcome.md` present means done, so never write it
|
|
112
|
-
before the checklist is fully checked. Status lives on checklist items, not intents.
|
|
113
|
-
4. The global store is never pushed (`~/.plastic/` holds sensitive data); agent-created repos
|
|
114
|
-
are private by default (`gh repo create --private`).
|
|
115
|
-
5. Intents are created only via `plastic-intent-creating`, never hand-authored. It
|
|
116
|
-
self-verifies with `scripts/validate-intent`, so every intent is born complete; `--intent`
|
|
117
|
-
text is escaped for double quotes and backslashes before it lands in frontmatter, and a
|
|
118
|
-
reciprocal `chain:` append preserves the target intent's existing flow- or block-style
|
|
119
|
-
entries.
|
|
120
|
-
|
|
121
|
-
## House Style (self-check)
|
|
122
|
-
|
|
123
|
-
Answer or decision first; bullets over paragraphs; no preamble, no end-recap; one
|
|
124
|
-
question-cluster at a time; reasoning stays in the thinking channel. Tables are the default
|
|
125
|
-
for discovery deposits, research reports, and agent reports, and required for any listing of
|
|
126
|
-
intents or multi-factor comparison.
|
|
127
|
-
|
|
128
|
-
## QMD, Enola, and Serena
|
|
129
|
-
|
|
130
|
-
Recommendations, not obligations, and only when present. QMD: prefer `qmd search` /
|
|
131
|
-
`qmd query` over the `plastic-*` collections to check for existing or related intents before
|
|
132
|
-
treating work as new. Enola, or Serena when Enola is absent: prefer its symbol resolution (or
|
|
133
|
-
`.enola/facts.jsonl`) for code navigation over grep.
|
|
134
|
-
|
|
135
|
-
## Auto Teams: the Lock and the Worktree
|
|
136
|
-
|
|
137
|
-
Locks and worktrees exist only for auto teams. One team develops an intent at a time: a
|
|
138
|
-
session-keyed `delivery.lock` in the intent directory, alive while its mtime lease is fresh.
|
|
139
|
-
Code edits happen in the intent's worktree (`<repo>/.claude/worktrees/{id}--{slug}`, branch
|
|
140
|
-
`plastic/{id}--{slug}`). "Done" is three signals that agree: INDEX `## Completed` or
|
|
141
|
-
`## Abandoned`, `outcome.md`, and the savepoint `Done` line; INDEX wins on conflict.
|
|
16
|
+
Exit codes: 0 succeeded, 1 failed, 2 called wrongly, 3 refused. Exit code 3
|
|
17
|
+
means the step belongs to the owner. Report what was refused and stop. Never
|
|
18
|
+
retry a refused command with a different flag.
|