diff --git a/.claude/skills/jira-conventions/SKILL.md b/.claude/skills/jira-conventions/SKILL.md index 450c482..58bcd0d 100644 --- a/.claude/skills/jira-conventions/SKILL.md +++ b/.claude/skills/jira-conventions/SKILL.md @@ -1,6 +1,6 @@ --- name: jira-conventions -description: "RSRMID Jira conventions — the fields every issue needs (Work Category, Business Unit, Team, Components), this repository's `[COMPONENT][BU]: ` title prefix, choosing the parent epic, the Markdown description format, and the worklog rule for Done and Cancelled. Load before creating, editing, or transitioning a Jira issue." +description: "RSRMID Jira conventions — the fields every issue needs (Work Category, Business Unit, Team, Components), this repository's `[COMPONENT][BU]: ` title prefix, choosing the parent epic, the Markdown description format, linking every issue key, the worklog rule for Done and Cancelled, and closing an issue once its PR has merged. Load before creating, editing, transitioning, or naming a Jira issue to the user." --- @@ -35,8 +35,11 @@ copies byte-identical under every repository's own prettier config. - **Transitions** (global, available from any status): To Do (`11`), In Progress (`21`), In Review (`41`), Q&A (`61`), Ready for Deployment (`51`), Done (`31`), Stand-by (`71`), Cancelled (`91`) -- **Account IDs** (assignee, mentions): look them up with `lookupJiraAccountId` by name; - never write one into a repository file — most of these repositories are public +- **Account IDs** (assignee, mentions): look them up with `lookupJiraAccountId` by name. + Never write one into a file of a **public** repository — most of these repositories are + public, and an account ID there is published. A **private** repository may list the IDs its + work keeps needing, e.g. the regular assignees in its `CLAUDE.md`; check the repository's + visibility before you write one ## Fields to Set on Every Issue @@ -133,6 +136,16 @@ Square brackets are Markdown link syntax, so a bare `[WHMCS][CNR]`-style prefix description gets escaped. Either wrap it in backticks or drop the brackets when referring to another issue's title. +## Referring to an Issue + +Every issue key you write for a reader is a link to the issue, never a bare key — in a reply, +a summary, a PR description or a PR comment, and for every project's keys, not only RSRMID's: +`[RSRMID-1234](https://centralnic.atlassian.net/browse/RSRMID-1234)`. A bare key makes the +reader search for it; the link costs nothing. + +Branch names and commit messages keep the bare key. They are not rendered, and tooling matches +the key in them. + ## Closing an Issue: Done or Cancelled Neither **Done** nor **Cancelled** holds without a worklog — automation stamps @@ -143,4 +156,18 @@ is not obvious; (2) remove the `missing-time-spent` label if present; (3) transi After opening a pull request for an issue, add the PR URL to the issue as a comment. +### Close It Once Nothing Is Left + +When the last pull request for an issue has merged and the worklog is in, close the issue +without asking — provided nothing is left: + +- every pull request for the issue is merged or closed, in every repository it touched; +- for a change in a submodule of rtldev-middleware-workspace, the pin bump there has merged too; +- the issue has no open sub-task and no open item in its description; +- every follow-up the work turned up has its own issue. + +Bring the description up to the final state before the transition, since it is what a reader of a +closed issue sees first. Then report the close with the issue linked. If anything on the list is +still open, leave the issue open and say what is left. + diff --git a/CLAUDE.md b/CLAUDE.md index d720c8a..ae2051c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -95,6 +95,14 @@ Work is tracked in **Jira Cloud**, project `RSRMID` — not GitHub Issues. Load `jira-conventions` skill before creating, editing or transitioning an issue: it carries the required fields, this repository's title prefix and component, and the worklog rule for Done and Cancelled. +Two of its rules apply whether or not the skill is loaded: + +- Write every Jira issue key as a link to the issue, never bare: + `[RSRMID-1234](https://centralnic.atlassian.net/browse/RSRMID-1234)`. + Branch names and commit messages keep the bare key. +- Once an issue's last pull request has merged and its worklog is in, close it + without asking if nothing is left — the skill lists what counts. + ## Do NOT - Add dependencies without explicit request