opencode-swarm 7.196.0 → 7.197.1

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 (129) hide show
  1. package/.opencode/skills/brainstorm/SKILL.md +2 -1
  2. package/.opencode/skills/ci-failure-batching/SKILL.md +2 -1
  3. package/.opencode/skills/ci-fix-monitor/SKILL.md +2 -1
  4. package/.opencode/skills/clarify/SKILL.md +2 -1
  5. package/.opencode/skills/clarify-spec/SKILL.md +2 -1
  6. package/.opencode/skills/codebase-review-swarm/SKILL.md +1 -1
  7. package/.opencode/skills/commit-pr/SKILL.md +3 -2
  8. package/.opencode/skills/consult/SKILL.md +2 -1
  9. package/.opencode/skills/council/SKILL.md +2 -1
  10. package/.opencode/skills/critic-gate/SKILL.md +2 -1
  11. package/.opencode/skills/deep-dive/SKILL.md +2 -1
  12. package/.opencode/skills/deep-research/SKILL.md +2 -1
  13. package/.opencode/skills/design-docs/SKILL.md +2 -1
  14. package/.opencode/skills/discover/SKILL.md +2 -1
  15. package/.opencode/skills/durable-session-state/SKILL.md +2 -1
  16. package/.opencode/skills/engineering-conventions/SKILL.md +2 -1
  17. package/.opencode/skills/execute/SKILL.md +2 -1
  18. package/.opencode/skills/fork-pr-operations/SKILL.md +2 -1
  19. package/.opencode/skills/gate-attribution/SKILL.md +2 -1
  20. package/.opencode/skills/issue-ingest/SKILL.md +2 -1
  21. package/.opencode/skills/issue-tracer/SKILL.md +1 -1
  22. package/.opencode/skills/loop/SKILL.md +2 -1
  23. package/.opencode/skills/merge-queue-readiness/SKILL.md +2 -1
  24. package/.opencode/skills/orchestrating-subagents/SKILL.md +2 -1
  25. package/.opencode/skills/parallel-work-check/SKILL.md +17 -16
  26. package/.opencode/skills/phase-wrap/SKILL.md +2 -1
  27. package/.opencode/skills/pre-phase-briefing/SKILL.md +2 -1
  28. package/.opencode/skills/running-tests/SKILL.md +2 -1
  29. package/.opencode/skills/skill-edit-validation/SKILL.md +2 -1
  30. package/.opencode/skills/specify/SKILL.md +2 -1
  31. package/.opencode/skills/swarm/SKILL.md +2 -1
  32. package/.opencode/skills/swarm-ci-monitor/SKILL.md +3 -2
  33. package/.opencode/skills/swarm-implement/SKILL.md +2 -1
  34. package/.opencode/skills/swarm-plan/SKILL.md +2 -1
  35. package/.opencode/skills/swarm-pr-feedback/SKILL.md +9 -162
  36. package/.opencode/skills/swarm-pr-feedback/references/gate-evidence-scope.md +20 -0
  37. package/.opencode/skills/swarm-pr-feedback/references/intake-surfaces.md +107 -0
  38. package/.opencode/skills/swarm-pr-feedback/references/preflight-checkout.md +67 -0
  39. package/.opencode/skills/swarm-pr-review/SKILL.md +12 -344
  40. package/.opencode/skills/swarm-pr-review/references/council-mode.md +38 -0
  41. package/.opencode/skills/swarm-pr-review/references/explorer-output-format.md +54 -0
  42. package/.opencode/skills/swarm-pr-review/references/findings-persistence-detail.md +15 -0
  43. package/.opencode/skills/swarm-pr-review/references/parser-candidate-extraction.md +75 -0
  44. package/.opencode/skills/swarm-pr-review/references/phase0a-intake.md +61 -0
  45. package/.opencode/skills/swarm-pr-review/references/scope-detection.md +103 -0
  46. package/.opencode/skills/swarm-pr-review/references/writeback-phases.md +68 -0
  47. package/.opencode/skills/swarm-pr-subscribe/SKILL.md +3 -2
  48. package/.opencode/skills/swarm-resume/SKILL.md +2 -1
  49. package/.opencode/skills/test-file-split/SKILL.md +2 -1
  50. package/.opencode/skills/worktree-retry-cleanup/SKILL.md +2 -1
  51. package/.opencode/skills/writing-tests/SKILL.md +7 -437
  52. package/.opencode/skills/writing-tests/references/cross-platform-patterns.md +237 -0
  53. package/.opencode/skills/writing-tests/references/mock-tiers.md +207 -0
  54. package/binaries/win32-arm64/swarm-sandbox-runner.exe +0 -0
  55. package/binaries/win32-x64/swarm-sandbox-runner.exe +0 -0
  56. package/dist/cli/{auto-checkpoint-f00tk7sc.js → auto-checkpoint-1dv9a1w5.js} +4 -4
  57. package/dist/cli/{checkpoint-acztxqga.js → checkpoint-rkjb6kpr.js} +8 -8
  58. package/dist/cli/{coder-settlement-0ka4n1xf.js → coder-settlement-eavtvg8d.js} +3 -3
  59. package/dist/cli/{config-doctor-qv7wc6fa.js → config-doctor-4ck8e1fq.js} +7 -7
  60. package/dist/cli/{core-dmn3arr1.js → core-cyj0vphv.js} +1 -1
  61. package/dist/cli/{curator-drift-sxzs48ew.js → curator-drift-15mcxawb.js} +5 -5
  62. package/dist/cli/{curator-llm-factory-cvrt4bf9.js → curator-llm-factory-k0yebhsk.js} +25 -25
  63. package/dist/cli/{curator-891pc8b7.js → curator-p1r777m5.js} +25 -25
  64. package/dist/cli/{doctor-knowledge-receipt-phase-id-mvbj576e.js → doctor-knowledge-receipt-phase-id-k204028d.js} +4 -4
  65. package/dist/cli/{evidence-summary-service-x9nxvmn5.js → evidence-summary-service-4mx5ge81.js} +9 -9
  66. package/dist/cli/{gate-evidence-dxd20wrc.js → gate-evidence-pa8qadxh.js} +2 -2
  67. package/dist/cli/{guardrail-explain-fga9bnvt.js → guardrail-explain-pba5em4h.js} +26 -26
  68. package/dist/cli/{guardrail-log-y84b9m8n.js → guardrail-log-24fbykv3.js} +3 -3
  69. package/dist/cli/{guardrail-reset-xpcsxyt0.js → guardrail-reset-rfnr2vnn.js} +25 -25
  70. package/dist/cli/{hive-promoter-w1vchgfr.js → hive-promoter-0ht8jafr.js} +25 -25
  71. package/dist/cli/{index-hjma52c8.js → index-0sw6gjtn.js} +3 -3
  72. package/dist/cli/{index-mt5t492g.js → index-3h4tajza.js} +2 -2
  73. package/dist/cli/{index-t5med3ga.js → index-528gk6k1.js} +1 -1
  74. package/dist/cli/{index-nrqyc8pr.js → index-56n6nb7p.js} +25 -25
  75. package/dist/cli/{index-bjaef5zn.js → index-57g7yqx9.js} +390 -233
  76. package/dist/cli/{index-jnjvghgp.js → index-6g81mmmy.js} +4 -4
  77. package/dist/cli/{index-8bsnnnj2.js → index-9rqvm5sk.js} +2 -2
  78. package/dist/cli/{index-ryjp0wmq.js → index-9vwsvgzp.js} +1 -1
  79. package/dist/cli/{index-knxq5byr.js → index-a9bs0c71.js} +1 -1
  80. package/dist/cli/{index-3hpjqa6y.js → index-d0m3snqt.js} +1 -1
  81. package/dist/cli/{index-7zkgdefv.js → index-d483e4gz.js} +3 -3
  82. package/dist/cli/{index-sgt1d7ez.js → index-efen9p4c.js} +1 -1
  83. package/dist/cli/{index-w3mav870.js → index-f0d3z2ha.js} +2 -2
  84. package/dist/cli/{index-wscg5ryb.js → index-fmgkemn9.js} +1 -1
  85. package/dist/cli/{index-svbh91pz.js → index-h69nppa3.js} +1 -1
  86. package/dist/cli/{index-391ydd25.js → index-hyxw4j9t.js} +1 -1
  87. package/dist/cli/{index-41p9zzpe.js → index-kah11mjw.js} +153 -52
  88. package/dist/cli/{index-nqxbqb50.js → index-mwh6srje.js} +1 -1
  89. package/dist/cli/{index-psqfkgav.js → index-pek9gmwm.js} +3 -3
  90. package/dist/cli/{index-31b55cq9.js → index-pywrvjxj.js} +3 -3
  91. package/dist/cli/{index-2grr37ry.js → index-qae4572e.js} +1 -1
  92. package/dist/cli/{index-tzasccpd.js → index-qqe9tt5y.js} +1 -1
  93. package/dist/cli/{index-4cazf4kb.js → index-r9ab1sat.js} +27 -27
  94. package/dist/cli/{index-174j0g38.js → index-rqbhn0mh.js} +2 -2
  95. package/dist/cli/{index-te61qv0q.js → index-syrktqz9.js} +2 -2
  96. package/dist/cli/{index-3drq02r1.js → index-t4nxee8x.js} +1 -1
  97. package/dist/cli/{index-ppnpkww2.js → index-tstk9xx7.js} +1 -1
  98. package/dist/cli/{index-tjc68trf.js → index-vanjqbhp.js} +5 -5
  99. package/dist/cli/{index-vsa05smc.js → index-xtb61w73.js} +1 -1
  100. package/dist/cli/{index-7gqmqhzj.js → index-z5rkkhng.js} +6 -6
  101. package/dist/cli/index.js +26 -26
  102. package/dist/cli/{knowledge-escalator-2dy96d0j.js → knowledge-escalator-89crpby4.js} +7 -7
  103. package/dist/cli/{knowledge-events-70kb745b.js → knowledge-events-eyratqdp.js} +5 -5
  104. package/dist/cli/{knowledge-store-hvq03g0j.js → knowledge-store-kkwds05z.js} +1 -1
  105. package/dist/cli/{knowledge-validator-eaatcnkr.js → knowledge-validator-fww6p37v.js} +2 -2
  106. package/dist/cli/{mcp-bj3awdfy.js → mcp-8t3m998m.js} +1 -1
  107. package/dist/cli/{model-preflight-skhq4xtr.js → model-preflight-98g183my.js} +25 -25
  108. package/dist/cli/{pending-delegations-yamzv468.js → pending-delegations-qj5e0hh2.js} +2 -2
  109. package/dist/cli/{pr-subscriptions-hkzd0nr4.js → pr-subscriptions-edwd3syw.js} +1 -1
  110. package/dist/cli/{pr-workflow-gate-2gmznmj4.js → pr-workflow-gate-t8veygyh.js} +25 -25
  111. package/dist/cli/{scan-cursor-arezehhk.js → scan-cursor-0ffhpz79.js} +2 -2
  112. package/dist/cli/{schema-emx6r32d.js → schema-zytt0t7a.js} +1 -1
  113. package/dist/cli/{scope-persistence-tvr8w7ea.js → scope-persistence-p8a9a2xb.js} +5 -5
  114. package/dist/cli/{server-ez03wdw9.js → server-q4b9s64v.js} +25 -25
  115. package/dist/cli/{skill-generator-w0jy1mpc.js → skill-generator-wt7d640t.js} +8 -8
  116. package/dist/cli/{snapshot-coordination-init-2x56ds8a.js → snapshot-coordination-init-ywxyf130.js} +25 -25
  117. package/dist/cli/{speckit-checkoff-c2e5wezr.js → speckit-checkoff-y8na83hj.js} +3 -3
  118. package/dist/cli/{worktree-collision-ownership-1bgcea0v.js → worktree-collision-ownership-kssmhrpk.js} +2 -2
  119. package/dist/cli/{worktree-isolation-9xp4dz41.js → worktree-isolation-w6np680v.js} +25 -25
  120. package/dist/config/skill-contract-digest.d.ts +6 -0
  121. package/dist/hooks/pr-workflow-gate.d.ts +12 -0
  122. package/dist/hooks/pr-workflow-response-gate.d.ts +8 -0
  123. package/dist/hooks/skill-scoring.d.ts +1 -1
  124. package/dist/hooks/skill-usage-log.d.ts +2 -0
  125. package/dist/index.js +30 -28
  126. package/dist/pr-review/persistence.d.ts +18 -1
  127. package/dist/services/skill-evaluator.d.ts +2 -0
  128. package/dist/services/skill-generator.d.ts +13 -0
  129. package/package.json +1 -1
@@ -83,7 +83,7 @@ export interface PrReviewStateCodec<S extends PrWorkflowPersistedStateBase> {
83
83
  };
84
84
  parse: (data: unknown) => S;
85
85
  }
86
- export declare function bindPrReviewStateCodec<S extends PrWorkflowPersistedStateBase>(nextCodec: PrReviewStateCodec<S>): void;
86
+ export declare function bindPrReviewStateCodec<S extends PrWorkflowPersistedStateBase>(nextCodec: PrReviewStateCodec<S>, nextObservabilityFieldNames: ReadonlyArray<keyof S & string>): void;
87
87
  export declare function ensurePrWorkflowSafeParentDirectory(directory: string, filePath: string): Promise<string>;
88
88
  export declare function writeAtomicJson(directory: string, filePath: string, value: unknown): Promise<void>;
89
89
  /**
@@ -124,6 +124,23 @@ export declare function readPrWorkflowGateStateCoordinationForRecovery<S extends
124
124
  export declare function writeStateWhileLocked<S extends PrWorkflowPersistedStateBase>(directory: string, state: S, options?: {
125
125
  replaceWorkflowInstanceId?: string;
126
126
  }): Promise<S>;
127
+ /**
128
+ * Issue #3199: persist one observability-only state change (a rejection-
129
+ * journal or advisory append) WITHOUT advancing the state machine's durable
130
+ * revision, so a journaled rejection can never trip a concurrent gate
131
+ * operation's revision CAS (`completePrWorkflow`'s readiness compare, the
132
+ * terminal-clear compare, or the write CAS itself). Same lock contract as
133
+ * `writeStateWhileLocked` — the caller holds the per-session mutation lock
134
+ * and re-reads the durable state inside it; this function never locks. The
135
+ * coordination row is still CAS-written (`expectedRevision`) and its own
136
+ * row revision still advances, so the cross-process backstop is unchanged;
137
+ * only the state-machine generation the CAS compares stays put. Callers must
138
+ * change ONLY observability fields (`updatedAt` plus fields registered via
139
+ * `bindPrReviewStateCodec`) relative to the durable state — never
140
+ * state-machine semantics. This is RUNTIME-ENFORCED: a payload that also
141
+ * mutates any other field is rejected with BLOCKED.
142
+ */
143
+ export declare function appendObservabilityStateWhileLocked<S extends PrWorkflowPersistedStateBase>(directory: string, state: S): Promise<S>;
127
144
  /** Remove authoritative PR workflow state while the session mutation lock is held. */
128
145
  export declare function deleteStateWhileLocked(directory: string, sessionID: string, options?: {
129
146
  expectedStateRevision?: number;
@@ -81,6 +81,7 @@ export declare function scoreSkillPhrases(args: {
81
81
  score: number;
82
82
  failures: string[];
83
83
  };
84
+ declare function normalizeRejectedContent(content: string): string;
84
85
  declare function hashNormalizedContent(content: string | undefined): string | undefined;
85
86
  export declare function evaluateSkillChange(req: EvaluateSkillChangeRequest): Promise<SkillEvaluationResult>;
86
87
  export declare function appendRejectedSkillEdit(req: EvaluateSkillChangeRequest, evaluation: SkillEvaluationResult): Promise<void>;
@@ -90,5 +91,6 @@ export declare const _internals: {
90
91
  evaluateContent: typeof evaluateContent;
91
92
  rejectedEditsPath: typeof rejectedEditsPath;
92
93
  hashNormalizedContent: typeof hashNormalizedContent;
94
+ normalizeRejectedContent: typeof normalizeRejectedContent;
93
95
  };
94
96
  export {};
@@ -120,6 +120,18 @@ export interface GenerateResult {
120
120
  }>;
121
121
  }
122
122
  export declare function generateSkills(req: GenerateRequest): Promise<GenerateResult>;
123
+ /**
124
+ * Inject a `missing_source_knowledge_ids:` block into the YAML frontmatter
125
+ * immediately after the `source_knowledge_ids:` block so that unresolved IDs
126
+ * are visible at compile time. Returns the content unchanged when:
127
+ * - `missingIds` is empty
128
+ * - the frontmatter cannot be parsed (no opening `---` fence or missing
129
+ * closing fence)
130
+ * - `source_knowledge_ids:` is not found in the frontmatter
131
+ *
132
+ * Uses simple string manipulation — no full YAML parser required.
133
+ */
134
+ declare function injectMissingIdsIntoFrontmatter(content: string, missingIds: string[]): string;
123
135
  /**
124
136
  * Stamp source knowledge entries with `generated_skill_slug` and
125
137
  * `generated_skill_path` metadata. Refactored in Phase G′ to take
@@ -271,6 +283,7 @@ export declare const _internals: {
271
283
  renderSkillMarkdown: typeof renderSkillMarkdown;
272
284
  generateSkills: typeof generateSkills;
273
285
  activateProposal: typeof activateProposal;
286
+ injectMissingIdsIntoFrontmatter: typeof injectMissingIdsIntoFrontmatter;
274
287
  listSkills: typeof listSkills;
275
288
  findSkillsBySourceKnowledgeId: typeof findSkillsBySourceKnowledgeId;
276
289
  findStaleSkillsBySourceKnowledgeId: typeof findStaleSkillsBySourceKnowledgeId;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-swarm",
3
- "version": "7.196.0",
3
+ "version": "7.197.1",
4
4
  "description": "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",