kodelyth-ecc 1.5.4 → 1.5.6
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/ISSUE_TEMPLATE/bug_report.md +47 -0
- package/.github/ISSUE_TEMPLATE/new_agent.md +52 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +53 -0
- package/CHANGELOG.md +27 -0
- package/CLAUDE.md +15 -1
- package/README.md +4 -4
- package/VERSION +1 -1
- package/agents/debug-detective.md +1 -0
- package/agents/dependency-doctor.md +1 -0
- package/agents/incident-commander.md +1 -0
- package/agents/load-tester.md +1 -0
- package/agents/migration-guide.md +1 -0
- package/agents/pair-programmer.md +1 -0
- package/agents/release-captain.md +1 -0
- package/commands/debug-blitz.md +70 -0
- package/commands/doctor.md +75 -0
- package/commands/onboard.md +72 -0
- package/commands/pre-release.md +66 -0
- package/commands/refactor-sprint.md +77 -0
- package/commands/security-audit.md +66 -0
- package/commands/update.md +92 -0
- package/install.ps1 +16 -11
- package/install.sh +21 -15
- package/package.json +2 -2
- package/rules/common/agents.md +141 -45
- package/rules/elixir/coding-style.md +46 -0
- package/rules/elixir/hooks.md +26 -0
- package/rules/elixir/patterns.md +67 -0
- package/rules/elixir/security.md +58 -0
- package/rules/elixir/testing.md +64 -0
- package/rules/ruby/coding-style.md +41 -0
- package/rules/ruby/hooks.md +23 -0
- package/rules/ruby/patterns.md +71 -0
- package/rules/ruby/security.md +56 -0
- package/rules/ruby/testing.md +65 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Parallel refactor sprint — fires refactor-cleaner + code-simplifier + type-design-analyzer + tdd-guide simultaneously. Full cleanup in one pass.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /refactor-sprint — Parallel Refactor Sprint
|
|
6
|
+
|
|
7
|
+
Four agents clean, simplify, type-harden, and test-cover your code simultaneously. What would take a full day of careful manual work is scoped and planned in 15 minutes.
|
|
8
|
+
|
|
9
|
+
## What Gets Launched in Parallel
|
|
10
|
+
|
|
11
|
+
| Agent | Focus |
|
|
12
|
+
|---|---|
|
|
13
|
+
| `refactor-cleaner` | Dead code, unused imports, duplicate logic, copy-paste debt, tech debt |
|
|
14
|
+
| `code-simplifier` | Complex functions, deep nesting, clever one-liners, readability improvements |
|
|
15
|
+
| `type-design-analyzer` | `any` types, weak discriminated unions, missing type guards, type safety gaps |
|
|
16
|
+
| `tdd-guide` | Test coverage gaps, missing unit tests, untested edge cases, coverage below 80% |
|
|
17
|
+
|
|
18
|
+
## Usage
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
/refactor-sprint # full repo
|
|
22
|
+
/refactor-sprint src/auth/ # focus on a module
|
|
23
|
+
/refactor-sprint --types-only # skip cleanup, focus on type safety
|
|
24
|
+
/refactor-sprint --tests-only # skip cleanup, focus on test coverage
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Report Format
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
## REFACTOR SPRINT REPORT
|
|
31
|
+
|
|
32
|
+
### Dead Code & Debt (refactor-cleaner)
|
|
33
|
+
REMOVE: [files, functions, imports to delete]
|
|
34
|
+
EXTRACT: [duplicated logic to consolidate]
|
|
35
|
+
DEBT: [tech debt items ranked by impact]
|
|
36
|
+
|
|
37
|
+
### Simplification (code-simplifier)
|
|
38
|
+
COMPLEX: [functions that need splitting]
|
|
39
|
+
NESTING: [deep nesting to flatten with early returns]
|
|
40
|
+
READABILITY: [naming and clarity improvements]
|
|
41
|
+
|
|
42
|
+
### Type Safety (type-design-analyzer)
|
|
43
|
+
ANY_USAGE: [locations using any/unknown unsafely]
|
|
44
|
+
WEAK_TYPES:[discriminated unions to strengthen]
|
|
45
|
+
GUARDS: [missing type guards]
|
|
46
|
+
|
|
47
|
+
### Test Coverage (tdd-guide)
|
|
48
|
+
UNCOVERED: [critical paths with no tests]
|
|
49
|
+
GAPS: [edge cases missing]
|
|
50
|
+
PLAN: [test writing priority order]
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
TOTAL DEBT: X items | QUICK WINS: Y items
|
|
54
|
+
RECOMMENDED ORDER: [prioritized action list]
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## When to Use
|
|
58
|
+
|
|
59
|
+
- Before a major feature addition (clean house first)
|
|
60
|
+
- After a fast-moving sprint that accumulated debt
|
|
61
|
+
- Monthly code health pass
|
|
62
|
+
- Before onboarding a new team member
|
|
63
|
+
- When coverage has dropped below 80%
|
|
64
|
+
|
|
65
|
+
## Execute Now
|
|
66
|
+
|
|
67
|
+
Invoking this command is confirmation to proceed. Execute immediately:
|
|
68
|
+
|
|
69
|
+
1. Determine scope from `$ARGUMENTS`. Default: entire current project.
|
|
70
|
+
2. Spawn all agents simultaneously with `run_in_background: true`:
|
|
71
|
+
- `refactor-cleaner` — dead code and duplicate logic audit
|
|
72
|
+
- `code-simplifier` — complexity and readability analysis
|
|
73
|
+
- `type-design-analyzer` — type safety audit
|
|
74
|
+
- `tdd-guide` — test coverage gap analysis
|
|
75
|
+
3. Wait for all to complete.
|
|
76
|
+
4. Aggregate into the Refactor Sprint Report above with a prioritized action list.
|
|
77
|
+
5. End with: "Which area do you want to tackle first?"
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Parallel security audit — fires security-reviewer + dependency-doctor + api-guardian simultaneously. Full threat surface in one command.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /security-audit — Parallel Security Audit
|
|
6
|
+
|
|
7
|
+
Three security-focused agents fire simultaneously. What would take an hour one-by-one finishes in 15 minutes.
|
|
8
|
+
|
|
9
|
+
## What Gets Launched in Parallel
|
|
10
|
+
|
|
11
|
+
| Agent | Focus |
|
|
12
|
+
|---|---|
|
|
13
|
+
| `security-reviewer` | OWASP Top 10, secrets in code, injection, XSS, CSRF, auth gaps, crypto misuse |
|
|
14
|
+
| `dependency-doctor` | CVEs in deps, outdated packages, transitive vulnerabilities, license issues |
|
|
15
|
+
| `api-guardian` | Exposed endpoints, missing auth, broken contracts, data leakage in responses |
|
|
16
|
+
|
|
17
|
+
## Usage
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
/security-audit # full repo
|
|
21
|
+
/security-audit src/auth/ # focus on auth module
|
|
22
|
+
/security-audit --pre-deploy # adds environment + secrets check
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Report Format
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
## SECURITY AUDIT REPORT
|
|
29
|
+
|
|
30
|
+
### Vulnerabilities (security-reviewer)
|
|
31
|
+
CRITICAL: [list]
|
|
32
|
+
HIGH: [list]
|
|
33
|
+
MEDIUM: [list]
|
|
34
|
+
|
|
35
|
+
### Dependencies (dependency-doctor)
|
|
36
|
+
CVE: [list with severity]
|
|
37
|
+
OUTDATED: [list]
|
|
38
|
+
|
|
39
|
+
### API Surface (api-guardian)
|
|
40
|
+
EXPOSED: [list]
|
|
41
|
+
WARN: [list]
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
TOTAL: X critical, Y high, Z medium
|
|
45
|
+
ACTION: [ship / patch first / block]
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## When to Use
|
|
49
|
+
|
|
50
|
+
- Before any production deploy
|
|
51
|
+
- After adding new auth or payment flows
|
|
52
|
+
- When a dep audit flags CVEs
|
|
53
|
+
- Quarterly security health check
|
|
54
|
+
|
|
55
|
+
## Execute Now
|
|
56
|
+
|
|
57
|
+
Invoking this command is confirmation to proceed. Execute immediately:
|
|
58
|
+
|
|
59
|
+
1. Determine scope from `$ARGUMENTS`. Default: entire current project.
|
|
60
|
+
2. Spawn all agents simultaneously with `run_in_background: true`:
|
|
61
|
+
- `security-reviewer` — full OWASP scan of codebase
|
|
62
|
+
- `dependency-doctor` — CVE audit of all package manifests
|
|
63
|
+
- `api-guardian` — API surface exposure check
|
|
64
|
+
3. Wait for all to complete.
|
|
65
|
+
4. Aggregate into the Security Audit Report format above.
|
|
66
|
+
5. End with: "Which vulnerability do you want to fix first?"
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Upgrade Kodelyth ECC to the latest version, preserving your current install target and language profile
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /update
|
|
6
|
+
|
|
7
|
+
Upgrades your ECC install to the latest version from npm. Reads your existing install state to replay the same target and language options automatically — no flags to remember.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
/update
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## What It Does
|
|
16
|
+
|
|
17
|
+
1. Reads `kodelyth-ecc-install-state.json` from your install directory to recover the original `target` and `languages`
|
|
18
|
+
2. Runs `npx kodelyth-ecc@latest` with those same flags
|
|
19
|
+
3. Overwrites agents, skills, rules, and commands with the latest versions
|
|
20
|
+
4. Leaves your memory store (`~/.kodelyth/memory/`) and `tasks/lessons.md` untouched — your learned context is never overwritten
|
|
21
|
+
|
|
22
|
+
## Implementation
|
|
23
|
+
|
|
24
|
+
The agent should run the appropriate command based on your platform.
|
|
25
|
+
|
|
26
|
+
### Automatic (reads install state)
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
node -e "
|
|
30
|
+
const fs = require('fs');
|
|
31
|
+
const os = require('os');
|
|
32
|
+
const path = require('path');
|
|
33
|
+
|
|
34
|
+
const candidates = [
|
|
35
|
+
path.join(os.homedir(), '.claude', 'kodelyth-ecc-install-state.json'),
|
|
36
|
+
path.join(os.homedir(), '.codeium', 'windsurf', 'kodelyth-ecc-install-state.json'),
|
|
37
|
+
path.join(os.homedir(), '.codex', 'kodelyth-ecc-install-state.json'),
|
|
38
|
+
path.join(process.cwd(), '.windsurf', 'kodelyth-ecc-install-state.json'),
|
|
39
|
+
path.join(process.cwd(), '.cursor', 'kodelyth-ecc-install-state.json'),
|
|
40
|
+
path.join(process.cwd(), '.agent', 'kodelyth-ecc-install-state.json'),
|
|
41
|
+
path.join(process.cwd(), '.opencode', 'kodelyth-ecc-install-state.json'),
|
|
42
|
+
];
|
|
43
|
+
|
|
44
|
+
let state = null;
|
|
45
|
+
let stateFile = null;
|
|
46
|
+
for (const f of candidates) {
|
|
47
|
+
if (fs.existsSync(f)) { state = JSON.parse(fs.readFileSync(f, 'utf8')); stateFile = f; break; }
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if (!state) {
|
|
51
|
+
console.error('No install state found. Run the installer manually:');
|
|
52
|
+
console.error(' npx kodelyth-ecc --target <target>');
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const langs = (state.languages || []).join(' ');
|
|
57
|
+
const cmd = ['npx', 'kodelyth-ecc@latest', '--target', state.target, langs].filter(Boolean).join(' ');
|
|
58
|
+
console.log('Found install state:', stateFile);
|
|
59
|
+
console.log('Previous version:', state.version);
|
|
60
|
+
console.log('Running:', cmd);
|
|
61
|
+
require('child_process').execSync(cmd, { stdio: 'inherit' });
|
|
62
|
+
"
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Manual (if you know your target)
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
npx kodelyth-ecc@latest # Claude Code
|
|
69
|
+
npx kodelyth-ecc@latest --target windsurf-home # Windsurf global
|
|
70
|
+
npx kodelyth-ecc@latest --target windsurf-project # Windsurf project
|
|
71
|
+
npx kodelyth-ecc@latest --target codex-home # Codex CLI
|
|
72
|
+
npx kodelyth-ecc@latest --target cursor-project # Cursor
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## What Is NOT Overwritten
|
|
76
|
+
|
|
77
|
+
| Path | Protected |
|
|
78
|
+
|------|-----------|
|
|
79
|
+
| `~/.kodelyth/memory/` | Your BM25 memory store |
|
|
80
|
+
| `tasks/lessons.md` | Project correction rules |
|
|
81
|
+
| `tasks/todo.md` | Open todos |
|
|
82
|
+
|
|
83
|
+
## After Updating
|
|
84
|
+
|
|
85
|
+
Run `/doctor` to confirm the new version is healthy.
|
|
86
|
+
|
|
87
|
+
## Related
|
|
88
|
+
|
|
89
|
+
- `/doctor` — verify install health
|
|
90
|
+
- `use kodelyth-advisor` — guidance after a major version update
|
|
91
|
+
|
|
92
|
+
> Powered by Kodelyth — stay current, stay sharp.
|
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 "
|
|
24
|
+
Write-Host " 62 agents · 188 skills · 90 commands · 20+ hooks · intent routing · local memory" -ForegroundColor Gray
|
|
25
25
|
Write-Host ""
|
|
26
26
|
|
|
27
27
|
$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
@@ -107,6 +107,11 @@ if ($Confirm -and $Confirm -notmatch '^[Yy]$') {
|
|
|
107
107
|
}
|
|
108
108
|
Write-Host ""
|
|
109
109
|
|
|
110
|
+
# ── Dynamic Counts ───────────────────────────────────────────────────────────
|
|
111
|
+
$AgentCount = (Get-ChildItem -Path "$ScriptDir\agents" -Filter "*.md" -File).Count
|
|
112
|
+
$SkillCount = (Get-ChildItem -Path "$ScriptDir\skills" -Recurse -Filter "SKILL.md" -File).Count
|
|
113
|
+
$CmdCount = (Get-ChildItem -Path "$ScriptDir\commands" -Filter "*.md" -File).Count
|
|
114
|
+
|
|
110
115
|
# ── Helpers ───────────────────────────────────────────────────────────────────
|
|
111
116
|
function Install-Dir {
|
|
112
117
|
param([string]$Src, [string]$Dest, [string]$Label)
|
|
@@ -162,12 +167,12 @@ switch ($Target) {
|
|
|
162
167
|
Write-Host " [OK] CLAUDE.md + SOUL.md" -ForegroundColor Green
|
|
163
168
|
}
|
|
164
169
|
{ $_ -in "windsurf-project","windsurf-home" } {
|
|
165
|
-
Install-Dir "$ScriptDir\agents" $AgentsDest "Agents (
|
|
166
|
-
Install-Dir "$ScriptDir\skills" $SkillsDest "Skills (
|
|
170
|
+
Install-Dir "$ScriptDir\agents" $AgentsDest "Agents ($AgentCount)"
|
|
171
|
+
Install-Dir "$ScriptDir\skills" $SkillsDest "Skills ($SkillCount)"
|
|
167
172
|
Install-Flat "$ScriptDir\rules" $RulesDest "Rules"
|
|
168
173
|
|
|
169
174
|
# Generate .windsurfrules from all common rules
|
|
170
|
-
$WindsurfRulesFile = if ($Target -eq "windsurf-project") { "$(Get-Location)\.windsurfrules" } else { "$
|
|
175
|
+
$WindsurfRulesFile = if ($Target -eq "windsurf-project") { "$(Get-Location)\.windsurfrules" } else { "$Dest\.windsurfrules" }
|
|
171
176
|
$CommonRulesDir = "$ScriptDir\rules\common"
|
|
172
177
|
if (Test-Path $CommonRulesDir) {
|
|
173
178
|
$Combined = Get-ChildItem -Path $CommonRulesDir -Filter "*.md" | Sort-Object Name | ForEach-Object { Get-Content $_.FullName }
|
|
@@ -176,18 +181,18 @@ switch ($Target) {
|
|
|
176
181
|
}
|
|
177
182
|
}
|
|
178
183
|
"antigravity" {
|
|
179
|
-
Install-Dir "$ScriptDir\agents" $AgentsDest "Agents -> skills (
|
|
180
|
-
Install-Dir "$ScriptDir\commands" $CommandsDest "Commands -> workflows (
|
|
184
|
+
Install-Dir "$ScriptDir\agents" $AgentsDest "Agents -> skills ($AgentCount)"
|
|
185
|
+
Install-Dir "$ScriptDir\commands" $CommandsDest "Commands -> workflows ($CmdCount)"
|
|
181
186
|
Install-Flat "$ScriptDir\rules" $RulesDest "Rules"
|
|
182
187
|
}
|
|
183
188
|
"cursor-project" {
|
|
184
189
|
Install-Flat "$ScriptDir\rules" $RulesDest "Rules"
|
|
185
|
-
Install-Dir "$ScriptDir\skills" $SkillsDest "Skills (
|
|
190
|
+
Install-Dir "$ScriptDir\skills" $SkillsDest "Skills ($SkillCount)"
|
|
186
191
|
}
|
|
187
192
|
"codex-home" {
|
|
188
|
-
Install-Dir "$ScriptDir\agents" $AgentsDest "Agents (
|
|
189
|
-
Install-Dir "$ScriptDir\skills" $SkillsDest "Skills (
|
|
190
|
-
Install-Dir "$ScriptDir\commands" $CommandsDest "Commands (
|
|
193
|
+
Install-Dir "$ScriptDir\agents" $AgentsDest "Agents ($AgentCount)"
|
|
194
|
+
Install-Dir "$ScriptDir\skills" $SkillsDest "Skills ($SkillCount)"
|
|
195
|
+
Install-Dir "$ScriptDir\commands" $CommandsDest "Commands ($CmdCount)"
|
|
191
196
|
Install-Flat "$ScriptDir\rules" $RulesDest "Rules"
|
|
192
197
|
}
|
|
193
198
|
"opencode" {
|
|
@@ -231,7 +236,7 @@ switch ($Target) {
|
|
|
231
236
|
}
|
|
232
237
|
"codex-home" {
|
|
233
238
|
Write-Host " 1. Restart Codex CLI (codex)"
|
|
234
|
-
Write-Host " 2. All
|
|
239
|
+
Write-Host " 2. All $AgentCount agents and $SkillCount skills are now available"
|
|
235
240
|
Write-Host " 3. Try: use kodelyth-advisor"
|
|
236
241
|
}
|
|
237
242
|
"antigravity" {
|
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}
|
|
50
|
+
echo -e "${CYAN} 62 specialist agents · 188 skills · 88 commands · 20+ 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"
|
|
@@ -87,7 +87,7 @@ while [[ $# -gt 0 ]]; do
|
|
|
87
87
|
TARGET="${1#--target=}"
|
|
88
88
|
shift
|
|
89
89
|
;;
|
|
90
|
-
typescript|python|golang|go|rust|java|kotlin|php|swift|cpp|csharp|dart)
|
|
90
|
+
typescript|python|golang|go|rust|java|kotlin|php|swift|cpp|csharp|dart|ruby|elixir)
|
|
91
91
|
lang="$1"
|
|
92
92
|
[[ "$lang" == "go" ]] && lang="golang"
|
|
93
93
|
LANGUAGE_MODULES+=("$lang")
|
|
@@ -143,7 +143,7 @@ while [[ $# -gt 0 ]]; do
|
|
|
143
143
|
echo " --profile backend Go + Python + Java"
|
|
144
144
|
echo ""
|
|
145
145
|
echo "Languages (manual, installs language-specific rules):"
|
|
146
|
-
echo " typescript python golang rust java kotlin php swift cpp dart"
|
|
146
|
+
echo " typescript python golang rust java kotlin php swift cpp dart ruby elixir"
|
|
147
147
|
echo ""
|
|
148
148
|
echo "Examples:"
|
|
149
149
|
echo " ./install.sh"
|
|
@@ -338,15 +338,20 @@ generate_windsurfrules() {
|
|
|
338
338
|
echo -e " ${GREEN}✓${RESET} .windsurfrules ${BLUE}(→ $dest_file)${RESET}"
|
|
339
339
|
}
|
|
340
340
|
|
|
341
|
+
# ── Dynamic Counts ────────────────────────────────────────────────────────────
|
|
342
|
+
AGENT_COUNT=$(find "$SCRIPT_DIR/agents" -maxdepth 1 -name "*.md" | wc -l | tr -d ' ')
|
|
343
|
+
SKILL_COUNT=$(find "$SCRIPT_DIR/skills" -mindepth 2 -maxdepth 2 -name "SKILL.md" | wc -l | tr -d ' ')
|
|
344
|
+
CMD_COUNT=$(find "$SCRIPT_DIR/commands" -maxdepth 1 -name "*.md" | wc -l | tr -d ' ')
|
|
345
|
+
|
|
341
346
|
# ── Install ───────────────────────────────────────────────────────────────────
|
|
342
347
|
echo -e "${BOLD}Installing components...${RESET}"
|
|
343
348
|
echo ""
|
|
344
349
|
|
|
345
350
|
case "$TARGET" in
|
|
346
351
|
claude-home)
|
|
347
|
-
install_dir "$SCRIPT_DIR/agents" "$AGENTS_DEST" "Agents (
|
|
348
|
-
install_dir "$SCRIPT_DIR/skills" "$SKILLS_DEST" "Skills (
|
|
349
|
-
install_dir "$SCRIPT_DIR/commands" "$COMMANDS_DEST" "Commands (
|
|
352
|
+
install_dir "$SCRIPT_DIR/agents" "$AGENTS_DEST" "Agents ($AGENT_COUNT)"
|
|
353
|
+
install_dir "$SCRIPT_DIR/skills" "$SKILLS_DEST" "Skills ($SKILL_COUNT)"
|
|
354
|
+
install_dir "$SCRIPT_DIR/commands" "$COMMANDS_DEST" "Commands ($CMD_COUNT)"
|
|
350
355
|
install_hooks "$HOOKS_DEST"
|
|
351
356
|
# Rules: install common + selected languages
|
|
352
357
|
mkdir -p "$RULES_DEST"
|
|
@@ -369,9 +374,9 @@ case "$TARGET" in
|
|
|
369
374
|
|
|
370
375
|
antigravity)
|
|
371
376
|
# Agents → .agent/skills/
|
|
372
|
-
install_dir "$SCRIPT_DIR/agents" "$AGENTS_DEST" "Agents → skills (
|
|
377
|
+
install_dir "$SCRIPT_DIR/agents" "$AGENTS_DEST" "Agents → skills ($AGENT_COUNT)"
|
|
373
378
|
# Commands → .agent/workflows/
|
|
374
|
-
install_dir "$SCRIPT_DIR/commands" "$COMMANDS_DEST" "Commands → workflows (
|
|
379
|
+
install_dir "$SCRIPT_DIR/commands" "$COMMANDS_DEST" "Commands → workflows ($CMD_COUNT)"
|
|
375
380
|
# Rules → .agent/rules/ (flattened)
|
|
376
381
|
install_flat "$SCRIPT_DIR/rules" "$RULES_DEST" "Rules (flattened)"
|
|
377
382
|
# Kodelyth skills → .agent/rules/ (flattened — Antigravity has no skills system)
|
|
@@ -387,19 +392,19 @@ case "$TARGET" in
|
|
|
387
392
|
|
|
388
393
|
cursor-project)
|
|
389
394
|
install_flat "$SCRIPT_DIR/rules" "$RULES_DEST" "Rules (flattened)"
|
|
390
|
-
install_dir "$SCRIPT_DIR/skills" "$SKILLS_DEST" "Skills (
|
|
395
|
+
install_dir "$SCRIPT_DIR/skills" "$SKILLS_DEST" "Skills ($SKILL_COUNT)"
|
|
391
396
|
;;
|
|
392
397
|
|
|
393
398
|
codex-home)
|
|
394
|
-
install_dir "$SCRIPT_DIR/agents" "$AGENTS_DEST" "Agents (
|
|
395
|
-
install_dir "$SCRIPT_DIR/skills" "$SKILLS_DEST" "Skills (
|
|
396
|
-
install_dir "$SCRIPT_DIR/commands" "$COMMANDS_DEST" "Commands (
|
|
399
|
+
install_dir "$SCRIPT_DIR/agents" "$AGENTS_DEST" "Agents ($AGENT_COUNT)"
|
|
400
|
+
install_dir "$SCRIPT_DIR/skills" "$SKILLS_DEST" "Skills ($SKILL_COUNT)"
|
|
401
|
+
install_dir "$SCRIPT_DIR/commands" "$COMMANDS_DEST" "Commands ($CMD_COUNT)"
|
|
397
402
|
install_flat "$SCRIPT_DIR/rules" "$RULES_DEST" "Rules (flattened)"
|
|
398
403
|
;;
|
|
399
404
|
|
|
400
405
|
windsurf-project|windsurf-home)
|
|
401
|
-
install_dir "$SCRIPT_DIR/agents" "$AGENTS_DEST" "Agents (
|
|
402
|
-
install_dir "$SCRIPT_DIR/skills" "$SKILLS_DEST" "Skills (
|
|
406
|
+
install_dir "$SCRIPT_DIR/agents" "$AGENTS_DEST" "Agents ($AGENT_COUNT)"
|
|
407
|
+
install_dir "$SCRIPT_DIR/skills" "$SKILLS_DEST" "Skills ($SKILL_COUNT)"
|
|
403
408
|
install_flat "$SCRIPT_DIR/rules" "$RULES_DEST" "Rules (flattened)"
|
|
404
409
|
generate_windsurfrules "$SCRIPT_DIR/rules" "$WINDSURFRULES_DEST"
|
|
405
410
|
;;
|
|
@@ -472,10 +477,11 @@ case "$TARGET" in
|
|
|
472
477
|
echo " use kodelyth-advisor"
|
|
473
478
|
;;
|
|
474
479
|
windsurf-project|windsurf-home)
|
|
480
|
+
RULE_COUNT=$(find "$SCRIPT_DIR/rules/common" -maxdepth 1 -name "*.md" ! -name "agent-intent-routing.md" | wc -l | tr -d ' ')
|
|
475
481
|
echo -e "${BOLD} Windsurf — what to do now:${RESET}"
|
|
476
482
|
echo ""
|
|
477
483
|
echo " Open your project in Windsurf (Cascade)."
|
|
478
|
-
echo " .windsurfrules is active —
|
|
484
|
+
echo " .windsurfrules is active — $RULE_COUNT coding rules + intent routing loaded automatically."
|
|
479
485
|
echo " Agents available in .windsurf/agents/"
|
|
480
486
|
echo ""
|
|
481
487
|
echo " use kodelyth-advisor ← not sure where to start"
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kodelyth-ecc",
|
|
3
|
-
"version": "1.5.
|
|
4
|
-
"description": "Production-grade AI coding toolkit —
|
|
3
|
+
"version": "1.5.6",
|
|
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.",
|
|
5
5
|
"author": "Kodelyth <github.com/sifxprime>",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
package/rules/common/agents.md
CHANGED
|
@@ -1,50 +1,146 @@
|
|
|
1
1
|
# Agent Orchestration
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
| Agent |
|
|
8
|
-
|
|
9
|
-
|
|
|
10
|
-
|
|
|
11
|
-
|
|
|
12
|
-
|
|
|
13
|
-
|
|
|
14
|
-
|
|
|
15
|
-
|
|
|
16
|
-
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
##
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
3
|
+
62 specialist agents are available. Intent routing is always-on — describe your problem in plain words and the right agent is invoked automatically. You can also invoke explicitly: `use <agent-name>`.
|
|
4
|
+
|
|
5
|
+
## Kodelyth Exclusives
|
|
6
|
+
|
|
7
|
+
| Agent | When to Use |
|
|
8
|
+
|-------|-------------|
|
|
9
|
+
| `kodelyth-advisor` | Not sure where to start — master guide |
|
|
10
|
+
| `pair-programmer` | Before writing code — think through approach first |
|
|
11
|
+
| `debug-detective` | Any bug — evidence-first root cause, never guess-and-check |
|
|
12
|
+
| `silent-failure-hunter` | Bugs that don't throw errors |
|
|
13
|
+
| `incident-commander` | Production incident — P0/P1 triage, contain, postmortem |
|
|
14
|
+
| `load-tester` | Load/stress testing — k6, Locust, Artillery, capacity planning |
|
|
15
|
+
| `kodelyth-memory` | Manage local BM25 memory — recall, capture, review |
|
|
16
|
+
| `image-architect` | AI image generation — Gemini/DALL-E/fal.ai/SVG |
|
|
17
|
+
|
|
18
|
+
## Planning & Architecture
|
|
19
|
+
|
|
20
|
+
| Agent | When to Use |
|
|
21
|
+
|-------|-------------|
|
|
22
|
+
| `planner` | Plan a feature before writing a line of code |
|
|
23
|
+
| `architect` | System-level design, dependency graphs |
|
|
24
|
+
| `code-architect` | Code-level architecture decisions |
|
|
25
|
+
| `chief-of-staff` | Strategic decisions, comms, stakeholder updates |
|
|
26
|
+
| `migration-guide` | Framework/language version upgrades, phase by phase |
|
|
27
|
+
|
|
28
|
+
## Code Review
|
|
29
|
+
|
|
30
|
+
| Agent | When to Use |
|
|
31
|
+
|-------|-------------|
|
|
32
|
+
| `code-reviewer` | General review after writing code |
|
|
33
|
+
| `typescript-reviewer` | TypeScript / React / Next.js |
|
|
34
|
+
| `python-reviewer` | Python |
|
|
35
|
+
| `go-reviewer` | Go |
|
|
36
|
+
| `rust-reviewer` | Rust |
|
|
37
|
+
| `java-reviewer` | Java / Spring Boot |
|
|
38
|
+
| `kotlin-reviewer` | Kotlin / Android / KMP |
|
|
39
|
+
| `cpp-reviewer` | C++ |
|
|
40
|
+
| `csharp-reviewer` | C# / .NET |
|
|
41
|
+
| `flutter-reviewer` | Flutter / Dart |
|
|
42
|
+
| `database-reviewer` | SQL schema, query patterns, indexes |
|
|
43
|
+
| `healthcare-reviewer` | PHI/HIPAA-aware review for healthcare apps |
|
|
44
|
+
|
|
45
|
+
## Build Fixers
|
|
46
|
+
|
|
47
|
+
| Agent | When to Use |
|
|
48
|
+
|-------|-------------|
|
|
49
|
+
| `build-error-resolver` | General build failure |
|
|
50
|
+
| `go-build-resolver` | Go build errors |
|
|
51
|
+
| `rust-build-resolver` | Rust/Cargo build errors |
|
|
52
|
+
| `java-build-resolver` | Java/Maven/Gradle build errors |
|
|
53
|
+
| `kotlin-build-resolver` | Kotlin/Gradle build errors |
|
|
54
|
+
| `cpp-build-resolver` | C++/CMake/Make build errors |
|
|
55
|
+
| `dart-build-resolver` | Dart/Flutter build errors |
|
|
56
|
+
| `pytorch-build-resolver` | PyTorch/CUDA build errors |
|
|
57
|
+
| `dependency-doctor` | npm/pip/cargo/maven dep hell, CVEs, lockfile drift |
|
|
58
|
+
| `env-debugger` | "Works on my machine" — env, config, secrets layers |
|
|
59
|
+
|
|
60
|
+
## Debugging & Testing
|
|
61
|
+
|
|
62
|
+
| Agent | When to Use |
|
|
63
|
+
|-------|-------------|
|
|
64
|
+
| `tdd-guide` | Write tests first — TDD methodology |
|
|
65
|
+
| `e2e-runner` | End-to-end test automation |
|
|
66
|
+
| `pr-test-analyzer` | CI output — root cause failing tests |
|
|
67
|
+
| `flake-hunter` | Flaky test stabilization — never blind retries |
|
|
68
|
+
|
|
69
|
+
## Security & API
|
|
70
|
+
|
|
71
|
+
| Agent | When to Use |
|
|
72
|
+
|-------|-------------|
|
|
73
|
+
| `security-reviewer` | OWASP top 10, secrets, auth, injection vectors |
|
|
74
|
+
| `api-guardian` | Detect breaking API changes before they ship |
|
|
75
|
+
|
|
76
|
+
## Performance & Quality
|
|
77
|
+
|
|
78
|
+
| Agent | When to Use |
|
|
79
|
+
|-------|-------------|
|
|
80
|
+
| `performance-optimizer` | Profiling-first — measure before optimizing |
|
|
81
|
+
| `refactor-cleaner` | Remove code smells, dead code, tech debt |
|
|
82
|
+
| `code-simplifier` | Improve readability without changing behavior |
|
|
83
|
+
| `type-design-analyzer` | TypeScript type system design |
|
|
84
|
+
|
|
85
|
+
## Documentation & Analysis
|
|
86
|
+
|
|
87
|
+
| Agent | When to Use |
|
|
88
|
+
|-------|-------------|
|
|
89
|
+
| `doc-updater` | Update or write documentation |
|
|
90
|
+
| `docs-lookup` | Find docs for a library or API |
|
|
91
|
+
| `comment-analyzer` | Audit code comments for accuracy |
|
|
92
|
+
| `code-explorer` | Explore an unfamiliar codebase |
|
|
93
|
+
| `conversation-analyzer` | Analyze conversation or chat patterns |
|
|
94
|
+
|
|
95
|
+
## Release & Ops
|
|
96
|
+
|
|
97
|
+
| Agent | When to Use |
|
|
98
|
+
|-------|-------------|
|
|
99
|
+
| `release-captain` | Cut a clean release — semver, tagging, rollback plan |
|
|
100
|
+
| `git-rescue` | Broken git state, lost commits, bad rebase — no history loss |
|
|
101
|
+
|
|
102
|
+
## Open Source
|
|
103
|
+
|
|
104
|
+
| Agent | When to Use |
|
|
105
|
+
|-------|-------------|
|
|
106
|
+
| `opensource-forker` | Fork and clean a project for open-source release |
|
|
107
|
+
| `opensource-sanitizer` | Strip secrets, PII, proprietary references |
|
|
108
|
+
| `opensource-packager` | README, license, contribution docs |
|
|
109
|
+
|
|
110
|
+
## Specialized
|
|
111
|
+
|
|
112
|
+
| Agent | When to Use |
|
|
113
|
+
|-------|-------------|
|
|
114
|
+
| `ux-reviewer` | UX behavior + WCAG 2.1 AA accessibility |
|
|
115
|
+
| `seo-specialist` | Technical SEO, structured data, rankings |
|
|
116
|
+
|
|
117
|
+
## GAN Harness (Multi-Agent)
|
|
118
|
+
|
|
119
|
+
| Agent | When to Use |
|
|
120
|
+
|-------|-------------|
|
|
121
|
+
| `gan-planner` | Plan a GAN-style generator/evaluator workflow |
|
|
122
|
+
| `gan-generator` | Generate output in a GAN harness loop |
|
|
123
|
+
| `gan-evaluator` | Evaluate output and provide adversarial feedback |
|
|
124
|
+
| `harness-optimizer` | Optimize agent harness action spaces |
|
|
125
|
+
| `loop-operator` | Operate autonomous agent loops |
|
|
126
|
+
|
|
127
|
+
## Parallel Execution
|
|
128
|
+
|
|
129
|
+
ALWAYS launch independent agents in parallel:
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
# GOOD: parallel
|
|
133
|
+
use code-reviewer + security-reviewer + ux-reviewer simultaneously
|
|
134
|
+
|
|
135
|
+
# BAD: sequential when not needed
|
|
136
|
+
code-reviewer → then security-reviewer → then ux-reviewer
|
|
41
137
|
```
|
|
42
138
|
|
|
43
|
-
##
|
|
139
|
+
## Standard Handoff Chains
|
|
44
140
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
141
|
+
| Workflow | Chain |
|
|
142
|
+
|----------|-------|
|
|
143
|
+
| New feature | `pair-programmer` → `tdd-guide` → `code-reviewer` → `security-reviewer` |
|
|
144
|
+
| Bug fix | `debug-detective` → `tdd-guide` → `refactor-cleaner` |
|
|
145
|
+
| Production incident | `incident-commander` → `debug-detective` → `tdd-guide` |
|
|
146
|
+
| Open-source | `opensource-forker` → `opensource-sanitizer` → `opensource-packager` → `release-captain` |
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "**/*.ex"
|
|
4
|
+
- "**/*.exs"
|
|
5
|
+
---
|
|
6
|
+
# Elixir Coding Style
|
|
7
|
+
|
|
8
|
+
> This file extends [common/coding-style.md](../common/coding-style.md) with Elixir specific content.
|
|
9
|
+
|
|
10
|
+
## Standards
|
|
11
|
+
|
|
12
|
+
- Follow the official **Elixir Style Guide**
|
|
13
|
+
- Use **mix format** — non-negotiable, always auto-format
|
|
14
|
+
- All public functions must have `@spec` type annotations and `@doc` documentation
|
|
15
|
+
|
|
16
|
+
## Immutability
|
|
17
|
+
|
|
18
|
+
Data is immutable by default in Elixir. Embrace it:
|
|
19
|
+
|
|
20
|
+
```elixir
|
|
21
|
+
# Use the pipe operator for data transformations
|
|
22
|
+
result =
|
|
23
|
+
input
|
|
24
|
+
|> validate()
|
|
25
|
+
|> transform()
|
|
26
|
+
|> persist()
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Function Heads Over Conditionals
|
|
30
|
+
|
|
31
|
+
```elixir
|
|
32
|
+
# Prefer pattern-matched function heads over cond/case at the top level
|
|
33
|
+
def process(%{status: :active} = user), do: activate(user)
|
|
34
|
+
def process(%{status: :banned} = user), do: reject(user)
|
|
35
|
+
def process(_user), do: {:error, :unknown_status}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Formatting
|
|
39
|
+
|
|
40
|
+
- **mix format** — run on every save
|
|
41
|
+
- **Credo** for code quality and style checks
|
|
42
|
+
- Line length: 98 characters (mix format default)
|
|
43
|
+
|
|
44
|
+
## Reference
|
|
45
|
+
|
|
46
|
+
See skill: `elixir-patterns` for comprehensive GenServer, Phoenix, and OTP patterns.
|