agtx Execute Phase
fynnfluegge/agtx
Carries out an approved plan for an agtx-managed task: implements the changes, runs tests, commits, writes a summary to .agtx/execute.md and then stops.
Understand what you mean before anything is built. An agent skill from prekuter/dryforge.
$ npx skills add prekuter/dryforge --skill ready -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install prekuter/dryforge ready --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/prekuter/dryforge.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/skills/ready .claude/skills/ready && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ready" agent skill from https://github.com/prekuter/dryforge/tree/main/src/skills/ready into .claude/skills/ready/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ready", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/prekuter/dryforge/tree/main/src/skills/readyType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add prekuter/dryforge --skill ready -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install prekuter/dryforge ready --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/prekuter/dryforge.git skills-src && mkdir -p .agents/skills && cp -r skills-src/src/skills/ready .agents/skills/ready && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ready" agent skill from https://github.com/prekuter/dryforge/tree/main/src/skills/ready into .agents/skills/ready/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ready", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add prekuter/dryforge --skill ready -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install prekuter/dryforge ready --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/prekuter/dryforge.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/src/skills/ready .cursor/skills/ready && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ready" agent skill from https://github.com/prekuter/dryforge/tree/main/src/skills/ready into .cursor/skills/ready/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ready", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/prekuter/dryforge.git --path src/skills/ready--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add prekuter/dryforge --skill ready -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install prekuter/dryforge ready --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/prekuter/dryforge.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/src/skills/ready .gemini/skills/ready && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ready" agent skill from https://github.com/prekuter/dryforge/tree/main/src/skills/ready into .gemini/skills/ready/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ready", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install prekuter/dryforge readyInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add prekuter/dryforge --skill ready -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/prekuter/dryforge.git skills-src && mkdir -p .github/skills && cp -r skills-src/src/skills/ready .github/skills/ready && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ready" agent skill from https://github.com/prekuter/dryforge/tree/main/src/skills/ready into .github/skills/ready/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ready", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add prekuter/dryforge --skill ready -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install prekuter/dryforge ready --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/prekuter/dryforge.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/src/skills/ready .opencode/skills/ready && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ready" agent skill from https://github.com/prekuter/dryforge/tree/main/src/skills/ready into .opencode/skills/ready/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ready", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
readyUnderstand what you mean before anything is built. An agent skill from prekuter/dryforge.
Ready is an agent skill from prekuter/dryforge. 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.
Its SKILL.md is about 6.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 17 other files, including reference files (for example `references/3-doc-gate.md`, `references/decompose.md` and `references/dependency-calc.md`).
It sits in Agent Workflows, covering Hooks and plugins and Spec-driven development. It works with Git. The repository describes itself as: Bounded-autonomy plugin harness for agents. Intent to implementation: ready, then go. The licence is Apache-2.0.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 904f257. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Ready loads about 6.8k tokens when it runs, and up to ~33k if it reads all its reference files. Until then it costs about 71 tokens; SKILL.md has 3,556 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from prekuter/dryforge at commit 904f257, republished under its Apache-2.0 licence (© prekuter). 3,556 words, ~6,819 tokens.
.claude/skills/ready/SKILL.md (or your agent's skills folder). This skill also uses 16 other files; get the full folder from GitHub.Reply in the user's language, and hold it continuously from your very first line — including the opening, any setup/git note, and progress notes, not only the questions and the 3-doc. Write natively (never translationese). The language these instructions are written in does not constrain your 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.
.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.)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)."ready skill. 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 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..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.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.
Core principles inline (subagents only at intent-completeness + 3-doc-gate) · understand-not-guess ·
stack/language-agnostic · conflict→ELICIT · floor not ceiling · user-language native
ORIENT absorb input + ground code/harness · branch on status.json (no refs)
DECOMPOSE decompose.md · grounds-gate.md
ELICIT elicitation.md · gap-analysis.md · intent-review.md · grounds-gate.md
[first]+ project-scoping.md · project-design-domain.md · project-design-technical.md ·
first-cycle-review.md · foundation-format.md
intent-completeness intent-completeness.md ← independent guess-hunt → loop to user (subagent)
SPEC + REVIEW(A) output-format.md · review-fidelity.md [first]+ foundation-format.md
PLAN output-format.md · dependency-calc.md · example-3doc.md
HANDOFF output-format.md [first]+ foundation-format.md
3-doc-gate 3-doc-gate.md [first]+ first-cycle-review.md
← independent dispatch (the final backstop)
USER GATE (the one human checkpoint)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.
git init + an initial commit. git not installed → stop and say
so. Greenfield or existing, git is required..dryforge/status.json present → delta: load the harness (CLAUDE.md
/ AGENTS.md + docs/) as project context — load only; do not ask or resolve an input↔harness
conflict here (DECOMPOSE catches it, ELICIT asks it). Absent → first cycle: no harness; ELICIT
will force-load the foundation refs.status.json is absent but a dryforge
harness already exists on disk (an entry file (CLAUDE.md or AGENTS.md) with the harness
navigation structure + a populated docs/), do not assume greenfield — stop and ask
whether to treat it as existing context (delta) or regenerate (first cycle). Don't guess (same
as go's clobber guard).Completion bar: input is loaded raw and the cycle is decided (+ delta: harness loaded); existing → you can state the goal's blast radius, the contract to honor, and the verify commands; greenfield → you have a grounded conception.
references/decompose.mdForce-load references/decompose.md and references/grounds-gate.md. Break the input's content
into material ELICIT can use: classify each piece by axis (a fragment may file under several —
classification is not partition; when unsure, duplicate); convert premature code to a behavioral
contract and keep the verbatim snippet alongside it where it carries a load-bearing edge (keep-bias:
a dropped nuance is unrecoverable, an over-kept block is cheap); preserve non-derivable forms verbatim;
dedup wording but treat repetition as an importance signal, not redundancy; flag — never resolve —
every source difference; write a presence map per axis with a non-scoring form marker (bare
mention vs stated-with-rules) so ELICIT never reads "touched" as "covered". Do not judge (no
conflict resolution, no gap scoring) — but "don't judge" is not a license to skim: ELICIT does
not re-mine the raw INPUT, so signal you skip here is gone (same reward-hack ban as ELICIT). Meet
the DECOMPOSE exit bar (decompose.md) before leaving. The output is challengeable material; the spec
is written fresh from the dialogue, not from the input.
references/elicitation.mdForce-load references/elicitation.md, references/gap-analysis.md, references/intent-review.md,
references/grounds-gate.md. First cycle additionally: references/project-scoping.md,
references/project-design-domain.md, references/project-design-technical.md,
references/first-cycle-review.md, references/foundation-format.md.
The heart. One job: realize the user's intent — understand the user deeply enough that the spec is
their design. The discipline under every decision is understand vs. guess (elicitation.md): a
load-bearing decision is either grounded in the user (they said it / it follows from what they said +
the model you've built of their goal·values·constraints / they chose a presented option) → realize it;
or it is a stranger's guess → forbidden, close it. There is no "pick a reasonable default and
move on" for a load-bearing decision — that is the failure that detonates downstream (the agent
deciding what the user would have decided differently).
Method by knowledge location (two ways to not-guess, interleaved): domain/behavior → EXTRACT (the user knows; draw it out, never invent); technical → PRESENT (the agent knows; options + trade-offs + recommendation, grounded in the extracted domain; the user decides — never silent). Build and maintain a model of the user (goal / values / constraints / domain facts) and test each load-bearing decision against it: grounded → realize; model-silent → that is the gap, close it.
Scope by cycle — first establishes the foundation, delta works within it; both EQUALLY rigorous (delta is not "lighter").
project-scoping.md (CALIBRATE:
character → depth), then the domain extraction (project-design-domain.md) and technical presentation
(project-design-technical.md). Their floors are non-negotiable, not loop-optional: the domain
breadth guard (can't close without "are there other entities/features/rules?"), the domain
depth floor, the technical no-silent-decision rule. These force understanding over guessing
while the foundation is laid — do not dilute them. Scope = project foundation + this task; produces
the Foundation 4 sections.Account the decision surface — enumerate, don't wait to be told (elicitation.md). Name the
entities (a manifest), then walk four lenses over each entity and colliding pair to enumerate the
load-bearing decisions the design is obligated to answer: STRUCTURAL (cardinality/composition/
identity), BEHAVIORAL (lifecycle/concurrency/policy/edges — name the kind first), TECHNICAL
(persistence/interface/consistency), CONTRACT (status·enum sets/uniqueness/output keys). Lenses
are accelerators, not a fixed catalog. Enumerate ≠ ask: resolve each slot in order — user-model
grounds it → realize (don't ask); tuning value inside a settled mechanism → default marked tunable
(don't ask); else assumed → ask (extract/present). So enumerate exhaustively but ask
minimally (≤4 questions·options per structured prompt, lead with a recommendation, grounds-gate.md
filters; never skip a load-bearing one; if the structured tool fails, re-ask as plain text — never
dead-end). First cycle / unfixed stack: you MUST have presented the load-bearing technical shape
(persistence, interface, and the concurrency/consistency model when the domain has shared state) —
a stack pick alone does not settle it.
Exit bar (observable) — write the spec only when no assumed slot survives (full bar in
elicitation.md): the surface is accounted — every load-bearing slot is grounded, deferred-tunable,
or asked-and-answered (a mechanism's preference-values, not just its yes/no, included); first-cycle
foundation floors met; no material gap remains. A thin input raises the bar (ask more), never lowers it.
references/intent-completeness.mdForce-load references/intent-completeness.md. Before freezing the spec, dispatch a fresh
perspective that did not author the intent (independent — but it reads the chat session + the
decision surface; A=A distrusts authoring, not seeing) to audit the surface: (1) is each
grounded/deferred disposition defensible from the dialogue, or rubber-stamped? (2) walk the lenses
independently — is there an obligation-slot the producer never enumerated (e.g. an entity's
cardinality settled silently)? It does not flag tuning values (executor inference, not guesses).
Each finding is relayed to the user and closed by extract/present (not patched into a document);
bounded local re-walk of only the touched neighborhood, re-check once, then escalate — no open
loop. This catches guesses while the user is still here to decide, so the final 3-doc-gate finds
little. (This and the 3-doc-gate are the only subagent dispatches.)
references/output-format.mdForce-load references/output-format.md and references/review-fidelity.md (+ first cycle:
references/foundation-format.md).
.dryforge/spec.md — from the validated intent, not the input. Dense; premature
implementation excluded. The item list is output-format.md's contract — it owns the list; follow
it there (if ORIENT found no verify command, record that gate decision in the spec's
required-verification item).handoff.md. Write ELICIT's Foundation 4 sections
(identity / domain / technical / future) into handoff.md's Foundation section now (the rest
of the handoff's governing parts wait for the plan and are filled at HANDOFF; the Foundation does
not depend on the plan). No separate .dryforge/foundation.md. Into the spec, lift only this
task's WHAT (the part of the domain this task actually implements); the project-wide context (the
rest of the domain, future scope) stays in the Foundation. (Written here so REVIEW(A) can verify a
written Foundation.)review-fidelity.md — A=A): ELICIT owns it
upstream, intent-completeness audits it independently, and the 3-doc-gate is only the final
insurance. Gate: zero blocking fidelity gaps; no user-only intent-gap remains.references/dependency-calc.mdForce-load references/output-format.md, references/dependency-calc.md, references/example-3doc.md.
Write .dryforge/plan.md from the frozen spec. Per task: a behavioral contract (goal, work
targets [files | state | external], verification gate), thinking-base where not code-derivable,
shared-write guidance (prose). Compute the Execution Graph last — a fenced yaml block with
depends (the only encoded judgment), regen_barriers, and the optional per-task risk using
exactly the enum RISKY | MECHANICAL | NONE (never an ad-hoc value like "high"/"low"). go follows
it and never re-judges. Scaffold is
not a task. (Any task-order/dependency graph the input carried was discarded in DECOMPOSE; PLAN
always computes the graph fresh from the spec.) Trace gate: every
spec requirement maps to ≥1 task (forward); every task grounds in a spec requirement (no orphan); the
Execution Graph parses.
references/output-format.mdForce-load references/output-format.md (+ first cycle: references/foundation-format.md).
.dryforge/handoff.md — the governing doc. The item list is output-format.md's
contract — it owns the list (document roles + conflict resolution, file locations, execution
shape, hard gates, uncaptured intent). (Because produce
captures intent directly, this handoff is richer.)go never mistakes
a hard gate for project context. Delta: there is no Foundation..dryforge/ — do not touch git. Do not touch .gitignore and commit
nothing (go owns git; produce=documents / run=git). If an input file is an untracked file inside
the repo, advise the user to move it out or add it to .gitignore (produce does not delete the
user's input itself).Completion bar: handoff written (+ first cycle: Foundation assembled), the three files in
.dryforge/, git untouched.
references/3-doc-gate.mdForce-load references/3-doc-gate.md (+ first cycle: references/first-cycle-review.md). Dispatch a
fresh subagent that has not seen the dialogue; give it the 3-doc only (it may read the code),
read-only, returning a structured list (no raw dump). A single holistic review — executability
(aim explicitly at the output/interface contract), plus, first cycle only, a foundation-sufficiency
lens within the same review (first-cycle-review.md rubric on the written Foundation — not a
second dispatch). It is the final backstop and should find little, because intent-completeness
already routed the guesses to the user. Empty → the user gate. A blocker → the orchestrator relays it to the user,
fixes only the stage it belongs to, then re-runs the gate; a surviving blocker → escalate. (The machine
0-signal gates — coverage gap, orphan, graph parse — are cheap; keep them in place.)
Present the completed, verified 3-doc to the user: "Review this and confirm. If it's right, proceed;
if not, tell me and I'll fix." On approval, tell the user to invoke the go skill in this
session to execute. Autonomy is executing an approved spec, not setting intent — one gate, at
the end (outside ELICIT's dialogue and the intent-completeness loopback, the only mid-run exception
is the REVIEW(A) reopen). Produce → run is one session — the design
context carries into go — but the 3-doc, not the dialogue, is the authority (it is archived and
read by later cycles, so it must be self-sufficient).
The target you work toward is the ELICIT exit bar (no guess survives on a load-bearing decision) (above) + the deterministic 0-signals — that is what "done" means. The 3-doc-gate is a separate independent audit you should expect to pass with nothing found; it is not the bar you aim at, and you never do shallow work expecting it to catch the rest (reward-hacking — Core principles).
Done only when ALL hold:
© prekuter, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 16 other files (references) in src/skills/ready of prekuter/dryforge.
Open the folder on GitHubat commit 904f257
We found 6 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in prekuter/dryforge, which our catalogue first saw on October 7, 2026.
Ready next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Ready this skillprekuter/dryforge | 413 | 1 repos | ~6.8k | Automated safety check: Pass | Apache-2.0 | |
| agtx Execute Phasefynnfluegge/agtx | 1.7k | — | ~439 | Automated safety check: Pass | Apache-2.0 | |
| Methodology AdvisorFlorianBruniaux/claude-code-ultimate-guide | 6.1k | — | ~1.9k | Automated safety check: Pass | CC-BY-SA-4.0 | |
| Publish Plugins Version Bumpvinta/hal-9000 | 138 | — | ~1k | Automated safety check: Pass | MIT | |
| LazyCodex Doctorcode-yeongyu/oh-my-openagent | 70k | — | ~2.6k | Automated safety check: Pass | Custom licence | |
| Setup First Passjoetawil7/first-pass | 92 | — | ~5.2k | Automated safety check: Pass | MIT |
fynnfluegge/agtx
Carries out an approved plan for an agtx-managed task: implements the changes, runs tests, commits, writes a summary to .agtx/execute.md and then stops.
FlorianBruniaux/claude-code-ultimate-guide
Reads a codebase silently, asks only what it cannot infer, and recommends one AI-assisted development methodology stack with a contextual quick start.
vinta/hal-9000
Finds which plugins in the repository changed, bumps only the ones not already bumped since origin/main, and checks that each plugin's two manifests stay in sync.
code-yeongyu/oh-my-openagent
Audits a local LazyCodex and Codex CLI install against the latest upstream sources and reports PASS, WARN or FAIL per check without changing anything.
joetawil7/first-pass
Set up first-pass for a main folder that holds many repos, or for one repo.
athola/claude-night-market
Browse hookify rule catalog. An agent skill from athola/claude-night-market.
Works with
Categories
Understand what you mean before anything is built. An agent skill from prekuter/dryforge. Ready is an agent skill from prekuter/dryforge. Understand what you mean before anything is built.
Ready fits situations like: the user invokes the ready skill; tasks that involve Hooks and plugins; tasks that involve Spec-driven development.
Run `npx skills add prekuter/dryforge --skill ready -a claude-code`. Or copy the skill folder (src/skills/ready in prekuter/dryforge) into .claude/skills/ready in your project. Claude Code loads it when a task matches its description.
Run `npx skills add prekuter/dryforge --skill ready -a codex`. Or copy the skill folder (src/skills/ready in prekuter/dryforge) into .agents/skills/ready in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add prekuter/dryforge --skill ready -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ready, .gemini/skills/ready, .github/skills/ready and .opencode/skills/ready in your project.
Going by SKILL.md and its folder, Ready needs the command-line tools its instructions call (git).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Ready is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 6.8k tokens (SKILL.md is roughly 27k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 26k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Ready: agtx Execute Phase (fynnfluegge/agtx, 1.7k stars), Methodology Advisor (FlorianBruniaux/claude-code-ultimate-guide, 6.1k stars), Publish Plugins Version Bump (vinta/hal-9000, 138 stars) and LazyCodex Doctor (code-yeongyu/oh-my-openagent, 70k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
prekuter (a GitHub user) maintains it in prekuter/dryforge, which has 413 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 2, 2026.
Source: prekuter/dryforge on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.