en un clic
en un clic
| name | create-issue |
| description | Create a GitHub issue and add it to the Typhon dev project |
Create a GitHub issue and add it to the "Typhon dev" project (project #7).
$ARGUMENTS
If $ARGUMENTS contains --help or -h, display the following and stop — do not execute the workflow.
/create-issue [title]
Create a GitHub issue and add it to the Typhon dev project.
Arguments:
title Issue title text — if provided, skips the title prompt
--help, -h Show this help
What it does:
1. Gathers required info (title, description, labels, area, priority, phase, estimate)
2. Creates the issue via GitHub API
3. Adds it to the Typhon dev project board
4. Sets project fields (priority, phase, area, estimate)
Examples:
/create-issue
/create-issue "Add spatial indexing support"
You need to gather the following information. If NOT provided in the arguments above, use the AskUserQuestion tool to ask the user:
bug, enhancement, documentation, performance, refactoring, testing, technical-debt, questionAskUserQuestion to ask for itAskUserQuestion with multi-select for labelsIf title is missing:
Question: "What should the issue title be?"
Options: Let user type freely (no predefined options needed - just ask in text)
If description is missing:
Question: "Can you describe what needs to be done?"
For type labels (if not provided):
Question: "What type of issue is this?"
Header: "Type"
Options: bug, enhancement, documentation, performance, refactoring, testing, technical-debt
MultiSelect: true
For area (if not provided):
Question: "Which area of the codebase does this primarily affect?"
Header: "Area"
Options:
- Database (DatabaseEngine, ComponentTable, API)
- Transactions (Transaction, TransactionChain)
- MVCC (Revisions, snapshot isolation)
- Indexes (B+Tree implementations)
- Schema (Component definitions, attributes)
- Storage (PagedMMF, segments, persistence)
- Memory (Allocators, memory blocks)
- Concurrency (Locks, AccessControl)
- Primitives (String64, Variant, collections)
MultiSelect: false
For priority (if not provided):
Question: "What priority level?"
Header: "Priority"
Options:
- P0-Critical (blocking, needs immediate attention)
- P1-High (important, should be done soon)
- P2-Medium (normal priority)
- P3-Low (nice to have, do when time permits)
For phase (if relevant):
Question: "Is this part of a specific development phase?"
Header: "Phase"
Options:
- Telemetry (observability, metrics, diagnostics)
- Query (query engine, filtering, sorting)
- WAL (write-ahead logging, recovery)
- Reliability (error handling, resilience)
- Infrastructure (tooling, CI/CD, docs)
- None (standalone issue)
For estimate (if not provided):
Question: "How would you estimate the effort?"
Header: "Estimate"
Options:
- XS (trivial, < 1 hour)
- S (small, half a day)
- M (medium, 1-2 days)
- L (large, 3-5 days)
- XL (extra large, 1+ week)
Once you have the required information:
IMPORTANT: When writing the issue body, always use absolute URLs for any links to files in the repo. Relative paths like [text](claude/foo.md) break when viewed outside the repo context (e.g., on the project board). Use https://github.com/nockawa/Typhon/blob/main/<path> for files and https://github.com/nockawa/Typhon/tree/main/<path> for directories. See .claude/skills/_helpers.md rule #9.
Use mcp__GitHub__create_issue with:
"nockawa""Typhon""<title>""<description>"["<label1>", "<label2>"]["nockawa"]Note: Issues are always assigned to nockawa by default.
gh project item-add 7 --owner nockawa --url <issue_url>
Project item lookup: Read .claude/skills/_helpers.md Section 2 for the robust patterns.
# Find the item ID by piping directly to Python (no temp files)
gh project item-list 7 --owner nockawa --limit 200 --format json 2>&1 | python3 -c "
import json, sys
items = json.load(sys.stdin)['items']
for item in items:
if item.get('content', {}).get('number') == int(sys.argv[1]):
print(item['id'])
sys.exit(0)
print('NOT_FOUND')
" <issue_number>
Use the field IDs below to set the appropriate fields:
# Set multiple fields for the item
gh project item-edit --project-id PVT_kwHOAud1ac4BNdCj --id ITEM_ID \
--field-id FIELD_ID --single-select-option-id OPTION_ID
If the issue represents a multi-phase effort and the user wants separate tracking issues for each phase, treat it as an umbrella and do two things:
[tasklist] block in the body with one #N reference per sub-issue — this is what humans read in the rendered markdown.sub_issues_summary on the umbrella reflects only the native links, not the [tasklist] text.How to link natively — for each sub-issue, get its database id (the big integer in the issue's JSON, not the small issue number) and POST it to the umbrella's sub_issues endpoint. Use gh api -F (not -f) so the id is serialized as a JSON integer, not a string:
# Get each sub-issue's database id
SUB_ID=$(gh api repos/nockawa/Typhon/issues/<sub_number> --jq '.id')
# Link it as a native sub-issue of the umbrella
gh api repos/nockawa/Typhon/issues/<umbrella_number>/sub_issues -X POST -F sub_issue_id=$SUB_ID
Verify:
gh api repos/nockawa/Typhon/issues/<umbrella_number>/sub_issues | python3 -c "
import json, sys
for s in json.load(sys.stdin):
print(f'#{s[\"number\"]} - {s[\"title\"]} [{s[\"state\"]}]')
"
Recap: the [tasklist] block gives you a checkbox-driven progress view embedded in the body (good for narrative + markdown tooling like /complete-subtask that checks the box). The native sub-issues linkage gives you GitHub's first-class UI — the "Sub-issues" panel, roll-up progress bar, and breadcrumb on the child. Do both when creating an umbrella — they serve different surfaces.
If the user asks to retroactively convert an existing umbrella (body has [tasklist] but sub_issues_summary.total is 0), run the linking loop above — no need to edit the body.
PVT_kwHOAud1ac4BNdCjPVTSSF_lAHOAud1ac4BNdCjzg8cXYI11d8e01f6aea77c6303600dea0a7aab6fadead6712503e99PVTSSF_lAHOAud1ac4BNdCjzg8c8uQgh project field-list 7 --owner nockawa --format jsonPVTSSF_lAHOAud1ac4BNdCjzg8c8uUgh project field-list 7 --owner nockawa --format jsonPVTSSF_lAHOAud1ac4BNdCjzg8cX_Egh project field-list 7 --owner nockawa --format jsonPVTSSF_lAHOAud1ac4BNdCjzg8cYEUgh project field-list 7 --owner nockawa --format jsonPVTF_lAHOAud1ac4BNdCjzg8c8uc--date "2026-02-15"After creating the issue, report back to the user with:
User: /create-issue Add support for spatial indexing
Claude: Asks for description, area, priority, and estimate
User: Provides answers
Claude: Creates issue, adds to project, sets fields, reports success
Issue #15 created: "Add support for spatial indexing"
Link: https://github.com/nockawa/Typhon/issues/15
Added to "Typhon dev" project
Assigned to: nockawa
Priority: P2-Medium
Phase: Query
Area: Indexes
Estimate: L (large)
Labels: enhancement, performance
Start / stop / status of the Typhon Workbench dev servers (Kestrel :5200 + Vite :5173) with file-based PID tracking so state survives across Claude Code sessions
Implement a GitHub issue end-to-end — scope it (whole issue or specific phases), build an acceptance-criteria plan from its design doc, get the plan approved, then develop autonomously with tests and a mandatory code review.
Complete work on a GitHub issue - close issue, update artifacts, prompt for doc updates
Scaffold a new Workbench panel — full stack (server DTOs/service/controller/tests + client hooks/store/panel/context-menu/tests + wiring + Playwright canary) that compiles on first invocation
Start working on a GitHub issue - updates status, creates branch, verifies design
Run regression benchmarks, track results, and generate trend reports