Borrowing it
Nothing to install: this file belongs to Black-coffe/vulyk. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/Black-coffe/vulyk/main/.claude/commands/vulyk-evolve.mdgit clone --depth 1 https://github.com/Black-coffe/vulykWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/black-coffe/vulyk/vulyk-evolve)<a href="https://agentmods.dev/commands/black-coffe/vulyk/vulyk-evolve"><img src="https://agentmods.dev/badge/commands/black-coffe/vulyk/vulyk-evolve/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/commands/black-coffe/vulyk/vulyk-evolve"><img src="https://agentmods.dev/badge/commands/black-coffe/vulyk/vulyk-evolve.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00033 | $0.03769 |
| Opus 5.5 | $0.00013 | $0.01508 |
| Sonnet 5.5 | $0.00007 | $0.00754 |
| Haiku 4.5 | $0.00003 | $0.00377 |
Grade A, and why
vulyk-evolve scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 94 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Run the evolution cycle. Use the insight-harvester and skill-gardener skills - they define the method. "$ARGUMENTS"
Nobody has to remember this command: the SessionStart brief says maintenance due: ... evolve (...) when it never ran, or ran 7+ days ago with a council round since, and the Queen runs it after the owner's task, on the default branch with a clean tree.
-
Ledger (
memory/stats/evolve.jsonl, owned byscripts/evolve-ledger.py). Runbash scripts/py.sh scripts/evolve-ledger.py . resolve- it records the owner's verdict on earlier changesets from git (merged = accepted, branch deleted unmerged = rejected; add--reason-for <branch>=<text>when the owner gave one) - thenbash scripts/py.sh scripts/evolve-ledger.py . windowand read it before anything else. A hypothesis it shows rejected is not proposed again unless this run's evidence is newer than the rejection. Ifbash scripts/py.sh scripts/evolve-ledger.py . pendingnames a branch, stop: tell the owner in one line that<branch>waits for review (merge to accept, delete the branch to reject) and propose nothing new. -
Harvest. Read
memory/learnings/(raw + CONSOLIDATED),memory/stats/skills.json, and - if the user can paste it - the output of the built-in/insightscommand (ask once; proceed without it if unavailable). Then the week's spend:bash scripts/py.sh scripts/token-report.py . --since "$(date -u -d '-7 days' +%Y-%m-%d 2>/dev/null || date -u -v-7d +%Y-%m-%d)", printed as-is - one line per spec with raw and weighted tokens, dispatches and rounds. That report is the spend; thetotalTokensa Workflow run prints is a sum of final contexts and never counts as spend. A spec whose dispatches or rounds stand out is evidence for step 3's friction list. Then the owner's corrections of the week and how many reacheddocs/defects/. The lexicon is the intake hook's own (--lexicon), and the reader is litopys 0.4.0+corrections. Run the block as written. It prints one line and blocks nothing:X="$(mktemp)"; bash .claude/hooks/defect-intake.sh --lexicon > "$X"; L=""; OUT=""; seen=0 while IFS= read -r c; do # PATH's copy first, then cached copies newest first: the first with the verb wins [ -f "$c" ] || continue; seen=1 if OUT="$(bash "$c" corrections --since "$(date -u -d '-7 days' +%Y-%m-%d 2>/dev/null || date -u -v-7d +%Y-%m-%d)" --lexicon "$X" 2>/dev/null)"; then L="$c"; break; fi done < <(command -v litopys; ls -d "$HOME"/.claude/plugins/cache/litopys/litopys/*/bin/litopys 2>/dev/null | sort -rV) if [ -n "$L" ]; then # a quote opening with ">" is a relayed side-agent note: model text, not the owner's r=$(printf '%s\n' "$OUT" | grep -c ' · «> '); OUT="$(printf '%s\n' "$OUT" | grep -v ' · «> ')" n=$(printf '%s\n' "$OUT" | grep -c ' · lexicon · '); m=$(printf '%s\n' "$OUT" | grep -c ' · record · '); u=0 while IFS= read -r l; do q="${l#*«}"; q="${q%»}"; grep -rqF -- "$q" docs/defects 2>/dev/null || u=$((u+1)); done \ < <(printf '%s\n' "$OUT" | grep -E ' · (lexicon|record) · ') echo "corrections (7d): $n by lexicon · $m in records · $u not in docs/defects · $r relayed notes left out" elif [ "$seen" = 1 ]; then echo "corrections: no installed litopys has the corrections verb - update it to 0.4.0+" else echo "corrections: litopys not installed - no count"; fi rm -f "$X"A line counts as filed when
docs/defects/holds it verbatim. The lexicon also catches remarks that are not corrections, so treat the three numbers as a lead with its n, never as a rate on their own. A remark that is not filed is evidence for step 3: file its quote into the matching card (Law 6), not a new rule in prose. -
Council check-in (read-only; nothing here writes anything). If
memory/stats/council.jsonldoes not exist, printcouncil: no rounds yetand skip to step 3. Otherwise run the sameawkpass/vulyk-statusstep 2 uses, restricted to the last 7 days:SINCE="$(date -u -d '-7 days' +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || date -u -v-7d +%Y-%m-%dT%H:%M:%SZ)" awk -v since="$SINCE" ' { match($0, /"ts":"[^"]*"/); ts=substr($0, RSTART+6, RLENGTH-7) } ts < since { next } { match($0, /"spec":"[^"]*"/); spec=substr($0, RSTART+8, RLENGTH-9) } { match($0, /"round":[0-9]+/); round=substr($0, RSTART+8, RLENGTH-8) } { match($0, /"verdict":"[^"]*"/); verdict=substr($0, RSTART+11, RLENGTH-12) } { specs[spec]=1 if (verdict=="GREEN" && (!(spec in firstgreen) || round+0 < firstgreen[spec]+0)) firstgreen[spec]=round if (verdict=="ESCALATE") escalations++ } END { n=0; for (s in specs) n++ g=0; for (s in firstgreen) { g++; rounds[g]=firstgreen[s]+0 } for (i=1;i<=g;i++) for (j=i+1;j<=g;j++) if (rounds[j]<rounds[i]) { t=rounds[i]; rounds[i]=rounds[j]; rounds[j]=t } med=0; if (g>0) { if (g%2==1) med=rounds[(g+1)/2]; else med=(rounds[g/2]+rounds[g/2+1])/2 } printf "specs:%d median:%s escalations:%d\n", n, med, escalations+0 } ' memory/stats/council.jsonlplus the same escaped-defect grep as
/vulyk-statusstep 2, restricted to briefs whose file mtime falls in the last 7 days (date -r <brief.md> +%svs.date -u -d '-7 days' +%s 2>/dev/null || date -u -v-7d +%s). Printcouncil (7d): <specs> specs · median <n> rounds to green · <n> escalations · <n> escaped defects. Then the comparison the grill names -human.jsonlrows with"verdict":"REJECTED"in the same window:awk -v since="$SINCE" ' { match($0, /"ts":"[^"]*"/); ts=substr($0, RSTART+6, RLENGTH-7) } ts < since { next } $0 ~ /"verdict":"REJECTED"/ { c++ } END { print c+0 } ' memory/stats/human.jsonlPrint
human.jsonl REJECTED (7d): <n>. Every number in this step is printed with its n, and none of them proves a trend on its own: a week holds a handful of specs, so a count of 0-2 against 0-2 is noise (report rrsi-self-improvement §1). Nothing in this step applies anything; it feeds step 3's diagnosis the wayskills.jsonalready does.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today Changed ed05605160cd
- 2d ago Changed · +2 lines 9b6cdd4597e2
- 1mo ago Changed · +30 lines 03c68ddcae09
- 1mo ago Changed · +1 lines · +3 tokens per session 46ac097d8ac4
- 1mo ago Changed · +14 lines 4e66ca485067
- 1mo ago Changed · +33 lines · +7 tokens per session 6876d4daf3e6
- 2mo ago First seen · 14 lines · 23 tokens per session scan A dbed3e71ca41
vulyk-evolve is a command published in the GitHub repository Black-coffe/vulyk (2 stars, last pushed today), licensed MIT. It adds 33 tokens to every session and 3,769 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other commands, from other repositories
audit-agents-skills
Audit quality of agents, skills, and commands in a Claude Code project.
security-audit
Comprehensive security audit of your project AND Claude Code configuration. Analyzes secrets exposure, injection surfaces, dependencies, hook security, and produces a scored security posture assessment.
audit-quiz-coverage
Find quiz coverage gaps from recent guide/CHANGELOG/CC-releases changes and propose new questions.
worktree
Create a git worktree for isolated feature/fix work.
sync
Check guide/landing synchronization status.
diff-docs
Compare official Anthropic docs baseline vs current snapshot (no network — instant).