Pick any line to see why it is the way it is: the commit, the pull request and issue it came from, and what the agent was thinking.
| Merge branch 'worktree-agent-ad52ad80841a37960' | 1 | --- |
| 2 | name: work-on-issue | |
| 3 | description: Work on a g1t issue from start to merge. Use when asked to work on, fix, implement or pick up an issue in a g1t repository (an issue number such as #42, or a g1t.sh issue link). | |
| 4 | argument-hint: "[issue number]" | |
| 5 | allowed-tools: Bash(g1t:*) Bash(git:*) | |
| 6 | --- | |
| 7 | ||
| 8 | # Work on a g1t issue | |
| 9 | ||
| 10 | The issue is the work: its description says what is wanted, its | |
| 11 | "Definition of done" and the repository's required checks say when it is | |
| 12 | done, `blocked_by` lists what must land first, and its pull requests are | |
| 13 | the attempts. Other agents and people may be working in the same | |
| 14 | repository; claims and events are how you stay out of each other's way. | |
| 15 | Every `g1t` command takes `--json` when you need fields rather than text. | |
| 16 | ||
| 17 | Issue: $ARGUMENTS (if empty, ask which issue, or list open ones with `g1t issue list`). | |
| 18 | ||
| 19 | 1. **Load the context.** Run `g1t work context N`. It shows the issue and | |
| 20 | its definition of done, who has claimed it, the sessions and pull | |
| 21 | requests already on it with their checks and overlaps, what blocks it, | |
| 22 | what it blocks, the decisions recorded so far and the last integration | |
| 23 | failure. Read all of it before you change anything. | |
| g1t coordinates the work and the person's own sessions do it: Ask g1t reads g1t with the same tools any agent gets, answers in one conversation shared with the @g1t direct message in Chat, and hands work to sessions in the person's own harness, whose subagents g1t records, ties to issues and pull requests, and lets see each other. | 24 | 2. **Check it is free to start, and who else is on it.** |
| 25 | - Its sessions include subagents: if you are one of several agents on | |
| 26 | this issue (siblings started by the same session, or other people's), | |
| 27 | run `g1t session list --issue N --subagents` and read what each is | |
| 28 | doing and has touched (`g1t session view ID`). Take a part nobody has, | |
| 29 | and say which in your claim's note. Before editing a shared file, | |
| 30 | `g1t session list --path FILE` says who else touched it. | |
| Merge branch 'worktree-agent-ad52ad80841a37960' | 31 | - If it is blocked by issues that are still open, say so and stop |
| 32 | unless you are asked to go on anyway. | |
| 33 | - If someone else holds an active claim, tell the person who asked you, | |
| 34 | and go on only if they say to. Two claims are allowed; they are a | |
| 35 | warning, not a lock. | |
| 36 | - If a pull request for it is already open, prefer continuing that one | |
| 37 | (`g1t pr checkout NUMBER`) over starting another. | |
| 38 | 3. **Claim it.** `g1t work claim N --note "what you are about to do"`. The | |
| g1t coordinates the work and the person's own sessions do it: Ask g1t reads g1t with the same tools any agent gets, answers in one conversation shared with the @g1t direct message in Chat, and hands work to sessions in the person's own harness, whose subagents g1t records, ties to issues and pull requests, and lets see each other. | 39 | claim belongs to this session (a subagent's to its own session) and is |
| 40 | renewed while the session is active. Its answer lists the other claims | |
| 41 | on the issue, siblings' included: read them. If g1t later reports an | |
| 42 | overlap (`overlap.detected`) with another session, agree who changes | |
| 43 | the file before going on; `g1t work events --follow --issue N` keeps | |
| 44 | you told. | |
| 45 | Without the CLI, g1t's MCP server does the same: `issue` with action | |
| 46 | `work`, `claim` and `release`, and `session` with action `list`. | |
| Merge branch 'worktree-agent-ad52ad80841a37960' | 47 | 4. **Branch.** From an up-to-date default branch, make a branch whose name |
| 48 | starts with the issue number, such as `42-short-description`, so the | |
| 49 | session and the next one know which issue it is for. | |
| 50 | 5. **Open a draft pull request early**, as soon as there is a first commit: | |
| 51 | `g1t pr create --issue N --draft --fill`. Others then see your changes, | |
| 52 | and g1t tells you when they overlap with someone else's. | |
| g1t coordinates the work and the person's own sessions do it: Ask g1t reads g1t with the same tools any agent gets, answers in one conversation shared with the @g1t direct message in Chat, and hands work to sessions in the person's own harness, whose subagents g1t records, ties to issues and pull requests, and lets see each other. | 53 | 6. **Do the work.** Commit in small steps and push often, with the |
| 54 | trailer `G1t-Session: $G1T_SESSION` on each commit | |
| 55 | (`git commit --trailer "G1t-Session: $G1T_SESSION"`) so g1t ties the | |
| 56 | commits to this session. Run the same | |
| Merge branch 'worktree-agent-ad52ad80841a37960' | 57 | tests and linters the repository's workflows run before each push. Log |
| 58 | a decision worth keeping with `g1t session log --kind note "TEXT"`. | |
| 59 | 7. **Watch the checks.** `g1t pr checks --watch --fail-fast`. When one | |
| 60 | fails, `g1t run logs --failed` says why; fix it and push again. | |
| 61 | 8. **Finish.** When the definition of done is met and the checks pass, | |
| 62 | `g1t pr ready --summary "what changed and why"`, then `g1t pr merge` | |
| 63 | when you are allowed to merge. With the merge queue on, merging adds the | |
| 64 | pull request to the queue; if the queue reports an integration failure, | |
| 65 | use the `fix-integration` skill. | |
| 66 | 9. **Let go.** If you stop before it is done, hand it off rather than | |
| 67 | leaving a claim to expire: `g1t work handoff N --note "where it stands, | |
| 68 | what is left, what to watch out for"`. |
This file's history is long; its oldest lines are credited to the oldest commit read.