@llblab/pi-actors 0.43.0 → 0.43.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.
Files changed (95) hide show
  1. package/AGENTS.md +12 -6
  2. package/BACKLOG.md +189 -1
  3. package/CHANGELOG.md +180 -301
  4. package/README.md +9 -7
  5. package/dist/index.js +1 -1
  6. package/dist/lib/async-runs.d.ts +2 -1
  7. package/dist/lib/async-runs.js +16 -4
  8. package/dist/lib/automatic-review-runtime.d.ts +1 -1
  9. package/dist/lib/automatic-review-runtime.js +5 -5
  10. package/dist/lib/command-templates.d.ts +2 -0
  11. package/dist/lib/command-templates.js +38 -4
  12. package/dist/lib/control-projection.d.ts +20 -0
  13. package/dist/lib/control-projection.js +66 -0
  14. package/dist/lib/control.d.ts +3 -0
  15. package/dist/lib/control.js +27 -14
  16. package/dist/lib/draft-sleep.js +3 -3
  17. package/dist/lib/file-state.d.ts +1 -0
  18. package/dist/lib/file-state.js +98 -42
  19. package/dist/lib/inspector-overlay.d.ts +2 -0
  20. package/dist/lib/inspector-overlay.js +92 -53
  21. package/dist/lib/limits.d.ts +5 -3
  22. package/dist/lib/limits.js +5 -3
  23. package/dist/lib/prompts.d.ts +1 -1
  24. package/dist/lib/prompts.js +1 -1
  25. package/dist/lib/recipe-control.js +6 -2
  26. package/dist/lib/review-control.d.ts +1 -1
  27. package/dist/lib/review-control.js +4 -5
  28. package/dist/lib/runs-control-delivery.d.ts +8 -1
  29. package/dist/lib/runs-control-delivery.js +38 -15
  30. package/dist/lib/runs-controls.d.ts +2 -0
  31. package/dist/lib/runs-controls.js +5 -3
  32. package/dist/lib/runs-trace.d.ts +2 -2
  33. package/dist/lib/runs-trace.js +24 -20
  34. package/dist/lib/runtime-identity.d.ts +7 -0
  35. package/dist/lib/runtime-identity.js +35 -0
  36. package/dist/lib/runtime-triage.d.ts +29 -0
  37. package/dist/lib/runtime-triage.js +76 -0
  38. package/dist/lib/tool-review-scheduler.js +7 -7
  39. package/dist/lib/tools-inspect.js +53 -14
  40. package/dist/lib/tools-message.d.ts +1 -2
  41. package/dist/lib/tools-message.js +6 -6
  42. package/dist/lib/tools-response.d.ts +0 -1
  43. package/dist/lib/tools-response.js +0 -9
  44. package/dist/lib/tools.d.ts +1 -1
  45. package/dist/lib/tools.js +1 -1
  46. package/dist/lib/trace-projection.js +30 -10
  47. package/dist/scripts/locker.mjs +9 -16
  48. package/dist/scripts/music-player.mjs +7 -13
  49. package/dist/scripts/release-gates.mjs +33 -2
  50. package/dist/scripts/validate-recipe.mjs +5 -4
  51. package/dist/skills/actors/SKILL.md +12 -7
  52. package/dist/skills/swarm/SKILL.md +0 -2
  53. package/docs/0.43-baseline.md +18 -23
  54. package/docs/README.md +2 -4
  55. package/docs/actor-inspector.md +5 -5
  56. package/docs/async-runs.md +2 -2
  57. package/docs/command-templates.md +6 -116
  58. package/docs/recipe-library.md +2 -4
  59. package/docs/releasing.md +28 -0
  60. package/docs/template-recipes.md +1 -1
  61. package/docs/tool-registry.md +2 -2
  62. package/index.ts +1 -1
  63. package/lib/async-runs.ts +18 -5
  64. package/lib/automatic-review-runtime.ts +7 -7
  65. package/lib/command-templates.ts +44 -4
  66. package/lib/control-projection.ts +105 -0
  67. package/lib/control.ts +33 -18
  68. package/lib/draft-sleep.ts +3 -3
  69. package/lib/file-state.ts +68 -61
  70. package/lib/inspector-overlay.ts +93 -58
  71. package/lib/limits.ts +5 -3
  72. package/lib/prompts.ts +1 -1
  73. package/lib/recipe-control.ts +9 -2
  74. package/lib/review-control.ts +4 -5
  75. package/lib/runs-control-delivery.ts +45 -17
  76. package/lib/runs-controls.ts +12 -3
  77. package/lib/runs-trace.ts +23 -19
  78. package/lib/runtime-identity.ts +39 -0
  79. package/lib/runtime-triage.ts +120 -0
  80. package/lib/tool-review-scheduler.ts +7 -7
  81. package/lib/tools-inspect.ts +60 -16
  82. package/lib/tools-message.ts +7 -8
  83. package/lib/tools-response.ts +0 -12
  84. package/lib/tools.ts +4 -4
  85. package/lib/trace-projection.ts +33 -10
  86. package/package.json +1 -1
  87. package/scripts/locker.mjs +9 -16
  88. package/scripts/music-player.mjs +7 -13
  89. package/scripts/release-gates.mjs +33 -2
  90. package/scripts/validate-recipe.mjs +5 -4
  91. package/skills/actors/SKILL.md +12 -7
  92. package/skills/swarm/SKILL.md +0 -2
  93. package/docs/actors-deep-reference.md +0 -108
  94. package/docs/component-recipes.md +0 -45
  95. package/docs/task-first-recipes.md +0 -261
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: actors
3
3
  description: Required practical guide for non-trivial pi-actors use and Run-kernel work. Read before using or changing spawn, message, inspect, Runs, tools, Recipes, command templates, Control, Trace, artifacts, or lifecycle mechanics.
4
- metadata:
5
- version: 0.43.0
6
4
  ---
7
5
 
8
6
  # Actors (pi-actors)
@@ -38,20 +36,28 @@ Prefer maintained packaged Recipes over ad hoc wrappers. Keep model, thinking, m
38
36
  Trace records bounded structured observations in `trace.jsonl`:
39
37
 
40
38
  ```json
41
- {"id":"…","ts":"…","kind":"progress.update","summary":"…","data":{},"level":"info","attention":"notify"}
39
+ {
40
+ "id": "…",
41
+ "ts": "…",
42
+ "kind": "progress.update",
43
+ "summary": "…",
44
+ "data": {},
45
+ "level": "info",
46
+ "attention": "notify"
47
+ }
42
48
  ```
43
49
 
44
- Trace never carries sender, recipient, route, reply, or message-envelope fields. Use `attention: "notify"` for visible notification and `attention: "followup"` only when the coordinator must receive semantic follow-up context. Prefer artifacts or complete execution captures for large evidence.
50
+ Trace never carries sender, recipient, route, reply, or message-envelope fields. First-party writers use the canonical append authority, which validates and size-checks under a token-owned cross-process lock before one append-only JSONL write. Use `attention: "notify"` for visible notification and `attention: "followup"` only when the coordinator must receive semantic follow-up context. Prefer artifacts or complete execution captures for large evidence.
45
51
 
46
52
  ## Control
47
53
 
48
54
  The public Control request is exact:
49
55
 
50
56
  ```json
51
- {"target":"run:<id>","action":"pause","input":{},"verbose":false}
57
+ { "target": "run:<id>", "action": "pause", "input": {}, "verbose": false }
52
58
  ```
53
59
 
54
- Controls persist in `controls.jsonl` before delivery. Token-owned locks serialize atomic journal replacements. Service endpoints publish readiness in `control-endpoint.json` with the immutable startup `run_instance_id`; only FIFO and named-pipe endpoints transport Controls. Expected-status-fenced transitions remain monotonic when a fast consumer completes before sender delivery evidence. FIFO documents must fit the portable 512-byte atomic-write bound, partial writes fail, and controlled FIFO readers remain gap-free across writers. Delivery revalidates owner, generation, running state, and process identity under the lifecycle lock.
60
+ Valid Controls persist in `controls.jsonl` before delivery; invalid envelopes remain outside the journal. Token-owned locks serialize atomic journal replacements. Service endpoints publish readiness in `control-endpoint.json` with the immutable startup `run_instance_id`; only FIFO and named-pipe endpoints transport Controls. Both transports share one portable envelope: action is at most 64 lowercase ASCII characters, serialized JSON input is at most 380 bytes, and the newline-terminated wire record is at most 512 bytes. Partial writes fail, and controlled FIFO readers remain gap-free across writers. Put larger data in a declared artifact/path and send only its bounded reference or instruction through Control. Delivery revalidates owner, generation, running state, and process identity under the lifecycle lock.
55
61
 
56
62
  `kill` remains a runtime lifecycle action. Use an actor-local action such as `stop` only when the Recipe declares and implements it.
57
63
 
@@ -90,7 +96,6 @@ If work may outlive the current turn, needs steering, produces artifacts, fans o
90
96
 
91
97
  ## Deep References
92
98
 
93
- - [Actors deep reference](../../docs/actors-deep-reference.md)
94
99
  - [Recipe library](../../docs/recipe-library.md)
95
100
  - [Async Runs](../../docs/async-runs.md)
96
101
  - [Baseline and preservation gates](../../docs/0.43-baseline.md)
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: swarm
3
3
  description: Subagent and actor orchestration with scoped locks, fanout, and quorum consensus. Use before launching multiple parallel actors or subagents for independent implementation, artifact generation, review, delegated audit, coordinated execution, or any workflow that needs autonomous coordinator decomposition and integration.
4
- metadata:
5
- version: 0.43.0
6
4
  ---
7
5
 
8
6
  # Swarm
@@ -1,108 +0,0 @@
1
- # Actors Deep Reference
2
-
3
- ## Kernel
4
-
5
- ```text
6
- Recipe --spawn--> Run
7
- Run = Recipe + Trace + Control
8
- ```
9
-
10
- - Recipe owns executable definition and declared actor-local actions.
11
- - Run owns one generation of execution and evidence.
12
- - Trace owns observations.
13
- - Control owns actor-local inputs.
14
-
15
- `register_tool` persists capabilities but does not participate in running Control.
16
-
17
- ## Choosing Execution
18
-
19
- Use a foreground tool for short work with one natural response. Use a Run when execution may outlive the turn, needs later inspection or steering, produces artifacts, runs as a service, or coordinates repeated/parallel command-template cells.
20
-
21
- Do not background shell processes outside the Run lifecycle.
22
-
23
- ## Recipe Resolution
24
-
25
- Active user Recipes shadow packaged Recipes by name. Invalid active shadowing fails with both active and blocked fallback paths instead of silently executing another definition. Imports resolve under Recipe-root priority, enforce a 1 MiB file limit and depth limit 32, reject cycles, and act as local definitions inside one Run.
26
-
27
- Current model/thinking placeholders resolve from Pi context before launch and persist provenance in `run.json`.
28
-
29
- ## Command Templates
30
-
31
- String leaves execute without shell parsing. Arrays sequence commands. Objects add `parallel`, `concurrency`, `min_successful`, `when`, `timeout`, `delay`, `retry`, `failure`, `recover`, `repeat`, `accept_output`, and `output` behavior.
32
-
33
- Placeholders support typed args, defaults, fallback, and conditional expansion. Prefer explicit scripts when shell semantics or a maintained service loop matters.
34
-
35
- ## Control Discipline
36
-
37
- Public shape:
38
-
39
- ```json
40
- {"target":"run:<id>","action":"action","input":{},"verbose":false}
41
- ```
42
-
43
- Recipe actions use lowercase stable names. Do not declare runtime-reserved lifecycle actions. Inputs must remain bounded JSON. A controlled service publishes readiness only after its consumer can read the endpoint and includes its immutable generation id.
44
-
45
- Controls persist before transport and keep durable outcome evidence. Never infer owner identity from caller-provided input.
46
-
47
- ## Trace Discipline
48
-
49
- Trace events use stable `kind` names and concise summaries. Put structured bounded evidence in `data`; put large evidence in artifacts. Use attention sparingly:
50
-
51
- - omitted/`log`: inspectable only;
52
- - `notify`: visible status;
53
- - `followup`: semantic coordinator follow-up.
54
-
55
- Trace has no address or response semantics.
56
-
57
- ## Lifecycle Discipline
58
-
59
- Retain these invariants:
60
-
61
- - owner filtering;
62
- - immutable generation fencing;
63
- - process identity verification;
64
- - canonical lifecycle locks;
65
- - shutdown and parent-teardown kill;
66
- - terminal notification reconciliation;
67
- - bounded logs and complete captures;
68
- - owned Pi session provenance;
69
- - path containment and redaction;
70
- - review retry/reset safety.
71
-
72
- A lifecycle operation that cannot prove identity or ownership fails closed.
73
-
74
- ## Operating Patterns
75
-
76
- ### One-shot pipeline
77
-
78
- Spawn the Recipe, wait for terminal follow-up when needed, inspect Trace/result/artifacts, and validate outputs. Do not send Controls the process does not implement.
79
-
80
- ### Controlled service
81
-
82
- Spawn, inspect `view=control` for endpoint readiness, send only declared actions, inspect Trace for outcomes, then use the declared actor-local stop action or runtime lifecycle termination as appropriate.
83
-
84
- ### Parallel review
85
-
86
- Use maintained review Recipes with explicit model/thinking and bounded concurrency. Preflight provider/model policy before fanout. Keep reviewer artifacts immutable and run merge/judge stages only after required evidence succeeds.
87
-
88
- ### Resource locking
89
-
90
- Use `resource-locker` only when methodology needs lease-backed resource exclusion. Include owner/resource identity in Control input and treat lock Trace as coordination evidence, not kernel authority.
91
-
92
- ## Diagnostics
93
-
94
- - `inspect target=runtime` for failed Runs, stale Controls, and attention Trace.
95
- - `inspect target=recipes` for active/shadowed/invalid Recipe state.
96
- - `inspect target=tool:<name>` for registered capability schema.
97
- - `inspect target=run:<id> view=recipe|trace|control` for generation evidence.
98
- - `/actor-inspector` for owner-filtered actor-instance navigation.
99
-
100
- Avoid repeated polling. Deferred terminal results arrive as Pi follow-ups.
101
-
102
- ## Related
103
-
104
- - [Runs](./async-runs.md)
105
- - [Recipe library](./recipe-library.md)
106
- - [Command templates](./command-templates.md)
107
- - [Template Recipes](./template-recipes.md)
108
- - [Actor Inspector](./actor-inspector.md)
@@ -1,45 +0,0 @@
1
- # Component Recipes
2
-
3
- Component Recipes are weakly coupled command-template cells used inside higher-level Recipes. They do not create a social protocol or become independently addressable peers.
4
-
5
- ## Contract
6
-
7
- A useful component has:
8
-
9
- - explicit typed inputs and caller-owned policy knobs;
10
- - one narrow responsibility;
11
- - deterministic output shape or declared artifact;
12
- - bounded failure behavior;
13
- - no hidden model/provider assumption;
14
- - no actor-local Control unless it owns a real service loop.
15
-
16
- ## Families
17
-
18
- - normalization and prompt shaping;
19
- - planning and task-card generation;
20
- - evidence maps, contradiction maps, and criticism;
21
- - review, verification, merge, judge, and quorum stages;
22
- - artifact generation, manifesting, and deterministic writes;
23
- - validation and package/skill summaries.
24
-
25
- ## Composition
26
-
27
- Import components by alias and call named nodes in a template array/object. Parent command-template flags own sequence, parallelism, concurrency, retries, failure scope, recovery, repetition, and output acceptance.
28
-
29
- Variable branch output should converge into stable JSON, Markdown, artifacts, or command results before downstream stages. Large evidence belongs in artifacts or complete captures; concise milestones belong in Trace.
30
-
31
- ## Boundaries
32
-
33
- - Imports are definitions inside one Run.
34
- - One-shot components omit Control.
35
- - Components never infer caller identity or lifecycle authority.
36
- - A parent may declare artifacts that imported cells write.
37
- - A child failure follows explicit parent failure/recovery policy.
38
-
39
- Use the packaged Recipe library before creating a new component. Add one only when at least two stable compositions need the same narrow behavior.
40
-
41
- ## Related
42
-
43
- - [Recipe library](./recipe-library.md)
44
- - [Template Recipes](./template-recipes.md)
45
- - [Command templates](./command-templates.md)
@@ -1,261 +0,0 @@
1
- # Task-First Recipe Design
2
-
3
- Task-first recipe design starts from a high-level operator or coordinator task, then derives the component cells, utility recipes, helper scripts, and runtime semantics needed to make that task reusable.
4
-
5
- This complements atom-first growth. Atom-first asks: "What small capability can we expose?" Task-first asks: "What complete work pattern should an agent/operator be able to invoke, and which atoms must exist to support it?"
6
-
7
- ## Method
8
-
9
- For each high-level recipe candidate:
10
-
11
- 1. Name the task in operator language.
12
- 2. Define the trigger and expected output artifact.
13
- 3. Sketch the recipe pipeline at the highest useful abstraction.
14
- 4. Identify missing component cells.
15
- 5. Decide which cells are subagent components, local utilities, or helper-backed transforms.
16
- 6. Keep domain policy knobs public: models, tools, paths, evidence/risk policy, output shape, actual Control actions, and validation gates.
17
- 7. Add only the next smallest recipe/helper slice that validates the design.
18
-
19
- ## High-Level Recipe Cells
20
-
21
- ### Release Readiness Cell
22
-
23
- Purpose: decide whether a repo/package is ready for release.
24
-
25
- Pipeline:
26
-
27
- ```text
28
- scope snapshot → changelog/package check → release lens reviews → risk verifier → readiness report → release checklist artifact
29
- ```
30
-
31
- Likely needed cells:
32
-
33
- - Package metadata reader
34
- - Changelog section extractor
35
- - Package contents summarizer
36
- - Validation command wrapper
37
- - Release-risk reviewer
38
- - Readiness merger/judge
39
- - Release checklist artifact writer
40
-
41
- Existing seeds:
42
-
43
- - `utility-changelog-section`
44
- - `utility-package-summary`
45
- - `utility-validation-wrapper`
46
- - `pipeline-review-readiness`
47
- - `subagent-judge`
48
- - `subagent-artifact`
49
-
50
- Implemented seed:
51
-
52
- - `pipeline-release-readiness`: changelog section → package summary → packaged skill summary → validation wrapper → release review coordinator → artifact report.
53
-
54
- ### Repository Health Cell
55
-
56
- Purpose: summarize repo state for the next coordinator turn or release prep.
57
-
58
- Pipeline:
59
-
60
- ```text
61
- git status/log → package/docs/backlog snapshot → validation summary → health report → next action recommendation
62
- ```
63
-
64
- Likely needed cells:
65
-
66
- - Git status/log utility
67
- - Package version reader
68
- - Backlog open/blocked extractor
69
- - Docs index checker
70
- - Validation summary normalizer
71
- - Next-action recommender
72
-
73
- Existing seeds:
74
-
75
- - `utility-markdown-index`
76
- - `utility-validation-wrapper`
77
- - `subagent-normalize`
78
- - `subagent-plan`
79
-
80
- Implemented seed:
81
-
82
- - `pipeline-repo-health`: git status/log → docs index → validation wrapper → normalized artifact report.
83
-
84
- ### Async Run Operations Cell
85
-
86
- Purpose: inspect, summarize, and decide actions for local async runs.
87
-
88
- Pipeline:
89
-
90
- ```text
91
- Run summary → Trace tail → stale/active classification → recommended Inspect or Control action
92
- ```
93
-
94
- Likely needed cells:
95
-
96
- - Run summary helper
97
- - bounded Trace tail reader
98
- - Stale-run classifier
99
- - Inspect/Control action recommender
100
- - Run report artifact
101
-
102
- Existing seeds:
103
-
104
- - `utility-run-summary`
105
- - `utility-jsonl-tail`
106
- - `pipeline-artifact-report`
107
-
108
- Implemented seed:
109
-
110
- - `pipeline-async-run-ops`: structured run operations snapshot → normalized operations report → artifact report. The snapshot combines Run summary, Trace tail, and recommended Inspect/Control actions before the LLM normalization step.
111
-
112
- ### Research Brief Cell
113
-
114
- Purpose: turn a question and source set into a bounded evidence-backed brief.
115
-
116
- Pipeline:
117
-
118
- ```text
119
- question framing → evidence map → contradiction map → claim verification → synthesis → evidence gaps → next evidence slice
120
- ```
121
-
122
- Likely needed cells:
123
-
124
- - Question framer
125
- - Source inventory utility
126
- - Evidence mapper
127
- - Contradiction mapper
128
- - Verifier
129
- - Synthesis merger
130
- - Limitations normalizer
131
-
132
- Existing seeds:
133
-
134
- - `pipeline-research-synthesis`
135
- - `subagent-evidence-map`
136
- - `subagent-contradiction-map`
137
- - `subagent-verify`
138
-
139
- ### Consensus-First Build Cell
140
-
141
- Purpose: turn several expert proposals into one coherent artifact without parallel writers fragmenting the result.
142
-
143
- Pipeline:
144
-
145
- ```text
146
- mission → lens proposers in room → consensus transcript → named implementer writes artifact → QA reviewer checks artifact + transcript → finalizer applies fixes → artifact assertions
147
- ```
148
-
149
- Use this for creative demos, single-file artifacts, specs, docs, prompt packs, and product/UX deliverables where broad input matters but one owner should shape the final file. Proposers remain read-only. The implementer becomes the first stage with write tools. QA inspects without mutation, and the finalizer writes only after reading immutable QA evidence.
150
-
151
- Required gates:
152
-
153
- - Artifact path, report path, and minimum acceptance checks are explicit inputs.
154
- - The workflow fails if the requested artifact is missing, too small, or not self-contained enough for the task.
155
- - The Run completes only after QA/finalizer acceptance, not merely after proposal generation.
156
-
157
- Existing seeds:
158
-
159
- - `subagent-review` / `subagent-verify` for QA stages.
160
- - `pipeline-quorum-review` for independent proposals and synthesis.
161
- - `pipeline-artifact-write` or a small helper script for deterministic artifact assertion.
162
-
163
- Next recipe direction:
164
-
165
- - Add a generic packaged consensus-build pipeline once the interface stabilizes around proposer roles, implementer prompt, QA prompt, artifact assertions, and public model/tool knobs.
166
-
167
- ### Implementation Tasking Cell
168
-
169
- Purpose: prepare bounded work for one or more implementation agents.
170
-
171
- Pipeline:
172
-
173
- ```text
174
- goal → mutation zones → task cards → validation gates → conflict risks → integrator handoff
175
- ```
176
-
177
- Likely needed cells:
178
-
179
- - Mutation-zone planner
180
- - Task-card generator
181
- - Ownership/conflict checker
182
- - Validation-gate normalizer
183
- - Integrator handoff artifact
184
-
185
- Existing seeds:
186
-
187
- - `pipeline-development-tasking`
188
- - `subagent-task-card`
189
- - `subagent-conflict-report`
190
-
191
- ### Documentation Maintenance Cell
192
-
193
- Purpose: keep docs/index/readme surfaces coherent after changes.
194
-
195
- Pipeline:
196
-
197
- ```text
198
- doc file inventory → index diff → stale link/routing review → rewrite suggestion → docs maintenance artifact
199
- ```
200
-
201
- Likely needed cells:
202
-
203
- - Markdown index utility
204
- - Link checker wrapper
205
- - Docs consistency reviewer
206
- - Docs update planner
207
- - Docs artifact writer
208
-
209
- Existing seeds:
210
-
211
- - `utility-markdown-index`
212
- - `subagent-review`
213
- - `subagent-plan`
214
- - `subagent-artifact`
215
-
216
- Implemented seed:
217
-
218
- - `pipeline-docs-maintenance`: docs index → documentation review → maintenance plan → artifact report.
219
-
220
- ### Media/Playlist Operations Cell
221
-
222
- Purpose: convert local media directories into controllable playback workflows.
223
-
224
- Pipeline:
225
-
226
- ```text
227
- media scan → playlist build → playback start → message summary → controls
228
- ```
229
-
230
- Likely needed cells:
231
-
232
- - Playlist builder
233
- - Music player
234
- - Run/message summary
235
- - Control recommender
236
-
237
- Existing seeds:
238
-
239
- - `utility-playlist-build`
240
- - `music-player`
241
- - `utility-run-summary`
242
- - `utility-jsonl-tail`
243
-
244
- Implemented seed:
245
-
246
- - `pipeline-media-library`: playlist build → media-library artifact report.
247
-
248
- ## Selection Rule
249
-
250
- Prefer adding a high-level recipe when at least three cells already exist and the missing cells are small. Prefer adding an atom when multiple high-level recipes need the same missing cell.
251
-
252
- ## Near-Term Candidates
253
-
254
- Good next candidates for the standard library after the first task-first wave:
255
-
256
- 1. Package/release metadata enrichment: implemented in `pipeline-release-readiness` by adding `utility-package-summary` and `utility-skill-summary` between changelog extraction and validation, making release-readiness reports more evidence-rich without adding publish automation.
257
- 2. Evidence-only release summary: implemented as `pipeline-release-summary`, which composes changelog/package/skill/validation evidence into a release summary, risk checklist, and PR body draft artifact while leaving commit, PR, merge, tag, and publish actions to explicit release gates.
258
- 3. Artifact packaging and manifesting: implemented as `pipeline-artifact-bundle`, which composes optional validation, `pipeline-artifact-write`, `utility-artifact-manifest`, deterministic manifest writing, and final artifact evidence when the caller explicitly requests filesystem writes.
259
- 4. Async run cleanup planning: extend async-run operations with stale-run classification and recommended `message`, `cancel`, or `kill` controls, keeping actual control execution operator-gated.
260
-
261
- Each candidate should land with the minimum missing cells rather than a broad one-shot framework. Already implemented task-first seeds include `pipeline-release-readiness`, `pipeline-release-summary`, `pipeline-repo-health`, `pipeline-async-run-ops`, `pipeline-docs-maintenance`, `pipeline-media-library`, and `pipeline-artifact-bundle`.