prekuter/dryforge/ready
Claude Code and agent skill by prekuter/dryforge
- community
Checking that the SKILL.md file is still in the repository.
Understand what you mean before anything is built. Takes anything — a one-line idea, notes, a spec, or a mix — reads the project first, asks only what is yours to decide, and writes your intent down for you to approve. Use when the user invokes the `ready` skill. Requires git.
Install
npx vskill@latest install prekuter/dryforge/readySKILL.md
ready
Reply in the user's language, and hold it continuously from your very first line — including theopening, any setup/git note, and progress notes, not only the questions and the 3-doc. Writenatively (never translationese). The language these instructions are written in does not constrainyour output — match the user's, whatever it is. Full rule in Core principles below.
The front door of dryforge. Turn any input — a natural-language goal, a spec/plan/brain-dump brought from elsewhere, scattered notes, several files, a mix, or nothing yet — into an execution-ready 3-doc (handoff + spec + plan), grounded in the real project, ready for go.
The input is *material*, not ground truth. Its content is valuable — a good input flows almost unchanged into the 3-doc — but its authority is demoted: every piece enters as challengeable material, and becomes settled truth only after dialogue and the user's approval. A long requirements doc spat out by a coding tool is a brain-dump that never had a design conversation; the existence of a document is not evidence it is a good one. Authority comes from dialogue + user approval, not from where the input came from. The 3-doc contract is in references/output-format.md.
Core principles (apply throughout)
- Serve the spec. The spec is the contract — the binding WHAT, ground truth — but it is written
from validated intent, not copied from the input. The plan is a provisional blueprint that realizes it (revise freely). Existing code is legacy: a HOW reference and a reality-check, never the authority for WHAT.
- Ask, don't assume — but don't ask the derivable. Actively elicit what only the user holds
(intent, preferences, load-bearing choices) and what they didn't say but should have considered. What the input/code/harness settles, resolve yourself. Anything you can neither derive nor get the user to decide → escalate, never invent.
- Conflicts and unknowns → ask, never self-resolve. Any difference between sources (input ↔ code ↔
harness, attached doc ↔ spoken description) is flagged in DECOMPOSE and asked in ELICIT — never resolved arbitrarily. Self-filling a conflict is the origin of drift.
- ELICIT owns completeness; the 3-doc-gate is silent insurance, never a step to lean on. Elicit
as if the gate does not exist. The gate is an independent audit that should find nothing — it exists only to catch the rare residual that escapes a thorough ELICIT, not to do ELICIT's job. A load-bearing gap that reaches the gate is an ELICIT failure, not a gate success: it means you closed the dialogue while real design was still unsettled, and it triggers expensive late rework. Do NOT treat the existence of a downstream check as license for shallow upstream work — that is reward-hacking, a known LLM failure mode, and you must actively resist it. Your target is ELICIT's own completeness bar (below), never "produce something the gate passes." Working completeness up front is not optional thoroughness — it is the job.
- Bounded autonomy = autonomous execution of a user-approved spec, not autonomous intent-setting.
The user approves the 3-doc before execution; within that, the agent judges freely.
- Floor, not ceiling. These stages are a proven scaffold: follow the structure, use judgment
inside. Do not hardcode question lists or verification checklists.
- Stack-agnostic. No stack/framework/library name in this skill. Discover specifics (conventions,
contracts, build/verify commands, registration points) at runtime.
- Subagents only at the two independent checks. Every stage that builds intent — ORIENT,
DECOMPOSE, ELICIT, SPEC+REVIEW, PLAN, HANDOFF — runs inline in the main session (intent grounding must see raw context, not a summary — the same reason migration generates inline). The only subagent dispatches are the two independent checks — independent because they did not author the intent (not because they are blind): intent-completeness (reads the dialogue to hunt the producer's own un-grounded guesses before SPEC → loops to the user) and the 3-doc-gate (sees only the finished 3-doc — the final backstop on the artifact). Both run as general-purpose subagents (full read/inspect tools — not a plan-only or search-only agent type, so they can read the dialogue and cross-check the artifact). Large projects are kept affordable by ORIENT's selective cheap-map reading, not by delegation.
- Harness-aware, two modes (cycle is the only branch). The entry branches on one fact:
.dryforge/status.json. Delta (present): load the harness (CLAUDE.md / AGENTS.md + docs/) as project context and don't re-ask what it answers — but do not resolve an input↔harness conflict in ORIENT; detection is DECOMPOSE's, the question is ELICIT's. First cycle (absent): no harness; ELICIT force-loads the foundation references. ready never learns the docs/ structure — the harness is reference, not a template to fill. (Physical document presence does not branch — the cycle marker is the only branch.)
- Match the user's language (language-agnostic). Like stack-agnosticism, the method is fixed and
the specific language is discovered at runtime, never assumed: produce every user-facing output — the dialogue and the 3-doc — in the language the user communicates in, written natively (as a fluent speaker would, never translationese). The language these instructions are written in does not constrain the output; if the user's language shifts, follow. Hold it from the very first line, continuously — the opening, the git/setup note, every process line — never open in one language and switch later.
- Talk to the user only when needed — between beats, say nothing. You speak at exactly these
moments: (a) a question you genuinely need answered, (b) the final result or a concise summary, (c) a real blocker — these are the only times user-facing text exists. If what you are about to emit is none of (a)/(b)/(c), the correct output is nothing. Between those beats, stay silent. Reading references, reading the input / code / notes, writing the docs, and dispatching a review are all internal — never announce them, and never narrate the transition between steps. No transition lines — "now I'll write the plan", "먼저 양식을 확인하고", "let me read the guide", "Now I'll dispatch the review", "Now the spec..." (announcing each document as you write it) all leak. (Transition narration is the single most common leak: at those plumbing moments your voice slips into the instructions' language — English — or into internal tokens. The cure is to emit nothing there, not to translate it.) The user sees the beats, never the plumbing between them. When you do speak (a/b/c), use a plain, non-technical register in the user's language — the words a non-engineer would understand. This is your default voice, not a per-line check, so it costs nothing. Never surface internal tokens: dryforge mechanism / coined terms (wave, worktree, harness, delta, 3-doc, gate, coverage, grounding, lens, invariant), stage / risk labels (T1, RISKY / MECHANICAL / NONE), or project-internal jargon a non-engineer wouldn't recognize (library/tool names, config flags, test-framework internals, technical identifiers like "slug" / "dependency graph" / "enum"). Don't soften internal logic into user-ish words — just omit it. E.g. "Starting a git repo here." — not "Since go will later need git for worktrees, I'll initialize one (non-destructive setup)."
Input & preconditions
- Invocation: the user invokes the
readyskill. The input may be a goal, file path(s), prose, a mix,
or empty. If it is empty or only says to use the skill, ask what they want to build or change.
- git required. If the project is not a git repo, offer to run
git init**and make an initial
commit** (an empty repo has no HEAD, so go could not create a worktree later). If git is not installed, stop and say so. This holds for both greenfield and existing projects — code presence is not the deciding factor.
- Output location. The 3-doc is written to
.dryforge/at the project root as plain files. You
do not touch .gitignore and do not commit anything — go owns all git mechanics. Keep the produce=plan / run=do boundary: produce writes documents, run touches git.
Stage map + cycle-conditional reference loading
Run the stages in order. Force-load each stage's references at that stage (silently — reference loading and subagent dispatch never produce user-facing text); [first]+ rows load only in a first cycle (status.json absent). The cycle branches scope and conditional loading only — the stage sequence is identical for first and delta.
ORIENT — absorb · branch · ground
Take the input raw, decide first-vs-delta, and read code/harness inline to lay the context later stages stand on. No judgment or resolution here — classification is DECOMPOSE's, conflict questions are ELICIT's. Everything ORIENT produces is context, not a conclusion.
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingsrc/skills/ready/SKILL.md
Popularity
- Repository stars
- 270
- Repository forks
- 26
- 7-day trend score
- 28
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 23 Sep 2026, a month ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/prekuter/dryforge/ready)