@llblab/pi-actors 0.22.5 → 0.24.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 (180) hide show
  1. package/AGENTS.md +125 -59
  2. package/BACKLOG.md +88 -403
  3. package/CHANGELOG.md +39 -0
  4. package/README.md +14 -1
  5. package/dist/fixtures/protocol/actor-message-branch.json +13 -0
  6. package/dist/fixtures/protocol/artifact-manifest.json +9 -0
  7. package/dist/fixtures/protocol/mailbox-contract.json +15 -0
  8. package/dist/fixtures/protocol/recipe-summary.json +16 -0
  9. package/dist/fixtures/protocol/room-message.json +11 -0
  10. package/dist/fixtures/protocol/room-roster.json +11 -0
  11. package/dist/fixtures/protocol/run-inbox-message.json +9 -0
  12. package/dist/fixtures/protocol/run-outbox-event.json +9 -0
  13. package/dist/fixtures/protocol/run-state.json +10 -0
  14. package/dist/index.js +18 -2
  15. package/dist/lib/actor-inspector-tui.d.ts +4 -0
  16. package/dist/lib/actor-inspector-tui.js +58 -44
  17. package/dist/lib/actor-rooms.d.ts +16 -0
  18. package/dist/lib/actor-rooms.js +123 -28
  19. package/dist/lib/actor-worker.d.ts +13 -0
  20. package/dist/lib/actor-worker.js +86 -0
  21. package/dist/lib/async-runner.d.ts +5 -0
  22. package/dist/lib/async-runner.js +134 -0
  23. package/dist/lib/async-runs.d.ts +34 -2
  24. package/dist/lib/async-runs.js +224 -50
  25. package/dist/lib/build-dist.d.ts +5 -0
  26. package/dist/lib/build-dist.js +24 -0
  27. package/dist/lib/command-templates.js +5 -5
  28. package/dist/lib/conformance.d.ts +12 -0
  29. package/dist/lib/conformance.js +28 -0
  30. package/dist/lib/coordinator.d.ts +5 -0
  31. package/dist/lib/coordinator.js +557 -0
  32. package/dist/lib/limits.d.ts +11 -0
  33. package/dist/lib/limits.js +11 -0
  34. package/dist/lib/locker.d.ts +5 -0
  35. package/dist/lib/locker.js +310 -0
  36. package/dist/lib/mailbox-loop.d.ts +41 -0
  37. package/dist/lib/mailbox-loop.js +62 -0
  38. package/dist/lib/observability.d.ts +2 -2
  39. package/dist/lib/observability.js +57 -57
  40. package/dist/lib/output.js +4 -5
  41. package/dist/lib/prompts.d.ts +1 -1
  42. package/dist/lib/prompts.js +1 -1
  43. package/dist/lib/recipe-discovery.js +1 -0
  44. package/dist/lib/recipe-references.d.ts +11 -2
  45. package/dist/lib/recipe-references.js +29 -4
  46. package/dist/lib/recipe-usage.d.ts +2 -1
  47. package/dist/lib/recipe-usage.js +15 -3
  48. package/dist/lib/recipe-utils.d.ts +5 -0
  49. package/dist/lib/recipe-utils.js +385 -0
  50. package/dist/lib/runtime-notifier.js +3 -7
  51. package/dist/lib/runtime.js +12 -2
  52. package/dist/lib/state-readers.d.ts +21 -0
  53. package/dist/lib/state-readers.js +74 -0
  54. package/dist/lib/tools.js +198 -39
  55. package/dist/lib/validate-recipe.d.ts +6 -0
  56. package/dist/lib/validate-recipe.js +104 -0
  57. package/dist/recipes/actor-worker.json +35 -0
  58. package/dist/recipes/coordinator-locker.json +45 -0
  59. package/dist/recipes/lens-swarm.json +66 -0
  60. package/dist/recipes/locker.json +45 -0
  61. package/dist/recipes/music-player.json +38 -0
  62. package/dist/recipes/pipeline-architect-coordinator.json +95 -0
  63. package/dist/recipes/pipeline-artifact-bundle.json +100 -0
  64. package/dist/recipes/pipeline-artifact-report.json +58 -0
  65. package/dist/recipes/pipeline-artifact-write.json +72 -0
  66. package/dist/recipes/pipeline-async-run-ops.json +70 -0
  67. package/dist/recipes/pipeline-checkpoint-continuation.json +67 -0
  68. package/dist/recipes/pipeline-development-tasking.json +81 -0
  69. package/dist/recipes/pipeline-docs-maintenance.json +80 -0
  70. package/dist/recipes/pipeline-media-library.json +59 -0
  71. package/dist/recipes/pipeline-quorum-review.json +79 -0
  72. package/dist/recipes/pipeline-release-readiness.json +110 -0
  73. package/dist/recipes/pipeline-release-summary.json +88 -0
  74. package/dist/recipes/pipeline-repo-health.json +89 -0
  75. package/dist/recipes/pipeline-research-synthesis.json +94 -0
  76. package/dist/recipes/pipeline-review-readiness.json +54 -0
  77. package/dist/recipes/pipeline-room-swarm.json +50 -0
  78. package/dist/recipes/subagent-artifact.json +32 -0
  79. package/dist/recipes/subagent-checkpoint.json +33 -0
  80. package/dist/recipes/subagent-conflict-report.json +32 -0
  81. package/dist/recipes/subagent-contradiction-map.json +33 -0
  82. package/dist/recipes/subagent-critic.json +35 -0
  83. package/dist/recipes/subagent-evidence-map.json +33 -0
  84. package/dist/recipes/subagent-followup.json +33 -0
  85. package/dist/recipes/subagent-judge.json +33 -0
  86. package/dist/recipes/subagent-merge.json +33 -0
  87. package/dist/recipes/subagent-message.json +34 -0
  88. package/dist/recipes/subagent-normalize.json +31 -0
  89. package/dist/recipes/subagent-plan.json +33 -0
  90. package/dist/recipes/subagent-prompt.json +28 -0
  91. package/dist/recipes/subagent-quorum.json +43 -0
  92. package/dist/recipes/subagent-review-coordinator.json +114 -0
  93. package/dist/recipes/subagent-review.json +37 -0
  94. package/dist/recipes/subagent-task-card.json +35 -0
  95. package/dist/recipes/subagent-tools.json +27 -0
  96. package/dist/recipes/subagent-verify.json +34 -0
  97. package/dist/recipes/subagents-prompts.json +51 -0
  98. package/dist/recipes/utility-actor-message.json +23 -0
  99. package/dist/recipes/utility-artifact-manifest.json +16 -0
  100. package/dist/recipes/utility-artifact-write.json +16 -0
  101. package/dist/recipes/utility-changelog-head.json +11 -0
  102. package/dist/recipes/utility-changelog-section.json +13 -0
  103. package/dist/recipes/utility-coordinator-lock-snapshot.json +13 -0
  104. package/dist/recipes/utility-git-log.json +11 -0
  105. package/dist/recipes/utility-git-status.json +9 -0
  106. package/dist/recipes/utility-jsonl-tail.json +10 -0
  107. package/dist/recipes/utility-markdown-index.json +14 -0
  108. package/dist/recipes/utility-package-summary.json +11 -0
  109. package/dist/recipes/utility-playlist-build.json +17 -0
  110. package/dist/recipes/utility-playlist-scan.json +11 -0
  111. package/dist/recipes/utility-run-ops-snapshot.json +17 -0
  112. package/dist/recipes/utility-run-state-files.json +13 -0
  113. package/dist/recipes/utility-run-summary.json +11 -0
  114. package/dist/recipes/utility-skill-summary.json +13 -0
  115. package/dist/recipes/utility-validate-recipe.json +13 -0
  116. package/dist/recipes/utility-validation-wrapper.json +13 -0
  117. package/dist/scripts/actor-worker.mjs +31 -0
  118. package/dist/scripts/async-runner.mjs +31 -0
  119. package/dist/scripts/build-dist.mjs +25 -0
  120. package/dist/scripts/conformance.mjs +33 -0
  121. package/dist/scripts/coordinator.mjs +31 -0
  122. package/dist/scripts/locker.mjs +33 -0
  123. package/dist/scripts/music-player.mjs +964 -0
  124. package/dist/scripts/recipe-utils.mjs +31 -0
  125. package/dist/scripts/validate-recipe.mjs +34 -0
  126. package/dist/skills/actors/SKILL.md +375 -0
  127. package/dist/skills/swarm/SKILL.md +467 -0
  128. package/dist/skills/swarm/references/development-swarm.md +596 -0
  129. package/docs/actor-messages.md +2 -2
  130. package/docs/async-runs.md +13 -1
  131. package/docs/template-recipes.md +2 -2
  132. package/docs/tool-registry.md +0 -1
  133. package/fixtures/protocol/actor-message-branch.json +13 -0
  134. package/fixtures/protocol/artifact-manifest.json +9 -0
  135. package/fixtures/protocol/mailbox-contract.json +15 -0
  136. package/fixtures/protocol/recipe-summary.json +16 -0
  137. package/fixtures/protocol/room-message.json +11 -0
  138. package/fixtures/protocol/room-roster.json +11 -0
  139. package/fixtures/protocol/run-inbox-message.json +9 -0
  140. package/fixtures/protocol/run-outbox-event.json +9 -0
  141. package/fixtures/protocol/run-state.json +10 -0
  142. package/index.ts +21 -0
  143. package/lib/actor-inspector-tui.ts +138 -59
  144. package/lib/actor-rooms.ts +241 -60
  145. package/lib/actor-worker.ts +118 -0
  146. package/lib/async-runner.ts +173 -0
  147. package/lib/async-runs.ts +302 -53
  148. package/lib/build-dist.ts +30 -0
  149. package/lib/command-templates.ts +5 -5
  150. package/lib/conformance.ts +46 -0
  151. package/lib/coordinator.ts +649 -0
  152. package/lib/limits.ts +12 -0
  153. package/lib/locker.ts +340 -0
  154. package/lib/mailbox-loop.ts +148 -0
  155. package/lib/observability.ts +34 -23
  156. package/lib/output.ts +4 -6
  157. package/lib/prompts.ts +1 -1
  158. package/lib/recipe-discovery.ts +1 -0
  159. package/lib/recipe-references.ts +57 -6
  160. package/lib/recipe-usage.ts +31 -4
  161. package/lib/recipe-utils.ts +486 -0
  162. package/lib/runtime-notifier.ts +4 -6
  163. package/lib/runtime.ts +31 -7
  164. package/lib/state-readers.ts +93 -0
  165. package/lib/tools.ts +297 -58
  166. package/lib/validate-recipe.ts +110 -0
  167. package/package.json +11 -2
  168. package/recipes/actor-worker.json +35 -0
  169. package/recipes/pipeline-quorum-review.json +12 -7
  170. package/scripts/actor-worker.mjs +31 -0
  171. package/scripts/async-runner.mjs +11 -195
  172. package/scripts/build-dist.mjs +25 -0
  173. package/scripts/conformance.mjs +33 -0
  174. package/scripts/coordinator.mjs +19 -616
  175. package/scripts/locker.mjs +23 -322
  176. package/scripts/music-player.mjs +21 -2
  177. package/scripts/recipe-utils.mjs +20 -467
  178. package/scripts/validate-recipe.mjs +23 -113
  179. package/skills/actors/SKILL.md +7 -4
  180. package/skills/swarm/SKILL.md +3 -1
@@ -0,0 +1,81 @@
1
+ {
2
+ "async": true,
3
+ "imports": {
4
+ "planner": "subagent-plan.json",
5
+ "task_card": "subagent-task-card.json",
6
+ "critic": "subagent-critic.json",
7
+ "normalizer": "subagent-normalize.json"
8
+ },
9
+ "args": [
10
+ "goal:string",
11
+ "allowed:string",
12
+ "avoided:string",
13
+ "checks:string",
14
+ "constraints:string",
15
+ "model:string",
16
+ "tools:string"
17
+ ],
18
+ "defaults": {
19
+ "allowed": "Caller must provide allowed files, directories, or logical scopes before implementation.",
20
+ "avoided": "Avoid unrelated files, public contracts, generated artifacts, and broad refactors unless explicitly allowed.",
21
+ "checks": "Smallest validation that proves the task card is complete.",
22
+ "constraints": "Split into bounded mutation zones and preserve integrator ownership of shared contracts.",
23
+ "tools": ""
24
+ },
25
+ "mailbox": {
26
+ "accepts": [
27
+ "control.stop",
28
+ "control.cancel",
29
+ "control.kill"
30
+ ],
31
+ "emits": [
32
+ "task_card.completed",
33
+ "pipeline.completed",
34
+ "command.done",
35
+ "run.done",
36
+ "run.failed"
37
+ ]
38
+ },
39
+ "template": [
40
+ {
41
+ "name": "planner",
42
+ "values": {
43
+ "goal": "{goal}",
44
+ "scope": "Allowed: {allowed}. Avoided: {avoided}.",
45
+ "constraints": "{constraints}",
46
+ "model": "{model}",
47
+ "tools": "{tools}"
48
+ }
49
+ },
50
+ {
51
+ "name": "task_card",
52
+ "values": {
53
+ "goal": "Use plan from stdin to create one bounded implementation assignment for: {goal}",
54
+ "allowed": "{allowed}",
55
+ "avoided": "{avoided}",
56
+ "checks": "{checks}",
57
+ "model": "{model}",
58
+ "tools": "{tools}"
59
+ }
60
+ },
61
+ {
62
+ "name": "critic",
63
+ "values": {
64
+ "target": "Use generated plan and task card from stdin.",
65
+ "constraints": "{constraints}",
66
+ "risk_policy": "Find unsafe scope expansion, missing ownership, and weak validation gates.",
67
+ "model": "{model}",
68
+ "tools": "{tools}"
69
+ }
70
+ },
71
+ {
72
+ "name": "normalizer",
73
+ "values": {
74
+ "input": "Use plan, task card, and critique from stdin.",
75
+ "format": "Markdown sections: Task Card, Allowed Files, Avoid Files, Checks, Risks, Integrator Notes.",
76
+ "model": "{model}",
77
+ "tools": "{tools}"
78
+ }
79
+ }
80
+ ]
81
+ }
@@ -0,0 +1,80 @@
1
+ {
2
+ "async": true,
3
+ "imports": {
4
+ "docs_index": "utility-markdown-index.json",
5
+ "reviewer": "subagent-review.json",
6
+ "planner": "subagent-plan.json",
7
+ "artifact": "pipeline-artifact-report.json"
8
+ },
9
+ "args": [
10
+ "docs_dir:path",
11
+ "readme:path",
12
+ "change_summary:string",
13
+ "artifact_path:path",
14
+ "model:string",
15
+ "tools:string"
16
+ ],
17
+ "defaults": {
18
+ "docs_dir": "docs",
19
+ "readme": "README.md",
20
+ "change_summary": "Recent project changes require documentation/index consistency review.",
21
+ "artifact_path": "./docs-maintenance.md",
22
+ "tools": ""
23
+ },
24
+ "mailbox": {
25
+ "accepts": [
26
+ "control.stop",
27
+ "control.cancel",
28
+ "control.kill"
29
+ ],
30
+ "emits": [
31
+ "docs.completed",
32
+ "artifact.prepared",
33
+ "command.done",
34
+ "run.done",
35
+ "run.failed"
36
+ ]
37
+ },
38
+ "template": [
39
+ {
40
+ "name": "docs_index",
41
+ "values": {
42
+ "directory": "{docs_dir}",
43
+ "title": "Documentation Index",
44
+ "include_pattern": "*.md"
45
+ }
46
+ },
47
+ {
48
+ "name": "reviewer",
49
+ "values": {
50
+ "scope": "README {readme}, docs directory {docs_dir}, and docs index output from stdin.",
51
+ "lens": "documentation maintenance and navigation consistency",
52
+ "instructions": "Review whether docs navigation, README entrypoints, and changed behavior are coherent. Change summary: {change_summary}",
53
+ "output_format": "Markdown sections: Missing Links, Stale Docs, Needed Updates, Safe No-op Areas.",
54
+ "model": "{model}",
55
+ "tools": "{tools}"
56
+ }
57
+ },
58
+ {
59
+ "name": "planner",
60
+ "values": {
61
+ "goal": "Prepare a bounded docs maintenance plan for: {change_summary}",
62
+ "scope": "Use docs index and documentation review from stdin. README: {readme}. Docs dir: {docs_dir}.",
63
+ "constraints": "Prefer smallest documentation changes; do not rewrite stable docs cosmetically.",
64
+ "output_format": "Markdown sections: Required Edits, Optional Edits, Validation, Stop Conditions.",
65
+ "model": "{model}",
66
+ "tools": "{tools}"
67
+ }
68
+ },
69
+ {
70
+ "name": "artifact",
71
+ "values": {
72
+ "input": "Use docs review and maintenance plan from stdin.",
73
+ "artifact_path": "{artifact_path}",
74
+ "artifact_format": "Markdown sections: Docs State, Required Updates, Optional Follow-up, Validation.",
75
+ "model": "{model}",
76
+ "tools": "{tools}"
77
+ }
78
+ }
79
+ ]
80
+ }
@@ -0,0 +1,59 @@
1
+ {
2
+ "async": true,
3
+ "imports": {
4
+ "playlist": "utility-playlist-build.json",
5
+ "artifact": "pipeline-artifact-report.json"
6
+ },
7
+ "args": [
8
+ "source_dir:path",
9
+ "extensions:string",
10
+ "max_depth:int",
11
+ "output_mode:enum(paths,m3u,inline)",
12
+ "artifact_path:path",
13
+ "model:string",
14
+ "tools:string"
15
+ ],
16
+ "defaults": {
17
+ "source_dir": "~/Music",
18
+ "extensions": ".mp3,.ogg,.wav,.flac,.m4a",
19
+ "max_depth": "2",
20
+ "output_mode": "m3u",
21
+ "artifact_path": "./media-library.md",
22
+ "tools": ""
23
+ },
24
+ "mailbox": {
25
+ "accepts": [
26
+ "control.stop",
27
+ "control.cancel",
28
+ "control.kill"
29
+ ],
30
+ "emits": [
31
+ "media.completed",
32
+ "artifact.prepared",
33
+ "command.done",
34
+ "run.done",
35
+ "run.failed"
36
+ ]
37
+ },
38
+ "template": [
39
+ {
40
+ "name": "playlist",
41
+ "values": {
42
+ "source_dir": "{source_dir}",
43
+ "extensions": "{extensions}",
44
+ "max_depth": "{max_depth}",
45
+ "output_mode": "{output_mode}"
46
+ }
47
+ },
48
+ {
49
+ "name": "artifact",
50
+ "values": {
51
+ "input": "Use playlist/media listing from stdin. Source directory: {source_dir}. Output mode: {output_mode}.",
52
+ "artifact_path": "{artifact_path}",
53
+ "artifact_format": "Markdown sections: Source, Playlist Output, Playback Notes, Next Actions.",
54
+ "model": "{model}",
55
+ "tools": "{tools}"
56
+ }
57
+ }
58
+ ]
59
+ }
@@ -0,0 +1,79 @@
1
+ {
2
+ "async": true,
3
+ "imports": {
4
+ "subagent": "subagent-prompt.json",
5
+ "merger": "subagent-merge.json",
6
+ "judge": "subagent-judge.json",
7
+ "normalizer": "subagent-normalize.json"
8
+ },
9
+ "args": [
10
+ "prompt:string",
11
+ "models:array",
12
+ "merge_mode:enum(consensus-first,risk-first)",
13
+ "merger_model:string",
14
+ "judge_model:string",
15
+ "tools:string"
16
+ ],
17
+ "defaults": {
18
+ "merge_mode": "consensus-first",
19
+ "tools": ""
20
+ },
21
+ "mailbox": {
22
+ "accepts": [
23
+ "control.stop",
24
+ "control.cancel",
25
+ "control.kill"
26
+ ],
27
+ "emits": [
28
+ "quorum.completed",
29
+ "review.completed",
30
+ "command.done",
31
+ "run.done",
32
+ "run.failed"
33
+ ]
34
+ },
35
+ "template": [
36
+ {
37
+ "parallel": true,
38
+ "repeat": "{models.length}",
39
+ "failure": "branch",
40
+ "template": {
41
+ "name": "subagent",
42
+ "values": {
43
+ "prompt": "{prompt}",
44
+ "model": "{models[index]}",
45
+ "tools": "{tools}",
46
+ "output_format": "Vote-style Markdown: Verdict, Rationale, Evidence, Confidence."
47
+ }
48
+ }
49
+ },
50
+ {
51
+ "name": "merger",
52
+ "values": {
53
+ "inputs": "Use quorum outputs from stdin.",
54
+ "mode": "{merge_mode}",
55
+ "model": "{merger_model}",
56
+ "tools": "{tools}",
57
+ "risk_policy": "Preserve vote shape, minority severe findings, and confidence disagreements."
58
+ }
59
+ },
60
+ {
61
+ "name": "judge",
62
+ "values": {
63
+ "report": "Use merged quorum report from stdin.",
64
+ "evidence": "Use raw quorum outputs and merged report from stdin.",
65
+ "model": "{judge_model}",
66
+ "tools": "{tools}"
67
+ }
68
+ },
69
+ {
70
+ "name": "normalizer",
71
+ "values": {
72
+ "input": "Use merged and judged quorum output from stdin.",
73
+ "format": "Markdown sections: Verdict, Vote Shape, Consensus, Minority Findings, Confidence, Required Action.",
74
+ "model": "{merger_model}",
75
+ "tools": "{tools}"
76
+ }
77
+ }
78
+ ]
79
+ }
@@ -0,0 +1,110 @@
1
+ {
2
+ "async": true,
3
+ "imports": {
4
+ "changelog": "utility-changelog-section.json",
5
+ "package": "utility-package-summary.json",
6
+ "skill": "utility-skill-summary.json",
7
+ "validation": "utility-validation-wrapper.json",
8
+ "review": "subagent-review-coordinator.json",
9
+ "artifact": "pipeline-artifact-report.json"
10
+ },
11
+ "args": [
12
+ "scope:path",
13
+ "version:string",
14
+ "package_json:path",
15
+ "skill:path",
16
+ "validation_command:string",
17
+ "artifact_path:path",
18
+ "lenses:array",
19
+ "reviewer_model:string",
20
+ "verifier_model:string",
21
+ "merger_model:string",
22
+ "judge_model:string",
23
+ "tools:string"
24
+ ],
25
+ "defaults": {
26
+ "scope": ".",
27
+ "version": "0.15.0",
28
+ "package_json": "{scope}/package.json",
29
+ "skill": "{scope}/skills/actors/SKILL.md",
30
+ "validation_command": "npm run validate",
31
+ "artifact_path": "./release-readiness.md",
32
+ "lenses": [
33
+ "release",
34
+ "package contents",
35
+ "operator UX",
36
+ "documentation",
37
+ "packaged skills"
38
+ ],
39
+ "tools": ""
40
+ },
41
+ "mailbox": {
42
+ "accepts": [
43
+ "control.stop",
44
+ "control.cancel",
45
+ "control.kill"
46
+ ],
47
+ "emits": [
48
+ "release.completed",
49
+ "artifact.prepared",
50
+ "command.done",
51
+ "run.done",
52
+ "run.failed"
53
+ ]
54
+ },
55
+ "template": [
56
+ {
57
+ "name": "changelog",
58
+ "values": {
59
+ "file": "{scope}/CHANGELOG.md",
60
+ "version": "{version}"
61
+ }
62
+ },
63
+ {
64
+ "name": "package",
65
+ "values": {
66
+ "package_json": "{package_json}",
67
+ "repo": "{scope}"
68
+ }
69
+ },
70
+ {
71
+ "name": "skill",
72
+ "values": {
73
+ "skill": "{skill}",
74
+ "package_json": "{package_json}",
75
+ "repo": "{scope}"
76
+ }
77
+ },
78
+ {
79
+ "name": "validation",
80
+ "values": {
81
+ "scope": "{scope}",
82
+ "command": "{validation_command}"
83
+ }
84
+ },
85
+ {
86
+ "name": "review",
87
+ "values": {
88
+ "scope": "Release scope {scope} for version {version}. Use changelog, package summary, packaged skill summary, and validation output from stdin.",
89
+ "lenses": "{lenses}",
90
+ "claim": "Version {version} is ready for release or the remaining blockers are explicitly identified.",
91
+ "reviewer_model": "{reviewer_model}",
92
+ "verifier_model": "{verifier_model}",
93
+ "merger_model": "{merger_model}",
94
+ "judge_model": "{judge_model}",
95
+ "tools": "{tools}",
96
+ "output_format": "Markdown sections: Release Verdict, Blocking Issues, Package/Docs Risks, Validation Evidence, Publish Notes, Required Follow-up."
97
+ }
98
+ },
99
+ {
100
+ "name": "artifact",
101
+ "values": {
102
+ "input": "Use release readiness review from stdin.",
103
+ "artifact_path": "{artifact_path}",
104
+ "artifact_format": "Markdown sections: Release Verdict, Evidence, Risks, Checklist, Next Actions.",
105
+ "model": "{merger_model}",
106
+ "tools": "{tools}"
107
+ }
108
+ }
109
+ ]
110
+ }
@@ -0,0 +1,88 @@
1
+ {
2
+ "async": true,
3
+ "imports": {
4
+ "changelog": "utility-changelog-section.json",
5
+ "package": "utility-package-summary.json",
6
+ "skill": "utility-skill-summary.json",
7
+ "validation": "utility-validation-wrapper.json",
8
+ "artifact": "pipeline-artifact-report.json"
9
+ },
10
+ "args": [
11
+ "scope:path",
12
+ "version:string",
13
+ "package_json:path",
14
+ "skill:path",
15
+ "validation_command:string",
16
+ "artifact_path:path",
17
+ "risk_notes:string",
18
+ "model:string",
19
+ "tools:string"
20
+ ],
21
+ "defaults": {
22
+ "scope": ".",
23
+ "package_json": "{scope}/package.json",
24
+ "skill": "{scope}/skills/actors/SKILL.md",
25
+ "validation_command": "npm run validate",
26
+ "artifact_path": "./release-summary.md",
27
+ "risk_notes": "No extra risk notes supplied.",
28
+ "tools": ""
29
+ },
30
+ "mailbox": {
31
+ "accepts": [
32
+ "control.stop",
33
+ "control.cancel",
34
+ "control.kill"
35
+ ],
36
+ "emits": [
37
+ "release.summary_ready",
38
+ "artifact.prepared",
39
+ "command.done",
40
+ "run.done",
41
+ "run.failed"
42
+ ]
43
+ },
44
+ "artifacts": {
45
+ "summary": "{artifact_path}"
46
+ },
47
+ "template": [
48
+ {
49
+ "name": "changelog",
50
+ "values": {
51
+ "file": "{scope}/CHANGELOG.md",
52
+ "version": "{version}"
53
+ }
54
+ },
55
+ {
56
+ "name": "package",
57
+ "values": {
58
+ "package_json": "{package_json}",
59
+ "repo": "{scope}"
60
+ }
61
+ },
62
+ {
63
+ "name": "skill",
64
+ "values": {
65
+ "skill": "{skill}",
66
+ "package_json": "{package_json}",
67
+ "repo": "{scope}"
68
+ }
69
+ },
70
+ {
71
+ "name": "validation",
72
+ "values": {
73
+ "scope": "{scope}",
74
+ "command": "{validation_command}"
75
+ }
76
+ },
77
+ {
78
+ "name": "artifact",
79
+ "values": {
80
+ "input": "Prepare an evidence-only release summary for version {version}. Use changelog, package summary, packaged skill summary, validation output, and these risk notes: {risk_notes}. Do not propose or perform commit, PR, merge, tag, publish, or any external release side effect.",
81
+ "artifact_path": "{artifact_path}",
82
+ "artifact_format": "Markdown sections: Release Summary, Validation Evidence, Package And Skill Evidence, Risks, PR Body Draft, Operator-Gated Next Steps. The PR Body Draft must be suitable for copy/paste and must not claim that release side effects already happened.",
83
+ "model": "{model}",
84
+ "tools": "{tools}"
85
+ }
86
+ }
87
+ ]
88
+ }
@@ -0,0 +1,89 @@
1
+ {
2
+ "async": true,
3
+ "imports": {
4
+ "git_status": "utility-git-status.json",
5
+ "git_log": "utility-git-log.json",
6
+ "docs_index": "utility-markdown-index.json",
7
+ "validation": "utility-validation-wrapper.json",
8
+ "normalizer": "subagent-normalize.json",
9
+ "artifact": "pipeline-artifact-report.json"
10
+ },
11
+ "args": [
12
+ "repo:path",
13
+ "docs_dir:path",
14
+ "validation_command:string",
15
+ "artifact_path:path",
16
+ "model:string",
17
+ "tools:string"
18
+ ],
19
+ "defaults": {
20
+ "repo": ".",
21
+ "docs_dir": "docs",
22
+ "validation_command": "npm run validate",
23
+ "artifact_path": "./repo-health.md",
24
+ "tools": ""
25
+ },
26
+ "mailbox": {
27
+ "accepts": [
28
+ "control.stop",
29
+ "control.cancel",
30
+ "control.kill"
31
+ ],
32
+ "emits": [
33
+ "repo_health.completed",
34
+ "artifact.prepared",
35
+ "command.done",
36
+ "run.done",
37
+ "run.failed"
38
+ ]
39
+ },
40
+ "template": [
41
+ {
42
+ "name": "git_status",
43
+ "values": {
44
+ "repo": "{repo}"
45
+ }
46
+ },
47
+ {
48
+ "name": "git_log",
49
+ "values": {
50
+ "repo": "{repo}",
51
+ "count": "8"
52
+ }
53
+ },
54
+ {
55
+ "name": "docs_index",
56
+ "values": {
57
+ "directory": "{repo}/{docs_dir}",
58
+ "title": "Documentation Index"
59
+ }
60
+ },
61
+ {
62
+ "name": "validation",
63
+ "values": {
64
+ "scope": "{repo}",
65
+ "command": "{validation_command}"
66
+ }
67
+ },
68
+ {
69
+ "name": "normalizer",
70
+ "values": {
71
+ "input": "Use repository status, recent log, docs index, and validation output from stdin. Repo: {repo}.",
72
+ "format": "Markdown sections: Branch State, Recent Commits, Docs Surface, Validation, Risks, Next Actions.",
73
+ "model": "{model}",
74
+ "thinking": "off",
75
+ "tools": "{tools}"
76
+ }
77
+ },
78
+ {
79
+ "name": "artifact",
80
+ "values": {
81
+ "input": "Use normalized repo health output from stdin.",
82
+ "artifact_path": "{artifact_path}",
83
+ "artifact_format": "Markdown sections: Branch State, Validation, Risks, Next Actions.",
84
+ "model": "{model}",
85
+ "tools": "{tools}"
86
+ }
87
+ }
88
+ ]
89
+ }
@@ -0,0 +1,94 @@
1
+ {
2
+ "async": true,
3
+ "imports": {
4
+ "planner": "subagent-plan.json",
5
+ "evidence": "subagent-evidence-map.json",
6
+ "contradictions": "subagent-contradiction-map.json",
7
+ "verifier": "subagent-verify.json",
8
+ "merger": "subagent-merge.json",
9
+ "normalizer": "subagent-normalize.json"
10
+ },
11
+ "args": [
12
+ "question:string",
13
+ "sources:string",
14
+ "constraints:string",
15
+ "model:string",
16
+ "tools:string"
17
+ ],
18
+ "defaults": {
19
+ "sources": "Use provided source notes or artifact paths only; mark missing evidence.",
20
+ "constraints": "Bound the question, preserve contradictions, and avoid publication-style certainty when evidence is weak.",
21
+ "tools": ""
22
+ },
23
+ "mailbox": {
24
+ "accepts": [
25
+ "control.stop",
26
+ "control.cancel",
27
+ "control.kill"
28
+ ],
29
+ "emits": [
30
+ "research.completed",
31
+ "command.done",
32
+ "run.done",
33
+ "run.failed"
34
+ ]
35
+ },
36
+ "template": [
37
+ {
38
+ "name": "planner",
39
+ "values": {
40
+ "goal": "Answer research question: {question}",
41
+ "scope": "Sources: {sources}",
42
+ "constraints": "{constraints}",
43
+ "model": "{model}",
44
+ "tools": "{tools}"
45
+ }
46
+ },
47
+ {
48
+ "name": "evidence",
49
+ "values": {
50
+ "question": "{question}",
51
+ "sources": "{sources}",
52
+ "model": "{model}",
53
+ "tools": "{tools}"
54
+ }
55
+ },
56
+ {
57
+ "name": "contradictions",
58
+ "values": {
59
+ "inputs": "Use plan and evidence map from stdin.",
60
+ "focus": "Contradictions, weak evidence, and missing source classes for question: {question}",
61
+ "model": "{model}",
62
+ "tools": "{tools}"
63
+ }
64
+ },
65
+ {
66
+ "name": "verifier",
67
+ "values": {
68
+ "claim": "The synthesis can answer the research question within the stated constraints.",
69
+ "evidence": "Use plan, evidence map, and contradiction map from stdin.",
70
+ "model": "{model}",
71
+ "tools": "{tools}"
72
+ }
73
+ },
74
+ {
75
+ "name": "merger",
76
+ "values": {
77
+ "inputs": "Use all previous research outputs from stdin.",
78
+ "mode": "risk-first",
79
+ "risk_policy": "Preserve uncertainty and contradictions over forced consensus.",
80
+ "model": "{model}",
81
+ "tools": "{tools}"
82
+ }
83
+ },
84
+ {
85
+ "name": "normalizer",
86
+ "values": {
87
+ "input": "Use merged research synthesis from stdin.",
88
+ "format": "Markdown sections: Question, Evidence Map, Synthesis, Contradictions, Confidence, Missing Evidence, Next Evidence Slice.",
89
+ "model": "{model}",
90
+ "tools": "{tools}"
91
+ }
92
+ }
93
+ ]
94
+ }