Skip to content
Back to skills

Aped Discuss Epic

ASecurity

Use when user says "discuss epic", "discuss epic N", "lock decisions for epic", "epic implementation decisions", "SPIDR for epic", "what should we decide for this epic", or invokes aped-discuss-epic. Locks per-epic implementation decisions BEFORE aped-story spawns story files — fills the gap between aped-arch (system-level) and aped-story (per-story). Not for system-wide design (use aped-arch) or per-story plan (use aped-story).

  • 2 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added May 27, 2026
developmentgobashawsapifrontend

Works with

  • cli
  • api

Security analysis

A100/100

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

Scanned May 27, 2026

npx -y skills add yabafre/aped-claude --skill aped-discuss-epic --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Aped Discuss Epic?

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

Security grade badge for Aped Discuss Epic
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/yabafre-aped-discuss-epic/badge)](https://www.skillsdirectory.com/skills/yabafre-aped-discuss-epic)

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: aped-discuss-epic
keep-coding-instructions: true
description: 'Use when user says "discuss epic", "discuss epic N", "lock decisions for epic", "epic implementation decisions", "SPIDR for epic", "what should we decide for this epic", or invokes aped-discuss-epic. Locks per-epic implementation decisions BEFORE aped-story spawns story files — fills the gap between aped-arch (system-level) and aped-story (per-story). Not for system-wide design (use aped-arch) or per-story plan (use aped-story).'
allowed-tools: "Read Write Bash Grep Glob Agent"
allowed-paths:
  write: ["{{OUTPUT_DIR}}/**", "{{APED_DIR}}/**"]
  read-only: ["src/**", "tests/**", "package.json"]
license: MIT
metadata:
  author: yabafre
  version: {{CLI_VERSION}}
---
<!-- AUTO-GENERATED from SKILL.md.tmpl. Edits will be overwritten. Run: npm run gen:skill-docs -->

**Activation guard (6.2.0):** Before any other action, run `bash {{APED_DIR}}/scripts/check-enabled.sh`. If it exits non-zero, print "APED disabled — run aped-method enable" and HALT.

# aped-discuss-epic — Lock per-epic implementation decisions

## Purpose

Between `aped-arch` (system-level: framework, DB, auth, infra) and `aped-story` (per-story: files, tasks, AC quoting) lies the **epic level** — decisions that cut across the 3–8 stories of one epic and would otherwise be re-derived (and drift) at each story start. Examples: how errors propagate across the stories of Epic 3; what data shape the frontend stories of Epic 4 consume; which layouts the onboarding stories of Epic 2 share.

This skill is optional. The pipeline runs without it. Invoke it when an epic has cross-cutting decisions worth locking before any of its stories begin.

## Iron Laws

See [`ETHOS.md` § aped-discuss-epic](../ETHOS.md#aped-discuss-epic) — three laws: decisions are concrete; SPIDR walks all five axes (even when empty); the skill runs BEFORE `aped-story` for the targeted epic.

## Pipeline

### Step 1: Identify the epic and read upstream artefacts

1. Parse the user's invocation for an epic number (`discuss epic 3`, `lock decisions for epic 2`). If absent, ask once.
2. Read in this order:
   - `{{OUTPUT_DIR}}/prd.md` — FRs covered by this epic.
   - `{{OUTPUT_DIR}}/architecture.md` — system-level decisions already locked.
   - `{{OUTPUT_DIR}}/epics.md` — the epic's stated scope, the stories it lists, the FR coverage map.
   - `{{OUTPUT_DIR}}/epics-context/epic-{N}-context.md` — REQUIRED. If missing, HALT and tell the user to invoke `aped-story` once first (it produces this cache) before running `aped-discuss-epic`.
   - Any sibling epics' `epic-{M}-context.md` with a `## Implementation decisions` section — borrow precedents, do not contradict without explicit override.

### Step 2: Walk the SPIDR checklist

For each axis, produce ONE decision (or `N/A — <reason>`). Empty axes are explicit, never skipped.

- **Spike:** what is unknown enough about this epic to warrant a 30-minute experiment before committing the stories? (Spike outputs land in `docs/aped/spikes/`, not in production code.)
- **Paths:** which UI routes, API endpoints, or CLI verbs does this epic touch? Lock the canonical paths so stories don't drift on naming.
- **Interfaces:** what contracts cross story boundaries inside this epic? Function signatures, data shapes, event names, error types.
- **Data:** what data is read or written? Schemas, persistence (optimistic vs pessimistic), cache keys, invalidation rules.
- **Rules:** what invariants must hold across every story of this epic? Error propagation policy, retry semantics, idempotency, permissions, audit trail.

### Step 3: Rank decisions by cross-cutting weight

For each decision, ask: "if a story re-derives this from scratch, does it have a >20% chance of picking a different answer?" If yes, lock it explicitly. If no, drop it — the epic plan already covers it.

Aim for 3–7 decision bullets total. More than 7 means the epic should probably be split (see `aped-iterate`).

### Step 4: Spec-reviewer dispatch

After self-review, dispatch a fresh subagent to verify the decisions are concrete (not aspirational) and consistent with the architecture.

Use the `Agent` tool (`subagent_type: "general-purpose"`) with this verbatim prompt (substitute `[DECISIONS_BLOCK]` with the drafted markdown):

```
You are a spec document reviewer. Verify these epic-level implementation decisions are ready to bind every story of the epic.

**Decisions block to review:**
[DECISIONS_BLOCK]

**Architecture context (for consistency check):** [paste relevant arch sections]

## What to Check

| Category | What to Look For |
|----------|------------------|
| Concrete | Each decision names a path, type, or shape — not a goal ("we will be consistent"). |
| Consistent | No contradictions with `architecture.md` decisions. |
| Cross-cutting | Each decision actually affects >=2 stories in the epic. |
| Bounded | 3–7 total. Anything beyond is either over-locking or signals the epic needs splitting. |
| SPIDR | Each of Spike / Paths / Interfaces / Data / Rules has either a decision or an explicit `N/A — reason`. |

## Output Format

## Spec Review

**Status:** Approved | Issues Found

**Issues (if any):**
- [Axis X]: [specific issue] — [why it matters for the stories of this epic]

**Recommendations (advisory):**
- [suggestions]
```

When the reviewer returns:
- **Approved** — proceed to step 5. Surface recommendations (advisory) but do not block.
- **Issues Found** — fix flagged issues inline (or `[O]verride` with a recorded reason), then re-dispatch ONCE. If the second pass still flags issues, HALT and present them to the user for adjudication.

### Step 5: Append to the epic-context cache

Open `{{OUTPUT_DIR}}/epics-context/epic-{N}-context.md`.

If `## Implementation decisions` already exists, confirm with the user: `[A] Append a second dated block` / `[R] Replace the existing block` / `[C] Cancel`.

Append (or replace) the section after `## Lessons applicable` and before `## Previous stories — outcomes`:

```markdown
## Implementation decisions

**Date:** YYYY-MM-DD
**Decided across stories:** {story-key-1}, {story-key-2}, ...

- **Spike:** {decision or "N/A — <reason>"}
- **Paths:** {decision}
- **Interfaces:** {decision}
- **Data:** {decision}
- **Rules:** {decision}

- {additional cross-cutting bullets, max 2-3}
```

Run `bash {{APED_DIR}}/scripts/validate-epic-context.sh {{OUTPUT_DIR}}/epics-context/epic-{N}-context.md`. WARN-only — surface but do not block.

## Stop Conditions

- All 5 SPIDR axes addressed → spec-reviewer Approved → block appended → DONE.
- User says "enough" → write what you have → DONE.
- Epic-context cache missing → HALT, tell the user to invoke `aped-story` once first → STOP.

Files in this skill

  • SKILL.md6.6 KB
  • SKILL.md.tmpl6.4 KB

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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.