@zalom/plastic 1.1.1 → 1.1.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.
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "skill_name": "plastic-intent-planning",
3
- "notes": "Intent 164. New evals.json for the writing-plans skill: tier-shape enforcement (S/M inline vs L actions/) and the checklist FORM plus [ORCHESTRATOR] hard-gate item convention. All assertions are pending a real observed run per the plastic-evaluating-skills convention.",
3
+ "notes": "Intent 164, updated by 133a. Evals for the writing-plans skill: action-file enforcement at every tier (S/M consolidate the delivery into one real actions/ACTION_1.md, L writes one actions/ACTION_N.md per task) and the checklist FORM plus [ORCHESTRATOR] hard-gate item convention. All assertions are pending a real observed run per the plastic-evaluating-skills convention.",
4
4
  "evals": [
5
5
  {
6
6
  "id": 1,
7
7
  "scope": "behavior",
8
8
  "set": "train",
9
9
  "prompt": "spec.md is stamped Tier: M and describes a single subsystem change touching four files across two tasks. Write the plan.",
10
- "expected_output": "Produces an inline plan-as-checklist: all tasks with rationale live directly in plan.md, and checklist.md mirrors the task list. No actions/ACTION_N.md files are created; the actions/ directory stays empty or absent.",
10
+ "expected_output": "Produces plan.md plus checklist.md plus at least one real actions/ACTION_N.md. At M the planner consolidates the whole delivery into a single actions/ACTION_1.md (it may split into a few files if that reads cleaner); the actions/ directory is never left empty or .gitkeep-only. checklist.md mirrors plan.md's task list.",
11
11
  "files": [],
12
12
  "assertions": [
13
13
  {
14
14
  "type": "code",
15
- "check": "no files created under actions/ for this intent; checklist.md exists and mirrors plan.md's task list",
15
+ "check": "at least one real (non-empty, non-.gitkeep) file exists under actions/ for this intent; checklist.md exists and mirrors plan.md's task list",
16
16
  "result": "expect-pass"
17
17
  }
18
18
  ]
@@ -22,12 +22,12 @@
22
22
  "scope": "behavior",
23
23
  "set": "train",
24
24
  "prompt": "spec.md is stamped Tier: S and describes a single-file config change. Write the plan.",
25
- "expected_output": "Produces an inline plan-as-checklist. No actions/ files are created, matching the S/M default.",
25
+ "expected_output": "Produces plan.md plus checklist.md plus one consolidated actions/ACTION_1.md carrying the whole ordered delivery (the steps plus the exact changes). The actions/ directory is never left empty or .gitkeep-only, matching the every-tier action-file rule.",
26
26
  "files": [],
27
27
  "assertions": [
28
28
  {
29
29
  "type": "code",
30
- "check": "no files created under actions/ for this intent",
30
+ "check": "at least one real (non-empty, non-.gitkeep) actions/ACTION_N.md exists under actions/ for this intent; no empty or .gitkeep-only actions/ dir remains",
31
31
  "result": "expect-pass"
32
32
  }
33
33
  ]
@@ -61,6 +61,21 @@
61
61
  "result": "expect-pass"
62
62
  }
63
63
  ]
64
+ },
65
+ {
66
+ "id": 5,
67
+ "scope": "behavior",
68
+ "set": "validation",
69
+ "prompt": "spec.md is stamped Tier: S. A prior draft left actions/ with only a .gitkeep. Write the plan and its actions.",
70
+ "expected_output": "Writes at least one real actions/ACTION_1.md (non-empty, not the placeholder sentinel, not a .gitkeep) that consolidates the whole S-tier delivery. Leaving actions/ empty or .gitkeep-only is a plan failure that would block the How gate; the planner never does this at any tier.",
71
+ "files": [],
72
+ "assertions": [
73
+ {
74
+ "type": "code",
75
+ "check": "actions/ contains at least one real action file (non-empty *.md, first line not the placeholder sentinel); no .gitkeep-only or empty actions/ dir remains",
76
+ "result": "expect-pass"
77
+ }
78
+ ]
64
79
  }
65
80
  ]
66
81
  }
@@ -28,8 +28,9 @@ plan.md so the shape matches on the first pass.
28
28
 
29
29
  **Intent:** {id}: {name}
30
30
 
31
- **Tier:** S|M|L, copied from the spec's stamped `Tier:` line. S and M plans are
32
- inline plan-as-checklist (no `actions/`); L plans use `actions/ACTION_N.md`.
31
+ **Tier:** S|M|L, copied from the spec's stamped `Tier:` line. Every tier produces at
32
+ least one real `actions/ACTION_N.md`; S and M consolidate the delivery into one action
33
+ file, L uses one `actions/ACTION_N.md` per task.
33
34
 
34
35
  ---
35
36
  ```
@@ -112,10 +113,13 @@ of tier (S, M, or L):
112
113
 
113
114
  ## actions/ACTION_N.md format
114
115
 
115
- L tier only. S and M plans skip this file type entirely; their tasks live
116
- inline in `plan.md` (see the parent SKILL.md's `## Tier shapes`).
116
+ Every tier writes at least one real action file here (see the parent SKILL.md's
117
+ `## Tier shapes`): S and M consolidate the whole delivery into a single
118
+ `actions/ACTION_1.md`, L writes one file per task.
117
119
 
118
- One file per task. Each action is self-contained: a subagent can execute it without reading the plan.
120
+ Each action is self-contained: a subagent (or a solo executor) can execute it without
121
+ reading the plan. It carries the ordered steps to deliver the task plus the exact changes
122
+ to make (for code, the anchor or `file:line` and the old/new text).
119
123
 
120
124
  ```markdown
121
125
  # Action {N}: {task title}
@@ -71,10 +71,11 @@ an answer given in station 3.
71
71
 
72
72
  Type `/plastic-intent-planning`.
73
73
 
74
- Artifact: `plan.md` and `checklist.md`. At the S tier used here, `actions/` stays empty and
75
- the task rationale lives inline in `plan.md` instead of separate action files; only the L
76
- tier (many independent tasks, dispatched in parallel) gets one `actions/ACTION_N.md` file
77
- per task. `checklist.md` follows a fixed form: tasks start under `## In Progress`, move to
74
+ Artifact: `plan.md`, `checklist.md`, and at least one real `actions/ACTION_N.md`. At the S
75
+ tier used here, the planner consolidates the whole delivery into a single
76
+ `actions/ACTION_1.md` (the ordered steps plus the exact changes); the L tier (many
77
+ independent tasks, dispatched in parallel) instead gets one `actions/ACTION_N.md` file per
78
+ task. `checklist.md` follows a fixed form: tasks start under `## In Progress`, move to
78
79
  `## Completed` as they land, and a `## Session Log` table records what happened each session.
79
80
  A task that depends on an owner decision landing first (a destructive step, a structural
80
81
  ruling) gets an `[ORCHESTRATOR]` prefix and blocks every other item until that decision is