gh-create-plan
Skill5 starsChanged 51 days agoMITView on GitHub
Create a plan issue on GitHub. Use when planning a task, or when the user tells you to "create a github plan issue" with the repo name as argument.
In this repository7 other files it gives its agents.
- gh-close-planSkill
- gh-create-prSkill
- gh-implement-planSkill
- gh-read-planSkill
- gh-update-planSkill
- handoverSkill
- prompt-sessionSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 4 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Never @mention other users in plan issues or comments.
- Distinctive: line 10
Create a GitHub issue containing the detailed plan for the work in this conversation.
- Distinctive: line 27
If a durable-memory CLI is configured, query it with the task's distinctive terms before writing the plan.
- Distinctive: line 29
Before creating the plan, ask the user if there are related repos with similar implementations that should inform the approach.
- Very specific: line 55
After creating the issue, tell the user they can use /gh-read-plan and /gh-update-plan to continue working with it.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Never @mention other users in plan issues or comments.
Create a GitHub issue containing the detailed plan for the work in this conversation.
Plan location. Check ~/.claude/skills/plan-config.json for personalRepo and/or teamRepo (both optional). $ARGUMENTS can be personal, team (resolved from config; fail if the corresponding repo is not configured), or an owner/repo used directly. If no argument is given: use the only configured repo if there is exactly one; ask the user if both are configured; ask for a repo if neither is configured.
- Personal: the
personalRepofrom config. - Company-shareable (team plans and records): the
teamRepofrom config. A plan opened here distills into a team record on close.
Guard. Plan issues must only be created in private or internal repos. NEVER create them in public repos. If the user provides a public repo, warn them and ask for the correct location.
Derive a concise issue title from the conversation context. Ask the user if unclear.
The GitHub issue should be self-contained so that a new conversation can pick up the work without needing additional context. Omit raw exploration and back-and-forth; only include the conclusions.
Think as a software architect first. Before writing steps, consider: What are the key abstractions? Where should boundaries be? What's the simplest design that solves the problem? What will be hard to change later? Let these decisions shape the plan structure.
When a design splits work across layers (e.g. "resolve X in layer A, resolve Y in layer B"), verify what context is available at each layer by reading the actual code. Do not assume context is unavailable without checking. Plans that make wrong assumptions about layer boundaries lead to unnecessary complexity (e.g. partially-resolved intermediate states).
If a durable-memory CLI is configured, query it with the task's distinctive terms before writing the plan. See the memory tool's own integration doc for mechanics.
Before creating the plan, ask the user if there are related repos with similar implementations that should inform the approach. If so, review them to understand how the problem was solved there, and incorporate relevant patterns into the plan.
Issue body (should rarely need updating):
- What and Why: What problem is being solved and why it matters. Do not include the how/design.
- Prerequisites: List only non-obvious manual steps needed before implementation. Omit this section entirely if there are no real prerequisites.
After creating the issue body, add structural comments in the canonical order below. Each comment starts with a ## heading. These are permanent and must never be deleted (even by gh-close-plan). Session summary comments (added later by gh-update-plan) are non-structural and come after these.
- Steps: Group steps under numbered headings (
### Step 1: ...,### Step 2: ...). Each step contains checkboxes for its sub-tasks, followed by a one-line dependency note below the checkboxes:Depends on: 1, 2orIndependent. Always number the top-level steps explicitly. Steps with a child issue:- [ ] Child issue: owner/repo#N. Checkboxes and the dependency line only - no other prose or narrative. Context belongs in the Design comment. - Design: The chosen approach only. Technical approach, key abstractions, boundaries, trade-offs. Rejected alternatives belong in standalone comments (
## Considered: ...,## Decision: ...), not here. This is where the living design is tracked. - Diagram: Show the flow, structure, or relationships using Mermaid (not ASCII). Pick the right diagram type for the content:
- Temporal flow (request handling, build pipeline, event sequence):
sequenceDiagram. - Static structure (components, dependencies, what connects to what):
flowchartwithsubgraphfor grouping andclassDeffor color-coded categories. Short caption (three sentences max, no "Caption:" prefix).
- Temporal flow (request handling, build pipeline, event sequence):
- Links: Links to relevant documentation, code, resources, and related issues. Do not add PRs here.
- Useful commands: Added by
gh-update-planwhen useful commands are discovered. Not created bygh-create-plan. - Agent sessions: A table
| Session | Directory | Model | Last used | ID |with this session as the first row. Set Last used to today's date (YYYY-MM-DD). Use backtick code formatting for Directory and ID. Replace the user's home directory with~in the Directory column. Get the session name from the system reminder in Claude Code (look for "The user named this session"), or from~/.codex/session_index.jsonlin Codex (seegh-update-planfor the lookup); if not found, use "unnamed". Get the session ID from$CLAUDE_CODE_SESSION_ID(Claude Code) or$CODEX_THREAD_ID(Codex). Model: never guess. In Claude Code, use the model from the system prompt. In Codex, query~/.codex/state_5.sqlite:SELECT model FROM threads WHERE id = '$CODEX_THREAD_ID'. Use the model family, version, and variant without extras (e.g. "Opus 4.8", "Fable 5", "GPT-5.6 Sol"). - PRs: Added by
gh-update-plan. Table:| PR | What | Agent session |.
On create, add comments 1-4 and 6. Comments 5, 7 are added later by gh-update-plan.
Labels: Before creating the issue, fetch available labels from the target repo with gh label list --repo OWNER/REPO --json name,description. Exclude status/workflow labels (e.g. blocked, in-progress, done, wontfix). Present the remaining labels and ask the user which to apply. Apply selected labels with --label flags on gh issue create. If no labels exist in the repo, skip this step.
Format the issue in a clear and organized way, using headings, subheadings, bullet points, and tables as needed to enhance readability.
After creating the issue, tell the user they can use /gh-read-plan and /gh-update-plan to continue working with it.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

