Dryforge plugin

A plugin with ready, go and migration commands: it settles what you want first, then builds and verifies the result

  • 430 ★ on the repository
  • Last commit
  • Apache-2.0
Plugin

Broad access

Why this level

  • The `go` command writes code, creates branches and runs checks in your repository
  • After your approval the `migration` command rewrites CLAUDE.md and AGENTS.md, backing them up first
All reasons and checks

prekuter/dryforge

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add plugins/dryforge

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • The `go` command writes code, creates branches and runs checks in your repository
  • After your approval the `migration` command rewrites CLAUDE.md and AGENTS.md, backing them up first

This is third-party code. Review the repository files before installing.

What it does

Dryforge installs as a plugin in Claude Code, Codex, GitHub Copilot CLI, Grok Build or Antigravity CLI and adds three commands. The `ready` command takes any starting material: a one-line idea, a draft spec, a PDF or a plan written by another tool. It reads the project, asks only about decisions that are yours and writes the intent as plain Markdown under .dryforge/. Nothing gets built until you approve that record. The `go` command carries out the approved intent and verifies it with checks that actually ran. A check that could not run counts as a failure. A new project is built directly on main, an existing one on its own branch. At the end `go` asks how to integrate: merge, open a pull request or leave it as is. It never merges on its own. The `migration` command runs once in an existing repository. It reads the code, asks about business rules and security policy that code cannot show, and writes the project documentation. If CLAUDE.md or AGENTS.md already exist, it reviews them with you, backs them up and rewrites them with your approval.

Who it is for. For developers who hand large changes to Claude Code, Codex or Copilot CLI and want to answer only the questions where the decision is theirs.

Good fit when

  • You start a new project from a vague idea and want an approved description before the first line of code
  • You hold a spec or plan written by another tool and need it checked against the real project before building
  • A change crosses several parts of the codebase and a wrong assumption by the agent would be expensive
  • You bring in an existing repository: `migration` builds the documentation once from the code and your answers
  • You work in Codex: the commands take a $ prefix, for example `$ready`

Not a fit when

  • The edit is small and already clear: Dryforge is not needed for it
  • The working tree has uncommitted or untracked files outside .dryforge/: it has to be clean before `go`
  • The main branch tracks a remote and holds unpushed commits: `go` will not start in that state
  • Git is not installed on the machine: it is required
  • You need a rigid process with the same steps for every task: Dryforge scales the amount of checking to how much the work matters

Example request

/ready I need an order export to CSV in the account area, work out what I have not considered

Limitations

  • `go` needs Git, a clean working tree with no untracked files outside .dryforge/, and a main branch with no unpushed commits.
  • Auto-update is off by default in Claude Code and GitHub Copilot CLI, on in Codex and Grok Build, and missing in Antigravity CLI, where you rerun the install command.
  • The working record of a task stays in .dryforge/ on your machine. Only what is moved into docs/ reaches the repository.
  • Dryforge attaches to an agent you already have, so access to the model and its cost are set by that agent.

How to disable. Dryforge runs only when you call its commands and has no background process. You can remove it with your agent's own plugin tools. The documents in docs/ and the AGENTS.md or CLAUDE.md files stay in the repository and keep working without the plugin. The local .dryforge/ folder can be deleted by hand.

FAQ

How do I install Dryforge in Claude Code?

Run `/plugin marketplace add prekuter/dryforge`, then `/plugin install dryforge@dryforge`. The `/ready`, `/go` and `/migration` commands become available. To update, use `/plugin marketplace update dryforge` and `/plugin update dryforge@dryforge`.

How is `ready` different from `go`?

`ready` builds nothing: it works out what you meant and writes the intent into .dryforge/ for approval. `go` takes the approved record, implements it and verifies it. If the session ends, `go` picks the record up from .dryforge/ in a new one.

What does Dryforge leave in the project?

Plain Markdown: AGENTS.md or CLAUDE.md and a docs/ folder covering architecture, business rules, security, standards, engineering notes, operations and contracts. Any agent in any session works from them, with or without Dryforge.

Does Dryforge merge the branch into main on its own?

No. In an existing project the work happens on its own branch, and at the end `go` asks what to do: merge, open a pull request or leave it as is.

Do I need Dryforge for a small edit?

No. It is meant for cases where a wrong assumption is expensive: new projects, features, changes that cross the codebase. A clear small edit is simpler without it.

Discussion

No questions or reviews yet.

Plugins

A Claude Code plugin that generates and maintains CLAUDE.md: a 0 to 100 quality score, a 150-line cap and stale reference checks

PluginExtended access430Repository stars

A Claude Code plugin marketplace by Frad LEE: Git and GitFlow, GitHub, refactoring, memory, research, image generation and interface work

PluginExtended access596Repository stars

A plugin with three skills for large development work: project analysis, phased tasks tracked as GitHub Issues, parallel agents and code review

PluginBroad access992Repository stars

A marketplace of 23 plugins for Claude Code: git and pull requests, code review, TDD, specs and delegation to other models

PluginBroad access343Repository stars

Claude Code plugins for spec-driven development: specify, implement and review commands plus specialist agents

PluginBroad access575Repository stars
Needs a VPN

Claude Code plugins with development recipes: agree on the outcome, design, implement with checks and run an independent review

PluginExtended access705Repository stars

Comparison with similar tools

Entries that share the main search query, and how they differ.

EntryOfficialRepository starsMain difference
Dryforge (this entry)no430
Spec Kitno143,709spec first, with a specify CLI that installs commands and skills into the project
cc-sddno3,746Kiro-style spec-driven development from idea through requirements to implementation
Compound Engineeringno25,769a loop of brainstorm, plan, work, review and recorded lessons

README in short

The repository page opens with install commands for five agents and argues that a fixed process holds back a strong model. After that come the three commands, the file tree that stays in the project and the Git requirements.

README badge

Original SKILL.md

---
name: ready
description: >
  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.
---

# ready

> **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`.

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

Report a problem

Foxx AIDryforge
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.