Skip to content
Automation
Skill

/foreman-to-issues

Break an approved PRD into small, dependency-ordered, vertically-sliced implementation issues written as local files in the Foreman feature directory. Each issue ships a runnable acceptance check and a declared file footprint. No GitHub, no live quizzing of the user — emits

From plugin
foreman
4438 skills5 agents

Claude Code

$ npx -y skills add VisionForge-OU/foreman --skill foreman-to-issues --agent claude-code

SKILL.md

foreman-to-issues.SKILL.md
name: foreman-to-issues
description: Break an approved PRD into small, dependency-ordered, vertically-sliced implementation issues written as local files in the Foreman feature directory. Each issue ships a runnable acceptance check and a declared file footprint. No GitHub, no live quizzing of the user — emits files matching Foreman's issue schema with PRD traceability.
foreman_skill_version: 2

foreman-to-issues

(Adapted from mattpocock/skills `to-issues` — see NOTICE. Removed: all `gh` CLI usage, GitHub labels/triage vocabulary, and the interactive "quiz the user" loop. Issues are emitted as local files; the human reviews them in Foreman's queue-review screen instead.)

Break the **approved PRD** into independently-grabbable issues using vertical slices (tracer bullets). Run headless: produce the files and stop. The human will reorder/edit/delete/add in Foreman's queue-review screen — do not ask them anything here.

Process

1. Gather context

Read the approved `prd.md` (path injected by Foreman) — its body, user stories, and user flows. Read the approved `plan.md` and `adr.md` too for decisions.

2. Explore the codebase

Understand the current state so titles and descriptions use the project's domain glossary (`CONTEXT.md`) and respect ADRs in the area you're touching.

3. Draft vertical slices

Break the PRD into **tracer-bullet** issues. Each issue is a thin vertical slice that cuts through ALL integration layers end-to-end (schema → logic → API → UI → tests), NOT a horizontal slice of one layer.

<vertical-slice-rules>

  • Each slice delivers a narrow but COMPLETE path through every layer.
  • A completed slice is demoable or verifiable on its own.
  • Prefer many thin slices over few thick ones.
  • Order slices by dependency: a slice that others build on comes first.
  • Every slice traces back to one or more PRD sections / user stories.

</vertical-slice-rules>

4. Emit one file per slice

Write each slice to `.foreman/features/<slug>/issues/ISS-NNN.md`, numbered from `001` in dependency order (blockers first, so `depends_on` can reference real ids). Each file is YAML frontmatter + markdown body in **exactly** this schema:

---
id: ISS-001
title: <short descriptive name>
status: queued
depends_on: []            # list of blocking issue ids, e.g. ["ISS-001"]
branch: feature/<slug>/iss-001
attempts: 0
budget: { max_turns: 80, max_cost_usd: 5.00, timeout_min: 45 }
prd_refs: ["PRD §<section>", "Story #<n>"]   # traceability back to the PRD
acceptance_check: tests/<area>/test_<slice>.py   # runnable check (REQUIRED)
touches: ["src/<area>/...", "tests/<area>/..."]  # declared file footprint
kind: feature
---
## Goal

A concise description of this vertical slice — the end-to-end behavior, not a
layer-by-layer implementation plan. Avoid file paths and code snippets (they go
stale); a prototype-derived decision snippet may be inlined if it encodes a
decision more precisely than prose.

## Acceptance criteria (testable)

- [ ] Criterion 1
- [ ] Criterion 2
- [ ] Criterion 3

## Out of scope

- What this slice deliberately does not do.

Rules:

  • `id` is `ISS-` + zero-padded three-digit number, unique within the feature.
  • `branch` is `feature/<slug>/iss-NNN` (lowercase).
  • `budget` defaults come from the feature's config `run_budget`; only deviate when

a slice is clearly bigger or smaller, and say why in the body if you do.

  • `prd_refs` MUST be present and non-empty — every issue traces to the PRD.
  • `depends_on` MUST be acyclic and reference only earlier issues.

`acceptance_check` — the executable form of acceptance (REQUIRED)

Every issue MUST carry a runnable `acceptance_check` derived **directly from a PRD acceptance criterion**, so "done" is executable, not prose. It is either:

  • a **bare test-file path** (Foreman runs it with the project's test command),

e.g. `acceptance_check: tests/todo/test_done.py`; or

  • a **command** (more than one token), e.g.

`acceptance_check: "pytest tests/todo/test_done.py::test_marks_complete"`.

If the check is a dedicated test the slice must add, write that test file into a canonical `issues/ISS-NNN.check/` directory (same relative path it should have in the repo, e.g. `issues/ISS-001.check/tests/todo/test_done.py`). Foreman re-installs it into the worktree before verifying so the worker cannot weaken or delete it. An issue with no `acceptance_check` is rejected from the queue.

`touches` — the declared file footprint (for safe parallelism)

List the files/dirs/modules the slice will create or modify. Foreman builds a conflict graph from these and never runs two overlapping issues concurrently, so **maximise disjointness** when slicing — prefer slices whose footprints don't overlap. An empty/unknown footprint is treated as conflicting with everything (the safe default), which serialises the slice — so always declare it.

Do not create any external tickets. Do not modify the PRD.

Read more
@visionforge-ou
Ships withforeman

A Boris-style agentic orchestrator TUI that supervises headless Claude Code agents through a gated software-delivery pipeline — pointed at any repository. plan → ADR/PRD → issues → TDD build → e2e Why Foreman?

4438 skills5 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
443
Star history of VisionForge-OU/foreman on GitHub, a chart by star-history.com

Other skills on foreman.

foreman-debug

foreman-debug

Headless root-cause debugging loop for a Foreman worker whose tests, build, or acceptance check are failing — especially on a…

foreman-plan

foreman-plan

Headless implementation-plan authoring for the Foreman planning stage. Explore the target repo first, then write a deep,…

foreman-to-prd

foreman-to-prd

PRD template and authoring rules for Foreman. Synthesizes a PRD from the approved plan and the grilled decisions and writes it as…

foreman-verify

foreman-verify

Headless self-verification gate a Foreman worker runs before it claims an issue is done. Re-run the real commands, read the…

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n13d209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
agent-browser

agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…

@vercel-labs-2@vercel-labs-2Install Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about foreman-to-issues.

Which coding agents can use foreman-to-issues?
foreman-to-issues installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.