@llblab/pi-actors 0.14.3 → 0.15.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 (67) hide show
  1. package/AGENTS.md +5 -1
  2. package/BACKLOG.md +18 -32
  3. package/CHANGELOG.md +20 -0
  4. package/README.md +24 -20
  5. package/docs/actor-messages.md +1 -1
  6. package/docs/async-runs.md +4 -4
  7. package/docs/command-templates.md +11 -11
  8. package/docs/recipe-library.md +7 -3
  9. package/docs/task-first-recipes.md +44 -43
  10. package/docs/template-recipes.md +7 -2
  11. package/docs/tool-registry.md +7 -5
  12. package/lib/actor-messages.ts +20 -7
  13. package/lib/async-runs.ts +25 -12
  14. package/lib/command-templates.ts +6 -1
  15. package/lib/config.ts +2 -2
  16. package/lib/execution.ts +9 -5
  17. package/lib/observability.ts +20 -10
  18. package/lib/prompts.ts +13 -20
  19. package/lib/tools.ts +196 -64
  20. package/package.json +17 -9
  21. package/recipes/coordinator-locker.json +46 -0
  22. package/recipes/music-player.json +16 -2
  23. package/recipes/pipeline-architect-coordinator.json +11 -3
  24. package/recipes/pipeline-artifact-bundle.json +12 -3
  25. package/recipes/pipeline-artifact-report.json +9 -3
  26. package/recipes/pipeline-artifact-write.json +9 -3
  27. package/recipes/pipeline-async-run-ops.json +18 -9
  28. package/recipes/pipeline-checkpoint-continuation.json +14 -3
  29. package/recipes/pipeline-development-tasking.json +12 -3
  30. package/recipes/pipeline-docs-maintenance.json +12 -3
  31. package/recipes/pipeline-media-library.json +12 -3
  32. package/recipes/pipeline-quorum-review.json +12 -9
  33. package/recipes/pipeline-release-readiness.json +27 -9
  34. package/recipes/pipeline-release-summary.json +89 -0
  35. package/recipes/pipeline-repo-health.json +12 -3
  36. package/recipes/pipeline-research-synthesis.json +11 -3
  37. package/recipes/pipeline-review-readiness.json +12 -6
  38. package/recipes/subagent-artifact.json +9 -3
  39. package/recipes/subagent-checkpoint.json +10 -3
  40. package/recipes/subagent-conflict-report.json +11 -3
  41. package/recipes/subagent-contradiction-map.json +11 -3
  42. package/recipes/subagent-critic.json +11 -3
  43. package/recipes/subagent-evidence-map.json +11 -3
  44. package/recipes/subagent-followup.json +10 -3
  45. package/recipes/subagent-judge.json +11 -3
  46. package/recipes/subagent-merge.json +11 -3
  47. package/recipes/subagent-message.json +8 -3
  48. package/recipes/subagent-normalize.json +11 -3
  49. package/recipes/subagent-plan.json +11 -3
  50. package/recipes/subagent-prompt.json +10 -3
  51. package/recipes/subagent-quorum.json +10 -7
  52. package/recipes/subagent-review-coordinator.json +14 -6
  53. package/recipes/subagent-review.json +11 -3
  54. package/recipes/subagent-task-card.json +11 -3
  55. package/recipes/subagent-tools.json +10 -3
  56. package/recipes/subagent-verify.json +11 -3
  57. package/recipes/subagents-prompts.json +10 -3
  58. package/recipes/utility-coordinator-lock-snapshot.json +14 -0
  59. package/recipes/utility-run-ops-snapshot.json +3 -3
  60. package/recipes/utility-skill-summary.json +14 -0
  61. package/scripts/coordinator-locker.mjs +272 -0
  62. package/scripts/music-player.mjs +2 -1
  63. package/scripts/recipe-utils.mjs +239 -81
  64. package/scripts/validate-recipe.mjs +28 -10
  65. package/skills/actors/SKILL.md +283 -0
  66. package/skills/swarm/SKILL.md +451 -0
  67. package/skills/swarm/references/development-swarm.md +596 -0
package/AGENTS.md CHANGED
@@ -17,7 +17,9 @@
17
17
  - `/lib/*.ts`: Flat Domain DAG modules for cohesive reusable behavior; `command-templates.ts` mirrors the shared portable command-template standard, `schema.ts` owns tool arg declarations and placeholder-derived tool schemas, `identity.ts` owns names, `config.ts` owns config persistence, `registry.ts` owns registry register/update/delete use-cases, `output.ts` owns result formatting/truncation, `execution.ts` owns registered-tool execution, `recipe-references.ts` owns template recipe reference detection and path resolution, `async-runs.ts` owns async run state, `observability.ts` owns ambient run summaries, `temp.ts` owns pi-agent temp cleanup, `prompts.ts` owns LLM-facing copy, `tools.ts` owns pi-facing tool definitions for both `register_tool`, async run primitives, and generated runtime tools, `runtime.ts` owns load/conflict/registration coordination, and `paths.ts` owns config/tmp path resolution
18
18
  - `index.ts` should import local domains as namespaces (`import * as CommandTemplates from "./lib/command-templates.ts"`) so orchestration reads through domain names instead of flat helper imports
19
19
  - `/scripts/*.mjs`: Thin helper processes for detached async run execution; keep policy in registered tool config and reusable logic in `/lib`
20
- - `/recipes/*.json`: Packaged standard recipe library; keep recipes optional, composable, and policy-light; prefer public args/defaults for operator/agent decisions instead of baking project-specific prompts or file names into reusable recipes
20
+ - `/recipes/*.json`: Packaged standard recipe library; keep recipes optional, composable, and policy-light; prefer public args for operator/agent decisions instead of baking project-specific prompts, file names, or concrete model-version defaults into reusable recipes
21
+ - `/skills/actors/SKILL.md`: Dense practical reference for operating pi-actors itself
22
+ - `/skills/swarm/SKILL.md`: Bundled methodology skill for multi-agent standards, strategies, and portable examples; keep it theory/strategy-oriented while pi-actors recipes/scripts provide the local execution engine
21
23
  - `/scripts/music-player.mjs`: Standard helper script for the packaged music-player recipe; keep it executable and avoid restoring parallel shell-wrapper variants unless a concrete portability need appears
22
24
  - `/tests/*.test.ts`: Focused regression tests for pure domains
23
25
  - `/README.md`: Human-facing install, usage, and runtime semantics
@@ -35,6 +37,7 @@
35
37
 
36
38
  ## Durable Conventions
37
39
 
40
+ - `Knowledge surface separation`: pi-actors has distinct knowledge surfaces with different context-entry behavior: injected prompt is always present and should stay a tiny bootstrap/reminder; packaged `actors` skill is auto-matched by name/description and should signal that its body is the highest-density practical guide for operating the extension plus the shortest navigator to bundled recipes; packaged `swarm` skill is auto-matched for multi-agent methodology, strategies, standards, and portable examples; README is the human entrypoint explaining concept, rhythm, benefits, and scenarios but is not automatically in context; `/docs` are detailed transportable standards read on demand; `AGENTS.md` is project context and architectural constraints for agents changing the repo | Trigger: Editing prompt copy, README, docs, skills, or project context | Action: Keep each surface on its own wave, avoid duplicating prompt and skill headers, keep the actors skill recipe navigator compact and concrete, avoid duplicating scenario catalogs or changelog narratives in the actors skill, avoid turning the prompt into docs, keep multi-agent methodology in swarm-oriented guidance rather than the actors skill, keep packaged extension skill metadata versions synchronized with `package.json` version, and avoid extra colons in skill frontmatter scalar lines because skill formatters treat them poorly
38
41
  - `Tool registry source`: `~/.pi/agent/actors-tools.json` is the persistent user config | Trigger: Any runtime registration or migration work | Action: Preserve atomic writes and avoid hidden format changes without an explicit migration path
39
42
  - `Current runtime contract`: Register trusted command templates with tool names from registry keys, placeholder-derived args, progressive typed arg declarations, inline/default/`??`/ternary config fallback, placeholder-derived numeric node controls, split-first command-arg construction, sequential or `parallel: true` composition, direct no-shell execution, optional per-node `when`, optional per-node positive `timeout` disabled by default, lightweight warnings for obvious trusted-executable risk shapes, per-node `delay`, bounded leaf/node `retry`, `failure: "continue|branch|root"` propagation, `recover` cleanup between retry attempts, template recipes with explicit `async: true` detached mode, actor-oriented `spawn`/`message`/`inspect` tools with run-local JSONL outbox messages, Unix FIFO send, graceful cancel, and force kill, generic detached run primitives with process-group cancellation, injected async `{run_id}` and `{state_dir}` values, coordinator-scoped event-driven observability with at least one triangle per active async run and extra triangles for active parallel branches, runtime-inferred `command.done` bubbling for packaged multi-agent fanout, named recipe `artifacts`, recipe `mailbox` metadata, terminal follow-ups for `done`/`failed`/unhandled `killed`/`exited` states, `template` recipe references, recipe-layer `imports`, co-located recipe entries, `~/.pi/agent/recipes/*.json` template recipe files, run state under `~/.pi/agent/tmp/pi-actors/runs`, and `{file}` as the canonical local file path arg | Trigger: Changing registration or invocation behavior | Action: Keep README, command-template docs, template-recipe docs, async-run docs, actor-message docs, implementation, and migration notes aligned
40
43
  - `Typed arg authoring`: Typed args support `string`, `path`, `int`, `number`, `bool`, and `enum(...)` plus two equivalent readability styles: metadata-first (`args` + `defaults` + simple `{name}` placeholders) for long command lines, and inline-first (`{name:type=default}` placeholders) for compact one-property templates | Trigger: Changing arg parsing, docs, schema generation, or registry serialization | Action: Preserve both styles, keep explicit `args` type declarations higher priority than inline placeholder types, and make breaking cleanup explicit when removing old arg shapes
@@ -47,6 +50,7 @@
47
50
  - `Communication direction`: The design target is an organic universal message layer across sync tasks, async runs, branches, tools, and coordinators. Breaking changes are allowed to compress concepts, remove accidental duplication, and make duplex communication symmetric where the domain is symmetric. | Trigger: Designing APIs or recipes that communicate | Action: Prefer a concentrated actor/message protocol (`spawn`, `message`, `inspect`, addressed endpoints, typed message envelopes, mailbox accepts/emits) over exposing FIFO/outbox/status mechanics directly; use one envelope for upward, downward, lateral, parent/branch, and branch/parent messages; absorb runtime async primitives into actor API instead of preserving parallel public concepts.
48
51
  - `Output discipline`: Tool stdout is returned with bounded context impact | Trigger: Changing execution or formatting | Action: Keep tail truncation, full-output temp files, and failure formatting intact
49
52
  - `Extension temp directory`: Temporary runtime files belong under `~/.pi/agent/tmp/pi-actors`; session start prepares the directory and prunes stale entries | Trigger: Adding temp files, run state, logs, or artifacts | Action: Do not use system tmp for extension-owned state unless the operator explicitly overrides a path
53
+ - `Backlog is planning, not history`: `BACKLOG.md` should contain current/future work, blockers, gates, and next leverage points; completed delivery history belongs in `CHANGELOG.md`, and durable behavior belongs in README/docs | Trigger: Editing backlog or reconciling completed slices | Action: Remove historical progress narratives, keep current task/scope/exit criteria, and prefer an 80/20 focus list when many remaining tasks compete for attention
50
54
  - `Context sync`: Meaningful implementation or docs changes must reconcile `BACKLOG.md`, `CHANGELOG.md`, README, and docs navigation | Trigger: Closing, narrowing, or discovering work | Action: Run the context validator before final status when practical
51
55
  - `Public path hygiene`: Published docs must not include machine-local absolute paths | Trigger: Adding validation commands, examples, or local instructions to README/AGENTS/docs/changelog | Action: Use `~/.pi/...`, `<repo>/...`, `${SKILL_DIR}/...`, or relative paths
52
56
 
package/BACKLOG.md CHANGED
@@ -2,38 +2,24 @@
2
2
 
3
3
  ## Open Work
4
4
 
5
- Continue progressive component/pipeline expansion in small validated slices; real smoke runs remain gated. Prefer task-first design for new high-level recipe families: start from operator/coordinator work patterns, then derive missing component cells.
6
-
7
- - Plan organic universal communication primitives.
8
- - Priority: High.
9
- - Status: The actor-like model is empirically useful: async runs can emit follow-up messages upward, coordinators can send run-local commands downward, multiple parallel runs can progress independently, and recipes no longer need sleep-poll coordination. The design is captured in `docs/actor-messages.md`: `spawn`, `message`, and `inspect` as concentrated verbs; addressed actors; one symmetric message envelope; mailbox `accepts`/`emits`; and adapter mappings from runtime async actions. Initial implementation landed pure actor address/message normalization plus public `spawn`, `message`, and `inspect` tools for `run:<id>` actors; `spawn` accepts state/artifact metadata, `message` routes `run:<id>` → `coordinator` and `run:<id>` → `session:<id>` envelopes into the runtime attention path, `message` can invoke `tool:<name>` actors, `inspect target=tool:<name>` exposes registered tool actor contracts, `inspect target=coordinator` exposes current-session run inventory, all packaged async recipes declare mailbox metadata, `inspect view=mailbox` exposes recipe mailbox contracts from run metadata, recipe-authored messages now use envelope-aligned `type` fields with deterministic validated wrapping available through `utility-actor-message`, run termination now uses actor-native `control.stop`/`control.cancel`/`control.kill` without runtime-prefixed control aliases, async command events preserve full argv details while keeping coordinator summaries bounded, async-run operations recommendations now emit structured `message`/`inspect` objects instead of shell-like suggestion strings, `inspect view=messages` exposes run actor messages and `inspect view=events` has been removed as a compatibility alias, async-run operations recipes now expose `message_file`/`messages` terminology instead of public event-file args, and operator-facing docs now describe coordination with actor-message terminology before transport details, async-run docs separate public actor behavior from storage/transport mechanics more clearly, public actor-message/template guidance avoids transport-specific wording, and async-run operations recipes now use only `message_file` for actor-message inputs, interactive and high-level pipeline recipe mailboxes now advertise the full actor-native termination controls where the runtime already supports them, task-first/library docs now describe operations snapshots in terms of actor-message tails instead of event tails, and `inspect view=events` has been removed from the public inspect surface in favor of `inspect view=messages`. Remaining work is to absorb remaining runtime async action surfaces into the actor vocabulary instead of preserving a parallel public API.
10
- - Scope: Design and implement a small semantic layer around addressed messages and actors while preserving low-level primitives as adapters where useful. Candidate top-level concepts are `spawn` for creating an actor/run from a recipe or template, `message` for sending typed messages to any address, and `inspect` for intentional observation/debugging. Candidate addresses include `run:<id>`, `branch:<run>/<branch>`, `coordinator`, `session:<id>`, `tool:<name>`, and future chat/session endpoints. Candidate message fields include `to`, `from`, `type`, `summary`, `body`, `reply_to`, `correlation_id`, and `metadata`.
11
- - Contract direction: Unify “send down” and “messages up” as one message model. `to: run:<id>` routes to a run mailbox, `to: coordinator` routes to the coordinator attention path, and branch/tool/session addresses can be layered over the same semantic envelope. Recipes should declare mailbox capability (`accepts`, `emits`) without exposing FIFO/outbox mechanics or delivery policy as their public interface.
12
- - Design gates: Breaking changes are allowed in this phase, so compress concepts instead of preserving accidental surfaces. Consolidate duplicated lifecycle/message/event APIs into a concentrated protocol with the fewest durable nouns and verbs that still explain the system. Duplex communication should be symmetric where the domain is symmetric: the same message envelope should represent run→coordinator, coordinator→run, run→run, branch→parent, and parent→branch traffic, with routing/transport hidden below it. Keep command templates as the portable synchronous execution graph; keep recipe files as semantic definitions; avoid leaking transports into public args; make polling an explicit diagnostic operation, not an example path; replace runtime action names with the actor API rather than preserving parallel concepts.
13
- - Exit: The project exposes documented high-level universal communication primitives for starting work, sending messages, and inspecting state; packaged recipes/examples use the organic interface; async send/outbox behavior is intentionally migrated into actor-message coverage; all recipes validate and docs describe the actor/message model clearly.
14
-
15
- - Progressively increase component parameterization and higher-level recipe composition.
16
- - Priority: High.
17
- - Status: `subagent-tools` and `subagents-prompts` now align with the common subagent policy knobs for thinking, tools, model, and output format.
18
- - Scope: Iteratively strengthen atom/component recipes with public policy knobs such as model pools, stage-specific models, thinking, tool policy, output format, evidence policy, risk policy, source policy, artifact paths, mailbox contract, handoff format, resume/continuity policy, and validation gates; add higher-level component recipes that compose existing atoms into reusable coordinator patterns.
19
- - Exit: Each iteration adds or refines at least one atom-level parameterization surface and at least one composed recipe/pipeline, with packaged recipe import validation passing and docs/changelog updated.
20
-
21
- - Add another task-first high-level pipeline candidate from the design map.
22
- - Priority: Medium.
23
- - Status: `pipeline-release-readiness`, `pipeline-repo-health`, `pipeline-async-run-ops`, `pipeline-docs-maintenance`, `pipeline-media-library`, and `pipeline-artifact-bundle` landed. `pipeline-release-readiness` now includes package-summary evidence before validation/review. `pipeline-media-library` required playlist output-mode parameterization, then reused playlist and artifact-report cells. `pipeline-artifact-bundle` reused artifact-write, artifact-manifest, validation, manifest-write, and actor-message cells.
24
- - Scope: Reassess `docs/task-first-recipes.md` for the next high-value task cell, then implement only the minimum missing cells needed for that task.
25
- - Exit: Another task-first pipeline lands with docs, package validation, and a note about which missing atoms/utilities it required.
26
-
27
- - Grow the standard recipe library with safer structured utility transforms.
28
- - Priority: Low.
29
- - Status: `utility-artifact-manifest` landed for machine-readable artifact metadata; `utility-artifact-write` landed for deterministic writes of accepted prepared artifacts; `utility-package-summary` landed for bounded package metadata used by release/repo-health flows; `utility-validate-recipe` landed with a dedicated recipe validator script; `utility-run-ops-snapshot` landed for async-run summaries, actor-message tails, and operator-gated cleanup recommendations.
30
- - Scope: Continue beyond listing/extraction utilities toward structured transforms for artifact packaging, report normalization, release prep, and machine-readable summaries. Keep helpers generic, parameterized, and justified by repeated recipe needs.
31
- - Exit: A future utility slice adds another structured transform only when a repeated recipe need appears; otherwise treat the current helper-backed utility surface as sufficient.
5
+ No open release-blocking work remains for `0.15.0`.
6
+
7
+ The former active tracks are now release-ready:
8
+
9
+ - Universal actor communication: public guidance centers `spawn`, `message`, `inspect`, actor messages, mailbox contracts, and artifacts; low-level lifecycle/storage wording is confined to implementation/diagnostic docs.
10
+ - Component parameterization and composition: packaged recipes are policy-light, require caller-provided model/model-pool policy, expose reusable knobs, validate imports/mailboxes, and are covered by the actors Recipe Navigator.
11
+ - Structured utility transforms: current utility surface is sufficient for shipped pipelines; add future utilities only when a repeated packaged-pipeline need appears.
12
+
13
+ ## Future Work
14
+
15
+ - Add new utilities or pipelines only when a concrete repeated task pattern justifies them.
16
+ - Continue opportunistic actor-vocabulary cleanup when touching implementation docs or diagnostics.
32
17
 
33
18
  ## Blocked Work
34
19
 
35
- - Validate branch-local checkpoint semantics with collaborative-runner experiments.
36
- - Priority: Low.
37
- - Blocked by: At least one real collaborative branch-runner async-run experiment.
38
- - Scope: Use real collaborative branch-runner async runs to validate whether `failure: "branch"`, node-level `retry`, and `recover` cleanup are sufficient for branch-local validation and bounded reattempts.
39
- - Exit: Decision recorded as sufficient, documentation-only refinement needed, or propose a further minimal command-template extension with tests.
20
+ ### Branch-Local Checkpoint Semantics
21
+
22
+ - Priority: Low.
23
+ - Blocked by: At least one real collaborative branch-runner async-run experiment.
24
+ - Scope: Validate whether `failure: "branch"`, node-level `retry`, and `recover` cleanup are enough for branch-local validation and bounded reattempts.
25
+ - Exit: Record one decision: sufficient, documentation-only refinement needed, or propose one minimal command-template extension with tests.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.15.0: Packaged Actors Skill And Actor Vocabulary Cleanup
4
+
5
+ - `[Skill]` Reworked the packaged `actors` skill as a dense self-contained extension reference rather than a scenario catalog or changelog narrative, bundled the `swarm` methodology skill alongside it, synchronized packaged skill metadata versions with the package version, included `skills/` in the npm package contents, registered both skills in package metadata, and linked them from the README start points. Impact: fresh agents get compact practical coverage of pi-actors operation plus complementary multi-agent methodology without duplicating the two roles.
6
+ - `[Prompts]` Tightened the injected onboarding prompt into a shorter runtime bootstrap/reminder that avoids duplicating the skill and notes that README/docs are not automatically in context. Impact: session context stays compact while preserving operational lookup paths.
7
+ - `[Context]` Added a durable knowledge-surface separation convention for prompt, skill header/body, README, docs, and `AGENTS.md`. Impact: future edits have a clear role model for where each kind of pi-actors knowledge belongs and how it reaches the agent context.
8
+ - `[Backlog]` Reconciled task-first pipeline notes with the release-summary/review pipeline candidate in abstract terms. Impact: future pi-actors work can explore evidence preparation without tying the backlog to one completed release pass.
9
+ - `[Actor Tools]` Changed compact `inspect view=messages` and `message` tool output to use actor-message wording instead of public `event`/`delivery`/`outbox` labels. Impact: default tool output now reinforces the actor vocabulary while verbose JSON still exposes implementation details for diagnostics.
10
+ - `[Skill]` Reworded the packaged skill description to avoid extra frontmatter colons and replaced the compact two-branch Core Nouns sketch with an explicit two-path flow. Impact: skill metadata stays formatter-safe and the template→recipe→run versus template/recipe→tool relationship is easier to read.
11
+ - `[Recipe Library]` Added `utility-skill-summary` and routed `pipeline-release-readiness` through packaged skill evidence between package summary and validation. Impact: release readiness reports can verify skill metadata/package-version alignment, formatter-safe frontmatter, body size, and heading shape alongside changelog/package/validation evidence.
12
+ - `[Recipe Library]` Changed async-run operations recipes from public `message_file` inputs to `run_id` inputs, with the helper resolving implementation storage internally. Impact: packaged recipes no longer expose outbox paths as part of their public actor-operations surface.
13
+ - `[Recipe Library]` Added `coordinator-locker`, a long-lived actor recipe backed by `scripts/coordinator-locker.mjs` that manages a FIFO work queue, acquire/renew/release resource lease locks, a journal, and coordinator-directed actor messages, plus `utility-coordinator-lock-snapshot` for state inspection. Impact: future coordinated fanout recipes have a small local coordination cell instead of baking ad hoc queue/lock mechanics into each pipeline.
14
+ - `[Skill]` Clarified the actors skill's relationship to methodology skills and expanded it with a linked Recipe Navigator covering bundled coordination/service recipes, subagent atoms, pipelines, and utilities. Impact: the actors skill is now both the extension operation reference and the shortest agent-facing path to concrete packaged recipe files.
15
+ - `[Recipe Library]` Standardized all packaged async recipes to advertise `control.stop`, `control.cancel`, and `control.kill` in mailbox accepts. Impact: `inspect view=mailbox` now exposes the actor-native termination contract consistently across subagent atoms, coordinator cells, music, and pipelines.
16
+ - `[Recipe Library]` Removed concrete model-version defaults from packaged recipes, removed stale concrete model aliases from operator/docs examples, and added regressions that reject model-like defaults or provider/version aliases in recipe defaults and stale concrete model aliases in public guidance. Impact: reusable components stay policy-light and force the caller/agent to choose current model policy at launch instead of inheriting stale packaged aliases.
17
+ - `[Context]` Recompressed `BACKLOG.md` around current/future work only, added an 80/20 focus section for the remaining actor-vocabulary, recipe-policy, release-evidence pipeline, and utility-growth work, and promoted the backlog-is-planning rule into `AGENTS.md`. Impact: completed history stays in the changelog/docs while the backlog remains an actionable planning surface.
18
+ - `[Recipe Library]` Added `pipeline-release-summary`, an evidence-only release preparation pipeline that composes changelog, package, skill, and validation evidence into a release summary, risk checklist, and PR body draft artifact without commit, PR, merge, tag, publish, or other external release side effects. Impact: release-prep artifacts can be produced under pi-actors while gated release actions remain owned by release workflows.
19
+ - `[Docs]` Reworded remaining public README examples and the async-run operations pipeline prompt toward run-actor vocabulary instead of presenting async-run lifecycle wording as the primary operator concept. Impact: public guidance continues converging on `spawn`, `message`, `inspect`, and actor runs while low-level lifecycle language stays in implementation docs.
20
+ - `[Context]` Closed the active `0.15.0` backlog by moving completed actor-communication, component-policy, and utility-surface work out of open planning, leaving only future opportunistic work and the blocked branch-runner experiment. Impact: the release backlog now reflects no open release-blocking work.
21
+ - `[Skill]` Consolidated the bundled `swarm` methodology skill boundary by removing concrete pi-actors adapter examples and duplicate adapter/component docs from Swarm, keeping detailed MAWP mechanics in the dedicated reference instead of duplicating them in the general skill, and adding regressions that packaged Swarm markdown must not mention pi-actors runtime identifiers, package metadata must register every packaged skill, packaged skill markdown links must resolve, and the actors Recipe Navigator must link every bundled recipe file. Impact: Swarm can live inside this package while remaining portable methodology, and actors remains the shortest concrete path to packaged recipes.
22
+
3
23
  ## 0.14.3: Pipeline Termination Mailbox Consistency
4
24
 
5
25
  - `[Recipe Library]` Added `control.cancel` and `control.kill` mailbox accepts to packaged async pipeline recipes that previously advertised only `control.stop`. Impact: `inspect view=mailbox` now exposes the full actor-native termination set consistently across high-level pipeline actors.
package/README.md CHANGED
@@ -12,6 +12,9 @@ The persistent tool registry is still useful: it lets agents keep durable operat
12
12
  - [Open Backlog](./BACKLOG.md)
13
13
  - [Changelog](./CHANGELOG.md)
14
14
  - [Documentation](./docs/README.md)
15
+ - [Actors skill](./skills/actors/SKILL.md) — dense agent-facing reference for operating the extension
16
+ - [Swarm skill](./skills/swarm/SKILL.md) — multi-agent methodology, strategies, standards, and portable examples for actor-backed swarms
17
+ - [Swarm MAWP notes](./skills/swarm/references/development-swarm.md) — optional small-team development swarm reference
15
18
 
16
19
  ## What It Is
17
20
 
@@ -129,9 +132,7 @@ Move to actor recipes when work is long-running, parallel, service-like, or agen
129
132
  "name": "docs-review",
130
133
  "async": true,
131
134
  "args": ["scope:path", "model:string"],
132
- "defaults": {
133
- "model": "openai-codex/gpt-5.5"
134
- },
135
+ "defaults": {},
135
136
  "mailbox": {
136
137
  "accepts": ["control.stop"],
137
138
  "emits": ["review.completed", "run.failed"]
@@ -143,14 +144,14 @@ Move to actor recipes when work is long-running, parallel, service-like, or agen
143
144
  Expose a reusable actor recipe as a normal capability:
144
145
 
145
146
  ```text
146
- register_tool name=docs_review description="Start an async docs review actor" template="docs-review.json" args="scope:path,model:string=openai-codex/gpt-5.5"
147
+ register_tool name=docs_review description="Start an async docs review actor" template="docs-review.json" args="scope:path,model:string"
147
148
  ```
148
149
 
149
150
  `Task` is the user's work item. `Template` is the execution graph. `Actor recipe` is saved JSON. `Run` is one actor instance with status, logs, messages, cancellation, artifacts, and ambient triangles.
150
151
 
151
152
  ## Compose Recipes With Imports
152
153
 
153
- Recipes can import other recipe files and reuse them as named nodes. This keeps reusable steps small while letting a parent recipe decide whether the combined graph runs foreground or as one async run.
154
+ Recipes can import other recipe files and reuse them as named nodes. This keeps reusable steps small while letting a parent recipe decide whether the combined graph runs foreground or as one detached run actor.
154
155
 
155
156
  `review-one.json`:
156
157
 
@@ -158,7 +159,7 @@ Recipes can import other recipe files and reuse them as named nodes. This keeps
158
159
  {
159
160
  "name": "review-one",
160
161
  "args": ["scope:string", "model:string"],
161
- "defaults": { "model": "openai-codex/gpt-5.5" },
162
+ "defaults": {},
162
163
  "template": "pi -p --model {model} --no-tools \"Review {scope}\""
163
164
  }
164
165
  ```
@@ -189,7 +190,7 @@ register_tool name=review_pair \
189
190
  template="review-pair.json"
190
191
  ```
191
192
 
192
- Imported recipes are recipe definitions, not nested async runs. The parent recipe's `async: true` creates one run with one state dir; imported recipes contribute command-template graph, args, defaults, and values.
193
+ Imported recipes are recipe definitions, not nested run actors. The parent recipe's `async: true` creates one run actor with one state dir; imported recipes contribute command-template graph, args, defaults, and values.
193
194
 
194
195
  ## Register Actor-Control Tools
195
196
 
@@ -213,7 +214,7 @@ For reusable actor workflows, keep the large template and mailbox contract in a
213
214
  register_tool name=docs_review \
214
215
  description="Start an async docs review actor" \
215
216
  template="docs-review.json" \
216
- args="scope:path,model:string=openai-codex/gpt-5.5"
217
+ args="scope:path,model:string"
217
218
  ```
218
219
 
219
220
  If the recipe file contains `async: true`, calling `docs_review` starts a detached run and returns metadata immediately. If `async` is omitted or false, the same recipe runs foreground and returns normal tool output.
@@ -226,7 +227,8 @@ A recipe can also be co-located in `actors-tools.json` when keeping metadata and
226
227
  "description": "Start an async docs review",
227
228
  "name": "review-docs",
228
229
  "async": true,
229
- "template": "pi -p --model openai-codex/gpt-5.5 --tools read,bash \"Review {scope}\""
230
+ "args": ["scope:path", "model:string"],
231
+ "template": "pi -p --model {model} --tools read,bash \"Review {scope}\""
230
232
  }
231
233
  }
232
234
  ```
@@ -238,7 +240,7 @@ A co-located recipe entry still cannot define `tool`; it must own `template` dir
238
240
  ```text
239
241
  register_tool name=call_subagent \
240
242
  description="Run pi as a non-interactive sub-agent" \
241
- template="pi -p --model {model=openai-codex/gpt-5.5} --no-tools {prompt}"
243
+ template="pi -p --model {model} --no-tools {prompt}" args="prompt:string,model:string"
242
244
  ```
243
245
 
244
246
  Use `update=true` to overwrite an existing tool. Omit `template` during update to keep the previous template:
@@ -267,11 +269,12 @@ The commands above persist entries like this in `~/.pi/agent/actors-tools.json`;
267
269
  },
268
270
  "call_subagent": {
269
271
  "description": "Run pi as a non-interactive sub-agent",
270
- "template": "pi -p --model {model=openai-codex/gpt-5.5} --no-tools {prompt}"
272
+ "args": ["prompt:string", "model:string"],
273
+ "template": "pi -p --model {model} --no-tools {prompt}"
271
274
  },
272
275
  "docs_review": {
273
276
  "description": "Start an async docs review actor",
274
- "args": ["scope:path", "model:string=openai-codex/gpt-5.5"],
277
+ "args": ["scope:path", "model:string"],
275
278
  "template": "docs-review.json"
276
279
  }
277
280
  }
@@ -288,9 +291,10 @@ Start from an inline template as an addressable run actor:
288
291
  ```json
289
292
  {
290
293
  "as": "run:docs-review",
291
- "template": "pi -p --model openai-codex/gpt-5.5 --no-tools {prompt}",
294
+ "template": "pi -p --model {model} --no-tools {prompt}",
292
295
  "values": {
293
- "prompt": "Review docs/spec.md for contradictions."
296
+ "prompt": "Review docs/spec.md for contradictions.",
297
+ "model": "current-review-model"
294
298
  }
295
299
  }
296
300
  ```
@@ -313,7 +317,7 @@ Reusable local recipes live in `~/.pi/agent/recipes/*.json`; recipe tools honor
313
317
 
314
318
  Packaged standard recipes live under root `recipes/` with helper scripts under root `scripts/`. They are reusable library definitions, not automatically installed operator policy.
315
319
 
316
- The subagent component recipes start non-interactive pi subagents as async runs or compose component recipes into higher-level coordinator pipelines. Use the no-tools recipe for the safest default, the explicit-tool variant when a bounded tool allowlist is needed, or the prompts fanout parent recipe to see imported subagent recipe nodes composed into one async run:
320
+ The subagent component recipes start non-interactive pi subagents as detached run actors or compose component recipes into higher-level coordinator pipelines. Use the no-tools recipe for the safest default, the explicit-tool variant when a bounded tool allowlist is needed, or the prompts fanout parent recipe to see imported subagent recipe nodes composed into one run actor:
317
321
 
318
322
  ```text
319
323
  register_tool name=subagent_prompt \
@@ -325,7 +329,7 @@ register_tool name=subagent_tools \
325
329
  template="subagent-tools.json"
326
330
 
327
331
  register_tool name=subagents_prompts \
328
- description="Start parallel no-tools subagents from a prompt array as one async run" \
332
+ description="Start parallel no-tools subagents from a prompt array as one run actor" \
329
333
  template="subagents-prompts.json"
330
334
 
331
335
  subagent_prompt prompt="Review docs/async-runs.md for unclear wording." run_id=docs-review
@@ -336,7 +340,7 @@ subagents_prompts \
336
340
  inspect target=run:review-prompts view=tail
337
341
  ```
338
342
 
339
- The music player recipe starts a local file, URL, directory, or playlist as an async run, keeps the agent unblocked, shows the ambient triangle indicator in the launching coordinator, and can be controlled with addressed `message` calls. The standard library ships one Node.js wrapper recipe:
343
+ The music player recipe starts a local file, URL, directory, or playlist as a run actor, keeps the agent unblocked, shows the ambient triangle indicator in the launching coordinator, and can be controlled with addressed `message` calls. The standard library ships one Node.js wrapper recipe:
340
344
 
341
345
  ```text
342
346
  register_tool name=music_player \
@@ -374,8 +378,8 @@ See [`docs/recipe-library.md`](./docs/recipe-library.md) for install notes and r
374
378
  - `recover` runs a cleanup command template between failed retry attempts and stops retries if cleanup fails.
375
379
  - Commands execute directly without shell evaluation, but trusted executables still run with the same permissions as pi.
376
380
  - Obvious high-risk templates such as shells, interpreter eval modes, and broad filesystem mutation surface lightweight warnings without blocking existing tools.
377
- - `async: true` on a recipe selects detached run lifecycle; omitted or false async runs the recipe foreground through registered tools.
378
- - Layer boundaries stay explicit: command templates define synchronous execution graphs; template recipes add saved JSON metadata/import resolution and named `artifacts`; async runs add detached lifecycle, state, IPC, and observability.
381
+ - `async: true` on a recipe selects detached run-actor lifecycle; omitted or false runs the recipe foreground through registered tools.
382
+ - Layer boundaries stay explicit: command templates define synchronous execution graphs; template recipes add saved JSON metadata/import resolution and named `artifacts`; run actors add detached lifecycle, state, IPC, and observability.
379
383
  - `spawn`, `message`, and `inspect` are high-level actor adapters. `spawn` creates `run:<id>` actors from recipes or inline templates with optional state/artifact metadata, `message` sends one typed envelope to `run:<id>` mailboxes, `branch:<run>/<branch>` mailboxes, `tool:<name>` calls, or coordinator/session attention paths, and `inspect` intentionally reads `run:<id>` status/tail/messages/mailbox metadata, coordinator/session run status, or registered `tool:<name>` contracts while the broader actor/message protocol is refined.
380
384
  - `spawn`, `message`, and `inspect` are the public async coordination vocabulary. Low-level async actions map to this actor API: start belongs to `spawn`; send/control/stop/kill belongs to `message`; status/tail/messages/list belongs to `inspect`. Use `inspect view=messages` for actor-envelope streams. Use `control.stop`, `control.cancel`, and `control.kill` for run termination; runtime-prefixed control aliases are no longer part of the public surface.
381
385
  - Actor management returns compact text by default; pass `verbose: true` to `inspect` when full JSON state is needed.
@@ -384,7 +388,7 @@ See [`docs/recipe-library.md`](./docs/recipe-library.md) for install notes and r
384
388
  - Native Windows should use WSL or a recipe-specific transport for run-local message-controlled recipes; Linux uses stricter `/proc` runner ownership checks for stale PID protection.
385
389
  - Registered tools may set `template` to a recipe JSON path/name; calling them follows that recipe's `async` mode.
386
390
  - File-backed recipes may declare `imports` and embed imported recipes with `{ "name": "alias" }` nodes, or read `{alias.defaults.key}`, `{alias.defaults.key=fallback}`, and `{alias.values.key?yes:no}` references before command-template execution.
387
- - Interactive sessions show ambient async activity as stable `▷` triangles aggregated across runs started by the current agent session. Each running async run contributes at least one triangle; parallel active branches can contribute more. One `▶` wave moves over the active set; terminal `done`/`failed`/unhandled `killed`/`exited` messages are delivered as compact follow-up context only to the launching coordinator agent, while intentional `cancel`, `kill`, and `stop` actions stay silent because the action already reports synchronously. Failed commands and in-flight parallel branch completions can bubble through `command.done`; successful final leaf completions remain diagnostic to avoid sequential pipeline noise.
391
+ - Interactive sessions show ambient actor activity as stable `▷` triangles aggregated across runs started by the current agent session. Each running run actor contributes at least one triangle; parallel active branches can contribute more. One `▶` wave moves over the active set; terminal `done`/`failed`/unhandled `killed`/`exited` messages are delivered as compact follow-up context only to the launching coordinator agent, while intentional `cancel`, `kill`, and `stop` actions stay silent because the action already reports synchronously. Failed commands and in-flight parallel branch completions can bubble through `command.done`; successful final leaf completions remain diagnostic to avoid sequential pipeline noise.
388
392
  - Use `{file}` as the canonical local file path arg.
389
393
  - Stored `script` entries are rejected with migration guidance.
390
394
 
@@ -58,7 +58,7 @@ Field rules:
58
58
  - `type`: required semantic message type.
59
59
  - `summary`: short human-facing line for notifications/follow-ups.
60
60
  - `body`: string or JSON payload.
61
- - routing/delivery is inferred from `to`, actor ownership, and coordinator runtime policy; recipes should not expose delivery knobs. When a coordinator session is known, addressed run/branch/control messages fail closed before controlling or emitting from runs owned by another session.
61
+ - Routing/delivery is inferred from `to`, actor ownership, and coordinator runtime policy; recipes should not expose delivery knobs. When a coordinator session is known, addressed run/branch/control messages fail closed before controlling or emitting from runs owned by another session.
62
62
  - `reply_to`: optional message id for conversational checkpoints.
63
63
  - `correlation_id`: optional task/run/workflow id.
64
64
  - `metadata`: optional structured routing or domain hints.
@@ -139,10 +139,10 @@ The actor-level surface is:
139
139
 
140
140
  Low-level async actions map into the actor surface instead of forming a second public model:
141
141
 
142
- - start → `spawn`
143
- - send/control → `message`
144
- - status/tail/messages/list → `inspect`
145
- - stop/kill → `message` with `control.stop` or `control.kill`, with synchronous results
142
+ - Start → `spawn`
143
+ - Send/control → `message`
144
+ - Status/tail/messages/list → `inspect`
145
+ - Stop/kill → `message` with `control.stop` or `control.kill`, with synchronous results
146
146
 
147
147
  Compact text is returned by default so async management does not flood agent context; use verbose inspection when the full state object is needed. List output intentionally shares one state root across music, subagents, timers, and other async work; source fields such as `tool` and `recipe` distinguish run purpose when the launcher recorded them. Registered tools are the preferred user-facing surface for reusable recipes.
148
148
 
@@ -79,13 +79,13 @@ Implementations may expand `~` in command position and may resolve relative comm
79
79
 
80
80
  Supported forms:
81
81
 
82
- | Form | Meaning |
83
- | ------------------- | ------------------------------------------------ |
84
- | `{name}` | Required value from runtime values or `defaults` |
85
- | `{name=default}` | Inline default when no value is provided |
86
- | `{name??fallback}` | Fallback when value is missing, null, or empty |
87
- | `{name?yes:no}` | Ternary string selected by truthiness of `name` |
88
- | `{items[index]}` | Array item selected by literal or repeat index |
82
+ | Form | Meaning |
83
+ | ------------------ | ------------------------------------------------ |
84
+ | `{name}` | Required value from runtime values or `defaults` |
85
+ | `{name=default}` | Inline default when no value is provided |
86
+ | `{name??fallback}` | Fallback when value is missing, null, or empty |
87
+ | `{name?yes:no}` | Ternary string selected by truthiness of `name` |
88
+ | `{items[index]}` | Array item selected by literal or repeat index |
89
89
 
90
90
  Resolution order is runtime values → `defaults` → inline default → error. Nullish coalescing and ternary conditions treat missing, empty, `false`, `0`, and `no` as false. Use `??` for value fallback and ternaries for small string selection such as optional CLI flags; larger policy branches should stay in recipes, scripts, or separate template nodes. Default values that are themselves a single placeholder, such as `{prompt}` resolving to `{prompts[index]}`, are resolved recursively with a small depth guard. A repeat node may set `repeat` to `{items.length}` when an array arg should determine fanout width.
91
91
 
@@ -248,12 +248,12 @@ Parallel nodes use the same object shape. Flags come first and `template` stays
248
248
  "parallel": true,
249
249
  "template": [
250
250
  {
251
- "label": "gpt-5.5",
251
+ "label": "reviewer-a",
252
252
  "timeout": 300000,
253
253
  "template": "review-gpt {scope}"
254
254
  },
255
255
  {
256
- "label": "deepseek-pro",
256
+ "label": "reviewer-b",
257
257
  "timeout": 300000,
258
258
  "template": "review-deepseek {scope}"
259
259
  },
@@ -272,9 +272,9 @@ Parallel nodes use the same object shape. Flags come first and `template` stays
272
272
  A degraded parallel join is still usable when at least one branch succeeds:
273
273
 
274
274
  ```text
275
- --- branch: gpt-5.5 status: done ---
275
+ --- branch: reviewer-a status: done ---
276
276
  review text
277
- --- branch: deepseek-pro status: failed ---
277
+ --- branch: reviewer-b status: failed ---
278
278
  exit: 1
279
279
  stderr: provider balance exhausted
280
280
  ```
@@ -46,7 +46,7 @@ Core subagent recipes:
46
46
  - `recipes/subagent-followup.json`: Same-context or degraded continuation.
47
47
  - `recipes/subagent-judge.json`: Post-merge/report quality judge.
48
48
 
49
- Most atoms expose policy knobs such as `model`, `thinking`, `tools`, `output_format`, `evidence_policy`, `risk_policy`, source policy, continuity policy, handoff format, or model pools. The generic prompt launchers, including `subagent-tools` and `subagents-prompts`, expose the same core model/thinking/tool/output knobs so callers do not need separate recipe families for policy tuning. Interactive async atoms also declare mailbox metadata for their basic control, completion, and domain-result message surface. Higher-level recipes pass these knobs through instead of hard-coding local policy.
49
+ Most atoms expose policy knobs such as `model`, `thinking`, `tools`, `output_format`, `evidence_policy`, `risk_policy`, source policy, continuity policy, handoff format, or model pools. Packaged recipes intentionally do not ship concrete model-version defaults: callers must pass current model policy at launch, which keeps reusable recipe components from aging around old provider aliases. The generic prompt launchers, including `subagent-tools` and `subagents-prompts`, expose the same core model/thinking/tool/output knobs so callers do not need separate recipe families for policy tuning. Interactive async atoms also declare mailbox metadata for their basic control, completion, and domain-result message surface. Higher-level recipes pass these knobs through instead of hard-coding local policy.
50
50
 
51
51
  Register one atom:
52
52
 
@@ -68,8 +68,10 @@ inspect target=run:docs-review view=tail
68
68
 
69
69
  Pipeline recipes demonstrate second-order composition:
70
70
 
71
+ - `recipes/coordinator-locker.json`: Long-lived coordinator cell with queue, acquire/renew/release lease locks, journal, and actor messages for worker coordination.
71
72
  - `recipes/subagent-review-coordinator.json`: Lens reviewers → verifier → merger → judge → normalizer.
72
- - `recipes/pipeline-release-readiness.json`: Task-first release cell: changelog section → package summary → validation → release review → artifact report.
73
+ - `recipes/pipeline-release-readiness.json`: Task-first release cell: changelog section → package summary → packaged skill summary → validation → release review → artifact report.
74
+ - `recipes/pipeline-release-summary.json`: Evidence-only release summary cell: changelog section → package summary → packaged skill summary → validation → release summary / risks / PR body draft artifact. It does not commit, open a PR, merge, tag, publish, or perform external release side effects.
73
75
  - `recipes/pipeline-repo-health.json`: Task-first repository-health cell: git status/log → docs index → validation → normalized artifact report.
74
76
  - `recipes/pipeline-async-run-ops.json`: Task-first async-run operations cell: run summary → actor-message tail → normalized operations report → artifact report.
75
77
  - `recipes/pipeline-review-readiness.json`: Release/readiness gate over selected lenses.
@@ -96,16 +98,18 @@ Utility recipes cover local operator workflows that do not need subagents:
96
98
  - `recipes/utility-git-status.json`: Read concise branch/worktree state for a repo.
97
99
  - `recipes/utility-git-log.json`: Read recent decorated commit history for a repo.
98
100
  - `recipes/utility-run-state-files.json`: List run-state files such as `run.json` under an async run state root.
101
+ - `recipes/utility-coordinator-lock-snapshot.json`: Summarize a coordinator-locker actor state directory with queue depth, locks, and recent journal entries.
99
102
  - `recipes/utility-changelog-head.json`: Read the top slice of a changelog for release summary prep.
100
103
  - `recipes/utility-playlist-scan.json`: List local media files as playlist-building input.
101
104
  - `recipes/utility-run-summary.json`: Use `scripts/recipe-utils.mjs` to summarize async run state files as JSON.
102
- - `recipes/utility-run-ops-snapshot.json`: Combine async run summaries, actor-message JSONL tails, and stale/terminal recommendations into one structured operations snapshot.
105
+ - `recipes/utility-run-ops-snapshot.json`: Combine async run summaries, recent actor messages for a selected `run_id`, and stale/terminal recommendations into one structured operations snapshot.
103
106
  - `recipes/utility-playlist-build.json`: Use `scripts/recipe-utils.mjs` to build a filtered playlist listing as newline paths, M3U, or inline `|`-separated source.
104
107
  - `recipes/utility-changelog-section.json`: Use `scripts/recipe-utils.mjs` to extract one changelog release section.
105
108
  - `recipes/utility-artifact-manifest.json`: Use `scripts/recipe-utils.mjs` to emit a machine-readable JSON manifest for an artifact path.
106
109
  - `recipes/utility-artifact-write.json`: Deterministically write prepared artifact content from stdin to `artifact_path` with explicit `create`, `overwrite`, or `append` mode.
107
110
  - `recipes/utility-actor-message.json`: Deterministically wrap stdin as a validated addressed actor-message envelope with the same public names as the envelope: `to`, `from`, `type`, `summary`, `body`, optional `correlation_id`/`reply_to`, and `metadata`.
108
111
  - `recipes/utility-package-summary.json`: Use `scripts/recipe-utils.mjs` to emit bounded package metadata such as name, version, files, scripts, and dependency counts.
112
+ - `recipes/utility-skill-summary.json`: Use `scripts/recipe-utils.mjs` to summarize packaged skill frontmatter, body shape, formatter-safe scalar lines, and package-version alignment.
109
113
  - `recipes/utility-validate-recipe.json`: Use `scripts/validate-recipe.mjs` to validate one template recipe file, or all packaged recipes in a directory with `all: true`.
110
114
 
111
115
  These recipes are intentionally small. Register them only for trusted local commands and prefer narrow scopes. The helper-backed utilities share `scripts/recipe-utils.mjs` so repeated parsing/listing logic stays out of recipe strings.
@@ -30,13 +30,13 @@ scope snapshot → changelog/package check → release lens reviews → risk ver
30
30
 
31
31
  Likely needed cells:
32
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
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
40
 
41
41
  Existing seeds:
42
42
 
@@ -49,7 +49,7 @@ Existing seeds:
49
49
 
50
50
  Implemented seed:
51
51
 
52
- - `pipeline-release-readiness`: changelog section → package summary → validation wrapper → release review coordinator → artifact report.
52
+ - `pipeline-release-readiness`: changelog section → package summary → packaged skill summary → validation wrapper → release review coordinator → artifact report.
53
53
 
54
54
  ### Repository Health Cell
55
55
 
@@ -63,12 +63,12 @@ git status/log → package/docs/backlog snapshot → validation summary → heal
63
63
 
64
64
  Likely needed cells:
65
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
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
72
 
73
73
  Existing seeds:
74
74
 
@@ -93,11 +93,11 @@ run-state summary → actor-message tail → stale/active classification → rec
93
93
 
94
94
  Likely needed cells:
95
95
 
96
- - run summary helper
96
+ - Run summary helper
97
97
  - JSONL actor-message tailer
98
- - stale-run classifier
99
- - control-message recommender
100
- - run report artifact
98
+ - Stale-run classifier
99
+ - Control-message recommender
100
+ - Run report artifact
101
101
 
102
102
  Existing seeds:
103
103
 
@@ -122,13 +122,13 @@ question framing → evidence map → contradiction map → claim verification
122
122
 
123
123
  Likely needed cells:
124
124
 
125
- - question framer
126
- - source inventory utility
127
- - evidence mapper
128
- - contradiction mapper
129
- - verifier
130
- - synthesis merger
131
- - limitations normalizer
125
+ - Question framer
126
+ - Source inventory utility
127
+ - Evidence mapper
128
+ - Contradiction mapper
129
+ - Verifier
130
+ - Synthesis merger
131
+ - Limitations normalizer
132
132
 
133
133
  Existing seeds:
134
134
 
@@ -149,11 +149,11 @@ goal → mutation zones → task cards → validation gates → conflict risks
149
149
 
150
150
  Likely needed cells:
151
151
 
152
- - mutation-zone planner
153
- - task-card generator
154
- - ownership/conflict checker
155
- - validation-gate normalizer
156
- - integrator handoff artifact
152
+ - Mutation-zone planner
153
+ - Task-card generator
154
+ - Ownership/conflict checker
155
+ - Validation-gate normalizer
156
+ - Integrator handoff artifact
157
157
 
158
158
  Existing seeds:
159
159
 
@@ -173,11 +173,11 @@ doc file inventory → index diff → stale link/routing review → rewrite sugg
173
173
 
174
174
  Likely needed cells:
175
175
 
176
- - markdown index utility
177
- - link checker wrapper
178
- - docs consistency reviewer
179
- - docs update planner
180
- - docs artifact writer
176
+ - Markdown index utility
177
+ - Link checker wrapper
178
+ - Docs consistency reviewer
179
+ - Docs update planner
180
+ - Docs artifact writer
181
181
 
182
182
  Existing seeds:
183
183
 
@@ -202,10 +202,10 @@ media scan → playlist build → playback start → message summary → control
202
202
 
203
203
  Likely needed cells:
204
204
 
205
- - playlist builder
206
- - music player
207
- - run/message summary
208
- - control recommender
205
+ - Playlist builder
206
+ - Music player
207
+ - Run/message summary
208
+ - Control recommender
209
209
 
210
210
  Existing seeds:
211
211
 
@@ -226,8 +226,9 @@ Prefer adding a high-level recipe when at least three cells already exist and th
226
226
 
227
227
  Good next candidates for the standard library after the first task-first wave:
228
228
 
229
- 1. Package/release metadata enrichment: implemented in `pipeline-release-readiness` by adding `utility-package-summary` between changelog extraction and validation, making release-readiness reports more evidence-rich without adding publish automation.
230
- 2. Artifact packaging and manifesting: implemented as `pipeline-artifact-bundle`, which composes optional validation, `pipeline-artifact-write`, `utility-artifact-manifest`, deterministic manifest writing, and an actor-message handoff when the caller explicitly requests filesystem writes.
231
- 3. 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.
229
+ 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.
230
+ 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.
231
+ 3. Artifact packaging and manifesting: implemented as `pipeline-artifact-bundle`, which composes optional validation, `pipeline-artifact-write`, `utility-artifact-manifest`, deterministic manifest writing, and an actor-message handoff when the caller explicitly requests filesystem writes.
232
+ 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.
232
233
 
233
- 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-repo-health`, `pipeline-async-run-ops`, `pipeline-docs-maintenance`, `pipeline-media-library`, and `pipeline-artifact-bundle`.
234
+ 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`.
@@ -95,7 +95,12 @@ Use recipe-level `mailbox` to document the semantic messages a recipe actor acce
95
95
  ```json
96
96
  {
97
97
  "mailbox": {
98
- "accepts": ["control.continue", "control.revise", "control.approve", "control.stop"],
98
+ "accepts": [
99
+ "control.continue",
100
+ "control.revise",
101
+ "control.approve",
102
+ "control.stop"
103
+ ],
99
104
  "emits": ["checkpoint.needs_scope", "branch.done", "run.done"]
100
105
  }
101
106
  }
@@ -172,7 +177,7 @@ A registered tool can point at an actor recipe by storing the recipe path or nam
172
177
  {
173
178
  "docs_review": {
174
179
  "description": "Start an async docs review actor",
175
- "args": ["scope:path", "model:string=openai-codex/gpt-5.5"],
180
+ "args": ["scope:path", "model:string"],
176
181
  "template": "docs-review.json"
177
182
  }
178
183
  }