kodelyth-ecc 1.5.10 โ 1.7.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/.github/workflows/publish.yml +19 -0
- package/AGENTS.md +1 -1
- package/CHANGELOG.md +447 -0
- package/CLAUDE.md +48 -16
- package/README.md +265 -81
- package/VERSION +1 -1
- package/actions/ecc-review/README.md +243 -0
- package/actions/ecc-review/action.yml +158 -0
- package/actions/ecc-review/post-comment.js +171 -0
- package/actions/ecc-review/run-review.js +285 -0
- package/agents/backdoor-hunter.md +260 -0
- package/agents/chaos-engineer.md +251 -0
- package/agents/code-stealer-detector.md +228 -0
- package/agents/jailbreak-tester.md +222 -0
- package/agents/license-violation-finder.md +212 -0
- package/agents/prompt-injection-hunter.md +126 -0
- package/agents/secret-hunter.md +209 -0
- package/agents/supply-chain-auditor.md +195 -0
- package/bin/kodelyth-ecc.js +875 -1
- package/bundles/enterprise.md +172 -0
- package/bundles/indie-hacker.md +106 -0
- package/bundles/red-team.md +138 -0
- package/cat +0 -0
- package/commands/dashboard.md +67 -0
- package/commands/devil-mode.md +121 -0
- package/commands/memory-evolve.md +71 -0
- package/commands/replay.md +61 -0
- package/commands/route-model.md +48 -0
- package/commands/swarm.md +68 -0
- package/commands/verify-supply-chain.md +59 -0
- package/docs/dashboard.md +211 -0
- package/docs/evolve.md +303 -0
- package/docs/mcp-clients.md +167 -0
- package/docs/mcp.md +178 -0
- package/docs/replay.md +244 -0
- package/docs/supply-chain.md +207 -0
- package/docs/swarm.md +243 -0
- package/hooks/hooks.json +52 -0
- package/hooks/memory/auto-recall.js +29 -1
- package/hooks/safety/README.md +124 -0
- package/hooks/safety/lib/patterns.js +179 -0
- package/hooks/safety/prompt-injection-guard.js +179 -0
- package/hooks/safety/token-budget.js +229 -0
- package/install.ps1 +199 -2
- package/install.sh +285 -3
- package/package.json +30 -4
- package/rules/common/agent-intent-routing.md +182 -0
- package/rules/common/cost-aware-model-routing.md +152 -0
- package/scripts/dashboard/data.js +353 -0
- package/scripts/dashboard/server.js +324 -0
- package/scripts/dashboard/static/index.html +645 -0
- package/scripts/evolve/analyze.js +303 -0
- package/scripts/evolve/proposals.js +162 -0
- package/scripts/evolve/stats.js +219 -0
- package/scripts/mcp/catalog.js +244 -0
- package/scripts/mcp/client.js +181 -0
- package/scripts/mcp/prompts.js +133 -0
- package/scripts/mcp/resources.js +94 -0
- package/scripts/mcp/server.js +153 -0
- package/scripts/mcp/tools.js +465 -0
- package/scripts/replay/bundle.js +191 -0
- package/scripts/replay/replay.js +107 -0
- package/scripts/router/classify.js +232 -0
- package/scripts/supply-chain/manifest.js +154 -0
- package/scripts/supply-chain/sbom.js +202 -0
- package/scripts/supply-chain/verify.js +102 -0
- package/scripts/swarm/build-plan.js +193 -0
- package/skills/cost-aware-model-routing/SKILL.md +153 -0
- package/skills/kodelyth-quickstart/SKILL.md +7 -0
- package/skills/observability-dashboard/SKILL.md +119 -0
- package/skills/self-evolving-memory/SKILL.md +175 -0
- package/skills/session-replay/SKILL.md +199 -0
- package/skills/supply-chain-verification/SKILL.md +201 -0
- package/skills/swarm-orchestrator/SKILL.md +177 -0
- package/social/card-install.svg +1 -1
- package/social/facebook-group/POST.md +121 -0
- package/social/facebook-group/fb-1-3am-debug.png +0 -0
- package/social/facebook-group/fb-1-3am-debug.svg +97 -0
- package/social/facebook-group/fb-2-cpu-upgrade.png +0 -0
- package/social/facebook-group/fb-2-cpu-upgrade.svg +132 -0
- package/social/facebook-group/fb-3-before-after.png +0 -0
- package/social/facebook-group/fb-3-before-after.svg +94 -0
- package/social/facebook-v150.svg +5 -5
- package/social/github-social-preview.svg +119 -100
- package/social/readme-hero.svg +11 -11
- package/social/section-agents.svg +57 -0
- package/social/section-author.svg +54 -0
- package/social/section-dashboard.svg +59 -0
- package/social/section-devil.svg +54 -0
- package/social/section-hooks.svg +51 -0
- package/social/section-install.svg +42 -0
- package/social/section-learning.svg +52 -0
- package/social/section-mcp.svg +46 -0
- package/social/section-memory.svg +57 -0
- package/social/section-parallel.svg +72 -0
- package/social/section-routing.svg +51 -0
- package/social/x-card-agents-grid.svg +6 -6
- package/tests/dashboard/data.test.js +235 -0
- package/tests/dashboard/server.test.js +240 -0
- package/tests/evolve/analyze.test.js +169 -0
- package/tests/evolve/proposals.test.js +173 -0
- package/tests/evolve/stats.test.js +159 -0
- package/tests/mcp/catalog.test.js +98 -0
- package/tests/mcp/client.test.js +109 -0
- package/tests/mcp/resources-prompts.test.js +70 -0
- package/tests/mcp/tools.test.js +159 -0
- package/tests/replay/bundle.test.js +181 -0
- package/tests/replay/replay.test.js +131 -0
- package/tests/router/classify.test.js +164 -0
- package/tests/safety/patterns.test.js +94 -0
- package/tests/safety/prompt-injection-guard.test.js +111 -0
- package/tests/safety/token-budget.test.js +119 -0
- package/tests/supply-chain/manifest.test.js +147 -0
- package/tests/supply-chain/sbom.test.js +170 -0
- package/tests/supply-chain/verify.test.js +146 -0
- package/tests/swarm/build-plan.test.js +188 -0
- package/wiki/Agent-Reference.md +58 -7
- package/wiki/FAQ.md +204 -7
- package/wiki/Home.md +104 -28
- package/wiki/Hook-Reference.md +1 -1
- package/wiki/Installation-Guide.md +109 -6
- package/wiki/Platform-Support.md +239 -25
- package/wiki/Skill-Reference.md +101 -6
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: supply-chain-verification
|
|
3
|
+
description: Generate CycloneDX SBOMs, content manifests, and verify installed copies of kodelyth-ecc against shipped manifests. Use when an enterprise / security team asks "where does this code come from, is it tampered, and where is the SBOM".
|
|
4
|
+
trigger:
|
|
5
|
+
- supply chain
|
|
6
|
+
- SBOM
|
|
7
|
+
- CycloneDX
|
|
8
|
+
- SLSA
|
|
9
|
+
- provenance
|
|
10
|
+
- manifest
|
|
11
|
+
- tamper
|
|
12
|
+
- integrity check
|
|
13
|
+
- verify install
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Skill: supply-chain-verification
|
|
17
|
+
|
|
18
|
+
## What this skill does
|
|
19
|
+
|
|
20
|
+
Phase 2.9 of the Devil Roadmap. Three pure-function libraries plus three CLI subcommands give every kodelyth-ecc release **enterprise-grade supply-chain credentials**:
|
|
21
|
+
|
|
22
|
+
| Capability | What it produces | Format |
|
|
23
|
+
|---|---|---|
|
|
24
|
+
| **SBOM** | CycloneDX 1.5 software bill of materials for the package + every transitive dep in the lockfile | JSON |
|
|
25
|
+
| **Manifest** | sha256 content manifest of every shipped asset (agents, skills, commands, rules, hooks, scripts, bin, bundles, root files) | JSON |
|
|
26
|
+
| **Verify** | Compares an installed copy against a manifest and reports `ok` / `modified` / `missing` / `extra` | JSON or pretty |
|
|
27
|
+
|
|
28
|
+
Plus, every release published via `.github/workflows/publish.yml` ships with **SLSA Level 3 build provenance** courtesy of `npm publish --provenance` (sigstore-backed).
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## When to use this skill
|
|
33
|
+
|
|
34
|
+
Use **explicitly** by name when:
|
|
35
|
+
|
|
36
|
+
- An enterprise / SOC 2 / FedRAMP-adjacent team asks for an SBOM to ingest into Dependency-Track, Snyk, or Anchore.
|
|
37
|
+
- A user reports a suspicious install โ verify against the shipped manifest to confirm tamper or local mod.
|
|
38
|
+
- You're preparing an audit response and need provenance + bill-of-materials in one shot.
|
|
39
|
+
- You want to ship a third-party reproducibility check for a downstream consumer.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
use supply-chain-verification
|
|
43
|
+
|
|
44
|
+
# Generate a CycloneDX 1.5 SBOM
|
|
45
|
+
npx kodelyth-ecc sbom --out sbom.cdx.json
|
|
46
|
+
|
|
47
|
+
# Generate a content manifest
|
|
48
|
+
npx kodelyth-ecc manifest --out manifest.json
|
|
49
|
+
|
|
50
|
+
# Verify a downloaded / installed copy
|
|
51
|
+
npx kodelyth-ecc verify --manifest manifest.json
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Implicit triggers (the AI should route here automatically):
|
|
55
|
+
|
|
56
|
+
- "is my install of kodelyth-ecc tampered?"
|
|
57
|
+
- "give me an SBOM"
|
|
58
|
+
- "where is the SLSA provenance for this release?"
|
|
59
|
+
- "compliance team needs supply-chain attestation for this package"
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## CLI surface
|
|
64
|
+
|
|
65
|
+
### `kodelyth-ecc sbom`
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
kodelyth-ecc sbom [--root DIR] [--out FILE] [--json]
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Produces a CycloneDX 1.5 BOM:
|
|
72
|
+
|
|
73
|
+
```json
|
|
74
|
+
{
|
|
75
|
+
"bomFormat": "CycloneDX",
|
|
76
|
+
"specVersion": "1.5",
|
|
77
|
+
"serialNumber": "urn:uuid:...",
|
|
78
|
+
"metadata": {
|
|
79
|
+
"timestamp": "2026-05-10T17:00:00Z",
|
|
80
|
+
"tools": [{ "vendor": "kodelyth-ecc", "name": "kodelyth-ecc-sbom", "version": "1.7.0" }],
|
|
81
|
+
"component": { "type": "application", "name": "kodelyth-ecc", "version": "1.7.0", "purl": "pkg:npm/kodelyth-ecc@1.7.0" }
|
|
82
|
+
},
|
|
83
|
+
"components": [/* one per lockfile entry */],
|
|
84
|
+
"dependencies": [{ "ref": "kodelyth-ecc@1.7.0", "dependsOn": [/* direct deps */] }]
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Pure: no network, no exec. Reads `package.json` + `package-lock.json` only. Components carry purl, license, and SHA-512 hash from npm SRI when present.
|
|
89
|
+
|
|
90
|
+
### `kodelyth-ecc manifest`
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
kodelyth-ecc manifest [--root DIR] [--out FILE] [--json]
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Walks every shipped directory + root file. Produces:
|
|
97
|
+
|
|
98
|
+
```json
|
|
99
|
+
{
|
|
100
|
+
"schema": "kodelyth.content-manifest/v1",
|
|
101
|
+
"package": "kodelyth-ecc",
|
|
102
|
+
"pkg_version": "1.7.0",
|
|
103
|
+
"generated_at": "2026-05-10T17:00:00Z",
|
|
104
|
+
"file_count": 730,
|
|
105
|
+
"digest": "<sha256 over deterministic JSON of the entries array>",
|
|
106
|
+
"files": [
|
|
107
|
+
{ "path": "agents/code-reviewer.md", "size": 4521, "sha256": "โฆ" },
|
|
108
|
+
โฆ
|
|
109
|
+
]
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Output is deterministic (sorted by path, stable sha256), so two runs against the same source tree produce identical files modulo `generated_at`.
|
|
114
|
+
|
|
115
|
+
### `kodelyth-ecc verify`
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
kodelyth-ecc verify [--root DIR] [--manifest FILE] [--json]
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Compares disk against manifest:
|
|
122
|
+
|
|
123
|
+
| Category | Meaning | Fails verify? |
|
|
124
|
+
|---|---|---|
|
|
125
|
+
| `ok` | sha256 matches | No |
|
|
126
|
+
| `modified` | file present, hash differs | **Yes** |
|
|
127
|
+
| `missing` | file in manifest but not on disk | **Yes** |
|
|
128
|
+
| `extra` | file on disk not in manifest | No (advisory) |
|
|
129
|
+
|
|
130
|
+
Exits **0** if `ok=true`, **1** otherwise. Pair with `--json` for CI gates.
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## What ships with each release
|
|
135
|
+
|
|
136
|
+
The `.github/workflows/publish.yml` pipeline does **all five** of:
|
|
137
|
+
|
|
138
|
+
1. Verify `package.json.version` matches the release tag.
|
|
139
|
+
2. Run the full test suite (255 tests).
|
|
140
|
+
3. `npm publish --provenance` โ **SLSA Level 3** build provenance via npm + sigstore.
|
|
141
|
+
4. Generate `kodelyth-ecc-sbom.cdx.json` and attach to the GitHub release.
|
|
142
|
+
5. Generate `kodelyth-ecc-manifest.json` and attach to the GitHub release.
|
|
143
|
+
|
|
144
|
+
Three artifacts ship with every release:
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
v1.X.Y/
|
|
148
|
+
โโโ kodelyth-ecc-sbom.cdx.json โ CycloneDX 1.5
|
|
149
|
+
โโโ kodelyth-ecc-manifest.json โ sha256 content manifest
|
|
150
|
+
โโโ (npm sigstore provenance) โ visible on npmjs.com
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Programmatic API
|
|
156
|
+
|
|
157
|
+
```js
|
|
158
|
+
const { generateSBOM } = require('kodelyth-ecc/scripts/supply-chain/sbom.js');
|
|
159
|
+
const { generateManifest } = require('kodelyth-ecc/scripts/supply-chain/manifest.js');
|
|
160
|
+
const { verifyAgainstManifest } = require('kodelyth-ecc/scripts/supply-chain/verify.js');
|
|
161
|
+
|
|
162
|
+
const bom = generateSBOM({ rootDir: '/path/to/installed/kodelyth-ecc' });
|
|
163
|
+
const m = generateManifest({ rootDir: '/path/to/installed/kodelyth-ecc' });
|
|
164
|
+
const r = verifyAgainstManifest({ rootDir: '/path/to/installed/kodelyth-ecc', manifest: m });
|
|
165
|
+
|
|
166
|
+
if (!r.ok) {
|
|
167
|
+
console.error('Tamper detected:', r.summary);
|
|
168
|
+
process.exit(1);
|
|
169
|
+
}
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
All three are pure functions. Safe to call from a CI step, an MCP tool, or any external automation.
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## Hard rules
|
|
177
|
+
|
|
178
|
+
1. **Never** weaken `verify`. Modified or missing files MUST exit non-zero. Extras stay advisory.
|
|
179
|
+
2. SBOM `serialNumber` is derived deterministically from `name@version + timestamp`. If you need a true random UUID per build, set `timestamp` to the build timestamp.
|
|
180
|
+
3. Manifest `digest` is the sha256 of the deterministic JSON of `files`. Reproducible across runs at the same source state.
|
|
181
|
+
4. Don't include `node_modules/`, `.git/`, `.DS_Store`, `__pycache__/`, or `*.pyc` in the manifest. The skip list is in `scripts/supply-chain/manifest.js`.
|
|
182
|
+
5. Treat the published manifest as authoritative for tamper detection of an installed copy. Don't substitute a freshly-generated one.
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## Pairing with other ECC features
|
|
187
|
+
|
|
188
|
+
| Pair with | What you get |
|
|
189
|
+
|---|---|
|
|
190
|
+
| **Phase 2.10 safety hooks** | The token-budget hook + this skill cover "trust" (no PII leakage + no tampered code). |
|
|
191
|
+
| **MCP server (Phase 2.1)** | Expose `verify` as an MCP tool downstream agents can call to confirm their toolkit is clean. |
|
|
192
|
+
| **Swarm orchestrator (Phase 2.7)** | Run `verify` as a pre-flight check before spawning N parallel workers. |
|
|
193
|
+
| **Replay (Phase 2.8)** | Bundles can carry the manifest of the source ECC version that produced them, enabling reproducible replays. |
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## See also
|
|
198
|
+
|
|
199
|
+
- `commands/verify-supply-chain.md` โ `/verify-supply-chain` slash command form
|
|
200
|
+
- `docs/supply-chain.md` โ full reference + downstream verification guide
|
|
201
|
+
- `.github/workflows/publish.yml` โ release pipeline that issues all three artifacts
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: swarm-orchestrator
|
|
3
|
+
description: Run N ECC specialist agents in parallel inside isolated git worktrees coordinated by a tmux session. Generalizes /devil-mode to arbitrary task + agent combinations. Use when one agent isn't enough โ you want a parallel sweep across security, code quality, perf, UX, tests, architecture, and docs simultaneously.
|
|
4
|
+
origin: ECC
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Swarm Orchestrator โ Parallel Agent Execution at Scale
|
|
8
|
+
|
|
9
|
+
The "team-of-specialists" pattern. Where `/devil-mode` is a fixed adversarial sweep with 4โ8 specific agents, swarm is the **generalized form**: pick any task, pick any agents (or let ECC pick from task signals), get N parallel worktrees + a tmux session ready to attach.
|
|
10
|
+
|
|
11
|
+
> Phase 2.7 of the [Devil Roadmap](../../README.md). Promotes the existing `tmux-worktree-orchestrator` infrastructure to a first-class CLI surface.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## When to invoke
|
|
16
|
+
|
|
17
|
+
Trigger this skill when:
|
|
18
|
+
|
|
19
|
+
- A task is too cross-cutting for one specialist (touches security AND perf AND API AND tests).
|
|
20
|
+
- The user asks for "parallel review", "multi-agent sweep", "parallel agents", or "team review".
|
|
21
|
+
- A change is high-stakes and you want defense-in-depth (security audit + UX + perf + arch in 15 min instead of 60).
|
|
22
|
+
- The user has 4+ cores and wants throughput.
|
|
23
|
+
|
|
24
|
+
Don't invoke when:
|
|
25
|
+
|
|
26
|
+
- The task is genuinely single-axis (just security โ use `security-reviewer` directly).
|
|
27
|
+
- The repo is tiny enough that worktree overhead exceeds review time.
|
|
28
|
+
- The user is on a machine without tmux/git worktree support.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## CLI surface
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# Auto-pick agents from task signals.
|
|
36
|
+
npx kodelyth-ecc swarm --task "audit the new oauth flow for security regressions" --agents 4
|
|
37
|
+
|
|
38
|
+
# Explicit agent list.
|
|
39
|
+
npx kodelyth-ecc swarm --task "ship v2.0" \
|
|
40
|
+
--agents release-captain,security-reviewer,e2e-runner,code-reviewer \
|
|
41
|
+
--execute
|
|
42
|
+
|
|
43
|
+
# Different harness (codex / opencode / windsurf).
|
|
44
|
+
npx kodelyth-ecc swarm --task "refactor payment module" --agents 6 --harness codex --execute
|
|
45
|
+
|
|
46
|
+
# Power-user: hand-written plan.
|
|
47
|
+
npx kodelyth-ecc swarm --plan plan.json --execute
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Three execution modes:
|
|
51
|
+
|
|
52
|
+
| Mode | Effect |
|
|
53
|
+
|---|---|
|
|
54
|
+
| (default) dry-run | Prints the plan. Doesn't spawn anything. Safe to inspect. |
|
|
55
|
+
| `--write-only` | Materializes coordination files (`task.md`, `handoff.md`, `status.md`) but doesn't spawn worktrees or tmux. |
|
|
56
|
+
| `--execute` | Creates git worktrees, spawns tmux session, launches each agent in its own pane. |
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Smart agent picking
|
|
61
|
+
|
|
62
|
+
When you pass `--agents N` (a number), the swarm picks specialists in this priority order:
|
|
63
|
+
|
|
64
|
+
1. **Signal-driven** โ task keywords match agent specialties (security โ `security-reviewer`, perf โ `performance-optimizer`, API โ `api-guardian`, etc.). 14 signal classes.
|
|
65
|
+
2. **Baseline anchors** โ `code-reviewer` and `pair-programmer` are added if not already picked (every task benefits from generalist eyes).
|
|
66
|
+
3. **Rotation fill** โ fills remaining slots from a 4 / 6 / 8-agent default rotation tuned for breadth.
|
|
67
|
+
|
|
68
|
+
You can always override with `--agents code-reviewer,security-reviewer,architect`.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Harness adapters
|
|
73
|
+
|
|
74
|
+
| `--harness` | Launcher | Notes |
|
|
75
|
+
|---|---|---|
|
|
76
|
+
| `claude` | `claude --print --dangerously-skip-permissions ...` | Default. Works with Claude Code. |
|
|
77
|
+
| `codex` | `bash scripts/orchestrate-codex-worker.sh ...` | Codex CLI worker with full status tracking. |
|
|
78
|
+
| `opencode` | `opencode run --task-file ...` | OpenCode harness. |
|
|
79
|
+
| `windsurf` | `windsurf-cli run --task-file ...` | Windsurf agent. |
|
|
80
|
+
| `echo` | trivial echo | For dry-run validation only. |
|
|
81
|
+
|
|
82
|
+
Use `--launcher-cmd "<your-template>"` to plug a custom harness. Available placeholders:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
{worker_name} {worker_slug} {session_name} {repo_root}
|
|
86
|
+
{worktree_path} {branch_name} {task_file} {handoff_file} {status_file}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Add `_sh` suffix for shell-quoted variants (`{task_file_sh}`, etc.).
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Coordination protocol
|
|
94
|
+
|
|
95
|
+
Every worker gets three files in the coordination dir:
|
|
96
|
+
|
|
97
|
+
- **`task.md`** โ agent-shaped task with required handoff sections (Summary, Files Changed, Validation, Remaining Risks). Generated automatically.
|
|
98
|
+
- **`handoff.md`** โ where the worker writes its output. Watched by the launcher.
|
|
99
|
+
- **`status.md`** โ running / completed / failed marker for monitoring scripts and the future dashboard.
|
|
100
|
+
|
|
101
|
+
Workers run in **isolated git worktrees** branched from `--base-ref` (default: `HEAD`). Each gets a unique branch (`orchestrator-<session>-<slug>`). Cleanup is automatic on failure (rolls back worktrees, branches, and tmux session).
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Pairing with the rest of ECC
|
|
106
|
+
|
|
107
|
+
| Pairs with | How |
|
|
108
|
+
|---|---|
|
|
109
|
+
| **`/devil-mode`** | Devil-mode is a hardcoded swarm of adversarial agents. Swarm generalizes it to arbitrary specialists. |
|
|
110
|
+
| **Phase 2.4 cost router** | Each worker gets the same model-tier recommendation; security/incident workers force hard tier. |
|
|
111
|
+
| **Phase 2.10 token-budget hook** | Each worker has its own session token-budget โ one rogue worker can't burn the whole budget. |
|
|
112
|
+
| **Phase 2.5 MCP client mode** | Workers can call registered external MCP servers (github, postgres, brave). |
|
|
113
|
+
| **kodelyth-memory** | Capture the merged handoff bundle as a memory: `kodelyth-ecc remember "swarm 2026-05-10 oauth audit" --approach "..."`. |
|
|
114
|
+
| **release-captain** | After a swarm, run `release-captain` to merge the best work and ship. |
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Examples
|
|
119
|
+
|
|
120
|
+
### Pre-launch full sweep (8 agents, parallel)
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
npx kodelyth-ecc swarm \
|
|
124
|
+
--task "Pre-launch sweep for v2.0 โ security, perf, UX, API contracts, docs, tests, release readiness" \
|
|
125
|
+
--agents 8 \
|
|
126
|
+
--replace \
|
|
127
|
+
--execute
|
|
128
|
+
|
|
129
|
+
# Attach when ready:
|
|
130
|
+
tmux attach -t swarm-2026-05-10-8a
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Production incident: 3-agent parallel triage
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
npx kodelyth-ecc swarm \
|
|
137
|
+
--task "Production is down. Auth service throwing 502s. Triage and propose fixes." \
|
|
138
|
+
--agents incident-commander,debug-detective,silent-failure-hunter \
|
|
139
|
+
--base-ref main \
|
|
140
|
+
--execute
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Refactor sprint with seeded files
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
npx kodelyth-ecc swarm \
|
|
147
|
+
--task "Refactor the payments module for testability without changing behavior" \
|
|
148
|
+
--agents refactor-cleaner,code-simplifier,type-design-analyzer,tdd-guide \
|
|
149
|
+
--seed src/payments \
|
|
150
|
+
--seed tests/payments \
|
|
151
|
+
--execute
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Hard rules
|
|
157
|
+
|
|
158
|
+
1. **Never run `--execute` without inspecting the dry-run first.** Worktree creation mutates the repo; bad plans waste disk.
|
|
159
|
+
2. **Don't mix incompatible agents in one swarm.** Putting `release-captain` and `migration-guide` in the same swarm produces conflicting handoffs.
|
|
160
|
+
3. **Cap N at 8 for a single repo.** Worktree contention + tmux pane crowding hurts past 8.
|
|
161
|
+
4. **Never share tmux sessions across swarms.** Use `--session NAME` explicitly when running multiple swarms.
|
|
162
|
+
5. **Always merge handoffs through human review** โ don't auto-apply changes from N parallel agents without a human pass.
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Implementation
|
|
167
|
+
|
|
168
|
+
- Plan builder: `scripts/swarm/build-plan.js` (pure function, fully tested).
|
|
169
|
+
- Orchestrator: `scripts/lib/tmux-worktree-orchestrator.js` (the existing infrastructure).
|
|
170
|
+
- Worker (codex): `scripts/orchestrate-codex-worker.sh`.
|
|
171
|
+
- CLI: `npx kodelyth-ecc swarm`.
|
|
172
|
+
- Slash command: `/swarm`.
|
|
173
|
+
- Full reference: `docs/swarm.md`.
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
Built into [Kodelyth ECC](../../README.md). MIT licensed.
|
package/social/card-install.svg
CHANGED
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
<text x="48" y="200" font-family="'Courier New', Courier, monospace" font-size="12" fill="#e6edf3"> npx kodelyth-ecc --target windsurf-project</text>
|
|
38
38
|
<text x="48" y="216" font-family="'Courier New', Courier, monospace" font-size="11" fill="#484f58"> # or Antigravity:</text>
|
|
39
39
|
<text x="48" y="232" font-family="'Courier New', Courier, monospace" font-size="12" fill="#e6edf3"> npx kodelyth-ecc --target antigravity</text>
|
|
40
|
-
<text x="48" y="256" font-family="'Courier New', Courier, monospace" font-size="11" fill="#10b981"> Installing v1.
|
|
40
|
+
<text x="48" y="256" font-family="'Courier New', Courier, monospace" font-size="11" fill="#10b981"> Installing v1.7.0 โ 70 agents, 194 skills, 97 commands...</text>
|
|
41
41
|
<text x="48" y="292" font-family="'Courier New', Courier, monospace" font-size="11" fill="#10b981"> Done. Type /kodelyth-quickstart to begin.</text>
|
|
42
42
|
|
|
43
43
|
<!-- Footer -->
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# Facebook Group Posts โ Kodelyth ECC
|
|
2
|
+
|
|
3
|
+
Three images are in this folder, available as both SVG (source) and PNG (upload-ready). **Use the PNGs** โ Facebook compresses SVGs poorly and sometimes refuses them.
|
|
4
|
+
|
|
5
|
+
- **fb-1-3am-debug.png** โ square (1080ร1080). The relatable "tired of debugging at 3am" angle.
|
|
6
|
+
- **fb-2-cpu-upgrade.png** โ square (1080ร1080). Plays directly on the group's "Coffee Processing Unit" cover joke. **Best fit for Programming Jokes & MeMes specifically.**
|
|
7
|
+
- **fb-3-before-after.png** โ landscape (1200ร1080). Classic before/after meme format. Highest comment-bait potential.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## POST OPTION A โ For "Programming Jokes & MeMes" (matches the group's CPU/coffee joke)
|
|
12
|
+
|
|
13
|
+
> **Use with:** `fb-2-cpu-upgrade.png`
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
"Programmers are a Coffee Processing Unit" โ bro, that's the group cover and it lives rent-free in my head.
|
|
17
|
+
|
|
18
|
+
So I went ahead and built the actual upgrade for that CPU.
|
|
19
|
+
|
|
20
|
+
It's called Kodelyth ECC. Basically a power-up pack for whatever AI coding assistant you already use (Claude Code, Cursor, Windsurf, Codex, Antigravity, OpenCode โ pick your poison).
|
|
21
|
+
|
|
22
|
+
What it does:
|
|
23
|
+
๐ค 62 specialist AI agents โ debug-detective, security-reviewer, code-reviewer, the whole crew
|
|
24
|
+
๐ง Local memory โ actually remembers your codebase, your style, the bugs you already fixed
|
|
25
|
+
๐ฏ Intent routing โ type "been stuck on this bug for 2 days" and it fires 3 debug agents in parallel automatically
|
|
26
|
+
๐ฆ One install command. Done.
|
|
27
|
+
|
|
28
|
+
The honest part:
|
|
29
|
+
- 100% free
|
|
30
|
+
- 100% local (zero cloud, zero telemetry, your code never leaves your machine)
|
|
31
|
+
- Open source
|
|
32
|
+
- I'm not selling anything, no email signup, no "pro tier" โ just markdown files installed into your IDE config
|
|
33
|
+
|
|
34
|
+
Try it:
|
|
35
|
+
$ npx kodelyth-ecc
|
|
36
|
+
|
|
37
|
+
GitHub: github.com/sifxprime/kodelyth-ecc
|
|
38
|
+
|
|
39
|
+
If you find it useful, a star would mean a lot ๐
|
|
40
|
+
|
|
41
|
+
P.S. โ works whether you're a "vibe coder" or someone who debugs at 3am with 5 AI specialists screaming at you. Both valid.
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## POST OPTION B โ Straight & punchy (general dev groups)
|
|
47
|
+
|
|
48
|
+
> **Use with:** `fb-3-before-after.png` or `fb-1-3am-debug.png`
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
Spent the last few months building this. Finally good enough to share.
|
|
52
|
+
|
|
53
|
+
Kodelyth ECC โ open-source toolkit that turns your AI coding assistant from a generic chatbot into a real engineering team.
|
|
54
|
+
|
|
55
|
+
Before:
|
|
56
|
+
- Re-explaining "we use pnpm here" every session
|
|
57
|
+
- Generic AI advice that doesn't know your codebase
|
|
58
|
+
- One AI doing security + reviews + debugging badly
|
|
59
|
+
|
|
60
|
+
After:
|
|
61
|
+
- 62 specialist agents (each one only does one thing well)
|
|
62
|
+
- Local memory that learns your style across sessions
|
|
63
|
+
- Intent routing โ describe your problem in plain words, right specialist auto-runs
|
|
64
|
+
- Parallel commands like /debug-blitz, /security-audit, /pre-release
|
|
65
|
+
|
|
66
|
+
Works with: Claude Code, Cursor, Windsurf, Codex, Antigravity, OpenCode
|
|
67
|
+
|
|
68
|
+
Install (one command):
|
|
69
|
+
npx kodelyth-ecc
|
|
70
|
+
|
|
71
|
+
100% free. 100% local. Zero telemetry. Zero cloud calls. Your code never leaves your machine.
|
|
72
|
+
|
|
73
|
+
GitHub โ github.com/sifxprime/kodelyth-ecc
|
|
74
|
+
npm โ npmjs.com/package/kodelyth-ecc
|
|
75
|
+
|
|
76
|
+
Genuinely curious what you'd want me to add. Drop suggestions ๐
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## POST OPTION C โ Short & meme-coded (for high-engagement reposts)
|
|
82
|
+
|
|
83
|
+
> **Use with:** `fb-1-3am-debug.png`
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
Built this because I was tired of debugging alone at 3 AM.
|
|
87
|
+
|
|
88
|
+
62 AI specialist agents. 188 skills. Local memory. Zero cloud bullshit.
|
|
89
|
+
|
|
90
|
+
$ npx kodelyth-ecc
|
|
91
|
+
|
|
92
|
+
That's it. That's the post.
|
|
93
|
+
|
|
94
|
+
github.com/sifxprime/kodelyth-ecc ๐
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Posting tips for max engagement
|
|
100
|
+
|
|
101
|
+
1. **Post timing** โ Tuesday/Thursday 8-10 PM (BD time) or 9-11 AM hits highest dev engagement.
|
|
102
|
+
2. **First comment** โ drop a follow-up comment yourself within 1 minute with a screenshot of it actually working in your IDE. This doubles reach.
|
|
103
|
+
3. **Reply to every comment in the first 30 min** โ Facebook's algo boosts posts with high reply velocity. Even just "thanks!" works.
|
|
104
|
+
4. **Don't drop links in the post body** โ Facebook deprioritizes external links. Put `github.com/sifxprime/kodelyth-ecc` in the FIRST COMMENT instead, and write "link in comments" in the post.
|
|
105
|
+
5. **Cross-post** โ same content fits these groups too:
|
|
106
|
+
- Programming Jokes & MeMes (1M)
|
|
107
|
+
- Memes we relate to
|
|
108
|
+
- BCUB / BNCP (BD groups โ friendly to indie tools)
|
|
109
|
+
- r/programming-style FB groups
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Recommended sequence (3-day campaign)
|
|
114
|
+
|
|
115
|
+
| Day | Group | SVG | Post Option |
|
|
116
|
+
|---|---|---|---|
|
|
117
|
+
| Day 1 | Programming Jokes & MeMes | fb-2-cpu-upgrade.png | A (matches group culture) |
|
|
118
|
+
| Day 3 | Other dev groups | fb-3-before-after.png | B (substance) |
|
|
119
|
+
| Day 5 | Repost in original group | fb-1-3am-debug.png | C (short hook) |
|
|
120
|
+
|
|
121
|
+
Don't post the same thing twice in the same group within 7 days โ Facebook flags it as spam.
|
|
Binary file
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 1080" width="1080" height="1080">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="bg1" x1="0" y1="0" x2="1" y2="1">
|
|
4
|
+
<stop offset="0" stop-color="#0d1117"/>
|
|
5
|
+
<stop offset="1" stop-color="#161b22"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
<linearGradient id="purpleGlow" x1="0" y1="0" x2="0" y2="1">
|
|
8
|
+
<stop offset="0" stop-color="#a78bfa"/>
|
|
9
|
+
<stop offset="1" stop-color="#7c3aed"/>
|
|
10
|
+
</linearGradient>
|
|
11
|
+
<linearGradient id="greenGlow" x1="0" y1="0" x2="0" y2="1">
|
|
12
|
+
<stop offset="0" stop-color="#10b981"/>
|
|
13
|
+
<stop offset="1" stop-color="#059669"/>
|
|
14
|
+
</linearGradient>
|
|
15
|
+
<filter id="glow1" x="-50%" y="-50%" width="200%" height="200%">
|
|
16
|
+
<feGaussianBlur stdDeviation="6" result="coloredBlur"/>
|
|
17
|
+
<feMerge>
|
|
18
|
+
<feMergeNode in="coloredBlur"/>
|
|
19
|
+
<feMergeNode in="SourceGraphic"/>
|
|
20
|
+
</feMerge>
|
|
21
|
+
</filter>
|
|
22
|
+
</defs>
|
|
23
|
+
|
|
24
|
+
<rect width="1080" height="1080" fill="url(#bg1)"/>
|
|
25
|
+
|
|
26
|
+
<!-- Subtle code pattern background -->
|
|
27
|
+
<g opacity="0.06" font-family="'Courier New', Courier, monospace" font-size="14" fill="#10b981">
|
|
28
|
+
<text x="40" y="80">$ git commit -m "fix: probably broken"</text>
|
|
29
|
+
<text x="40" y="110">$ npm install --save-dev sanity</text>
|
|
30
|
+
<text x="40" y="140">TypeError: undefined is not a function</text>
|
|
31
|
+
<text x="40" y="170">at line 42, you know the one</text>
|
|
32
|
+
<text x="40" y="200">$ rm -rf node_modules && npm install</text>
|
|
33
|
+
<text x="40" y="950">// TODO: refactor this on Sunday (it has been 3 years)</text>
|
|
34
|
+
<text x="40" y="980">// HACK: don't touch this, no one knows why it works</text>
|
|
35
|
+
<text x="40" y="1010">$ git push --force # I'm the only one on this branch</text>
|
|
36
|
+
<text x="40" y="1040">// here be dragons ๐</text>
|
|
37
|
+
</g>
|
|
38
|
+
|
|
39
|
+
<!-- Time stamp top right -->
|
|
40
|
+
<g opacity="0.5">
|
|
41
|
+
<rect x="820" y="48" width="220" height="40" rx="20" fill="#21262d" stroke="#30363d" stroke-width="1"/>
|
|
42
|
+
<text x="930" y="74" font-family="'Courier New', Courier, monospace" font-size="14" fill="#8b949e" text-anchor="middle">๐ 03:47 AM</text>
|
|
43
|
+
</g>
|
|
44
|
+
|
|
45
|
+
<!-- Top label -->
|
|
46
|
+
<g>
|
|
47
|
+
<rect x="60" y="60" width="200" height="32" rx="16" fill="#7c3aed" fill-opacity="0.2" stroke="#a78bfa" stroke-opacity="0.5" stroke-width="1"/>
|
|
48
|
+
<text x="160" y="82" font-family="system-ui, sans-serif" font-size="13" font-weight="700" fill="#a78bfa" text-anchor="middle" letter-spacing="1">FOR THE 3AM DEBUGGERS</text>
|
|
49
|
+
</g>
|
|
50
|
+
|
|
51
|
+
<!-- Hero text -->
|
|
52
|
+
<text x="540" y="220" font-family="system-ui, -apple-system, sans-serif" font-size="64" font-weight="900" fill="#ffffff" text-anchor="middle" letter-spacing="-2">Tired of debugging</text>
|
|
53
|
+
<text x="540" y="290" font-family="system-ui, -apple-system, sans-serif" font-size="64" font-weight="900" fill="#ffffff" text-anchor="middle" letter-spacing="-2">alone at 3 AM?</text>
|
|
54
|
+
|
|
55
|
+
<!-- Subline -->
|
|
56
|
+
<text x="540" y="350" font-family="system-ui, sans-serif" font-size="22" fill="#8b949e" text-anchor="middle">Same. So I built a fix.</text>
|
|
57
|
+
|
|
58
|
+
<!-- The "team" card -->
|
|
59
|
+
<rect x="90" y="410" width="900" height="380" rx="20" fill="#161b22" stroke="#30363d" stroke-width="2"/>
|
|
60
|
+
|
|
61
|
+
<!-- Decorative bracket -->
|
|
62
|
+
<text x="120" y="470" font-family="'Courier New', Courier, monospace" font-size="40" fill="url(#purpleGlow)" font-weight="700">{</text>
|
|
63
|
+
<text x="940" y="780" font-family="'Courier New', Courier, monospace" font-size="40" fill="url(#purpleGlow)" font-weight="700" text-anchor="end">}</text>
|
|
64
|
+
|
|
65
|
+
<text x="540" y="475" font-family="system-ui, sans-serif" font-size="20" font-weight="600" fill="#10b981" text-anchor="middle" letter-spacing="3">YOUR NEW LATE-NIGHT TEAM</text>
|
|
66
|
+
|
|
67
|
+
<!-- Stats grid -->
|
|
68
|
+
<g font-family="system-ui, sans-serif">
|
|
69
|
+
<text x="245" y="570" font-size="64" font-weight="900" fill="#ffffff" text-anchor="middle">62</text>
|
|
70
|
+
<text x="245" y="610" font-size="13" fill="#8b949e" text-anchor="middle" letter-spacing="2">SPECIALIST AGENTS</text>
|
|
71
|
+
|
|
72
|
+
<text x="540" y="570" font-size="64" font-weight="900" fill="#ffffff" text-anchor="middle">188</text>
|
|
73
|
+
<text x="540" y="610" font-size="13" fill="#8b949e" text-anchor="middle" letter-spacing="2">SKILLS</text>
|
|
74
|
+
|
|
75
|
+
<text x="835" y="570" font-size="64" font-weight="900" fill="#ffffff" text-anchor="middle">90</text>
|
|
76
|
+
<text x="835" y="610" font-size="13" fill="#8b949e" text-anchor="middle" letter-spacing="2">COMMANDS</text>
|
|
77
|
+
</g>
|
|
78
|
+
|
|
79
|
+
<line x1="160" y1="650" x2="920" y2="650" stroke="#30363d" stroke-width="1"/>
|
|
80
|
+
|
|
81
|
+
<!-- Tagline rows -->
|
|
82
|
+
<g font-family="system-ui, sans-serif" font-size="22" fill="#e6edf3">
|
|
83
|
+
<text x="540" y="695" text-anchor="middle">debug-detective fights bugs while you drink coffee.</text>
|
|
84
|
+
<text x="540" y="730" text-anchor="middle">security-reviewer catches what you missed.</text>
|
|
85
|
+
<text x="540" y="765" text-anchor="middle">62 of them. Working in parallel.</text>
|
|
86
|
+
</g>
|
|
87
|
+
|
|
88
|
+
<!-- Install bar -->
|
|
89
|
+
<rect x="180" y="850" width="720" height="80" rx="12" fill="#0d1117" stroke="#10b981" stroke-width="2" filter="url(#glow1)"/>
|
|
90
|
+
<text x="220" y="900" font-family="'Courier New', Courier, monospace" font-size="28" fill="#10b981" font-weight="700">$</text>
|
|
91
|
+
<text x="252" y="900" font-family="'Courier New', Courier, monospace" font-size="28" fill="#ffffff" font-weight="700">npx kodelyth-ecc</text>
|
|
92
|
+
<text x="880" y="900" font-family="system-ui, sans-serif" font-size="13" fill="#8b949e" text-anchor="end" letter-spacing="2">FREE ยท LOCAL ยท NO CLOUD</text>
|
|
93
|
+
|
|
94
|
+
<!-- Footer -->
|
|
95
|
+
<text x="540" y="985" font-family="system-ui, sans-serif" font-size="16" fill="#6e7681" text-anchor="middle">Works with Claude Code ยท Cursor ยท Windsurf ยท Codex ยท Antigravity</text>
|
|
96
|
+
<text x="540" y="1020" font-family="system-ui, sans-serif" font-size="14" fill="#484f58" text-anchor="middle" letter-spacing="1">github.com/sifxprime/kodelyth-ecc</text>
|
|
97
|
+
</svg>
|
|
Binary file
|