opencode-swarm 7.109.4 → 7.110.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/.opencode/skills/swarm/SKILL.md +186 -0
- package/.opencode/skills/swarm-ci-monitor/SKILL.md +369 -0
- package/.opencode/skills/swarm-pr-feedback/SKILL.md +86 -17
- package/dist/cli/{curator-zn1kmwmz.js → curator-4qqzpd85.js} +1 -1
- package/dist/cli/{curator-llm-factory-3hf9xpnd.js → curator-llm-factory-y4kvr1ph.js} +1 -1
- package/dist/cli/{guardrail-explain-hjz1k6w0.js → guardrail-explain-10hh57cr.js} +2 -2
- package/dist/cli/{hive-promoter-j81yj97d.js → hive-promoter-wvxqyayt.js} +1 -1
- package/dist/cli/{index-y3nx3ss0.js → index-1mc2yfc2.js} +12 -8
- package/dist/cli/{index-nvmy7xmj.js → index-khj0knr0.js} +2 -2
- package/dist/cli/{index-zh3qh6m7.js → index-xhsba2sn.js} +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/config/bundled-skills.d.ts +1 -1
- package/dist/index.js +2 -2
- package/package.json +3 -1
|
@@ -6,7 +6,10 @@ description: >
|
|
|
6
6
|
requested changes, CI/check failures, merge conflicts, stale PR branches, or
|
|
7
7
|
PR follow-up work that must close all known issues without dropping findings.
|
|
8
8
|
Supports multi-round bot reviews (the repository's bot posts a new review
|
|
9
|
-
after every push) via the iterative pattern documented in the body.
|
|
9
|
+
after every push) via the iterative pattern documented in the body. Stage A
|
|
10
|
+
(structural pre-checks) and Stage B (reviewer + test_engineer) gates and the
|
|
11
|
+
reviewer + critic closeout gate are MANDATORY for any change made as part of
|
|
12
|
+
this process.
|
|
10
13
|
---
|
|
11
14
|
|
|
12
15
|
# Swarm PR Feedback
|
|
@@ -16,6 +19,12 @@ Use this skill to close known PR feedback. This is not a fresh broad PR review.
|
|
|
16
19
|
feedback surfaces, verifies each claim, clusters related problems, fixes confirmed
|
|
17
20
|
issues, validates the branch, and reports closure status for every item.
|
|
18
21
|
|
|
22
|
+
**Mandatory gate contract.** Stage A (structural pre-checks) and Stage B
|
|
23
|
+
(reviewer + test_engineer) gates and the reviewer + critic closeout gate are
|
|
24
|
+
MANDATORY for any change made as part of this process. No fix lands, no closure
|
|
25
|
+
ledger row is marked FIXED, and no PR is published until all three gates pass on
|
|
26
|
+
the current diff. See "Mandatory Gates" below for the full protocol.
|
|
27
|
+
|
|
19
28
|
When the work starts from a prior `swarm-pr-review` run, ingest the review's
|
|
20
29
|
handoff artifact (for example
|
|
21
30
|
`.swarm/pr-review/<run_id>/feedback-handoff.md` or `.json`) before triage.
|
|
@@ -188,11 +197,11 @@ tree:
|
|
|
188
197
|
filesystem (`Read`/`Glob`/`Grep`), and fixes must land on the PR branch — without a
|
|
189
198
|
checkout you would verify and patch the base branch's code instead. Record the
|
|
190
199
|
`base_ref..head_ref` range for diff-scoped inspection.
|
|
191
|
-
- Pass the `base_ref..head_ref` commit range in every read-only verification or
|
|
192
|
-
|
|
193
|
-
|
|
200
|
+
- Pass the `base_ref..head_ref` commit range in every read-only verification or
|
|
201
|
+
explorer/advisory-lane delegation so lane agents can inspect specific revisions
|
|
202
|
+
with `git show` when needed.
|
|
194
203
|
- If no PR reference was provided (a pasted-feedback session on the current branch),
|
|
195
|
-
|
|
204
|
+
confirm the current branch is the intended PR branch before editing.
|
|
196
205
|
|
|
197
206
|
When a verification lane result includes `output_ref`, treat `output` as a
|
|
198
207
|
preview and call `retrieve_lane_output` before using it to classify, resolve,
|
|
@@ -481,25 +490,85 @@ or compatibility policy, mark the item `NEEDS_USER_DECISION` and ask.
|
|
|
481
490
|
and let the merge queue perform final current-base validation. Still resolve real
|
|
482
491
|
merge conflicts and SHA-dependent review threads before queuing.
|
|
483
492
|
|
|
484
|
-
##
|
|
493
|
+
## Mandatory Gates
|
|
494
|
+
|
|
495
|
+
**Stage A and Stage B gates and the reviewer + critic closeout gate are
|
|
496
|
+
MANDATORY for any change made as part of the PR-feedback process.** No fix
|
|
497
|
+
lands, no closure ledger row is marked FIXED, and no PR is published until all
|
|
498
|
+
three gates pass on the current diff. This section uses the repository's
|
|
499
|
+
established Stage A/B meaning: Stage A = `pre_check_batch`-equivalent structural
|
|
500
|
+
pre-checks; Stage B = `reviewer` + `test_engineer` per-task gates (consistent
|
|
501
|
+
with `execute`, `plan`, `specify`, `brainstorm`, `docs/swarm-briefing.md`, and
|
|
502
|
+
`docs/council/README.md`).
|
|
503
|
+
|
|
504
|
+
If a gate failure is suspected pre-existing, prove it on the base branch or
|
|
505
|
+
label it `UNVERIFIED`. Do not call the branch green while required checks are
|
|
506
|
+
non-green.
|
|
507
|
+
|
|
508
|
+
### Stage A — structural pre-checks (mandatory before Stage B)
|
|
509
|
+
|
|
510
|
+
Run for every changed surface. No "where relevant" — every PR-feedback change
|
|
511
|
+
runs these; if a surface is genuinely untouched, state that explicitly rather
|
|
512
|
+
than skipping silently.
|
|
513
|
+
|
|
514
|
+
- `bun run build` (or the repository's build command) — must succeed.
|
|
515
|
+
- typecheck — must pass.
|
|
516
|
+
- lint/format (e.g. `biome ci .`) — must pass.
|
|
517
|
+
- `git diff --check` — no whitespace or merge-marker errors.
|
|
518
|
+
- exact failing CI/test command reproduced locally when a ledger item is rooted
|
|
519
|
+
in a CI/test failure — the reproduction must fail on the pre-fix tree and pass
|
|
520
|
+
after the fix.
|
|
521
|
+
|
|
522
|
+
### Stage B — reviewer + test_engineer (mandatory after Stage A passes)
|
|
523
|
+
|
|
524
|
+
Two independent agents on the Stage-A-green diff:
|
|
525
|
+
|
|
526
|
+
- **reviewer** — independent (fresh context, not the implementer, not a continued
|
|
527
|
+
conversation). Validates each fix on the current diff against the feedback
|
|
528
|
+
item it closes. Verdict per item: APPROVE / NEEDS_REVISION / BLOCKED.
|
|
529
|
+
- **test_engineer** — writes and runs the falsification probe or regression test
|
|
530
|
+
that proves each fix actually resolves its item (tests for changed behavior or
|
|
531
|
+
newly covered gaps). Verdict per item: PASS / FAIL / BLOCKED.
|
|
485
532
|
|
|
486
|
-
|
|
533
|
+
Address every NEEDS_REVISION / BLOCKED / FAIL, then re-run the affected agent on
|
|
534
|
+
the current diff.
|
|
487
535
|
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
536
|
+
### Closeout gate — reviewer + critic (mandatory after Stage B)
|
|
537
|
+
|
|
538
|
+
A *separate* reviewer + critic pair on the Stage-B-approved diff. This is the
|
|
539
|
+
swarm closeout contract (see `../swarm/SKILL.md` "Mandatory implementation
|
|
540
|
+
closeout gate"); because this skill edits code, docs, release notes, or skill files it applies in full — Stage B
|
|
541
|
+
alone does not satisfy it.
|
|
542
|
+
|
|
543
|
+
- **independent reviewer** (fresh context, separate from the Stage B reviewer)
|
|
544
|
+
→ APPROVE / NEEDS_REVISION / BLOCKED per item.
|
|
545
|
+
- **final critic** (separate fresh context, not a continued conversation with
|
|
546
|
+
the reviewer, dispatched after the reviewer returns APPROVE) → APPROVE /
|
|
547
|
+
NEEDS_REVISION / BLOCKED per item. The critic challenges: is every original
|
|
548
|
+
feedback item actually resolved? Any requirement drift, weak evidence, missing
|
|
549
|
+
sibling-file checks, stale approvals, anything unwired or silently deferred?
|
|
550
|
+
|
|
551
|
+
Address every NEEDS_REVISION / BLOCKED item, re-review with the reviewer if the
|
|
552
|
+
critic surfaces correctness issues, then re-critic. **Any edit after the
|
|
553
|
+
reviewer's or critic's approval invalidates that approval** — re-run the
|
|
554
|
+
affected gate on the current diff before publishing.
|
|
555
|
+
|
|
556
|
+
Record both closeout verdicts (reviewer + critic, with HEAD/diff) in
|
|
557
|
+
`.claude/session/tasks/<slug>/gates.md` per the `durable-session-state` skill
|
|
558
|
+
(`.swarm/` is the plugin's runtime state — never write task artifacts there).
|
|
559
|
+
|
|
560
|
+
### Post-publish verification (mandatory after the PR is pushed)
|
|
561
|
+
|
|
562
|
+
These checks run after the fix lands on the remote — they are NOT Stage A
|
|
563
|
+
pre-checks and must not be folded into Stage A.
|
|
564
|
+
|
|
565
|
+
- PR metadata checks after push: head SHA, check status,
|
|
566
|
+
mergeability/conflicts, and unresolved feedback state.
|
|
494
567
|
- After conflict fixes, verify remote mergeability is clean (`MERGEABLE` /
|
|
495
568
|
`CLEAN`), not only that local conflict markers disappeared.
|
|
496
569
|
- For current-head CI, prefer run-level details when PR checks look stale:
|
|
497
570
|
`gh run view <run-id> --json headSha,status,conclusion,jobs,url`.
|
|
498
571
|
|
|
499
|
-
If a validation failure is suspected pre-existing, prove it on the base branch or
|
|
500
|
-
label it `UNVERIFIED`. Do not call the branch green while required checks are
|
|
501
|
-
non-green.
|
|
502
|
-
|
|
503
572
|
## Publishing And Communication
|
|
504
573
|
|
|
505
574
|
After fixes, update the PR body or comment with a closure ledger:
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
handleGuardrailExplain
|
|
4
|
-
} from "./index-
|
|
5
|
-
import"./index-
|
|
4
|
+
} from "./index-xhsba2sn.js";
|
|
5
|
+
import"./index-1mc2yfc2.js";
|
|
6
6
|
import"./index-d3txrx5q.js";
|
|
7
7
|
import"./index-mtzjbaaa.js";
|
|
8
8
|
import"./index-c8s9a3zh.js";
|
|
@@ -5008,8 +5008,10 @@ var BUNDLED_PROJECT_SKILLS = [
|
|
|
5008
5008
|
"swarm-implement",
|
|
5009
5009
|
"design-docs",
|
|
5010
5010
|
"swarm-pr-review",
|
|
5011
|
+
"swarm",
|
|
5011
5012
|
"swarm-pr-feedback",
|
|
5012
5013
|
"swarm-pr-subscribe",
|
|
5014
|
+
"swarm-ci-monitor",
|
|
5013
5015
|
"issue-ingest",
|
|
5014
5016
|
"plan",
|
|
5015
5017
|
"critic-gate",
|
|
@@ -7269,11 +7271,11 @@ var _internals7 = {
|
|
|
7269
7271
|
return KnowledgeConfigSchema2.parse({});
|
|
7270
7272
|
},
|
|
7271
7273
|
applyCuratorKnowledgeUpdates: async (directory, recommendations, knowledgeConfig) => {
|
|
7272
|
-
const { applyCuratorKnowledgeUpdates } = await import("./curator-
|
|
7274
|
+
const { applyCuratorKnowledgeUpdates } = await import("./curator-4qqzpd85.js");
|
|
7273
7275
|
return applyCuratorKnowledgeUpdates(directory, recommendations, knowledgeConfig);
|
|
7274
7276
|
},
|
|
7275
7277
|
checkHivePromotions: async (entries, knowledgeConfig) => {
|
|
7276
|
-
const { checkHivePromotions } = await import("./hive-promoter-
|
|
7278
|
+
const { checkHivePromotions } = await import("./hive-promoter-wvxqyayt.js");
|
|
7277
7279
|
return checkHivePromotions(entries, knowledgeConfig);
|
|
7278
7280
|
},
|
|
7279
7281
|
applyProposalTriage: async (directory, triage) => {
|
|
@@ -16647,8 +16649,8 @@ var _internals21 = {
|
|
|
16647
16649
|
loadCuratorDeps: async () => {
|
|
16648
16650
|
const [{ CuratorConfigSchema }, curator, { createCuratorLLMDelegate: createCuratorLLMDelegate2 }] = await Promise.all([
|
|
16649
16651
|
import("./schema-5vmb5dh8.js"),
|
|
16650
|
-
import("./curator-
|
|
16651
|
-
import("./curator-llm-factory-
|
|
16652
|
+
import("./curator-4qqzpd85.js"),
|
|
16653
|
+
import("./curator-llm-factory-y4kvr1ph.js")
|
|
16652
16654
|
]);
|
|
16653
16655
|
return { CuratorConfigSchema, curator, createCuratorLLMDelegate: createCuratorLLMDelegate2 };
|
|
16654
16656
|
}
|
|
@@ -17144,7 +17146,7 @@ import { fileURLToPath } from "url";
|
|
|
17144
17146
|
// package.json
|
|
17145
17147
|
var package_default = {
|
|
17146
17148
|
name: "opencode-swarm",
|
|
17147
|
-
version: "7.
|
|
17149
|
+
version: "7.110.0",
|
|
17148
17150
|
description: "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
|
|
17149
17151
|
main: "dist/index.js",
|
|
17150
17152
|
types: "dist/index.d.ts",
|
|
@@ -17199,8 +17201,10 @@ var package_default = {
|
|
|
17199
17201
|
".opencode/skills/swarm-implement",
|
|
17200
17202
|
".opencode/skills/design-docs",
|
|
17201
17203
|
".opencode/skills/swarm-pr-review",
|
|
17204
|
+
".opencode/skills/swarm",
|
|
17202
17205
|
".opencode/skills/swarm-pr-feedback",
|
|
17203
17206
|
".opencode/skills/swarm-pr-subscribe",
|
|
17207
|
+
".opencode/skills/swarm-ci-monitor",
|
|
17204
17208
|
".opencode/skills/issue-ingest",
|
|
17205
17209
|
".opencode/skills/plan",
|
|
17206
17210
|
".opencode/skills/critic-gate",
|
|
@@ -31867,7 +31871,7 @@ function buildDetailedHelp(commandName, entry) {
|
|
|
31867
31871
|
async function handleHelpCommand(ctx) {
|
|
31868
31872
|
const targetCommand = ctx.args.join(" ");
|
|
31869
31873
|
if (!targetCommand) {
|
|
31870
|
-
const { buildHelpText } = await import("./index-
|
|
31874
|
+
const { buildHelpText } = await import("./index-khj0knr0.js");
|
|
31871
31875
|
return buildHelpText();
|
|
31872
31876
|
}
|
|
31873
31877
|
const tokens = targetCommand.split(/\s+/);
|
|
@@ -31876,7 +31880,7 @@ async function handleHelpCommand(ctx) {
|
|
|
31876
31880
|
return _internals46.buildDetailedHelp(resolved.key, resolved.entry);
|
|
31877
31881
|
}
|
|
31878
31882
|
const similar = _internals46.findSimilarCommands(targetCommand);
|
|
31879
|
-
const { buildHelpText: fullHelp } = await import("./index-
|
|
31883
|
+
const { buildHelpText: fullHelp } = await import("./index-khj0knr0.js");
|
|
31880
31884
|
if (similar.length > 0) {
|
|
31881
31885
|
return `Command '/swarm ${targetCommand}' not found.
|
|
31882
31886
|
|
|
@@ -32009,7 +32013,7 @@ var COMMAND_REGISTRY = {
|
|
|
32009
32013
|
},
|
|
32010
32014
|
"guardrail explain": {
|
|
32011
32015
|
handler: async (ctx) => {
|
|
32012
|
-
const { handleGuardrailExplain } = await import("./guardrail-explain-
|
|
32016
|
+
const { handleGuardrailExplain } = await import("./guardrail-explain-10hh57cr.js");
|
|
32013
32017
|
return handleGuardrailExplain(ctx.directory, ctx.args);
|
|
32014
32018
|
},
|
|
32015
32019
|
description: "Dry-run: show what the guardrails would do to a command or write target (executes nothing)",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
handleGuardrailExplain
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-xhsba2sn.js";
|
|
5
5
|
import {
|
|
6
6
|
handleGuardrailLog
|
|
7
7
|
} from "./index-p5vm9gy9.js";
|
|
@@ -80,7 +80,7 @@ import {
|
|
|
80
80
|
handleWriteRetroCommand,
|
|
81
81
|
normalizeSwarmCommandInput,
|
|
82
82
|
resolveCommand
|
|
83
|
-
} from "./index-
|
|
83
|
+
} from "./index-1mc2yfc2.js";
|
|
84
84
|
import"./index-d3txrx5q.js";
|
|
85
85
|
import"./index-mtzjbaaa.js";
|
|
86
86
|
import"./index-c8s9a3zh.js";
|
package/dist/cli/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const BUNDLED_PROJECT_SKILLS: readonly ["brainstorm", "specify", "clarify-spec", "resume", "clarify", "discover", "consult", "pre-phase-briefing", "council", "deep-dive", "deep-research", "codebase-review-swarm", "swarm-implement", "design-docs", "swarm-pr-review", "swarm-pr-feedback", "swarm-pr-subscribe", "issue-ingest", "plan", "critic-gate", "execute", "phase-wrap", "loop", "writing-tests", "running-tests", "engineering-conventions", "commit-pr", "worktree-retry-cleanup", "skill-edit-validation", "merge-queue-readiness", "gate-attribution", "ci-failure-batching"];
|
|
1
|
+
export declare const BUNDLED_PROJECT_SKILLS: readonly ["brainstorm", "specify", "clarify-spec", "resume", "clarify", "discover", "consult", "pre-phase-briefing", "council", "deep-dive", "deep-research", "codebase-review-swarm", "swarm-implement", "design-docs", "swarm-pr-review", "swarm", "swarm-pr-feedback", "swarm-pr-subscribe", "swarm-ci-monitor", "issue-ingest", "plan", "critic-gate", "execute", "phase-wrap", "loop", "writing-tests", "running-tests", "engineering-conventions", "commit-pr", "worktree-retry-cleanup", "skill-edit-validation", "merge-queue-readiness", "gate-attribution", "ci-failure-batching"];
|
|
2
2
|
interface CopyState {
|
|
3
3
|
files: number;
|
|
4
4
|
bytes: number;
|