opencode-swarm 7.107.4 → 7.107.6

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 (25) hide show
  1. package/.opencode/skills/codebase-review-swarm/SKILL.md +15 -0
  2. package/.opencode/skills/codebase-review-swarm/references/review-protocol-v8.2.md +15 -0
  3. package/.opencode/skills/engineering-conventions/SKILL.md +1 -1
  4. package/.opencode/skills/execute/SKILL.md +2 -0
  5. package/.opencode/skills/phase-wrap/SKILL.md +6 -1
  6. package/.opencode/skills/swarm-implement/SKILL.md +161 -0
  7. package/.opencode/skills/swarm-pr-feedback/SKILL.md +5 -2
  8. package/.opencode/skills/swarm-pr-review/SKILL.md +61 -0
  9. package/.opencode/skills/writing-tests/SKILL.md +7 -0
  10. package/dist/cli/{curator-rb05fjjk.js → curator-jpwvkpdv.js} +3 -3
  11. package/dist/cli/{curator-llm-factory-abw56kg0.js → curator-llm-factory-9y15npd5.js} +3 -3
  12. package/dist/cli/{evidence-summary-service-nwdfnbz1.js → evidence-summary-service-6zsgw7x7.js} +2 -2
  13. package/dist/cli/{gate-evidence-ywys9vfs.js → gate-evidence-pgr7d942.js} +1 -1
  14. package/dist/cli/{guardrail-explain-dayy7zw4.js → guardrail-explain-jk0amzae.js} +4 -4
  15. package/dist/cli/{hive-promoter-34bdmw1w.js → hive-promoter-j2krbdn9.js} +3 -3
  16. package/dist/cli/{index-r8f89sm9.js → index-0kxc7t16.js} +2 -1
  17. package/dist/cli/{index-gyzxeza3.js → index-572t1qff.js} +12 -10
  18. package/dist/cli/{index-f45hbd5x.js → index-57rthc1z.js} +1 -1
  19. package/dist/cli/{index-9b7a6agd.js → index-6h82c2h0.js} +25 -8
  20. package/dist/cli/{index-19vxtwa6.js → index-h28wfp7n.js} +4 -4
  21. package/dist/cli/index.js +3 -3
  22. package/dist/config/bundled-skills.d.ts +1 -1
  23. package/dist/config/skill-mirrors.d.ts +1 -1
  24. package/dist/index.js +13 -13
  25. package/package.json +2 -1
@@ -7,7 +7,7 @@ import {
7
7
  readTaskEvidence,
8
8
  readTaskEvidenceRaw,
9
9
  sanitizeTaskId
10
- } from "./index-r8f89sm9.js";
10
+ } from "./index-0kxc7t16.js";
11
11
  import {
12
12
  readSwarmFileAsync,
13
13
  validateSwarmPath
@@ -1754,21 +1754,38 @@ function derivePhaseStatusesInPlace(plan) {
1754
1754
  }
1755
1755
  }
1756
1756
  }
1757
- function overlayLedgerStatuses(validated, replayed, ledgerStatusTaskIds) {
1757
+ function statusRank(s) {
1758
+ switch (s) {
1759
+ case "closed":
1760
+ return 5;
1761
+ case "completed":
1762
+ return 4;
1763
+ case "blocked":
1764
+ return 3;
1765
+ case "in_progress":
1766
+ return 2;
1767
+ case "pending":
1768
+ return 1;
1769
+ default:
1770
+ return 0;
1771
+ }
1772
+ }
1773
+ function mergeStatusesTakingPrecedence(validated, replayed, ledgerStatusTaskIds) {
1758
1774
  const projected = structuredClone(validated);
1759
- const statusByTaskId = new Map;
1775
+ const replayedByTaskId = new Map;
1760
1776
  for (const phase of replayed.phases) {
1761
1777
  for (const task of phase.tasks) {
1762
1778
  if (ledgerStatusTaskIds.has(task.id)) {
1763
- statusByTaskId.set(task.id, task.status);
1779
+ replayedByTaskId.set(task.id, task.status);
1764
1780
  }
1765
1781
  }
1766
1782
  }
1767
1783
  for (const phase of projected.phases) {
1768
1784
  for (const task of phase.tasks) {
1769
- const replayedStatus = statusByTaskId.get(task.id);
1770
- if (replayedStatus)
1785
+ const replayedStatus = replayedByTaskId.get(task.id);
1786
+ if (replayedStatus && statusRank(replayedStatus) > statusRank(task.status)) {
1771
1787
  task.status = replayedStatus;
1788
+ }
1772
1789
  }
1773
1790
  }
1774
1791
  derivePhaseStatusesInPlace(projected);
@@ -2433,14 +2450,14 @@ async function savePlan(directory, plan, options) {
2433
2450
  }
2434
2451
  const ledgerStatusTaskIds = collectLedgerStatusTaskIds(await readLedgerEvents(directory));
2435
2452
  const replayedBeforeProjection = await replayFromLedger(directory);
2436
- const projectionCandidate = replayedBeforeProjection ? overlayLedgerStatuses(validated, replayedBeforeProjection, ledgerStatusTaskIds) : validated;
2453
+ const projectionCandidate = replayedBeforeProjection ? mergeStatusesTakingPrecedence(validated, replayedBeforeProjection, ledgerStatusTaskIds) : validated;
2437
2454
  if (replayedBeforeProjection && computePlanHash(replayedBeforeProjection) !== computePlanHash(projectionCandidate)) {
2438
2455
  await takeSnapshotEvent(directory, projectionCandidate, {
2439
2456
  planHashAfter: computePlanHash(projectionCandidate),
2440
2457
  source: "savePlan_structural_projection"
2441
2458
  });
2442
2459
  }
2443
- const projectedPlan = await replayFromLedger(directory) ?? projectionCandidate;
2460
+ const projectedPlan = projectionCandidate;
2444
2461
  const SNAPSHOT_INTERVAL = 50;
2445
2462
  const latestSeq = await getLatestLedgerSeq(directory);
2446
2463
  if (latestSeq > 0 && latestSeq % SNAPSHOT_INTERVAL === 0) {
@@ -4,7 +4,7 @@ import {
4
4
  } from "./index-zej8cy0j.js";
5
5
  import {
6
6
  handleGuardrailExplain
7
- } from "./index-f45hbd5x.js";
7
+ } from "./index-57rthc1z.js";
8
8
  import {
9
9
  COMMAND_REGISTRY,
10
10
  SWARM_COMMAND_TOOL_ALLOWLIST,
@@ -80,11 +80,11 @@ import {
80
80
  handleWriteRetroCommand,
81
81
  normalizeSwarmCommandInput,
82
82
  resolveCommand
83
- } from "./index-gyzxeza3.js";
83
+ } from "./index-572t1qff.js";
84
84
  import"./index-4vsgp5a8.js";
85
85
  import"./index-c8s9a3zh.js";
86
86
  import"./index-wvxhynxq.js";
87
- import"./index-9b7a6agd.js";
87
+ import"./index-6h82c2h0.js";
88
88
  import"./index-91j1sqzm.js";
89
89
  import"./index-xg18az81.js";
90
90
  import"./index-09xpycan.js";
@@ -101,7 +101,7 @@ import"./index-xmarctsf.js";
101
101
  import"./index-n1sptn1w.js";
102
102
  import"./index-bfwt3abw.js";
103
103
  import"./index-v4fcn4tr.js";
104
- import"./index-r8f89sm9.js";
104
+ import"./index-0kxc7t16.js";
105
105
  import"./index-9b7qp18e.js";
106
106
  import"./index-4r5z8sgw.js";
107
107
  import"./index-57ymmh7h.js";
package/dist/cli/index.js CHANGED
@@ -7,11 +7,11 @@ import {
7
7
  getPluginLockFilePaths,
8
8
  package_default,
9
9
  resolveCommand
10
- } from "./index-gyzxeza3.js";
10
+ } from "./index-572t1qff.js";
11
11
  import"./index-4vsgp5a8.js";
12
12
  import"./index-c8s9a3zh.js";
13
13
  import"./index-wvxhynxq.js";
14
- import"./index-9b7a6agd.js";
14
+ import"./index-6h82c2h0.js";
15
15
  import"./index-91j1sqzm.js";
16
16
  import"./index-xg18az81.js";
17
17
  import"./index-09xpycan.js";
@@ -26,7 +26,7 @@ import"./index-xmarctsf.js";
26
26
  import"./index-n1sptn1w.js";
27
27
  import"./index-bfwt3abw.js";
28
28
  import"./index-v4fcn4tr.js";
29
- import"./index-r8f89sm9.js";
29
+ import"./index-0kxc7t16.js";
30
30
  import"./index-9b7qp18e.js";
31
31
  import"./index-4r5z8sgw.js";
32
32
  import"./index-57ymmh7h.js";
@@ -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", "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"];
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"];
2
2
  interface CopyState {
3
3
  files: number;
4
4
  bytes: number;
@@ -17,7 +17,7 @@
17
17
  * Claude Code and OpenCode sessions cannot diverge silently. Tuple shape is
18
18
  * `[slug, opencodePath, claudePath]`.
19
19
  */
20
- export declare const MIRRORED_ARCHITECT_MODE_SKILLS: readonly [readonly ["brainstorm", ".opencode/skills/brainstorm/SKILL.md", ".claude/skills/brainstorm/SKILL.md"], readonly ["specify", ".opencode/skills/specify/SKILL.md", ".claude/skills/specify/SKILL.md"], readonly ["clarify-spec", ".opencode/skills/clarify-spec/SKILL.md", ".claude/skills/clarify-spec/SKILL.md"], readonly ["resume", ".opencode/skills/resume/SKILL.md", ".claude/skills/resume/SKILL.md"], readonly ["clarify", ".opencode/skills/clarify/SKILL.md", ".claude/skills/clarify/SKILL.md"], readonly ["discover", ".opencode/skills/discover/SKILL.md", ".claude/skills/discover/SKILL.md"], readonly ["consult", ".opencode/skills/consult/SKILL.md", ".claude/skills/consult/SKILL.md"], readonly ["pre-phase-briefing", ".opencode/skills/pre-phase-briefing/SKILL.md", ".claude/skills/pre-phase-briefing/SKILL.md"], readonly ["council", ".opencode/skills/council/SKILL.md", ".claude/skills/council/SKILL.md"], readonly ["deep-dive", ".opencode/skills/deep-dive/SKILL.md", ".claude/skills/deep-dive/SKILL.md"], readonly ["deep-research", ".opencode/skills/deep-research/SKILL.md", ".claude/skills/deep-research/SKILL.md"], readonly ["issue-ingest", ".opencode/skills/issue-ingest/SKILL.md", ".claude/skills/issue-ingest/SKILL.md"], readonly ["plan", ".opencode/skills/plan/SKILL.md", ".claude/skills/plan/SKILL.md"], readonly ["critic-gate", ".opencode/skills/critic-gate/SKILL.md", ".claude/skills/critic-gate/SKILL.md"], readonly ["execute", ".opencode/skills/execute/SKILL.md", ".claude/skills/execute/SKILL.md"], readonly ["phase-wrap", ".opencode/skills/phase-wrap/SKILL.md", ".claude/skills/phase-wrap/SKILL.md"], readonly ["design-docs", ".opencode/skills/design-docs/SKILL.md", ".claude/skills/design-docs/SKILL.md"]];
20
+ export declare const MIRRORED_ARCHITECT_MODE_SKILLS: readonly [readonly ["brainstorm", ".opencode/skills/brainstorm/SKILL.md", ".claude/skills/brainstorm/SKILL.md"], readonly ["specify", ".opencode/skills/specify/SKILL.md", ".claude/skills/specify/SKILL.md"], readonly ["clarify-spec", ".opencode/skills/clarify-spec/SKILL.md", ".claude/skills/clarify-spec/SKILL.md"], readonly ["resume", ".opencode/skills/resume/SKILL.md", ".claude/skills/resume/SKILL.md"], readonly ["clarify", ".opencode/skills/clarify/SKILL.md", ".claude/skills/clarify/SKILL.md"], readonly ["discover", ".opencode/skills/discover/SKILL.md", ".claude/skills/discover/SKILL.md"], readonly ["consult", ".opencode/skills/consult/SKILL.md", ".claude/skills/consult/SKILL.md"], readonly ["pre-phase-briefing", ".opencode/skills/pre-phase-briefing/SKILL.md", ".claude/skills/pre-phase-briefing/SKILL.md"], readonly ["council", ".opencode/skills/council/SKILL.md", ".claude/skills/council/SKILL.md"], readonly ["deep-dive", ".opencode/skills/deep-dive/SKILL.md", ".claude/skills/deep-dive/SKILL.md"], readonly ["deep-research", ".opencode/skills/deep-research/SKILL.md", ".claude/skills/deep-research/SKILL.md"], readonly ["issue-ingest", ".opencode/skills/issue-ingest/SKILL.md", ".claude/skills/issue-ingest/SKILL.md"], readonly ["plan", ".opencode/skills/plan/SKILL.md", ".claude/skills/plan/SKILL.md"], readonly ["critic-gate", ".opencode/skills/critic-gate/SKILL.md", ".claude/skills/critic-gate/SKILL.md"], readonly ["design-docs", ".opencode/skills/design-docs/SKILL.md", ".claude/skills/design-docs/SKILL.md"]];
21
21
  /**
22
22
  * Architect MODE skills where `.opencode` is the full operative protocol and
23
23
  * `.claude` is an intentionally different surface. Both must exist; byte