CUGA GitHub issues
File issues against origin upstream with gh. Read companions as needed:
- github_commands.md — list/link/verify recipes
- templates.md — body sections and title prefixes
Shared rules
- Use upstream
origin (not a fork-only default). Pass --repo owner/name when needed.
- Run
gh label list for that repo. Only use label names that exist. Never invent labels.
- No promotional footers (“Made with Cursor”, etc.).
- Hierarchy depth is only: Epic → Feature → Issue. Never nest under a leaf issue. Never Feature → Feature. Never deeper than three levels.
- When parented: put
Part of #<number>. at the top of the body, create the issue, then link with GraphQL addSubIssue. Body text alone is not enough. Verify parent afterward.
- Do not use unsupported
gh issue edit --set-parent.
Detect intent
If unclear, ask once which kind they want.
Hierarchy placement
Find epics
List open epics (type: epic and titles with [Epic] / [EPIC]). See github_commands.md.
Find features under an epic
List sub-issues of the candidate epic; prefer children whose titles start with [Feature] (or other feature-family prefixes) when attaching a leaf.
Match rules
- 0 matches: Tell the user none fit. Ask them to name an existing parent or create one first. Do not invent a parent.
- 1 clear match: Confirm number + title, then proceed.
- 2+ matches: Present
#N — title with one-line why each might fit. Do not pick for the user.
Create epic
- No parent search.
- Title:
[Epic] … (or [Epic]: … if matching existing style in the repo).
- Labels: include
type: epic plus other applicable existing labels.
- Prefer REST create with
type=Epic (see companion).
- Body: summary of the workstream and what child features will cover. Use feature-request sections where useful (templates.md).
Create feature-family
Non-bug work that is not itself an epic ([Feature], [Design], [Refactor], [Performance], [Security], [Docs], [Test], [Chore], [Question], …).
- Parent Epic is required. Do not create with no parent.
- Confirm epic via placement rules above.
- Labels: always
--label needs-triage plus other applicable existing labels (e.g. enhancement).
- Title prefix from the table in templates.md.
- Body sections from
feature_request.yml (templates.md).
- Create,
addSubIssue under the epic, verify.
Create leaf under feature
Use when the user wants a sub-issue of an existing feature (bug/chore/task scoped to that feature).
- Resolve parent Feature (must already be under an Epic — depth stays ≤ 3).
- If the feature has no epic parent, stop and fix hierarchy with the user before filing.
- Body/labels/title per bug or feature-family templates as appropriate.
- Create,
addSubIssue under the Feature, verify.
Create bug
- Labels:
--label bug plus other applicable existing labels (template also uses needs-triage when present in the repo).
- Title prefix:
[Bug]: …
- Body sections from
bug_report.yml (templates.md).
- Placement:
- Small self-contained bug (narrow repro, no design change, not part of a larger workstream): may proceed without a parent. Say so explicitly when filing.
- Otherwise: search for a fitting Feature under an Epic, then for a fitting Epic.
- If a Feature fits: confirm, parent under that Feature.
- If no Feature fits (non-trivial bug): ask the user to choose:
- Attach under an existing or new Feature (under an Epic)
- Attach directly under an Epic (depth 2)
- File with no parent (state that in the issue)
- Do not invent a Feature. Do not auto-pick among 2+ candidates.
- Create, link if parented, verify.
Done checklist
1---2name: cuga-github-issues3description: Create GitHub issues for cuga-agent (bugs, features, epics, designs, and related work) against origin using gh, with epic → feature → issue hierarchy and GraphQL sub-issue linking. Use when the user says create new issues, report a bug, file a bug, feature request, new feature, create an epic, GitHub issue, sub-issue, or parent epic.4---56# CUGA GitHub issues78File issues against **origin** upstream with `gh`. Read companions as needed:910- [github_commands.md](github_commands.md) — list/link/verify recipes11- [templates.md](templates.md) — body sections and title prefixes1213## Shared rules14151. Use upstream `origin` (not a fork-only default). Pass `--repo owner/name` when needed.162. Run `gh label list` for that repo. Only use label names that exist. Never invent labels.173. No promotional footers (“Made with Cursor”, etc.).184. Hierarchy depth is only: **Epic → Feature → Issue**. Never nest under a leaf issue. Never Feature → Feature. Never deeper than three levels.195. When parented: put `Part of #<number>.` at the top of the body, create the issue, then link with GraphQL `addSubIssue`. Body text alone is not enough. Verify parent afterward.206. Do not use unsupported `gh issue edit --set-parent`.2122## Detect intent2324| User intent | Branch |25|---|---|26| Epic / large workstream | [Create epic](#create-epic) |27| Feature, design, refactor, perf, security, docs, test, chore, question | [Create feature-family](#create-feature-family) |28| Bug / unexpected behavior | [Create bug](#create-bug) |29| Leaf task under an existing feature | [Create leaf under feature](#create-leaf-under-feature) |3031If unclear, ask once which kind they want.3233## Hierarchy placement3435### Find epics3637List open epics (`type: epic` and titles with `[Epic]` / `[EPIC]`). See [github_commands.md](github_commands.md).3839### Find features under an epic4041List sub-issues of the candidate epic; prefer children whose titles start with `[Feature]` (or other feature-family prefixes) when attaching a leaf.4243### Match rules4445- **0 matches:** Tell the user none fit. Ask them to name an existing parent or create one first. Do not invent a parent.46- **1 clear match:** Confirm number + title, then proceed.47- **2+ matches:** Present `#N — title` with one-line why each might fit. Do not pick for the user.4849## Create epic50511. No parent search.522. Title: `[Epic] …` (or `[Epic]: …` if matching existing style in the repo).533. Labels: include `type: epic` plus other applicable existing labels.544. Prefer REST create with `type=Epic` (see companion).555. Body: summary of the workstream and what child features will cover. Use feature-request sections where useful ([templates.md](templates.md)).5657## Create feature-family5859Non-bug work that is not itself an epic (`[Feature]`, `[Design]`, `[Refactor]`, `[Performance]`, `[Security]`, `[Docs]`, `[Test]`, `[Chore]`, `[Question]`, …).60611. Parent **Epic is required**. Do not create with no parent.622. Confirm epic via placement rules above.633. Labels: always `--label needs-triage` plus other applicable existing labels (e.g. `enhancement`).644. Title prefix from the table in [templates.md](templates.md).655. Body sections from `feature_request.yml` ([templates.md](templates.md)).666. Create, `addSubIssue` under the epic, verify.6768## Create leaf under feature6970Use when the user wants a sub-issue of an existing feature (bug/chore/task scoped to that feature).71721. Resolve parent **Feature** (must already be under an Epic — depth stays ≤ 3).732. If the feature has no epic parent, stop and fix hierarchy with the user before filing.743. Body/labels/title per bug or feature-family templates as appropriate.754. Create, `addSubIssue` under the **Feature**, verify.7677## Create bug78791. Labels: `--label bug` plus other applicable existing labels (template also uses `needs-triage` when present in the repo).802. Title prefix: `[Bug]: …`813. Body sections from `bug_report.yml` ([templates.md](templates.md)).824. Placement:83 - **Small self-contained bug** (narrow repro, no design change, not part of a larger workstream): may proceed **without** a parent. Say so explicitly when filing.84 - **Otherwise:** search for a fitting Feature under an Epic, then for a fitting Epic.85 - If a Feature fits: confirm, parent under that Feature.86 - If no Feature fits (non-trivial bug): **ask the user** to choose:87 1. Attach under an existing or new Feature (under an Epic)88 2. Attach directly under an Epic (depth 2)89 3. File with no parent (state that in the issue)90 - Do not invent a Feature. Do not auto-pick among 2+ candidates.915. Create, link if parented, verify.9293## Done checklist9495- [ ] Correct upstream repo96- [ ] Labels exist in `gh label list`97- [ ] Hierarchy depth respected98- [ ] Template sections filled from user/context99- [ ] `addSubIssue` + parent verified when parented100- [ ] Issue URL returned to the user