@llblab/pi-actors 0.14.2 → 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.
- package/AGENTS.md +5 -1
- package/BACKLOG.md +18 -32
- package/CHANGELOG.md +25 -0
- package/README.md +24 -20
- package/docs/actor-messages.md +1 -1
- package/docs/async-runs.md +4 -4
- package/docs/command-templates.md +11 -11
- package/docs/recipe-library.md +7 -3
- package/docs/task-first-recipes.md +44 -43
- package/docs/template-recipes.md +7 -2
- package/docs/tool-registry.md +7 -5
- package/lib/actor-messages.ts +20 -7
- package/lib/async-runs.ts +25 -12
- package/lib/command-templates.ts +6 -1
- package/lib/config.ts +2 -2
- package/lib/execution.ts +9 -5
- package/lib/observability.ts +20 -10
- package/lib/prompts.ts +13 -20
- package/lib/tools.ts +196 -64
- package/package.json +17 -9
- package/recipes/coordinator-locker.json +46 -0
- package/recipes/music-player.json +16 -2
- package/recipes/pipeline-architect-coordinator.json +11 -3
- package/recipes/pipeline-artifact-bundle.json +12 -3
- package/recipes/pipeline-artifact-report.json +9 -3
- package/recipes/pipeline-artifact-write.json +9 -3
- package/recipes/pipeline-async-run-ops.json +18 -9
- package/recipes/pipeline-checkpoint-continuation.json +14 -3
- package/recipes/pipeline-development-tasking.json +12 -3
- package/recipes/pipeline-docs-maintenance.json +12 -3
- package/recipes/pipeline-media-library.json +12 -3
- package/recipes/pipeline-quorum-review.json +12 -9
- package/recipes/pipeline-release-readiness.json +27 -9
- package/recipes/pipeline-release-summary.json +89 -0
- package/recipes/pipeline-repo-health.json +12 -3
- package/recipes/pipeline-research-synthesis.json +11 -3
- package/recipes/pipeline-review-readiness.json +12 -6
- package/recipes/subagent-artifact.json +9 -3
- package/recipes/subagent-checkpoint.json +10 -3
- package/recipes/subagent-conflict-report.json +11 -3
- package/recipes/subagent-contradiction-map.json +11 -3
- package/recipes/subagent-critic.json +11 -3
- package/recipes/subagent-evidence-map.json +11 -3
- package/recipes/subagent-followup.json +10 -3
- package/recipes/subagent-judge.json +11 -3
- package/recipes/subagent-merge.json +11 -3
- package/recipes/subagent-message.json +8 -3
- package/recipes/subagent-normalize.json +11 -3
- package/recipes/subagent-plan.json +11 -3
- package/recipes/subagent-prompt.json +10 -3
- package/recipes/subagent-quorum.json +10 -7
- package/recipes/subagent-review-coordinator.json +14 -6
- package/recipes/subagent-review.json +11 -3
- package/recipes/subagent-task-card.json +11 -3
- package/recipes/subagent-tools.json +10 -3
- package/recipes/subagent-verify.json +11 -3
- package/recipes/subagents-prompts.json +10 -3
- package/recipes/utility-coordinator-lock-snapshot.json +14 -0
- package/recipes/utility-run-ops-snapshot.json +3 -3
- package/recipes/utility-skill-summary.json +14 -0
- package/scripts/coordinator-locker.mjs +272 -0
- package/scripts/music-player.mjs +2 -1
- package/scripts/recipe-utils.mjs +239 -81
- package/scripts/validate-recipe.mjs +28 -10
- package/skills/actors/SKILL.md +283 -0
- package/skills/swarm/SKILL.md +451 -0
- 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
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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,30 @@
|
|
|
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
|
+
|
|
23
|
+
## 0.14.3: Pipeline Termination Mailbox Consistency
|
|
24
|
+
|
|
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.
|
|
26
|
+
- `[Tests]` Expanded packaged recipe coverage so all async `pipeline-*` recipes must expose `control.stop`, `control.cancel`, and `control.kill`. Impact: future pipeline recipes cannot silently regress to partial termination mailbox contracts.
|
|
27
|
+
|
|
3
28
|
## 0.14.2: Release Readiness Package Evidence
|
|
4
29
|
|
|
5
30
|
- `[Recipe Library]` Added `utility-package-summary` evidence to `pipeline-release-readiness` between changelog extraction and validation. Impact: release readiness reports can consider package metadata and package contents summary without adding publish automation.
|
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
|
|
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
|
|
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": {
|
|
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
|
|
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
|
|
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
|
-
"
|
|
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
|
|
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
|
-
"
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
378
|
-
- Layer boundaries stay explicit: command templates define synchronous execution graphs; template recipes add saved JSON metadata/import resolution and named `artifacts`;
|
|
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
|
|
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
|
|
package/docs/actor-messages.md
CHANGED
|
@@ -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
|
-
-
|
|
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.
|
package/docs/async-runs.md
CHANGED
|
@@ -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
|
-
-
|
|
143
|
-
-
|
|
144
|
-
-
|
|
145
|
-
-
|
|
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
|
|
83
|
-
|
|
|
84
|
-
| `{name}`
|
|
85
|
-
| `{name=default}`
|
|
86
|
-
| `{name??fallback}`
|
|
87
|
-
| `{name?yes:no}`
|
|
88
|
-
| `{items[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": "
|
|
251
|
+
"label": "reviewer-a",
|
|
252
252
|
"timeout": 300000,
|
|
253
253
|
"template": "review-gpt {scope}"
|
|
254
254
|
},
|
|
255
255
|
{
|
|
256
|
-
"label": "
|
|
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:
|
|
275
|
+
--- branch: reviewer-a status: done ---
|
|
276
276
|
review text
|
|
277
|
-
--- branch:
|
|
277
|
+
--- branch: reviewer-b status: failed ---
|
|
278
278
|
exit: 1
|
|
279
279
|
stderr: provider balance exhausted
|
|
280
280
|
```
|
package/docs/recipe-library.md
CHANGED
|
@@ -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
|
|
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
|
-
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
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
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
-
|
|
71
|
-
-
|
|
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
|
-
-
|
|
96
|
+
- Run summary helper
|
|
97
97
|
- JSONL actor-message tailer
|
|
98
|
-
-
|
|
99
|
-
-
|
|
100
|
-
-
|
|
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
|
-
-
|
|
126
|
-
-
|
|
127
|
-
-
|
|
128
|
-
-
|
|
129
|
-
-
|
|
130
|
-
-
|
|
131
|
-
-
|
|
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
|
-
-
|
|
153
|
-
-
|
|
154
|
-
-
|
|
155
|
-
-
|
|
156
|
-
-
|
|
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
|
-
-
|
|
177
|
-
-
|
|
178
|
-
-
|
|
179
|
-
-
|
|
180
|
-
-
|
|
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
|
-
-
|
|
206
|
-
-
|
|
207
|
-
-
|
|
208
|
-
-
|
|
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.
|
|
231
|
-
3.
|
|
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`.
|
package/docs/template-recipes.md
CHANGED
|
@@ -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": [
|
|
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
|
|
180
|
+
"args": ["scope:path", "model:string"],
|
|
176
181
|
"template": "docs-review.json"
|
|
177
182
|
}
|
|
178
183
|
}
|