kodelyth-ecc 1.5.9 → 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.
Files changed (123) hide show
  1. package/.github/workflows/publish.yml +19 -0
  2. package/AGENTS.md +1 -1
  3. package/CHANGELOG.md +455 -0
  4. package/CLAUDE.md +48 -16
  5. package/README.md +265 -81
  6. package/VERSION +1 -1
  7. package/actions/ecc-review/README.md +243 -0
  8. package/actions/ecc-review/action.yml +158 -0
  9. package/actions/ecc-review/post-comment.js +171 -0
  10. package/actions/ecc-review/run-review.js +285 -0
  11. package/agents/backdoor-hunter.md +260 -0
  12. package/agents/chaos-engineer.md +251 -0
  13. package/agents/code-stealer-detector.md +228 -0
  14. package/agents/jailbreak-tester.md +222 -0
  15. package/agents/license-violation-finder.md +212 -0
  16. package/agents/prompt-injection-hunter.md +126 -0
  17. package/agents/secret-hunter.md +209 -0
  18. package/agents/supply-chain-auditor.md +195 -0
  19. package/bin/kodelyth-ecc.js +875 -1
  20. package/bundles/enterprise.md +172 -0
  21. package/bundles/indie-hacker.md +106 -0
  22. package/bundles/red-team.md +138 -0
  23. package/cat +0 -0
  24. package/commands/dashboard.md +67 -0
  25. package/commands/devil-mode.md +121 -0
  26. package/commands/memory-evolve.md +71 -0
  27. package/commands/replay.md +61 -0
  28. package/commands/route-model.md +48 -0
  29. package/commands/swarm.md +68 -0
  30. package/commands/verify-supply-chain.md +59 -0
  31. package/docs/dashboard.md +211 -0
  32. package/docs/evolve.md +303 -0
  33. package/docs/mcp-clients.md +167 -0
  34. package/docs/mcp.md +178 -0
  35. package/docs/replay.md +244 -0
  36. package/docs/supply-chain.md +207 -0
  37. package/docs/swarm.md +243 -0
  38. package/hooks/hooks.json +52 -0
  39. package/hooks/memory/auto-recall.js +29 -1
  40. package/hooks/safety/README.md +124 -0
  41. package/hooks/safety/lib/patterns.js +179 -0
  42. package/hooks/safety/prompt-injection-guard.js +179 -0
  43. package/hooks/safety/token-budget.js +229 -0
  44. package/install.ps1 +199 -2
  45. package/install.sh +286 -4
  46. package/package.json +30 -4
  47. package/rules/common/agent-intent-routing.md +182 -0
  48. package/rules/common/cost-aware-model-routing.md +152 -0
  49. package/scripts/dashboard/data.js +353 -0
  50. package/scripts/dashboard/server.js +324 -0
  51. package/scripts/dashboard/static/index.html +645 -0
  52. package/scripts/evolve/analyze.js +303 -0
  53. package/scripts/evolve/proposals.js +162 -0
  54. package/scripts/evolve/stats.js +219 -0
  55. package/scripts/mcp/catalog.js +244 -0
  56. package/scripts/mcp/client.js +181 -0
  57. package/scripts/mcp/prompts.js +133 -0
  58. package/scripts/mcp/resources.js +94 -0
  59. package/scripts/mcp/server.js +153 -0
  60. package/scripts/mcp/tools.js +465 -0
  61. package/scripts/replay/bundle.js +191 -0
  62. package/scripts/replay/replay.js +107 -0
  63. package/scripts/router/classify.js +232 -0
  64. package/scripts/supply-chain/manifest.js +154 -0
  65. package/scripts/supply-chain/sbom.js +202 -0
  66. package/scripts/supply-chain/verify.js +102 -0
  67. package/scripts/swarm/build-plan.js +193 -0
  68. package/skills/cost-aware-model-routing/SKILL.md +153 -0
  69. package/skills/kodelyth-quickstart/SKILL.md +7 -0
  70. package/skills/observability-dashboard/SKILL.md +119 -0
  71. package/skills/self-evolving-memory/SKILL.md +175 -0
  72. package/skills/session-replay/SKILL.md +199 -0
  73. package/skills/supply-chain-verification/SKILL.md +201 -0
  74. package/skills/swarm-orchestrator/SKILL.md +177 -0
  75. package/social/card-install.svg +1 -1
  76. package/social/facebook-group/POST.md +121 -0
  77. package/social/facebook-group/fb-1-3am-debug.png +0 -0
  78. package/social/facebook-group/fb-1-3am-debug.svg +97 -0
  79. package/social/facebook-group/fb-2-cpu-upgrade.png +0 -0
  80. package/social/facebook-group/fb-2-cpu-upgrade.svg +132 -0
  81. package/social/facebook-group/fb-3-before-after.png +0 -0
  82. package/social/facebook-group/fb-3-before-after.svg +94 -0
  83. package/social/facebook-v150.svg +5 -5
  84. package/social/github-social-preview.svg +119 -100
  85. package/social/readme-hero.svg +11 -11
  86. package/social/section-agents.svg +57 -0
  87. package/social/section-author.svg +54 -0
  88. package/social/section-dashboard.svg +59 -0
  89. package/social/section-devil.svg +54 -0
  90. package/social/section-hooks.svg +51 -0
  91. package/social/section-install.svg +42 -0
  92. package/social/section-learning.svg +52 -0
  93. package/social/section-mcp.svg +46 -0
  94. package/social/section-memory.svg +57 -0
  95. package/social/section-parallel.svg +72 -0
  96. package/social/section-routing.svg +51 -0
  97. package/social/x-card-agents-grid.svg +6 -6
  98. package/tests/dashboard/data.test.js +235 -0
  99. package/tests/dashboard/server.test.js +240 -0
  100. package/tests/evolve/analyze.test.js +169 -0
  101. package/tests/evolve/proposals.test.js +173 -0
  102. package/tests/evolve/stats.test.js +159 -0
  103. package/tests/mcp/catalog.test.js +98 -0
  104. package/tests/mcp/client.test.js +109 -0
  105. package/tests/mcp/resources-prompts.test.js +70 -0
  106. package/tests/mcp/tools.test.js +159 -0
  107. package/tests/replay/bundle.test.js +181 -0
  108. package/tests/replay/replay.test.js +131 -0
  109. package/tests/router/classify.test.js +164 -0
  110. package/tests/safety/patterns.test.js +94 -0
  111. package/tests/safety/prompt-injection-guard.test.js +111 -0
  112. package/tests/safety/token-budget.test.js +119 -0
  113. package/tests/supply-chain/manifest.test.js +147 -0
  114. package/tests/supply-chain/sbom.test.js +170 -0
  115. package/tests/supply-chain/verify.test.js +146 -0
  116. package/tests/swarm/build-plan.test.js +188 -0
  117. package/wiki/Agent-Reference.md +58 -7
  118. package/wiki/FAQ.md +204 -7
  119. package/wiki/Home.md +104 -28
  120. package/wiki/Hook-Reference.md +1 -1
  121. package/wiki/Installation-Guide.md +109 -6
  122. package/wiki/Platform-Support.md +239 -25
  123. package/wiki/Skill-Reference.md +101 -6
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} 62 specialist agents · 188 skills · 90 commands · 20+ hooks · intent routing · compound memory${RESET}"
50
+ echo -e "${CYAN} 70 specialist agents (8 devil-mode) · 194 skills · 97 commands · 22+ hooks · intent routing · compound memory${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"
@@ -75,6 +75,7 @@ else
75
75
  fi
76
76
  TARGET="claude-home"
77
77
  LANGUAGE_MODULES=()
78
+ BUNDLE=""
78
79
 
79
80
  # ── Parse Arguments ───────────────────────────────────────────────────────────
80
81
  while [[ $# -gt 0 ]]; do
@@ -93,6 +94,57 @@ while [[ $# -gt 0 ]]; do
93
94
  LANGUAGE_MODULES+=("$lang")
94
95
  shift
95
96
  ;;
97
+ --bundle)
98
+ case "$2" in
99
+ indie-hacker|indie)
100
+ BUNDLE="indie-hacker"
101
+ LANGUAGE_MODULES+=("typescript" "python")
102
+ echo -e "${CYAN}Bundle: Indie Hacker → ship-fast workflow + TS/Python${RESET}"
103
+ ;;
104
+ red-team|redteam|security)
105
+ BUNDLE="red-team"
106
+ LANGUAGE_MODULES+=("typescript" "python")
107
+ echo -e "${CYAN}Bundle: Red Team → adversarial mindset + devil-mode crew${RESET}"
108
+ ;;
109
+ enterprise|compliance)
110
+ BUNDLE="enterprise"
111
+ LANGUAGE_MODULES+=("typescript" "java" "python")
112
+ echo -e "${CYAN}Bundle: Enterprise → compliance + audit + supply chain${RESET}"
113
+ ;;
114
+ *)
115
+ echo -e "${RED}Unknown bundle: $2${RESET}"
116
+ echo "Available bundles: indie-hacker, red-team, enterprise"
117
+ exit 1
118
+ ;;
119
+ esac
120
+ shift 2
121
+ ;;
122
+ --bundle=*)
123
+ bundle_val="${1#--bundle=}"
124
+ case "$bundle_val" in
125
+ indie-hacker|indie)
126
+ BUNDLE="indie-hacker"
127
+ LANGUAGE_MODULES+=("typescript" "python")
128
+ echo -e "${CYAN}Bundle: Indie Hacker → ship-fast workflow + TS/Python${RESET}"
129
+ ;;
130
+ red-team|redteam|security)
131
+ BUNDLE="red-team"
132
+ LANGUAGE_MODULES+=("typescript" "python")
133
+ echo -e "${CYAN}Bundle: Red Team → adversarial mindset + devil-mode crew${RESET}"
134
+ ;;
135
+ enterprise|compliance)
136
+ BUNDLE="enterprise"
137
+ LANGUAGE_MODULES+=("typescript" "java" "python")
138
+ echo -e "${CYAN}Bundle: Enterprise → compliance + audit + supply chain${RESET}"
139
+ ;;
140
+ *)
141
+ echo -e "${RED}Unknown bundle: $bundle_val${RESET}"
142
+ echo "Available bundles: indie-hacker, red-team, enterprise"
143
+ exit 1
144
+ ;;
145
+ esac
146
+ shift
147
+ ;;
96
148
  --profile)
97
149
  case "$2" in
98
150
  nextjs|next)
@@ -127,13 +179,24 @@ while [[ $# -gt 0 ]]; do
127
179
  echo "Usage: $0 [--target TARGET] [--profile PROFILE] [language...]"
128
180
  echo ""
129
181
  echo "Targets:"
130
- echo " claude-home Claude Code global install (default)"
182
+ echo " claude-home Claude Code global install (default)"
131
183
  echo " antigravity Google Antigravity (.agent/ in project)"
132
184
  echo " cursor-project Cursor IDE (.cursor/ in project)"
133
185
  echo " windsurf-project Windsurf IDE (.windsurf/ + .windsurfrules in project)"
134
186
  echo " windsurf-home Windsurf IDE global (~/.codeium/windsurf/)"
135
187
  echo " codex-home OpenAI Codex CLI (~/.codex/)"
136
188
  echo " opencode OpenCode (.opencode/ in project)"
189
+ echo " cline Cline VS Code agent (.clinerules/ in project)"
190
+ echo " roocode Roo Code agent (.roo/ in project)"
191
+ echo " aider Aider terminal agent (.aider-ecc/ + CONVENTIONS.md)"
192
+ echo " kimi Kimi Code (.kimi/ in project)"
193
+ echo " gemini-project Gemini CLI — project (.gemini/ in project)"
194
+ echo " gemini-home Gemini CLI — global (~/.gemini/)"
195
+ echo ""
196
+ echo "Bundles (audience-tailored — installs everything + curated cheat sheet):"
197
+ echo " --bundle indie-hacker Solo founders / SaaS — ship fast, validate, harden"
198
+ echo " --bundle red-team Security engineers — devil-mode crew + adversarial workflows"
199
+ echo " --bundle enterprise Compliance / audit teams — SBOM, license, supply chain"
137
200
  echo ""
138
201
  echo "Profiles (pre-built language bundles):"
139
202
  echo " --profile nextjs TypeScript + React + Next.js"
@@ -235,9 +298,69 @@ case "$TARGET" in
235
298
  RULES_DEST="$DEST/rules"
236
299
  INSTALL_MODE="project"
237
300
  ;;
301
+ cline)
302
+ # Cline (VS Code AI agent) reads markdown rules from .clinerules/
303
+ DEST="$(pwd)/.clinerules"
304
+ AGENTS_DEST=""
305
+ SKILLS_DEST=""
306
+ COMMANDS_DEST=""
307
+ HOOKS_DEST=""
308
+ RULES_DEST="$DEST"
309
+ INSTALL_MODE="project"
310
+ ;;
311
+ roocode)
312
+ # Roo Code (VS Code AI agent, Cline fork) reads from .roo/
313
+ DEST="$(pwd)/.roo"
314
+ AGENTS_DEST="$DEST/agents"
315
+ SKILLS_DEST="$DEST/skills"
316
+ COMMANDS_DEST="$DEST/commands"
317
+ HOOKS_DEST=""
318
+ RULES_DEST="$DEST/rules"
319
+ INSTALL_MODE="project"
320
+ ;;
321
+ aider)
322
+ # Aider (terminal pair-programmer) reads from CONVENTIONS.md and .aider-ecc/
323
+ DEST="$(pwd)/.aider-ecc"
324
+ AGENTS_DEST="$DEST/agents"
325
+ SKILLS_DEST="$DEST/skills"
326
+ COMMANDS_DEST="$DEST/commands"
327
+ HOOKS_DEST=""
328
+ RULES_DEST="$DEST/rules"
329
+ INSTALL_MODE="project"
330
+ ;;
331
+ kimi)
332
+ # Kimi Code (Moonshot CLI agent) reads from .kimi/
333
+ DEST="$(pwd)/.kimi"
334
+ AGENTS_DEST="$DEST/agents"
335
+ SKILLS_DEST="$DEST/skills"
336
+ COMMANDS_DEST="$DEST/commands"
337
+ HOOKS_DEST=""
338
+ RULES_DEST="$DEST/rules"
339
+ INSTALL_MODE="project"
340
+ ;;
341
+ gemini-project)
342
+ # Gemini CLI reads GEMINI.md + .gemini/
343
+ DEST="$(pwd)/.gemini"
344
+ AGENTS_DEST="$DEST/agents"
345
+ SKILLS_DEST="$DEST/skills"
346
+ COMMANDS_DEST=""
347
+ HOOKS_DEST=""
348
+ RULES_DEST="$DEST/rules"
349
+ INSTALL_MODE="project"
350
+ ;;
351
+ gemini-home)
352
+ # Gemini CLI global install
353
+ DEST="$HOME_DIR/.gemini"
354
+ AGENTS_DEST="$DEST/agents"
355
+ SKILLS_DEST="$DEST/skills"
356
+ COMMANDS_DEST=""
357
+ HOOKS_DEST=""
358
+ RULES_DEST="$DEST/rules"
359
+ INSTALL_MODE="user"
360
+ ;;
238
361
  *)
239
362
  echo -e "${RED}Unknown target: $TARGET${RESET}"
240
- echo "Valid targets: claude-home, antigravity, cursor-project, windsurf-project, windsurf-home, codex-home, opencode"
363
+ echo "Valid targets: claude-home, antigravity, cursor-project, windsurf-project, windsurf-home, codex-home, opencode, cline, roocode, aider, kimi, gemini-project, gemini-home"
241
364
  exit 1
242
365
  ;;
243
366
  esac
@@ -363,7 +486,7 @@ case "$TARGET" in
363
486
  cp -r "$SCRIPT_DIR/rules/common"/. "$RULES_DEST/"
364
487
  echo -e " ${GREEN}✓${RESET} Rules (common) ${BLUE}(→ $RULES_DEST)${RESET}"
365
488
  fi
366
- for lang in "${LANGUAGE_MODULES[@]}"; do
489
+ for lang in "${LANGUAGE_MODULES[@]+"${LANGUAGE_MODULES[@]}"}"; do
367
490
  if [[ -d "$SCRIPT_DIR/rules/$lang" ]]; then
368
491
  mkdir -p "$RULES_DEST/$lang"
369
492
  cp -r "$SCRIPT_DIR/rules/$lang"/. "$RULES_DEST/$lang/"
@@ -416,8 +539,100 @@ case "$TARGET" in
416
539
  opencode)
417
540
  install_flat "$SCRIPT_DIR/rules" "$RULES_DEST" "Rules (flattened)"
418
541
  ;;
542
+
543
+ cline)
544
+ # Cline reads everything in .clinerules/ as markdown — flatten the lot
545
+ install_flat "$SCRIPT_DIR/rules" "$RULES_DEST" "Rules (flattened)"
546
+ install_flat "$SCRIPT_DIR/agents" "$RULES_DEST" "Agents (flattened → rules)"
547
+ install_flat "$SCRIPT_DIR/commands" "$RULES_DEST" "Commands (flattened → rules)"
548
+ ;;
549
+
550
+ roocode)
551
+ install_dir "$SCRIPT_DIR/agents" "$AGENTS_DEST" "Agents ($AGENT_COUNT)"
552
+ install_dir "$SCRIPT_DIR/skills" "$SKILLS_DEST" "Skills ($SKILL_COUNT)"
553
+ install_dir "$SCRIPT_DIR/commands" "$COMMANDS_DEST" "Commands ($CMD_COUNT)"
554
+ install_flat "$SCRIPT_DIR/rules" "$RULES_DEST" "Rules (flattened)"
555
+ ;;
556
+
557
+ aider)
558
+ install_dir "$SCRIPT_DIR/agents" "$AGENTS_DEST" "Agents ($AGENT_COUNT)"
559
+ install_dir "$SCRIPT_DIR/skills" "$SKILLS_DEST" "Skills ($SKILL_COUNT)"
560
+ install_dir "$SCRIPT_DIR/commands" "$COMMANDS_DEST" "Commands ($CMD_COUNT)"
561
+ install_flat "$SCRIPT_DIR/rules" "$RULES_DEST" "Rules (flattened)"
562
+ # Aider integration: write a CONVENTIONS.md at project root that points to .aider-ecc/
563
+ CONVENTIONS_FILE="$(pwd)/CONVENTIONS.md"
564
+ if [[ ! -f "$CONVENTIONS_FILE" ]]; then
565
+ cat > "$CONVENTIONS_FILE" <<'AIDER_EOF'
566
+ # Project Conventions (Aider)
567
+
568
+ This project uses **Kodelyth ECC** for AI agent guidance.
569
+
570
+ Aider auto-loads this file. To bring full ECC context into your session:
571
+
572
+ ```bash
573
+ aider --read .aider-ecc/rules/agent-intent-routing.md \
574
+ --read .aider-ecc/rules/coding-standards.md \
575
+ --read .aider-ecc/rules/self-improvement-workflow.md
576
+ ```
577
+
578
+ For a specialist agent, also read its file:
579
+
580
+ ```bash
581
+ aider --read .aider-ecc/agents/debug-detective.md
582
+ aider --read .aider-ecc/agents/security-reviewer.md
583
+ aider --read .aider-ecc/agents/prompt-injection-hunter.md
584
+ ```
585
+
586
+ Full catalog: `.aider-ecc/agents/`, `.aider-ecc/skills/`, `.aider-ecc/commands/`, `.aider-ecc/rules/`.
587
+
588
+ Powered by Kodelyth ECC — github.com/sifxprime/kodelyth-ecc
589
+ AIDER_EOF
590
+ echo -e " ${GREEN}✓${RESET} CONVENTIONS.md ${BLUE}(→ $CONVENTIONS_FILE)${RESET}"
591
+ else
592
+ echo -e " ${YELLOW}·${RESET} CONVENTIONS.md exists — not overwriting (manually add: --read .aider-ecc/rules/agent-intent-routing.md)"
593
+ fi
594
+ ;;
595
+
596
+ kimi)
597
+ install_dir "$SCRIPT_DIR/agents" "$AGENTS_DEST" "Agents ($AGENT_COUNT)"
598
+ install_dir "$SCRIPT_DIR/skills" "$SKILLS_DEST" "Skills ($SKILL_COUNT)"
599
+ install_dir "$SCRIPT_DIR/commands" "$COMMANDS_DEST" "Commands ($CMD_COUNT)"
600
+ install_flat "$SCRIPT_DIR/rules" "$RULES_DEST" "Rules (flattened)"
601
+ ;;
602
+
603
+ gemini-project|gemini-home)
604
+ install_dir "$SCRIPT_DIR/agents" "$AGENTS_DEST" "Agents ($AGENT_COUNT)"
605
+ install_dir "$SCRIPT_DIR/skills" "$SKILLS_DEST" "Skills ($SKILL_COUNT)"
606
+ install_flat "$SCRIPT_DIR/rules" "$RULES_DEST" "Rules (flattened)"
607
+ # Gemini CLI integration: write a GEMINI.md at the install location
608
+ GEMINI_FILE="$DEST/GEMINI.md"
609
+ if [[ ! -f "$GEMINI_FILE" ]]; then
610
+ cat > "$GEMINI_FILE" <<'GEMINI_EOF'
611
+ # Kodelyth ECC — Gemini CLI context
612
+
613
+ This project uses Kodelyth ECC — 70 specialist agents, 194 skills, 97 commands, intent routing, and self-learning memory.
614
+
615
+ The full toolkit is installed under this directory:
616
+
617
+ - `agents/` — specialist subagents (debug-detective, security-reviewer, devil-mode crew)
618
+ - `skills/` — domain knowledge files
619
+ - `rules/` — always-on coding standards + intent routing rule
620
+
621
+ The `agent-intent-routing.md` rule maps plain-language requests to the right specialist. Read `agents/<name>.md` to invoke a specialist explicitly.
622
+
623
+ For more: github.com/sifxprime/kodelyth-ecc
624
+ GEMINI_EOF
625
+ echo -e " ${GREEN}✓${RESET} GEMINI.md ${BLUE}(→ $GEMINI_FILE)${RESET}"
626
+ fi
627
+ ;;
419
628
  esac
420
629
 
630
+ # ── Install bundle cheat sheet (if --bundle was set) ──────────────────────────
631
+ if [[ -n "$BUNDLE" ]] && [[ -f "$SCRIPT_DIR/bundles/$BUNDLE.md" ]]; then
632
+ cp "$SCRIPT_DIR/bundles/$BUNDLE.md" "$DEST/BUNDLE.md"
633
+ echo -e " ${GREEN}✓${RESET} Bundle cheat sheet (${BOLD}$BUNDLE${RESET}) ${BLUE}(→ $DEST/BUNDLE.md)${RESET}"
634
+ fi
635
+
421
636
  # ── Write install state ───────────────────────────────────────────────────────
422
637
  VERSION="$(cat "$SCRIPT_DIR/VERSION" 2>/dev/null || echo "1.0.0")"
423
638
  STATE_FILE="$DEST/kodelyth-ecc-install-state.json"
@@ -426,12 +641,35 @@ cat > "$STATE_FILE" <<EOF
426
641
  "installed_by": "kodelyth-ecc",
427
642
  "version": "$VERSION",
428
643
  "target": "$TARGET",
644
+ "bundle": "$BUNDLE",
429
645
  "installed_at": "$(date -u +%Y-%m-%dT%H:%M:%SZ)",
430
646
  "languages": $(printf '%s\n' "${LANGUAGE_MODULES[@]+"${LANGUAGE_MODULES[@]}"}" | jq -R . | jq -s . 2>/dev/null || echo "[]")
431
647
  }
432
648
  EOF
433
649
  echo -e " ${GREEN}✓${RESET} Install state ${BLUE}(→ $STATE_FILE)${RESET}"
434
650
 
651
+ # ── Bundle-specific reminder ──────────────────────────────────────────────────
652
+ if [[ -n "$BUNDLE" ]]; then
653
+ echo ""
654
+ case "$BUNDLE" in
655
+ indie-hacker)
656
+ echo -e "${BOLD}${CYAN} Bundle: Indie Hacker is active.${RESET}"
657
+ echo " Lead with: /project-launch (new) • /tdd • /devil-mode --pre-public (before going public)"
658
+ echo " Read: $DEST/BUNDLE.md for the full ship-fast playbook."
659
+ ;;
660
+ red-team)
661
+ echo -e "${BOLD}${RED} Bundle: Red Team is active.${RESET}"
662
+ echo " Lead with: /devil-mode (4-agent sweep) • /devil-mode --all (full 8-agent crew)"
663
+ echo " Read: $DEST/BUNDLE.md for the adversarial workflow playbook."
664
+ ;;
665
+ enterprise)
666
+ echo -e "${BOLD}${CYAN} Bundle: Enterprise is active.${RESET}"
667
+ echo " Lead with: /team-review (per-PR) • /pre-release (per-tag) • /devil-mode --pre-launch"
668
+ echo " Read: $DEST/BUNDLE.md for the compliance + audit playbook."
669
+ ;;
670
+ esac
671
+ fi
672
+
435
673
  # ── Done ──────────────────────────────────────────────────────────────────────
436
674
  echo ""
437
675
  echo -e " ─────────────────────────────────────────────────────────────"
@@ -493,6 +731,50 @@ case "$TARGET" in
493
731
  echo " use ux-reviewer ← after touching any UI"
494
732
  echo " use api-guardian ← API contract protection"
495
733
  ;;
734
+ cline)
735
+ echo -e "${BOLD} Cline (VS Code) — what to do now:${RESET}"
736
+ echo ""
737
+ echo " Open the project in VS Code with Cline installed."
738
+ echo " Cline auto-loads .clinerules/ — all 70 agents, rules, and commands as markdown context."
739
+ echo " Ask: 'use debug-detective' / 'review my code' / 'devil mode the codebase'"
740
+ ;;
741
+ roocode)
742
+ echo -e "${BOLD} Roo Code — what to do now:${RESET}"
743
+ echo ""
744
+ echo " Open the project in VS Code with Roo Code."
745
+ echo " Rules, agents, skills, commands installed under .roo/"
746
+ echo " Ask: 'use kodelyth-advisor' or 'use debug-detective'"
747
+ ;;
748
+ aider)
749
+ echo -e "${BOLD} Aider — what to do now:${RESET}"
750
+ echo ""
751
+ echo " CONVENTIONS.md created at project root — Aider auto-reads it."
752
+ echo " Full ECC toolkit under .aider-ecc/"
753
+ echo ""
754
+ echo " Recommended startup:"
755
+ echo " aider --read .aider-ecc/rules/agent-intent-routing.md \\"
756
+ echo " --read .aider-ecc/rules/coding-standards.md"
757
+ echo ""
758
+ echo " Then describe your problem in plain words; intent routing fires."
759
+ ;;
760
+ kimi)
761
+ echo -e "${BOLD} Kimi Code — what to do now:${RESET}"
762
+ echo ""
763
+ echo " Open the project with Kimi CLI."
764
+ echo " Rules, agents, skills, commands installed under .kimi/"
765
+ echo " Ask: 'use kodelyth-advisor'"
766
+ ;;
767
+ gemini-project|gemini-home)
768
+ echo -e "${BOLD} Gemini CLI — what to do now:${RESET}"
769
+ echo ""
770
+ if [[ "$TARGET" == "gemini-project" ]]; then
771
+ echo " Project install at .gemini/ + GEMINI.md auto-loaded by Gemini CLI."
772
+ else
773
+ echo " Global install at ~/.gemini/ + GEMINI.md auto-loaded by Gemini CLI."
774
+ fi
775
+ echo " Agents in agents/, skills in skills/, rules in rules/"
776
+ echo " Ask: 'use debug-detective' or 'use kodelyth-advisor'"
777
+ ;;
496
778
  *)
497
779
  echo -e "${BOLD} What to do now:${RESET}"
498
780
  echo " Restart your AI agent. Rules, agents, and skills are live."
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "kodelyth-ecc",
3
- "version": "1.5.9",
4
- "description": "Production-grade AI coding toolkit — 62 agents, 188 skills, 90 commands, parallel multi-agent commands, semantic intent routing, self-learning memory. Works with Claude Code, Windsurf, Cursor, Codex, Antigravity, and OpenCode.",
3
+ "version": "1.7.0",
4
+ "description": "Production-grade AI coding toolkit — 70 agents (incl. devil-mode adversarial crew), 194 skills, 97 commands, parallel multi-agent commands, semantic intent routing, self-learning memory, and a built-in MCP server (16 tools / 6 prompts / 377 resources) that bridges to Claude Desktop, LangGraph, AutoGen, CrewAI, and OpenAI Agents SDK. Works with Claude Code, Windsurf, Cursor, Codex, Antigravity, OpenCode, Cline, RooCode, Aider, Kimi, and Gemini CLI.",
5
5
  "author": "Kodelyth <github.com/sifxprime>",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -16,25 +16,51 @@
16
16
  "codex",
17
17
  "antigravity",
18
18
  "opencode",
19
+ "cline",
20
+ "roocode",
21
+ "aider",
22
+ "gemini-cli",
19
23
  "ai-agents",
24
+ "ai-coding",
20
25
  "coding-toolkit",
26
+ "developer-tools",
21
27
  "llm",
28
+ "llm-tools",
22
29
  "memory",
23
30
  "self-learning",
24
31
  "auto-recall",
32
+ "intent-routing",
33
+ "semantic-routing",
34
+ "agent-orchestration",
25
35
  "incident-response",
26
36
  "load-testing",
27
37
  "kodelyth",
28
38
  "image-generation",
29
39
  "parallel-agents",
30
40
  "multi-agent",
31
- "project-launch"
41
+ "project-launch",
42
+ "mcp",
43
+ "model-context-protocol",
44
+ "devil-mode",
45
+ "red-team",
46
+ "adversarial",
47
+ "dashboard",
48
+ "observability",
49
+ "bm25",
50
+ "local-memory",
51
+ "hooks",
52
+ "slash-commands",
53
+ "productivity"
32
54
  ],
33
55
  "bin": {
34
56
  "kodelyth-ecc": "bin/kodelyth-ecc.js"
35
57
  },
36
58
  "scripts": {
37
- "test": "node tests/run-all.js"
59
+ "test": "node tests/run-all.js",
60
+ "mcp": "node scripts/mcp/server.js"
61
+ },
62
+ "optionalDependencies": {
63
+ "@modelcontextprotocol/sdk": "^1.0.4"
38
64
  },
39
65
  "engines": {
40
66
  "node": ">=18.0.0"
@@ -12,6 +12,8 @@ If multiple agents match, pick the **highest priority** below (priority decrease
12
12
 
13
13
  **Never silently route.** Always be transparent about which agent is taking over.
14
14
 
15
+ > **Companion rule:** [`cost-aware-model-routing`](./cost-aware-model-routing.md) handles the orthogonal question of _which model tier_ to use for the routed task. They run together — agent routing picks the specialist; model routing picks the right tier so the team isn't burning frontier-model tokens on doc typos.
16
+
15
17
  ---
16
18
 
17
19
  ## How to Apply This Rule — Semantic Intent, Not Keyword Matching
@@ -143,6 +145,81 @@ Trigger if the user describes **what they're about to build** before they start.
143
145
  | Input handling | "user input", "sanitize", "escape", "validation", "user-submitted data" |
144
146
  | Worry signal | "I'm worried this might be insecure", "is there a risk here", "could someone exploit this" |
145
147
 
148
+ ### Devil-Mode Adversarial Crew (8 specialists — attacker mindset)
149
+
150
+ These 8 agents look at the same code an attacker would. Route to them when the user shows signs of adversarial thinking, supply-chain worry, AI safety concern, or pre-public-launch paranoia.
151
+
152
+ #### `prompt-injection-hunter` — AI-feature attack-surface review
153
+
154
+ | Signal | Real human phrasing |
155
+ |---|---|
156
+ | AI feature audit | "is my AI feature safe?", "can my agent be jailbroken?", "review my prompts", "audit my LLM integration" |
157
+ | Prompt safety | "prompt injection", "indirect injection", "system prompt leak", "tool hijacking", "RAG security" |
158
+ | MCP server review | "is this MCP server safe?", "audit my MCP integration", "agent tool security" |
159
+
160
+ #### `supply-chain-auditor` — Dependency & install-script attacker review
161
+
162
+ | Signal | Real human phrasing |
163
+ |---|---|
164
+ | Dep paranoia | "is this package safe?", "could this dep be malicious?", "typosquat", "dependency confusion", "is npm install safe?" |
165
+ | Lockfile concern | "lockfile drift", "should I trust this dep?", "audit my deps for malware", "what's in my node_modules" |
166
+ | Recent CVE worry | "is this CVE in my supply chain", "compromised package alert", "is `<pkg>` malicious now?" |
167
+
168
+ #### `secret-hunter` — Leaked credential hunt
169
+
170
+ | Signal | Real human phrasing |
171
+ |---|---|
172
+ | Leak worry | "did I leak any secrets?", "scan for API keys", "any tokens in my code?", "secret scanner", "credentials in git" |
173
+ | Pre-public | "I'm about to make this public, any secrets in history?", "before I go open-source check secrets" |
174
+ | Bundled to client | "are my env vars exposed to the browser?", "is `process.env.X` leaking to the client?" |
175
+ | Rotate event | "rotated my keys, did I miss any?", "post-incident sweep" |
176
+
177
+ #### `license-violation-finder` — IP / copyleft contamination audit
178
+
179
+ | Signal | Real human phrasing |
180
+ |---|---|
181
+ | License audit | "license audit", "are my deps GPL?", "license compatibility", "copyleft check", "AGPL contamination" |
182
+ | Going public | "before I open-source, license audit", "any license issues with my deps?" |
183
+ | Due diligence | "M&A license review", "investor due diligence", "what licenses are in my distribution" |
184
+ | Attribution | "do I need to add attribution?", "missing THIRD-PARTY.md", "MIT license requirements" |
185
+
186
+ #### `jailbreak-tester` — Live AI feature red-team
187
+
188
+ | Signal | Real human phrasing |
189
+ |---|---|
190
+ | AI red-team | "red-team my AI", "test my chatbot for jailbreaks", "can my LLM be tricked?", "AI safety testing" |
191
+ | Pre-launch AI | "launching an AI feature, is it safe?", "production AI safety check", "test my agent for refusal bypasses" |
192
+ | Overrefusal | "my AI refuses too much", "false refusals", "my chatbot won't answer normal questions" |
193
+
194
+ #### `code-stealer-detector` — Code provenance audit
195
+
196
+ | Signal | Real human phrasing |
197
+ |---|---|
198
+ | Provenance | "where did this code come from?", "provenance check", "audit copy-paste origin", "is this Stack Overflow code?" |
199
+ | AI-generated | "audit AI-generated code", "Copilot-written code provenance", "is my LLM-generated code safe to ship?" |
200
+ | Pre-public | "before going open-source, check code origins", "M&A IP audit", "due diligence code review" |
201
+ | Style break | "this code looks pasted", "doesn't match our style", "audit unusual code blocks" |
202
+
203
+ #### `backdoor-hunter` — Malicious-code pattern detection
204
+
205
+ | Signal | Real human phrasing |
206
+ |---|---|
207
+ | Malware suspicion | "is this code malicious?", "look for backdoors", "obfuscated code", "what does this eval do?", "scan for hidden payloads" |
208
+ | Post-compromise | "after a security incident, sweep the code", "vendor said they were compromised, audit my install" |
209
+ | Vendored review | "audit this vendored library", "review this third-party code dump", "contractor code review for malice" |
210
+ | Suspicious CI | "weird stuff happening in my CI", "build is doing things it shouldn't", "unexplained network calls" |
211
+
212
+ #### `chaos-engineer` — Adversarial reliability / fault injection
213
+
214
+ | Signal | Real human phrasing |
215
+ |---|---|
216
+ | Resilience | "test my system's resilience", "chaos engineering", "fault injection", "what happens if X dies?" |
217
+ | Pre-launch readiness | "is my system production-ready under failure?", "test failure modes before launch" |
218
+ | Hidden assumption | "what hidden assumptions am I making?", "what could break?", "stress my dependencies" |
219
+ | Game day | "schedule a game day", "team chaos exercise", "training for incidents" |
220
+
221
+ **Counter-signal (for all devil-mode agents):** General quality concern not framed adversarially → use the standard `code-reviewer` / `security-reviewer` / `performance-optimizer`. Route to devil-mode only when the user is explicitly thinking like an attacker or asking pre-public/pre-launch questions.
222
+
146
223
  ### `api-guardian` — API contract changes
147
224
 
148
225
  | Signal | Real human phrasing |
@@ -343,6 +420,71 @@ Trigger for non-code workflow tasks: drafting emails, scheduling, status updates
343
420
 
344
421
  Use the chain: `forker` → `sanitizer` → `packager`.
345
422
 
423
+ ### `/dashboard` — Local observability dashboard
424
+
425
+ Trigger when the user wants to inspect ECC's live data — memory store, session history, agent catalog, token budget, or evolve proposals — through a browser UI.
426
+
427
+ | Signal | Real human phrasing |
428
+ |---|---|
429
+ | Open dashboard | "open the dashboard", "launch the dashboard", "show me the dashboard", "start the dashboard" |
430
+ | Inspect memory | "show me what's in my memory", "browse my sessions", "see my memory store", "view past solutions" |
431
+ | View catalog | "show me the agent catalog", "list my agents in the UI", "see all skills in a browser" |
432
+ | Token budget | "what's my token budget", "see budget snapshot", "token usage overview" |
433
+ | Evolve tab | "show evolve proposals", "see what skills ECC proposed", "evolve tab", "review memory proposals" |
434
+
435
+ **How:** run `npx kodelyth-ecc dashboard` — opens `http://localhost:3141` in the default browser. GET-only, localhost-only, zero telemetry.
436
+
437
+ ### `/swarm` — Parallel agent swarm in git worktrees
438
+
439
+ Trigger when the user wants to run a task across multiple parallel agents simultaneously, each in an isolated git worktree — the maximum-throughput execution mode.
440
+
441
+ | Signal | Real human phrasing |
442
+ |---|---|
443
+ | Swarm request | "use the swarm", "run a swarm", "swarm this", "parallel swarm on this task", "launch swarm" |
444
+ | Parallel worktrees | "run agents in parallel", "use git worktrees", "spawn multiple agents at once", "parallel execution" |
445
+ | Scale a task | "give me maximum throughput on this", "throw all agents at this", "run this with maximum agents" |
446
+ | Speed concern | "how do I run this as fast as possible", "I want to parallelize this analysis", "fastest path" |
447
+
448
+ **How:** `npx kodelyth-ecc swarm --task "<description>"` — spawns parallel agents in isolated git worktrees, aggregates results.
449
+
450
+ ### `/route-model` — Cost-aware model selection
451
+
452
+ Trigger when the user is unsure which model tier to use for a task, wants to minimize cost, or is asking about the right model for a specific job.
453
+
454
+ | Signal | Real human phrasing |
455
+ |---|---|
456
+ | Model choice | "which model should I use", "what model for this task", "haiku or sonnet?", "should I use opus here" |
457
+ | Cost concern | "cheapest model for this", "save tokens on this", "what's the cost-efficient choice", "not worth opus" |
458
+ | Tier question | "is this a trivial or complex task tier", "which tier for X", "model selection", "right model tier" |
459
+ | Route a task | "route this task", "what does the router say", "model router", "cost-aware routing" |
460
+
461
+ **How:** `npx kodelyth-ecc route "<task description>"` — returns the recommended model tier with reasoning.
462
+
463
+ ### `/memory-evolve` — Self-evolving memory proposals
464
+
465
+ Trigger when the user wants to see what patterns ECC has learned from their usage and review proposals for new skills or routing rules derived from that data.
466
+
467
+ | Signal | Real human phrasing |
468
+ |---|---|
469
+ | Evolve proposals | "show evolve proposals", "what has ECC learned", "memory evolution", "evolve my toolkit" |
470
+ | Skill upgrades | "suggest new skills from usage", "what skills should I add", "my memory patterns", "recurring solutions" |
471
+ | Routing additions | "suggest routing improvements", "what routing misses happened", "improve my intent routing from usage" |
472
+ | Review proposals | "review pending proposals", "accept or reject proposals", "what did the analyzer find" |
473
+
474
+ **How:** `npx kodelyth-ecc evolve analyze` — analyzes BM25 memory surface data + routing misses, outputs proposals. Nothing auto-applies — the user reviews, accepts, and commits.
475
+
476
+ ### `/replay` — Session replay
477
+
478
+ Trigger when the user wants to re-run or review a past session bundle — reproducing a past agent workflow exactly.
479
+
480
+ | Signal | Real human phrasing |
481
+ |---|---|
482
+ | Replay request | "replay a session", "re-run that session", "session replay", "run the session bundle again" |
483
+ | Review past work | "what happened in that session", "reproduce that workflow", "play back the session" |
484
+ | Bundle | "session bundle", "kodelyth.session-bundle", "export and replay", "portable session" |
485
+
486
+ **How:** `npx kodelyth-ecc replay <bundle-name>` — re-runs the session bundle, restoring agent context and workflow.
487
+
346
488
  ---
347
489
 
348
490
  ## Priority 10 — Multi-Agent Patterns
@@ -448,6 +590,27 @@ Route to `/security-audit` — fires `security-reviewer` + `dependency-doctor` +
448
590
 
449
591
  ---
450
592
 
593
+ ### `/devil-mode` — Full adversarial parallel sweep
594
+
595
+ Trigger when the user wants the **attacker mindset** applied to their entire codebase, not just one concern. Stronger than `/security-audit` — it hunts secrets, supply-chain attacks, prompt injection, and backdoors all at once. Always trigger before going open-source, before any public launch, after any security alert, or when the user mentions multiple adversarial concerns together.
596
+
597
+ | Signal | Real human phrasing |
598
+ |---|---|
599
+ | Attacker mindset | "think like an attacker", "what would a hacker find?", "red-team my code", "adversarial review", "find what's exploitable" |
600
+ | Pre-public sweep | "I'm going open-source — full audit", "making this public, scan for everything", "before I publish, full red-team" |
601
+ | Multi-vector worry | User mentions secrets AND deps AND AI-feature security AND backdoors together |
602
+ | Post-compromise | "we were hacked, audit everything", "compromise alert, sweep the codebase", "after the incident, full review" |
603
+ | Pre-launch paranoia | "launching tomorrow, find everything", "find what we missed", "what's the worst case in my code?" |
604
+ | Devil mode keyword | "devil mode", "go feral on this", "throw everything at it", "no-mercy audit", "paranoid review" |
605
+
606
+ **Key rule:** Standard security concern with one or two angles → `/security-audit`. Multi-vector adversarial sweep, going public, or attacker-mindset framing → `/devil-mode`.
607
+
608
+ **Counter-signals (do NOT route here):** Single-angle question (just secrets, just AI safety, just deps) → individual devil-mode agent. Code quality (not adversarial) → `/team-review`.
609
+
610
+ Route to `/devil-mode` — fires `prompt-injection-hunter` + `supply-chain-auditor` + `secret-hunter` + `backdoor-hunter` simultaneously. Use `/devil-mode --all` to fire all 8 (also adds `license-violation-finder` + `code-stealer-detector` + `jailbreak-tester` + `chaos-engineer`). Use `/devil-mode --pre-public` for the open-source sweep, or `/devil-mode --pre-launch` for the launch readiness sweep.
611
+
612
+ ---
613
+
451
614
  ### `/pre-release` — Ship-readiness parallel check
452
615
 
453
616
  Trigger when the user is about to cut a release, tag a version, or deploy to production and wants confidence everything is correct. Also trigger when they mention "release" + "check" or "ready to ship" + version number.
@@ -602,12 +765,31 @@ When the user's request spans multiple concerns, name the parallel agents and ex
602
765
  | "clean up this whole module, add types and tests" | `/refactor-sprint` | Multi-concern quality |
603
766
  | "this code is a mess, full cleanup needed" | `/refactor-sprint` | Technical debt + scope |
604
767
  | "I just joined this team, where do I start?" | `/onboard` | New-joiner onboarding |
768
+ | "think like an attacker, sweep my code" | `/devil-mode` | Attacker mindset trigger |
769
+ | "going open-source, full audit before publish" | `/devil-mode --pre-public` | Pre-public adversarial sweep |
770
+ | "we were hacked, audit everything" | `/devil-mode --all` | Post-compromise full sweep |
771
+ | "is my AI feature jailbreak-safe?" | `prompt-injection-hunter` | AI-feature attack surface |
772
+ | "did I leak secrets in git history?" | `secret-hunter` | Credential leak hunt |
773
+ | "could this npm package be malicious?" | `supply-chain-auditor` | Dep paranoia |
774
+ | "audit my deps for GPL contamination" | `license-violation-finder` | Copyleft check |
775
+ | "is this code copy-pasted from somewhere?" | `code-stealer-detector` | Provenance audit |
776
+ | "scan this vendored lib for backdoors" | `backdoor-hunter` | Malicious-code scan |
777
+ | "red-team my chatbot for jailbreaks" | `jailbreak-tester` | Live AI red-team |
778
+ | "what hidden assumptions could break us?" | `chaos-engineer` | Fault-injection planning |
605
779
  | "inherited this codebase, help me understand it" | `/onboard` | Unfamiliar codebase |
606
780
  | "remember we always use pnpm here" | `/lessons` | Preference to encode |
607
781
  | "what rules do we follow in this project?" | `/lessons` | Load lessons |
608
782
  | "from now on never use var" | `/lessons` | Rule to save |
609
783
  | [user pastes code with no text] | `code-reviewer` | Implicit review |
610
784
  | [user pastes stack trace with no text] | `debug-detective` | Implicit debug |
785
+ | "open the dashboard" | `/dashboard` | Local observability UI |
786
+ | "show me what's in my memory store" | `/dashboard` | Memory inspection |
787
+ | "run a swarm on this task" | `/swarm` | Parallel agent execution |
788
+ | "which model should I use for this?" | `/route-model` | Cost-aware model routing |
789
+ | "what has ECC learned from my usage?" | `/memory-evolve` | Evolve proposals review |
790
+ | "replay that session bundle" | `/replay` | Session reproduction |
791
+ | "show evolve proposals" | `/memory-evolve` | Pending skill/routing proposals |
792
+ | "fastest way to run this across agents" | `/swarm` | Maximum-throughput execution |
611
793
 
612
794
  ---
613
795