Skip to content
Back to skills

Forgemaster

ASecurity

Route a task by complexity and run the gated Forge pipeline (research → plan → implement → ship). Use when the user runs /forgemaster or wants the full guided feature pipeline.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 22, 2026
code-qualitygobash

Works with

  • cli
  • mcp

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 22, 2026

npx -y skills add jupes/agent-forge-harness --skill forgemaster --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Forgemaster?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Forgemaster
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jupes-forgemaster/badge)](https://www.skillsdirectory.com/skills/jupes-forgemaster)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: forgemaster
description: Route a task by complexity and run the gated Forge pipeline (research → plan → implement → ship). Use when the user runs /forgemaster or wants the full guided feature pipeline.
---

# /forgemaster — Route by complexity, then run the Forge pipeline gated phase by phase

Judge the complexity of the request, **route** to the right-sized Forge path, then run it gated —
pausing at each boundary for your approval. Medium-or-higher work runs the full four-phase pipeline
(**research → plan → implement → ship**); low-complexity work is handed to the trimmed
`forge-mini` path to save turns and cost. You stay in control at every step.

See `.claude/workflows/forge.md` (full) and `.claude/workflows/forge-mini.md` (mini) for details.

## Usage

Accepts a **JIRA ticket**, a **Beads issue id**, or a **free-text description** — or nothing, to
resume the active run.

```
/forgemaster <description>             # free text → judge complexity, route, run
/forgemaster <BEADS-ID>                # e.g. agent-forge-harness-f25 → load that issue as the work
/forgemaster <JIRA-KEY>                # e.g. PROJ-1234 → mirror into Beads, then run
/forgemaster                           # resume the run in flight (see: bun run forge:runs)
/forgemaster --full <input>            # force the full pipeline (skip the complexity check)
/forgemaster --mini <input>            # force the mini path (skip the complexity check)
```

---

## Step 0 — Preflight (mandatory)

Beads is required for this pipeline. Confirm it is reachable before anything else:

```bash
bd ready >/dev/null    # if this errors, the Dolt server is down
```

If `bd` errors: run `bd dolt start`, then retry. **Do not proceed without Beads.** (The SessionStart
hook normally starts the server automatically; this is the manual recovery.)

### Resolve the input → a Beads-tracked work item + `<slug>`

Detect what was passed and normalize it to one Beads issue plus a kebab-case `<slug>`. Check in this
order (the first match wins):

1. **Strip flags** (`--full` / `--mini`) and trim whitespace.
2. **Empty** → **resume**: run `bun run forge:runs --active`. With exactly one run in flight, resume
   it at its first incomplete phase (always a full run; skip the triage in Step 0.5, go to Step 1).
   With several, ask which one — runs are concurrent, so "the active run" is not a thing to guess.
3. **Existing Beads id** — `bd show <arg>` succeeds (e.g. `agent-forge-harness-f25`):
   use that issue as the work definition (title, description, AC). **Do not create a duplicate** —
   it is the tracking issue; the plan phase may add child tasks under it. Derive `<slug>` from its
   title. Claim it when implementation starts.
4. **JIRA key** — matches `^[A-Z][A-Z0-9]+-\d+$` (e.g. `PROJ-1234`) and is *not* an existing bead:
   - Fetch the ticket **if** a JIRA integration is available (a JIRA MCP server or a `jira` CLI on
     PATH). If none is configured, ask the user to paste the ticket **summary + description +
     acceptance criteria** — do not invent them.
   - **Mirror it into Beads** (Beads stays the source of truth), linking back to JIRA:
     ```bash
     bd create --repo <repo> --type <feature|bug|task> --title "<summary>" \
       --priority <p> --external-ref "jira-<KEY>" --acceptance "<AC>" --description "<body + JIRA link>"
     ```
     Priority via `.claude/skills/beads-priority-assignment/SKILL.md`. Derive `<slug>` from the
     summary (e.g. `proj-1234-<short-title>`).
5. **Free text** → derive a kebab-case `<slug>`; the Beads issue is created later (full: in the plan
   phase; mini: in the scope step).

Confirm the resolved `<slug>` and a one-line work summary with the user before continuing.

---

## Step 0.5 — Complexity triage & route

Pick the right-sized path **before** doing real work — running the full pipeline on a one-file
change wastes turns and money (cost is the whole point of this step).

- `--full` / `--mini` flag present → honor it, skip the judgment.
- Resuming an existing full run → stay full.
- Otherwise judge complexity from cheap signals (a quick look, not a research project): aligns with
  the tiers in `.claude/commands/go.md` and the model-tier rubric in
  `.claude/protocols/model-tier-policy.md`.

| Signal | → Mini | → Full |
|--------|--------|--------|
| Files touched | ≤ ~3 | > 3 |
| New architecture / component / system | no | yes |
| Genuine unknowns or design decisions | ≤ 1 | several |
| Scope clarity | clear from the ask + code | ambiguous, needs investigation |
| Cross-cutting / shared interfaces | no | yes |

**Default when uncertain: ask, don't assume.** Use `AskUserQuestion` to state your read and the
recommended route, letting the user confirm or override:

- **Mini** → follow `.claude/workflows/forge-mini.md` (scope → build → wrap). Do **not** use the
  `forge:phase-gate` / run state files or write `plans/`/`reports/` docs; track in Beads only.
  Then go straight to that workflow — the phase-walk below is for the full path.
- **Full** → continue to Step 1 with the `<slug>` resolved in Step 0.

If a mini run outgrows its size mid-flight, escalate to full (`/forge-research <slug>`) as described
in `forge-mini.md`.

---

## Step 1 — Walk the phases *(full path)*

For each phase in order — `research`, `plan`, `implement`, `ship` — do this loop:

1. **Gate entry.** Run `bun run forge:phase-gate <phase> --slug <slug>`. If it exits non-zero, the
   prerequisite artifact is missing — stop and tell the user which earlier phase to run.
2. **Announce.** Tell the user which phase is starting and where its output will land
   (see the table in `.claude/workflows/forge.md`).
3. **Run the phase** by following its skill end to end:
   - research → `.claude/skills/forge-research/SKILL.md`
   - plan → `.claude/skills/forge-plan/SKILL.md`
   - implement → `.claude/skills/forge-implement/SKILL.md`
   - ship → `.claude/skills/forge-ship/SKILL.md`
   The phase records its own completion (`forge:phase-gate <phase> --slug <slug> --write`).
4. **Show the exit artifact.** Surface what the phase produced (the research/plan/ship doc, the
   demoed checkpoints, the PR) so the user can inspect it.
5. **Gate the transition.** Use `AskUserQuestion` to ask whether to proceed to the next phase:
   - **Proceed** → continue to the next phase.
   - **Revise this phase** → re-run the current phase skill with the user's feedback.
   - **Stop here** → end the run; the state file preserves progress for later resumption.

   Never auto-advance across a phase boundary. The pause is the point.

---

## Step 2 — Finish

After the ship phase records complete:
- Confirm `reports/<slug>-ship.md` and the PR exist.
- The Stop exit hook goes quiet automatically once ship is complete.
- Summarize the whole run: the slug, the four artifacts, the Beads epic/feature closed, and the PR.

---

## Notes

- **Within a phase**, the implement phase still pauses at its own demo/test checkpoints — those are
  finer-grained stops than the phase boundaries this command gates.
- **Resuming**: `/forgemaster <slug>` (or bare `/forgemaster`, when exactly one run is in flight)
  picks up at the first incomplete phase recorded in `.tmp/work/forge-runs/<slug>.json`.
- **Concurrent runs**: each run owns its own state file, so several can be in flight at once.
  `bun run forge:runs` lists them. Give each code-touching run its own worktree
  (`bun run worktree create <branch>`, then `--checkout <path>` on the phase-gate write) so two
  runs do not build on top of each other.
- **Unattended**: `/forgemaster-auto` runs the same four phases with a subagent review at each
  boundary instead of asking you — see `.claude/workflows/forge-auto.md`.
- **Standalone phases**: you can always run a single phase directly (`/forge-plan <slug>`) instead of
  the full orchestration; the same gates apply.

Files in this skill

  • SKILL.md7.8 KB
  • agents/openai.yaml231 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…