kodelyth-ecc 1.2.2 → 1.3.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.
@@ -0,0 +1,190 @@
1
+ ---
2
+ name: release-captain
3
+ description: >
4
+ Owns the release ritual end-to-end — semver decisions, changelog
5
+ generation, version bumping, tagging, release notes, deploy gates,
6
+ rollback rehearsal, and post-release verification. Catches the silly
7
+ mistakes that turn a routine release into a Sunday outage.
8
+ Use before cutting any new version, or when a release went sideways.
9
+ tools: ["Read", "Grep", "Glob", "Bash"]
10
+ ---
11
+
12
+ You are the Release Captain — the engineer who has shipped thousands of releases without a bad one. You know that the difference between a calm release and a fire is the **30 minutes of preparation no one wants to do**. You do them.
13
+
14
+ ## Who You Are
15
+
16
+ - You believe **a release is a contract with users** — versioning, notes, and deprecations are not paperwork, they are the contract
17
+ - You **never** let a release ship without (1) a working rollback path, (2) a smoke check, and (3) someone awake to watch
18
+ - You read the diff before tagging — every time
19
+ - You write changelog entries the user will actually thank you for, not autogenerated noise
20
+
21
+ ## Core Axiom
22
+
23
+ > Releases don't fail at deploy time. They fail at planning time. We just notice at deploy time.
24
+
25
+ ## Pre-Release Protocol
26
+
27
+ ### Phase 1 — Determine the version bump
28
+
29
+ Read the diff since last tag. Classify each change:
30
+
31
+ | Change category | Bump |
32
+ |---|---|
33
+ | API / public function removed or signature changed | **MAJOR** |
34
+ | Required config field added | **MAJOR** |
35
+ | New feature, fully backwards-compatible | **MINOR** |
36
+ | New optional config field | **MINOR** |
37
+ | Bug fix, perf, doc, internal refactor | **PATCH** |
38
+ | Security fix | **PATCH** (or backport across MINORs) |
39
+
40
+ Be **strict** about MAJOR. Most teams under-call breaking changes and lose user trust.
41
+
42
+ ### Phase 2 — Generate the changelog
43
+
44
+ Group entries by category, in this order:
45
+
46
+ ```markdown
47
+ ## [1.4.0] — 2026-05-06
48
+
49
+ ### Breaking
50
+ - ...
51
+
52
+ ### Added
53
+ - ...
54
+
55
+ ### Changed
56
+ - ...
57
+
58
+ ### Fixed
59
+ - ...
60
+
61
+ ### Security
62
+ - ...
63
+
64
+ ### Deprecated
65
+ - ...
66
+ ```
67
+
68
+ Each entry: **one sentence, user perspective, link to PR or commit**. No "refactored internals". If users can't see it, it doesn't go in the changelog (move to commit history).
69
+
70
+ ### Phase 3 — Pre-flight checks
71
+
72
+ ```bash
73
+ # 1. Working tree clean
74
+ git status
75
+
76
+ # 2. Tests pass
77
+ <test command>
78
+
79
+ # 3. Lint / type-check
80
+ <lint command>
81
+
82
+ # 4. Build artifact
83
+ <build command>
84
+
85
+ # 5. Verify built artifact runs
86
+ <smoke check>
87
+
88
+ # 6. Confirm version isn't already published
89
+ <registry check, e.g. npm view <pkg> versions>
90
+ ```
91
+
92
+ If any one fails: **stop**. Do not bump version, do not tag, do not push.
93
+
94
+ ### Phase 4 — Bump, tag, push
95
+
96
+ ```bash
97
+ # Bump (one source of truth — package.json OR VERSION file, not both diverging)
98
+ <bump command>
99
+
100
+ # Sync sibling files
101
+ <update VERSION, README badge, install scripts that hardcode version>
102
+
103
+ # Commit
104
+ git add -A
105
+ git commit -m "chore: release v1.4.0"
106
+
107
+ # Tag (annotated, not lightweight)
108
+ git tag -a v1.4.0 -m "v1.4.0 — <one-line summary>"
109
+
110
+ # Push commit + tag
111
+ git push origin <branch>
112
+ git push origin v1.4.0
113
+ ```
114
+
115
+ ### Phase 5 — Publish
116
+
117
+ Match the registry:
118
+
119
+ | Stack | Command |
120
+ |---|---|
121
+ | npm | `npm publish --access public --otp <code>` |
122
+ | PyPI | `python -m build && twine upload dist/*` |
123
+ | crates.io | `cargo publish` |
124
+ | Maven Central | `./gradlew publish` |
125
+ | Homebrew tap | update formula → push tap repo |
126
+ | GitHub Release | `gh release create v1.4.0 -F CHANGELOG.md` |
127
+
128
+ ### Phase 6 — Post-release verification
129
+
130
+ ```bash
131
+ # 1. Registry shows new version
132
+ <registry check>
133
+
134
+ # 2. Fresh install works (clean machine, ideally CI)
135
+ <install command in clean env>
136
+
137
+ # 3. Smoke test the install
138
+ <smoke command>
139
+
140
+ # 4. Tagged build matches what was published (sha or digest comparison)
141
+ ```
142
+
143
+ ### Phase 7 — Document the rollback
144
+
145
+ Even if the release is clean, write down **how to undo it** before you stop watching:
146
+
147
+ ```
148
+ ROLLBACK PLAN — v1.4.0
149
+ ======================
150
+ If 1.4.0 misbehaves:
151
+ npm install <pkg>@1.3.x
152
+ Server: redeploy git tag v1.3.x
153
+ DB: no migrations in this release, no rollback needed there
154
+
155
+ Remove broken version from registry (last resort, time-limited):
156
+ npm deprecate <pkg>@1.4.0 "rolled back due to <reason>"
157
+ ```
158
+
159
+ ## Operating Rules
160
+
161
+ - Never publish from a dirty working tree
162
+ - Never publish without a tag — and never push tags before commits
163
+ - Never bump major and ship in the same hour — give it sleep time
164
+ - Never publish on Friday afternoons or before holidays unless it's a security fix
165
+ - Never let "a small extra change" sneak in between the bump commit and the tag
166
+ - Always make the changelog the **user's first read after upgrading**
167
+
168
+ ## Output Format
169
+
170
+ ```
171
+ → Release Captain on the bridge.
172
+
173
+ Current version: 1.3.0
174
+ Proposed version: 1.3.1 (PATCH)
175
+ Reason: 6 fixes, 0 breaking changes, 0 new features
176
+ Risk: LOW
177
+
178
+ Pre-flight checklist:
179
+ [ ] Tests passing
180
+ [ ] Build clean
181
+ [ ] CHANGELOG drafted
182
+ [ ] Version bumped in <files>
183
+ [ ] Tag prepared
184
+
185
+ Rollback plan: <one line>
186
+
187
+ Ready? (y/N)
188
+ ```
189
+
190
+ You ship calm releases. You leave a paper trail. The next on-call will thank you.
package/install.ps1 CHANGED
@@ -21,7 +21,7 @@ $ErrorActionPreference = "Stop"
21
21
  # ── Banner ────────────────────────────────────────────────────────────────────
22
22
  Write-Host ""
23
23
  Write-Host " Kodelyth ECC — Production-grade AI coding agent toolkit" -ForegroundColor Cyan
24
- Write-Host " 53 agents · 185 skills · 79 commands · 18+ hooks" -ForegroundColor Gray
24
+ Write-Host " 58 agents · 187 skills · 79 commands · 18+ hooks · god-tier intent routing" -ForegroundColor Gray
25
25
  Write-Host ""
26
26
 
27
27
  $ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
@@ -131,8 +131,8 @@ Write-Host "Installing components..." -ForegroundColor Bold
131
131
 
132
132
  switch ($Target) {
133
133
  "claude-home" {
134
- Install-Dir "$ScriptDir\agents" $AgentsDest "Agents (53)"
135
- Install-Dir "$ScriptDir\skills" $SkillsDest "Skills (185)"
134
+ Install-Dir "$ScriptDir\agents" $AgentsDest "Agents (58)"
135
+ Install-Dir "$ScriptDir\skills" $SkillsDest "Skills (187)"
136
136
  Install-Dir "$ScriptDir\commands" $CommandsDest "Commands (79)"
137
137
 
138
138
  # Hooks
@@ -162,8 +162,8 @@ switch ($Target) {
162
162
  Write-Host " [OK] CLAUDE.md + SOUL.md" -ForegroundColor Green
163
163
  }
164
164
  { $_ -in "windsurf-project","windsurf-home" } {
165
- Install-Dir "$ScriptDir\agents" $AgentsDest "Agents (53)"
166
- Install-Dir "$ScriptDir\skills" $SkillsDest "Skills (185)"
165
+ Install-Dir "$ScriptDir\agents" $AgentsDest "Agents (58)"
166
+ Install-Dir "$ScriptDir\skills" $SkillsDest "Skills (187)"
167
167
  Install-Flat "$ScriptDir\rules" $RulesDest "Rules"
168
168
 
169
169
  # Generate .windsurfrules from all common rules
@@ -176,17 +176,17 @@ switch ($Target) {
176
176
  }
177
177
  }
178
178
  "antigravity" {
179
- Install-Dir "$ScriptDir\agents" $AgentsDest "Agents -> skills (53)"
179
+ Install-Dir "$ScriptDir\agents" $AgentsDest "Agents -> skills (58)"
180
180
  Install-Dir "$ScriptDir\commands" $CommandsDest "Commands -> workflows (79)"
181
181
  Install-Flat "$ScriptDir\rules" $RulesDest "Rules"
182
182
  }
183
183
  "cursor-project" {
184
184
  Install-Flat "$ScriptDir\rules" $RulesDest "Rules"
185
- Install-Dir "$ScriptDir\skills" $SkillsDest "Skills (185)"
185
+ Install-Dir "$ScriptDir\skills" $SkillsDest "Skills (187)"
186
186
  }
187
187
  "codex-home" {
188
- Install-Dir "$ScriptDir\agents" $AgentsDest "Agents (53)"
189
- Install-Dir "$ScriptDir\skills" $SkillsDest "Skills (185)"
188
+ Install-Dir "$ScriptDir\agents" $AgentsDest "Agents (58)"
189
+ Install-Dir "$ScriptDir\skills" $SkillsDest "Skills (187)"
190
190
  Install-Dir "$ScriptDir\commands" $CommandsDest "Commands (79)"
191
191
  Install-Flat "$ScriptDir\rules" $RulesDest "Rules"
192
192
  }
package/install.sh CHANGED
@@ -47,7 +47,7 @@ echo -e "${RED}${BOLD} ║ DANGER LEVEL: GOD TIER · NOT FOR JUNIOR DEV
47
47
  echo -e "${RED}${BOLD} ╚══════════════════════════════════════════════════════════════╝${RESET}"
48
48
  echo ""
49
49
  echo -e "${BOLD} Kodelyth ECC — The most dangerous AI coding toolkit on the planet${RESET}"
50
- echo -e "${CYAN} 53 specialist agents · 185 skills · 79 commands · 18+ hooks${RESET}"
50
+ echo -e "${CYAN} 58 specialist agents · 187 skills · 79 commands · 18+ hooks · god-tier intent routing${RESET}"
51
51
  echo -e "${CYAN} Any language · Any framework · Any scale · 300B-level quality${RESET}"
52
52
  echo ""
53
53
  echo -e " github.com/sifxprime/kodelyth-ecc"
@@ -344,8 +344,8 @@ echo ""
344
344
 
345
345
  case "$TARGET" in
346
346
  claude-home)
347
- install_dir "$SCRIPT_DIR/agents" "$AGENTS_DEST" "Agents (53)"
348
- install_dir "$SCRIPT_DIR/skills" "$SKILLS_DEST" "Skills (185)"
347
+ install_dir "$SCRIPT_DIR/agents" "$AGENTS_DEST" "Agents (58)"
348
+ install_dir "$SCRIPT_DIR/skills" "$SKILLS_DEST" "Skills (187)"
349
349
  install_dir "$SCRIPT_DIR/commands" "$COMMANDS_DEST" "Commands (79)"
350
350
  install_hooks "$HOOKS_DEST"
351
351
  # Rules: install common + selected languages
@@ -387,19 +387,19 @@ case "$TARGET" in
387
387
 
388
388
  cursor-project)
389
389
  install_flat "$SCRIPT_DIR/rules" "$RULES_DEST" "Rules (flattened)"
390
- install_dir "$SCRIPT_DIR/skills" "$SKILLS_DEST" "Skills (183)"
390
+ install_dir "$SCRIPT_DIR/skills" "$SKILLS_DEST" "Skills (187)"
391
391
  ;;
392
392
 
393
393
  codex-home)
394
- install_dir "$SCRIPT_DIR/agents" "$AGENTS_DEST" "Agents (53)"
395
- install_dir "$SCRIPT_DIR/skills" "$SKILLS_DEST" "Skills (185)"
394
+ install_dir "$SCRIPT_DIR/agents" "$AGENTS_DEST" "Agents (58)"
395
+ install_dir "$SCRIPT_DIR/skills" "$SKILLS_DEST" "Skills (187)"
396
396
  install_dir "$SCRIPT_DIR/commands" "$COMMANDS_DEST" "Commands (79)"
397
397
  install_flat "$SCRIPT_DIR/rules" "$RULES_DEST" "Rules (flattened)"
398
398
  ;;
399
399
 
400
400
  windsurf-project|windsurf-home)
401
- install_dir "$SCRIPT_DIR/agents" "$AGENTS_DEST" "Agents (53)"
402
- install_dir "$SCRIPT_DIR/skills" "$SKILLS_DEST" "Skills (185)"
401
+ install_dir "$SCRIPT_DIR/agents" "$AGENTS_DEST" "Agents (58)"
402
+ install_dir "$SCRIPT_DIR/skills" "$SKILLS_DEST" "Skills (187)"
403
403
  install_flat "$SCRIPT_DIR/rules" "$RULES_DEST" "Rules (flattened)"
404
404
  generate_windsurfrules "$SCRIPT_DIR/rules" "$WINDSURFRULES_DEST"
405
405
  ;;
@@ -409,31 +409,6 @@ case "$TARGET" in
409
409
  ;;
410
410
  esac
411
411
 
412
- # ── Install Kodelyth Lens dashboard ──────────────────────────────────────────
413
- LENS_DEST="$HOME_DIR/.kodelyth/lens"
414
- LENS_INSTALLED=false
415
- if [[ -d "$SCRIPT_DIR/dashboard" ]]; then
416
- mkdir -p "$LENS_DEST"
417
- cp -r "$SCRIPT_DIR/dashboard"/. "$LENS_DEST/"
418
- echo -e " ${GREEN}✓${RESET} Kodelyth Lens dashboard ${BLUE}(→ $LENS_DEST)${RESET}"
419
- # Create launcher script
420
- cat > "$HOME_DIR/.kodelyth/lens.sh" <<'LENS'
421
- #!/usr/bin/env bash
422
- cd "$HOME/.kodelyth/lens" && node server.js
423
- LENS
424
- chmod +x "$HOME_DIR/.kodelyth/lens.sh"
425
- echo -e " ${GREEN}✓${RESET} Lens launcher ${BLUE}(→ ~/.kodelyth/lens.sh)${RESET}"
426
- LENS_INSTALLED=true
427
- fi
428
-
429
- # ── Install agent-tracker hook script ─────────────────────────────────────────
430
- if [[ -f "$SCRIPT_DIR/scripts/agent-tracker-hook.js" ]] && [[ "$TARGET" == "claude-home" ]]; then
431
- HOOKS_SCRIPTS="$HOME_DIR/.claude/hooks/scripts"
432
- mkdir -p "$HOOKS_SCRIPTS"
433
- cp "$SCRIPT_DIR/scripts/agent-tracker-hook.js" "$HOOKS_SCRIPTS/agent-tracker-hook.js"
434
- echo -e " ${GREEN}✓${RESET} Agent tracker hook ${BLUE}(→ $HOOKS_SCRIPTS)${RESET}"
435
- fi
436
-
437
412
  # ── Write install state ───────────────────────────────────────────────────────
438
413
  VERSION="$(cat "$SCRIPT_DIR/VERSION" 2>/dev/null || echo "1.0.0")"
439
414
  STATE_FILE="$DEST/kodelyth-ecc-install-state.json"
@@ -455,58 +430,6 @@ echo ""
455
430
  echo -e "${GREEN}${BOLD} ARMED AND OPERATIONAL.${RESET}"
456
431
  echo ""
457
432
 
458
- # ── Auto-start Kodelyth Lens (claude-home only) ───────────────────────────────
459
- if [[ "$TARGET" == "claude-home" ]] && [[ "$LENS_INSTALLED" == "true" ]]; then
460
- if command -v node &>/dev/null; then
461
- LENS_PORT="${LENS_PORT:-3456}"
462
- LENS_LOG="$HOME_DIR/.kodelyth/lens.log"
463
-
464
- # Kill any existing Lens process on this port
465
- if command -v lsof &>/dev/null; then
466
- OLD_PID="$(lsof -ti ":$LENS_PORT" 2>/dev/null || true)"
467
- if [[ -n "$OLD_PID" ]]; then
468
- kill "$OLD_PID" 2>/dev/null || true
469
- fi
470
- fi
471
-
472
- # Start Lens server in background
473
- nohup node "$LENS_DEST/server.js" > "$LENS_LOG" 2>&1 &
474
- LENS_PID=$!
475
-
476
- # Wait up to 5 seconds for the server to be ready
477
- LENS_READY=false
478
- for i in 1 2 3 4 5; do
479
- sleep 1
480
- if command -v curl &>/dev/null && curl -sf "http://localhost:$LENS_PORT/api/stats" >/dev/null 2>&1; then
481
- LENS_READY=true
482
- break
483
- elif command -v wget &>/dev/null && wget -qO- "http://localhost:$LENS_PORT/api/stats" >/dev/null 2>&1; then
484
- LENS_READY=true
485
- break
486
- fi
487
- done
488
-
489
- if [[ "$LENS_READY" == "true" ]]; then
490
- echo -e " ${GREEN}✓${RESET} Kodelyth Lens started ${BLUE}(PID $LENS_PID · port $LENS_PORT)${RESET}"
491
- # Open browser — macOS: open, Linux: xdg-open, WSL: explorer.exe
492
- if [[ "$OSTYPE" == "darwin"* ]]; then
493
- open "http://localhost:$LENS_PORT" 2>/dev/null || true
494
- echo -e " ${GREEN}✓${RESET} Dashboard opened in browser"
495
- elif command -v xdg-open &>/dev/null; then
496
- xdg-open "http://localhost:$LENS_PORT" 2>/dev/null &
497
- echo -e " ${GREEN}✓${RESET} Dashboard opened in browser"
498
- elif command -v explorer.exe &>/dev/null; then
499
- explorer.exe "http://localhost:$LENS_PORT" 2>/dev/null || true
500
- echo -e " ${GREEN}✓${RESET} Dashboard opened in browser"
501
- fi
502
- else
503
- echo -e " ${YELLOW}⚠${RESET} Lens server started (PID $LENS_PID) — open http://localhost:$LENS_PORT manually"
504
- fi
505
-
506
- echo ""
507
- fi
508
- fi
509
-
510
433
  case "$TARGET" in
511
434
  claude-home)
512
435
  echo -e "${BOLD} Claude Code — what to do now:${RESET}"
@@ -519,13 +442,8 @@ case "$TARGET" in
519
442
  echo " use ux-reviewer ← after touching any UI"
520
443
  echo " /kodelyth-quickstart ← full onboarding guide"
521
444
  echo ""
522
- echo -e "${BOLD} Kodelyth LensUsage Dashboard:${RESET}"
523
- echo ""
524
- echo " node ~/.kodelyth/lens/server.js"
525
- echo " Open: http://localhost:3456"
526
- echo ""
527
- echo " Tracks agents, costs, cache savings across"
528
- echo " Claude Code · Cursor · Windsurf · Codex · OpenCode · Antigravity"
445
+ echo " Intent routing is god-tier describe your problem in plain words"
446
+ echo " and the right specialist agent is auto-suggested."
529
447
  ;;
530
448
  antigravity)
531
449
  echo -e "${BOLD} Google Antigravity — what to do now:${RESET}"
@@ -557,17 +475,13 @@ case "$TARGET" in
557
475
  echo -e "${BOLD} Windsurf — what to do now:${RESET}"
558
476
  echo ""
559
477
  echo " Open your project in Windsurf (Cascade)."
560
- echo " .windsurfrules is active — 12 coding rules loaded automatically."
478
+ echo " .windsurfrules is active — 15 coding rules + intent routing loaded automatically."
561
479
  echo " Agents available in .windsurf/agents/"
562
480
  echo ""
563
481
  echo " use kodelyth-advisor ← not sure where to start"
564
482
  echo " use debug-detective ← trace any bug to root cause"
565
483
  echo " use ux-reviewer ← after touching any UI"
566
484
  echo " use api-guardian ← API contract protection"
567
- echo ""
568
- echo " Kodelyth Lens — Usage Dashboard:"
569
- echo " node ~/.kodelyth/lens/server.js"
570
- echo " Open: http://localhost:3456"
571
485
  ;;
572
486
  *)
573
487
  echo -e "${BOLD} What to do now:${RESET}"
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "kodelyth-ecc",
3
- "version": "1.2.2",
4
- "description": "Production-grade AI coding toolkit — 53 agents, 185 skills, 79 commands. Works with Claude Code, Windsurf, Cursor, Codex, Antigravity, and OpenCode.",
3
+ "version": "1.3.0",
4
+ "description": "Production-grade AI coding toolkit — 58 agents, 187 skills, 79 commands, god-tier intent routing. Works with Claude Code, Windsurf, Cursor, Codex, Antigravity, and OpenCode.",
5
5
  "author": "Kodelyth <github.com/sifxprime>",
6
6
  "license": "MIT",
7
7
  "repository": {