]> git.giacomolli.uk - onechat/blob - .agents/skills/issues/SKILL.md
Require consent and review for autosquash
[onechat] / .agents / skills / issues / SKILL.md
1 ---
2 name: issues
3 description: Read and write issues with git-bug. Use for any issue work.
4 ---
5
6 # Issues
7
8 Issues live in git-bug, inside the Git repository, not in files. The
9 `overview` issue lists the phases and the open decisions. Run the
10 commands in the Nix development shell. Internal git-bug tracker metadata
11 commits may be unsigned, as the `commit` skill permits. Normal code and
12 documentation commits still require signing and verification.
13
14 ## Read
15
16 - List the open issues with `git bug bug status:open`.
17 - Read an issue and all its comments with `git bug bug show ID` before
18 you start work on it.
19
20 ## Write
21
22 - Give the title and the body with `-t` and `-m`. Do not use `-F`: it
23 drops every line that starts with `#`, so Markdown headings are lost.
24 - Write the title like a commit subject: 50 characters or fewer, in the
25 imperative mood, with no final period.
26 - Write the body in Markdown. State the result for the user, the scope,
27 and how to check it.
28 - Format each body and comment with `mdformat -` in the repository, so
29 that it uses `.mdformat.toml`. mdformat joins trailer lines into one
30 line, so format the text first and add the trailers after it.
31 - Quote a long text as a blockquote below the paragraph or list, not as
32 inline code. mdformat cannot wrap inline code.
33 - Add a comment with `git bug bug comment new ID -m TEXT` for progress
34 that matters: decisions made with the user, measurements, and checks
35 that could not run.
36 - When a question to the user is still open at the end of a session, add
37 it as a comment with the options and your recommendation. Add the
38 answer as a comment when it comes.
39 - Give the reason with each decision, so that a later agent does not
40 undo it.
41 - Close an issue with `git bug bug status close ID` only when its check
42 passes.
43 - Label a phase `phase`, an open question `decision`, and the plan
44 `overview`, with `git bug bug label new ID LABEL`.
45
46 ## Relations
47
48 git-bug has no links between issues. Write them as trailers in the last
49 paragraph of the body, one per line, as in a commit message:
50
51 - `Parent: ID` names the issue that this issue belongs to. A child has
52 one parent.
53 - `Depends-on: ID, ID` names the issues that must be done first.
54 - A parent lists the IDs of its children in its body.
55
56 `git interpret-trailers --parse` reads the trailers of a body.
57
58 Find the issues that relate to an issue with `git bug bug ID`. The
59 search finds every issue that mentions the ID, so read the trailers of
60 each match. Do not search for more than one word: git-bug finds issues
61 that match any of the words, and it reads `Parent:` as a query
62 qualifier. Nothing checks the trailers. Before you close a parent, make
63 sure that its children are closed.
64
65 Push issues with `git bug push` only when the user authorizes it. A
66 remote does not give permission to push. Do not rewrite published
67 history without the user's explicit approval.
68
69 This example creates an issue:
70
71 ```sh
72 body=$(mdformat - < body.md)
73 git bug bug new --non-interactive -t 'Decide the root wake interval' \
74 -m "$body
75
76 Parent: 180a674"
77 ```