issue · diff
git:20260531.05149f1 to git:20260905.c68a71a
21 added, 79 removed. Audit A to A.
---
name: issue
- description: Use GitHub issues as persistent cross-session resolution memory. Create, update, and re-read issues that are self-contained and re-readable cold, recording the hypothesis and the resolution. Triggers on "track this in an issue", "create an issue I can resume", "resume issue", "issue memory", "log this problem as an issue", or when work must survive a context reset via the GitHub tracker. NOT for ephemeral session snapshots (use remember) and NOT for the manual Obsidian vault (use brain). GitHub-native, auto-re-readable on resume.
- argument-hint: "[create|update|resume|list] [#N | <problem>]"
- allowed-tools: Bash(gh issue view:*), Bash(gh issue list:*), Read
+ description: Create, update or resume a GitHub issue as durable resolution memory when requested.
+ argument-hint: "[create|update|resume|list] [#N | problem]"
---
- # issue: GitHub issues as resolution memory
-
- Persist problem-solving state in GitHub issues so a later session (or a fresh context) can re-read an issue cold and continue. Each issue records the problem, a self-contained Pickup Directive, the working hypothesis, attempts, and the final resolution.
-
- ## Prerequisites
-
- - `gh` CLI authenticated (`gh auth status`).
- - Inside a GitHub repo (a remote with issues enabled). If not, stop and tell the user.
-
- ## Natural-language routing
-
- Interpret intent and route:
-
- | User says | Action |
- |-----------|--------|
- | "track this in an issue", "log this problem", "open an issue for this" | **create** |
- | "update the issue", "note progress on #N", "I found the cause" | **update** |
- | "resume issue #N", "what was I doing on #N", "pick up where I left off" | **resume** |
- | "list my memory issues", "what issues am I tracking" | **list** |
-
- Default when ambiguous and a number is present → **resume #N**; otherwise → **create**.
-
- ## create
-
- 1. Draft the issue body from `references/issue-template.md` (Problem / Pickup Directive / Hypothesis / Attempts / Resolution). Fill Problem + Pickup Directive + initial Hypothesis from the current context; leave Attempts/Resolution as stubs.
- 2. **Confirm with the user before opening** (opening an issue is outward-facing). Show the drafted title + body.
- 3. Create with the memory label so `resume`/`list` can filter:
- ```bash
- gh issue create --title "<concise title>" --label claude-memory --body "<rendered template>"
- ```
- If the label does not exist, create it once: `gh label create claude-memory --description "Claude resolution memory" --color BFD4F2`.
- 4. Report the issue number + URL.
-
- ## update
-
- 1. **Read before write**: `gh issue view <N> --comments` to load current state.
- 2. Append progress as a comment (never overwrite the original body):
- ```bash
- gh issue comment <N> --body "<progress / revised hypothesis / new attempt>"
- ```
- 3. When solved, append the resolution and close (**confirm before closing**):
- ```bash
- gh issue comment <N> --body "Resolution: <what fixed it and why>"
- gh issue close <N> --reason completed
- ```
-
- ## resume
-
- 1. Load the issue cold:
- ```bash
- gh issue view <N> --comments
- ```
- If no number given: `gh issue list --label claude-memory --state open` and ask which.
- 2. Reconstruct context strictly from the **Pickup Directive** + Hypothesis + latest comments. Do not assume prior chat memory.
- 3. State the recovered context back to the user, then continue the work.
-
- ## list
-
- ```bash
- gh issue list --label claude-memory --state open
- ```
- Show number, title, and updated time.
-
- ## Issue body template
+ # Issue memory
- The structure lives in `references/issue-template.md`. Read it before `create` so every issue is self-contained and re-readable cold. The **Pickup Directive** is mandatory: it is what makes the issue resumable without prior context.
+ Use the authenticated gh CLI. Read the specific issue and comments before
+ updating it; do not query unrelated issues. Capture the problem, evidence,
+ attempts, remaining action and verification so the issue can be resumed cold.
+ Use references/issue-template.md when creating one.
- ## Guardrails
+ Confirm before creating or closing an issue. Append requested progress as
+ comments instead of overwriting the body. Preserve the existing claude-memory
+ label and Pickup Directive contract. No code changes, commits or agents.
- - Read an issue (`gh issue view`) before commenting or closing; never blow away existing content.
- - Confirm with the user before `gh issue create` and before `gh issue close` (outward-facing / state change).
- - Use `gh` for all issue operations, not raw git; this skill never commits or pushes.
- - Never modify a database; this skill only touches GitHub issues.
- - Prose in English; technical terms and identifiers in English.
- - Any web lookup uses Exa MCP only (web_search_exa, crawling_exa); never native WebSearch/WebFetch.
- - No comments inside any generated code or scripts.
+ Resume reconstructs the current state from the issue, not stale memory. A
+ solved issue does not trigger another diagnosis. List returns concise open
+ items and stops. If the controlled shell has no external networking, report
+ that authorization/capability boundary instead of claiming the GitHub action
+ happened or attempting an execution escape.
- ## Delimitation
+ ## Execution policy
- - `issue` != `remember`: remember is an ephemeral per-session snapshot. issue is durable and GitHub-native.
- - `issue` != `brain`: brain is manual Obsidian capture. issue is the repo's tracker, auto-re-read on resume.
+ Work solo. Ask before any subagent or reviewer, even in auto mode. Explain
+ the independent scope and expected benefit first. No hidden advisor, nested
+ delegation, model retuning, repeated successful checks, or progress spam.
+ Use existing context before asking questions. Stop when the requested result
+ is delivered. User stops and scope changes override pending steps.