Imported from tiagoluizpoli/luna-ai-skills (
.agents/skills/luna-ai/luna-to-issues/SKILL.md). Install upstream withnpx skills add tiagoluizpoli/luna-ai-skills --skill luna-to-issues. Copyright stays with the author.
Luna To Issues
Convert a plan or PRD into the project's .plan epic and task structure.
This skill wraps to-issues for decomposition, but writes the approved output
into the Ralph Loop execution tree instead of a generic issue tracker.
Output Structure
.plan/
├── index.md
├── PRD.md
├── prds/
├── epics/
│ └── <num>-<slug>/
│ ├── epic.md
│ └── tasks/
│ └── <num>-<slug>.md
└── shared/
├── epic-template.md
└── task-template.md
Contract
- Resolve the current PRD from
.plan/PRD.mdbefore decomposition. - Resolve the current PRD source in this order:
- explicit user-provided PRD handoff or PRD file
.plan/handoffs/.current-prd-handoffvia.plan/helper-scripts/get-current-prd-handoff.sh.plan/prds/.current-prdvia.plan/helper-scripts/get-current-prd.shCURRENTrow in.plan/PRD.mdas the final fallback
- Load the full PRD body from the resolved canonical PRD file.
- Use
to-issuesfirst for the vertical slice breakdown. - Only write
.planfiles after the user approves the slice structure. - Create one epic directory per approved epic.
- Create one task file per approved slice.
- Emit task-level
default-model. - Emit sub-task-level
status,model,escalate-if,blocked-by,what-to-do,files-to-touch, andverification. - Use
mediumas the default model unless the slice clearly justifieshigh. - If you are uncertain about escalation tier, default to
medium.
Index Synchronization
After writing or updating epic/task files:
- update the epic's task table
- update
.plan/index.md - keep IDs stable
The canonical atomic execution state lives in sub-task entries inside task files. Epic and task aggregate state is derived later by helper scripts.
Naming
Epic naming
- Directory:
<num>-<kebab-case-slug>/ - Epic file:
epic.md - Epic ID:
E-<num>
Task naming
- File:
<num>-<kebab-case-slug>.md - Task ID:
T-<num> - Sub-task IDs:
ST-01,ST-02, ...
PRD Rules
- Treat
.plan/PRD.mdas the thin index. - Treat
.plan/prds/*.mdas the full versioned PRD bodies. - Only one PRD row may be marked
CURRENT. - Use the PRD handoff pointer and PRD pointer before falling back to the
CURRENTrow. - Load the full PRD body from the resolved canonical source path.
- Do not inline the full PRD into
.plan/PRD.md.
Templates
- Use
.plan/shared/epic-template.mdfor new epic files. - Use
.plan/shared/task-template.mdfor new task files.