vulyk: Command for Claude Code

.claude/commands/vulyk-build.md

vulyk-build is a command for Claude Code from Black-coffe/vulyk. It costs 15 tokens per session (1,485 once invoked), scanned A, original, MIT.

A build command that carries out an approved software plan in waves, where each story is a small piece of work assigned to a worker. A wave is a group of independent stories that can run at the same time.

In plain words
What is it for?
Use it to dispatch approved stories in order, run parallel work safely, and create one commit for each completed story.
Why use it?
It checks the plan for conflicting files, missing paths, and weak verification before work starts, reducing accidental overwrites and misleading successful results.

Command for Claude Code

Written for Claude Code: argument-hint in frontmatter.

This is Black-coffe/vulyk's own configuration. It tells Claude Code how to work on vulyk itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything vulyk configures →

Reuse

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.

Copy the file
curl -O https://raw.githubusercontent.com/Black-coffe/vulyk/main/.claude/commands/vulyk-build.md
Clone the repo
git clone --depth 1 https://github.com/Black-coffe/vulyk

Made for: Claude Code.

Wrote 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.

agentmods badge for vulyk-build

README.md
[![agentmods](https://agentmods.dev/badge/commands/black-coffe/vulyk/vulyk-build.svg)](https://agentmods.dev/commands/black-coffe/vulyk/vulyk-build)
Your own site
<a href="https://agentmods.dev/commands/black-coffe/vulyk/vulyk-build"><img src="https://agentmods.dev/badge/commands/black-coffe/vulyk/vulyk-build.svg" alt="Measured on agentmods" height="20"></a>
Per session 15 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,485 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00015 $0.01485
Opus 5 $0.00008 $0.00743
Sonnet 5 $0.00003 $0.00297
Haiku 4.5 $0.00002 $0.00148

Measured today against content hash 10d4f7f0024c, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-07, from the pricing page.

Security

Grade A, and why

vulyk-build 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.

.claude/commands/vulyk-build.md · 34 lines

How it starts

The opening of the file, as written. The whole thing — 34 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Execute the approved plan: "$ARGUMENTS" (default: most recent plan in docs/specs/ marked approved).

  1. Load the plan. Refuse politely if no approval marker - planning and building are separate decisions by design. Then put the build on its branch (stage 03): story commits live in their own branch, never on the default one. git rev-parse --abbrev-ref HEAD - on the default branch (main/master, or whatever the Profile's Release / deploy row names), create and switch to vulyk/<slug> (or the naming that row prescribes) before wave 1; already on a feature branch, build there. Either way replace the **Branch:** placeholder in plan.md with the branch name and commit it with the plan. The branch is what stage 04 tests, what the owner is shown at stage 05 and what /vulyk-ship merges; a build whose commits nobody can name later has no rollback point, and scripts/ship-check.sh reads this line.

  2. Check the stories. Run bash scripts/wave-check.sh docs/specs/<slug> and show its output. A collision, order violation or dangling blocker is a plan defect: fix the story files (merge, split, or re-wave) before dispatching anything. Disjoint ## Files within a wave is the precondition for parallel dispatch - two concurrent workers on one file silently overwrite each other. The gate runs again here, after approval, because the tree moved since planning: a missing path is a worker about to be sent at a file that is not there, and a verify-gap or no-verify story is one whose green will mean nothing when it returns.

  3. Dispatch by wave, one message per wave. Launch every story of the current wave as parallel worker calls in a single message - that, and nothing else, is what makes them actually run concurrently; one call per message is a serial build wearing parallel clothes. Each story goes to its worker (worker-code, then worker-test where the story requires tests) with EXACTLY: the story file, its map slice pointer, the relevant .claude/rules/ paths. Nothing more - scoped context is the law. Cap: 4 concurrent workers; a bigger wave dispatches in slices.

  4. Close each story as its worker returns - do not wait for the whole wave:

    1. Read the return report (STATUS/FILES/TESTS/...). If a worker returned prose instead of the contract, take what it did as unverified: run the story's verification yourself via a quiet command before trusting it.
    2. bash scripts/scope-check.sh <story-file> - with per-story commits the default working-tree range is exactly this story's diff, so the numbers are finally per-story, not per-pileup.
    3. Run the story's ## Verification command (quiet variant), as many times as its repeat: line asks - a story that names a repeat count is telling you a single green is not evidence for this code. Red -> back to the worker path, never patched by your hands.
    4. Commit: git add the story's declared files (plus the story file itself) and commit as story(<slug>-NN): <title>. One story, one commit - it is the rollback point and the review unit. Out-of-scope files flagged by scope-check are a decision, not a default: leave them uncommitted and resolve (amend the story, or descope the change) before they ride along.
    5. Update the story's status: line.
  5. Repair has a ceiling: two rounds per story.

    • NEEDS_CONTEXT -> the story was defective. Fix the story file (or answer the question), then send a fresh worker. This round counts against the plan, not the worker.
    • WALL or red verification -> send ONE fresh worker with ## Findings attached and the repair stated as a condition to satisfy ("make X pass with Y preserved"), not as instructions to follow. Never re-dispatch the identical prompt hoping for luck.
    • Second failure -> stop the story: mark it blocked, and either re-plan it or escalate the design question to lead-architect. A third identical attempt is a token bonfire.
    • A repair dispatch obeys the wave rule too. Before sending one alongside anything still in flight, intersect its file set with theirs exactly as wave-check does for stories. Two dispatches that land in one file minutes apart cannot be split by path afterwards: the story loses its one-commit rollback point, and nobody notices until the diff is already mixed. When the repair is a real story file, do not intersect by hand - re-run bash scripts/wave-check.sh docs/specs/<slug>. The gate ran at step 2 against the pack as approved; a repair round changes that pack, and a check that judged a different set of stories is not a check. Same rule, same reason, as the acceptance verdict in /vulyk-review: when the pack moves, whatever judged it is re-run.

Read the full file on GitHub · 34 lines

Changes

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.

  1. today Changed 10d4f7f0024c
  2. 7d ago First seen · 34 lines · 15 tokens per session scan A ef6de36f551f

Subscribe to this mod's changes

vulyk-build is a command published in the GitHub repository Black-coffe/vulyk (2 stars, last pushed 2d ago), licensed MIT. It adds 15 tokens to every session and 1,485 once invoked, about $0.0001 per session on Opus 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.