opencode-swarm 7.114.8 → 7.115.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/ci-fix-monitor/SKILL.md +8 -13
- package/.opencode/skills/commit-pr/SKILL.md +4 -0
- package/.opencode/skills/execute/SKILL.md +2 -0
- package/.opencode/skills/swarm-ci-monitor/SKILL.md +5 -0
- package/.opencode/skills/swarm-pr-feedback/SKILL.md +2 -0
- package/.opencode/skills/writing-tests/SKILL.md +2 -0
- package/README.md +1 -0
- package/dist/cli/{config-doctor-jy3mdh9t.js → config-doctor-htzxe394.js} +2 -2
- package/dist/cli/{curator-qj970412.js → curator-hpc4tsjv.js} +4 -4
- package/dist/cli/{curator-llm-factory-ez48eq02.js → curator-llm-factory-6n9sgaj8.js} +4 -4
- package/dist/cli/{guardrail-explain-x2vaxp6s.js → guardrail-explain-hecpd738.js} +5 -5
- package/dist/cli/{guardrail-log-84wnx273.js → guardrail-log-dzbqcgz9.js} +3 -3
- package/dist/cli/{hive-promoter-ysk5edzw.js → hive-promoter-0kfb4vjk.js} +4 -4
- package/dist/cli/{index-z718bgxe.js → index-2etc05tv.js} +6 -6
- package/dist/cli/{index-yfedche9.js → index-8j5d3ytd.js} +1 -1
- package/dist/cli/{index-ry8nwsq6.js → index-m0rce3x6.js} +2 -2
- package/dist/cli/{index-7jmrbp68.js → index-m43zgtjn.js} +1 -1
- package/dist/cli/{index-cs5765s2.js → index-m766gvdt.js} +640 -583
- package/dist/cli/{index-9bsmzfk3.js → index-m7hc7nn7.js} +5 -1
- package/dist/cli/{index-a45jq4b7.js → index-nvc0nsvg.js} +6 -1
- package/dist/cli/index.js +4 -4
- package/dist/cli/{schema-aymfdrsb.js → schema-bqn7g3ez.js} +3 -1
- package/dist/commands/ci-monitor.d.ts +18 -0
- package/dist/commands/registry.d.ts +8 -0
- package/dist/config/index.d.ts +2 -2
- package/dist/config/schema.d.ts +9 -0
- package/dist/config/skill-mirrors.d.ts +10 -1
- package/dist/index.js +214 -160
- package/dist/tools/apply-patch.d.ts +21 -0
- package/dist/utils/fuzzy-match.d.ts +115 -0
- package/dist/utils/sequence-matcher.d.ts +83 -0
- package/package.json +1 -1
|
@@ -5,21 +5,8 @@ description: >
|
|
|
5
5
|
Monitor CI on a PR, diagnose failures, fix them, and re-push until green.
|
|
6
6
|
Covers reading CI logs, classifying failure types (check-title, package-check,
|
|
7
7
|
test failures, lint), determining the correct fix, and re-pushing.
|
|
8
|
-
triggers:
|
|
9
|
-
- ci check failure
|
|
10
|
-
- fix ci
|
|
11
|
-
- monitor ci
|
|
12
|
-
generated_from_knowledge: []
|
|
13
|
-
source_knowledge_ids: []
|
|
14
|
-
generated_at: 2026-07-02T02:35:49.945Z
|
|
15
|
-
confidence: 0.60
|
|
16
|
-
status: active
|
|
17
|
-
version: 6
|
|
18
|
-
skill_origin: generated
|
|
19
8
|
---
|
|
20
9
|
|
|
21
|
-
<!-- generated by opencode-swarm skill-generator. Do not edit by hand; edits will be preserved on regeneration only with controlled update mode. -->
|
|
22
|
-
|
|
23
10
|
# CI Fix & Monitor Protocol
|
|
24
11
|
|
|
25
12
|
Activates when the user asks to monitor CI, fix CI failures, or resolve red
|
|
@@ -201,3 +188,11 @@ the stall state to the user rather than waiting indefinitely.
|
|
|
201
188
|
Do NOT declare victory until ALL required checks pass. A check in `skipped`
|
|
202
189
|
state is acceptable only if the same check was skipped on the base branch
|
|
203
190
|
(i.e. the workflow gates on a path filter). Confirm this explicitly.
|
|
191
|
+
|
|
192
|
+
## Standalone retry bound
|
|
193
|
+
|
|
194
|
+
When this skill is invoked directly (not composed via `swarm-ci-monitor`'s
|
|
195
|
+
own 5-iteration counter), cap fix-push cycles at 5 iterations. If the PR is
|
|
196
|
+
still not green after 5 fix-push cycles, stop and escalate to the user with
|
|
197
|
+
the last failing check and a short log excerpt rather than looping
|
|
198
|
+
indefinitely.
|
|
@@ -79,6 +79,8 @@ git status --short
|
|
|
79
79
|
|
|
80
80
|
On Windows, prefer temporary save branches over `git stash`. If you must stash, use `git stash push --include-untracked` and verify the stash contents.
|
|
81
81
|
|
|
82
|
+
If this changeset edited any SKILL.md file's wording, also run `file:.swarm/bundled-skills/skill-edit-validation/SKILL.md`'s content-assertion sweep before committing, to catch stale test assertions.
|
|
83
|
+
|
|
82
84
|
## Step 1 - Commit and PR titles
|
|
83
85
|
|
|
84
86
|
Use `<type>(<scope>): <description>` exactly.
|
|
@@ -549,6 +551,8 @@ checks to rerun. Re-check before claiming final green or merge-readiness.
|
|
|
549
551
|
|
|
550
552
|
### Merge queue (current-base validation)
|
|
551
553
|
|
|
554
|
+
Read `file:.swarm/bundled-skills/merge-queue-readiness/SKILL.md` for the full pre-queue merge-group CI simulation protocol.
|
|
555
|
+
|
|
552
556
|
When `main` has a GitHub **merge queue** enabled, do not rebase or force-push a PR
|
|
553
557
|
*solely because `main` advanced*. Once required checks and review are green, add the
|
|
554
558
|
PR to the merge queue; GitHub re-runs the required workflows against the queued
|
|
@@ -111,6 +111,8 @@ Treating pre_check_batch as a substitute for the active swarm's reviewer agent i
|
|
|
111
111
|
|
|
112
112
|
When `council_mode` is OFF, the standard Stage B flow (steps 5j-5l: reviewer + test_engineer) runs as normal.
|
|
113
113
|
|
|
114
|
+
For set-dispatch reviewer/test_engineer verdict rows that must be attributed to plan tasks, read `file:.swarm/bundled-skills/gate-attribution/SKILL.md`. Before re-dispatching a coder for a task that already has a lane (any prior dispatch status), read `file:.swarm/bundled-skills/worktree-retry-cleanup/SKILL.md`.
|
|
115
|
+
|
|
114
116
|
5j. the active swarm's reviewer agent - General review. REJECTED before the configured QA retry limit → coder retry. REJECTED at the configured QA retry limit → escalate.
|
|
115
117
|
→ REQUIRED: Print "reviewer: [APPROVED | REJECTED — reason]"
|
|
116
118
|
5k. Security gate: if change matches TIER 3 criteria OR content contains SECURITY_KEYWORDS OR secretscan has ANY findings OR sast_scan has ANY findings at or above threshold → MUST delegate the active swarm's reviewer agent security-only review. REJECTED before the configured QA retry limit → coder retry. REJECTED at the configured QA retry limit → escalate to user.
|
|
@@ -241,6 +241,11 @@ already ran once in this invocation.
|
|
|
241
241
|
directly per Step 5 as an "un-approval" terminal, do not loop back to
|
|
242
242
|
Step 2.
|
|
243
243
|
|
|
244
|
+
Optional pre-queue simulation: `file:.swarm/bundled-skills/merge-queue-readiness/SKILL.md`
|
|
245
|
+
covers running `/swarm ci-simulate` before entering a merge queue. It is a
|
|
246
|
+
fast local signal, not a substitute for this step's live re-checks above —
|
|
247
|
+
run it in addition to, never instead of, Step 3.
|
|
248
|
+
|
|
244
249
|
## Step 4 — Merge
|
|
245
250
|
|
|
246
251
|
### 4a. Execute the merge
|
|
@@ -239,6 +239,8 @@ branches or prior work sessions.
|
|
|
239
239
|
|
|
240
240
|
## Batch Collection (mandatory before any fix)
|
|
241
241
|
|
|
242
|
+
Read `file:.swarm/bundled-skills/ci-failure-batching/SKILL.md` for the full batch collection and fix protocol before proceeding.
|
|
243
|
+
|
|
242
244
|
Issue #1746: 8+ push cycles where 3–4 would have sufficed with batching.
|
|
243
245
|
The anti-pattern: iterating check-by-check, proposing a fix for one failure,
|
|
244
246
|
pushing, waiting for CI, then discovering the next failure. Each cycle costs
|
|
@@ -617,6 +617,8 @@ authority checks:
|
|
|
617
617
|
|
|
618
618
|
`scripts/check-test-file-cap.sh` enforces the **500-line cap** per test file (FR-006) as a **diff-scoped ratchet**: new test files over 500 lines and existing over-cap files that grew fail the quality gate and block PR merge. Pre-existing over-cap files not touched by the PR are non-blocking. Escape hatch: `TEST_CAP_ENFORCE=0` soft-warns (use only for a deliberate growth PR).
|
|
619
619
|
|
|
620
|
+
For the full splitting protocol (describe-block extraction, shared helper management, pure-function extraction, mock isolation verification, cascading-split detection), read `file:.swarm/bundled-skills/test-file-split/SKILL.md`.
|
|
621
|
+
|
|
620
622
|
### Checking file length
|
|
621
623
|
|
|
622
624
|
```bash
|
package/README.md
CHANGED
|
@@ -1115,6 +1115,7 @@ Control how tool outputs are summarized for LLM context.
|
|
|
1115
1115
|
| `/swarm issue <issue-url\|owner/repo#N\|N> [--plan] [--trace] [--no-repro]` | Ingest a GitHub issue for localization and resolution |
|
|
1116
1116
|
| `/swarm pr-review <pr-url\|owner/repo#N\|N> [--council] [instructions...]` | Structured deep PR review with parallel lanes, reviewer confirmation, and critic challenge |
|
|
1117
1117
|
| `/swarm pr-feedback [<pr-url\|owner/repo#N\|N>] [instructions...]` | Ingest and close known PR feedback (review comments, CI failures, conflicts) without a fresh review |
|
|
1118
|
+
| `/swarm ci-monitor <pr-url\|owner/repo#N\|N>` | Drive an already-reviewed, approved PR to green and merged (monitor CI, fix, merge; max 5 fix cycles) |
|
|
1118
1119
|
| `/swarm pr subscribe <pr-url\|owner/repo#N\|N>` | Subscribe current session to PR monitoring (session-scoped); requires `pr_monitor.enabled: true` |
|
|
1119
1120
|
| `/swarm pr unsubscribe <pr-url\|owner/repo#N\|N>` | Remove session's subscription to a PR |
|
|
1120
1121
|
| `/swarm pr status` | List active PR subscriptions for current session with relative timestamps (the `bunx opencode-swarm run pr status` CLI has no session context, so it lists subscriptions across all sessions) |
|
|
@@ -12,8 +12,8 @@ import {
|
|
|
12
12
|
shouldRunOnStartup,
|
|
13
13
|
writeBackupArtifact,
|
|
14
14
|
writeDoctorArtifact
|
|
15
|
-
} from "./index-
|
|
16
|
-
import"./index-
|
|
15
|
+
} from "./index-m7hc7nn7.js";
|
|
16
|
+
import"./index-nvc0nsvg.js";
|
|
17
17
|
import"./index-bfwt3abw.js";
|
|
18
18
|
import"./index-5e4e2hvv.js";
|
|
19
19
|
import"./index-p0arc26j.js";
|
|
@@ -14,11 +14,11 @@ import {
|
|
|
14
14
|
runCuratorInit,
|
|
15
15
|
runCuratorPhase,
|
|
16
16
|
writeCuratorSummary
|
|
17
|
-
} from "./index-
|
|
18
|
-
import"./index-
|
|
17
|
+
} from "./index-m766gvdt.js";
|
|
18
|
+
import"./index-8j5d3ytd.js";
|
|
19
19
|
import"./index-c8s9a3zh.js";
|
|
20
|
-
import"./index-
|
|
21
|
-
import"./index-
|
|
20
|
+
import"./index-m7hc7nn7.js";
|
|
21
|
+
import"./index-nvc0nsvg.js";
|
|
22
22
|
import"./index-yrrqs4b0.js";
|
|
23
23
|
import"./index-scww5b77.js";
|
|
24
24
|
import"./index-ga4ta3cr.js";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
createCuratorLLMDelegate
|
|
4
|
-
} from "./index-
|
|
5
|
-
import"./index-
|
|
4
|
+
} from "./index-m766gvdt.js";
|
|
5
|
+
import"./index-8j5d3ytd.js";
|
|
6
6
|
import"./index-c8s9a3zh.js";
|
|
7
|
-
import"./index-
|
|
8
|
-
import"./index-
|
|
7
|
+
import"./index-m7hc7nn7.js";
|
|
8
|
+
import"./index-nvc0nsvg.js";
|
|
9
9
|
import"./index-yrrqs4b0.js";
|
|
10
10
|
import"./index-scww5b77.js";
|
|
11
11
|
import"./index-ga4ta3cr.js";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
handleGuardrailExplain
|
|
4
|
-
} from "./index-
|
|
5
|
-
import"./index-
|
|
6
|
-
import"./index-
|
|
4
|
+
} from "./index-m0rce3x6.js";
|
|
5
|
+
import"./index-m766gvdt.js";
|
|
6
|
+
import"./index-8j5d3ytd.js";
|
|
7
7
|
import"./index-c8s9a3zh.js";
|
|
8
|
-
import"./index-
|
|
9
|
-
import"./index-
|
|
8
|
+
import"./index-m7hc7nn7.js";
|
|
9
|
+
import"./index-nvc0nsvg.js";
|
|
10
10
|
import"./index-yrrqs4b0.js";
|
|
11
11
|
import"./index-scww5b77.js";
|
|
12
12
|
import"./index-ga4ta3cr.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
handleGuardrailLog
|
|
4
|
-
} from "./index-
|
|
5
|
-
import"./index-
|
|
6
|
-
import"./index-
|
|
4
|
+
} from "./index-m43zgtjn.js";
|
|
5
|
+
import"./index-8j5d3ytd.js";
|
|
6
|
+
import"./index-nvc0nsvg.js";
|
|
7
7
|
import"./index-bfwt3abw.js";
|
|
8
8
|
import"./index-5e4e2hvv.js";
|
|
9
9
|
import"./index-p0arc26j.js";
|
|
@@ -6,11 +6,11 @@ import {
|
|
|
6
6
|
isHiveEligible,
|
|
7
7
|
promoteFromSwarm,
|
|
8
8
|
promoteToHive
|
|
9
|
-
} from "./index-
|
|
10
|
-
import"./index-
|
|
9
|
+
} from "./index-m766gvdt.js";
|
|
10
|
+
import"./index-8j5d3ytd.js";
|
|
11
11
|
import"./index-c8s9a3zh.js";
|
|
12
|
-
import"./index-
|
|
13
|
-
import"./index-
|
|
12
|
+
import"./index-m7hc7nn7.js";
|
|
13
|
+
import"./index-nvc0nsvg.js";
|
|
14
14
|
import"./index-yrrqs4b0.js";
|
|
15
15
|
import"./index-scww5b77.js";
|
|
16
16
|
import"./index-ga4ta3cr.js";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
handleGuardrailExplain
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-m0rce3x6.js";
|
|
5
5
|
import {
|
|
6
6
|
handleGuardrailLog
|
|
7
|
-
} from "./index-
|
|
7
|
+
} from "./index-m43zgtjn.js";
|
|
8
8
|
import {
|
|
9
9
|
COMMAND_REGISTRY,
|
|
10
10
|
SWARM_COMMAND_TOOL_ALLOWLIST,
|
|
@@ -81,15 +81,15 @@ import {
|
|
|
81
81
|
handleWriteRetroCommand,
|
|
82
82
|
normalizeSwarmCommandInput,
|
|
83
83
|
resolveCommand
|
|
84
|
-
} from "./index-
|
|
85
|
-
import"./index-
|
|
84
|
+
} from "./index-m766gvdt.js";
|
|
85
|
+
import"./index-8j5d3ytd.js";
|
|
86
86
|
import"./index-c8s9a3zh.js";
|
|
87
|
-
import"./index-
|
|
87
|
+
import"./index-m7hc7nn7.js";
|
|
88
88
|
import {
|
|
89
89
|
AGENT_TOOL_MAP,
|
|
90
90
|
ORCHESTRATOR_NAME,
|
|
91
91
|
stripKnownSwarmPrefix
|
|
92
|
-
} from "./index-
|
|
92
|
+
} from "./index-nvc0nsvg.js";
|
|
93
93
|
import"./index-yrrqs4b0.js";
|
|
94
94
|
import"./index-scww5b77.js";
|
|
95
95
|
import"./index-ga4ta3cr.js";
|
|
@@ -12,14 +12,14 @@ import {
|
|
|
12
12
|
detectPosixWrites,
|
|
13
13
|
detectWindowsWrites,
|
|
14
14
|
resolveWriteTargets
|
|
15
|
-
} from "./index-
|
|
15
|
+
} from "./index-m766gvdt.js";
|
|
16
16
|
import {
|
|
17
17
|
checkFileAuthority,
|
|
18
18
|
classifyFile,
|
|
19
19
|
isInDeclaredScope,
|
|
20
20
|
redactPath,
|
|
21
21
|
redactShellCommand
|
|
22
|
-
} from "./index-
|
|
22
|
+
} from "./index-8j5d3ytd.js";
|
|
23
23
|
|
|
24
24
|
// src/services/guardrail-explain-service.ts
|
|
25
25
|
import path from "path";
|