# Prd To Issues

> Converts a PRD (Forgejo issue or local file) into independently executable Forgejo issues organised as vertical slices through integration layers. Invoke with /prd-to-issues <issue-url-or-path>.

- Skill: `tokugero/prd-to-issues` (Agent Skill)
- Install (CLI): `npx skillmds@latest add tokugero/prd-to-issues`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tokugero/prd-to-issues/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Product & Planning
- Author: tokugero (https://skillmd.com/u/tokugero)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tokugero/prd-to-issues

---


# prd-to-issues

Breaks a PRD into a set of Forgejo issues where each issue is a vertical slice
— a thin end-to-end increment that exposes integration unknowns early and can
be merged independently.

## When to use

Invoke with `/prd-to-issues` after a PRD has been approved and you are ready
to begin implementation planning. Requires a PRD in a Forgejo issue or local
file.

## Inputs

- **PRD location** (required): A Forgejo issue URL or a local file path.
  Example: `/prd-to-issues https://forgejo.example.com/org/repo/issues/42`
  Example: `/prd-to-issues docs/prd-feature-x.md`

## Steps

### 0. Verify Forgejo connectivity

Follow the **Forgejo API** procedure in `protocols.md` (steps 1–3) to resolve
`$FORGEJO_URL`, `$FORGEJO_TOKEN`, `$OWNER`, and `$REPO`. Stop if any step
fails — do not attempt issue creation with missing or invalid credentials.

### 1. Locate and fetch the PRD

If given a Forgejo issue URL, parse the issue number from the URL and use the
**Fetch an issue** pattern from `protocols.md`. Extract `.title` and `.body`
from the response.

If given a local file path, read it directly.

### 2. Explore the codebase

Load L0 (`.abstract.md`) and L1 (`.overview.md`). Identify which subsystems
the PRD touches. Read L2 source files only for interfaces or schemas the slices
must implement against.

### 3. Identify vertical slices

A vertical slice is a thin increment that:
- Delivers one user-facing behaviour end-to-end (data → logic → API → UI if applicable)
- Can be merged independently without breaking the main branch
- Exposes integration risk early (prefer slices that cross layer boundaries)
- Has clear, verifiable acceptance criteria

Draft a slice list from the PRD's user stories and acceptance criteria:
- Order slices to expose unknowns as early as possible
- Each slice should be completable in a single focused session
- Mark dependencies between slices if sequencing is required

### 4. Create Forgejo issues

For each slice, create one issue:

Use the **Create an issue** pattern from `protocols.md` for each slice. The
body should follow this structure:

```
## Slice: <title>

**Parent PRD:** <issue URL or file path>

### What this slice delivers
<One paragraph — the specific behaviour this slice adds, end-to-end.>

### Acceptance criteria
- [ ] <Criterion 1>
- [ ] <Criterion 2>

### Files likely touched
<List from .overview.md — be specific.>

### Dependencies
<Other slice issues this depends on, if any. "None" if independent.>
```

Create slices sequentially so each issue is confirmed before the next is started.
If a slice's dependencies are already-created issues, add their URLs to the
body of the dependent slice.

### 5. Report

Print a summary table:

```
Slice #  Title                        Issue URL
───────  ───────────────────────────  ──────────────────────────────────────────
1        <title>                      https://forgejo.example.com/.../issues/43
2        <title>                      https://forgejo.example.com/.../issues/44
```

Note any slices with unresolved ambiguity that may need clarification before
work begins.

## Expected output

One Forgejo issue per vertical slice, with acceptance criteria, file scope, and
dependency links. A summary table printed at the end listing all created issues.

