claude-code-plugin-ref…
Explain plugin, skill, command, agent, and hook mechanics used here. Use when authoring or debugging plugins. Do not use for ops;…
Writes tickets a reader can assess at a glance, with the why inline or a link away. Use when creating or editing Jira, GitLab, GitHub, or other tracker tickets.
Claude Code
$ npx -y skills add athola/claude-night-market --skill ticket-writing --agent claude-code
Codex
$ npx skills add athola/claude-night-market --skill ticket-writing -a codex -y
Cursor
$ npx skills add athola/claude-night-market --skill ticket-writing -a cursor -y
Gemini CLI
$ npx skills add athola/claude-night-market --skill ticket-writing -a gemini-cli -y
GitHub Copilot
$ npx skills add athola/claude-night-market --skill ticket-writing -a github-copilot -y
OpenCode
$ npx skills add athola/claude-night-market --skill ticket-writing -a opencode -y
Windsurf
$ npx skills add athola/claude-night-market --skill ticket-writing -a windsurf -y
name: ticket-writing description: Writes tickets a reader can assess at a glance, with the why inline or a link away. Use when creating or editing Jira, GitLab, GitHub, or other tracker tickets. alwaysApply: false category: conventions tags: - tickets - issues - jira - gitlab - github - traceability dependencies: - git-platform - decision-journal complexity: beginner estimated_tokens: 700 progressive_loading: true modules: - modules/tracker-mechanics.md role: library
Picture a reader arriving from the merge request. On the first screen of the ticket, without scrolling or opening a comment, they can answer two questions: what was decided, and why. If the why is too long for that screen, they find one link to the document that holds it. A ticket failing this test is not done.
A team that edits tickets by hand has already settled on a shape. Before writing, read three recent tickets of the same type in the same project, written or edited by a person, and copy their headings, heading level, and markup. A tracker template (see tracker mechanics) counts as the same signal. Keep every heading that shape uses. Where the samples put `N/A` under an empty heading, do the same.
This rule comes from one private Jira project. The labels reviewers deleted most were `Why:` and `Done when:` from the default shape below, plus `Repro:` and `h2.` headings. Of 67 tickets with description edits, 42 end in one of these two shapes:
### Impact ### Summary ### Expected behavior ### Context ### Actual behavior ### Acceptance criteria ### Steps to reproduce ### Other information ### Environment ### Workarounds ### Other information
A rewrite tool produced some of these headings. The team kept them, and that is the signal: copy the shape a project keeps, whatever wrote it first. The wording fixes reviewers made by hand:
sees ("Cancelled download not shown in the downloads list"), not the mechanism.
uses the present tense.
changes belongs in the merge request.
"synced" over "landed", "immediately" over "at once".
Use this only when the project shows no shape of its own.
<What changes, or what was decided. One or two sentences.> Why: <one to three sentences, or one sentence and a link> Done when: <only if the title does not already say> Links: <merge request, ADR, spec, parent>
The title names the outcome. Use at most three headings. Delete any heading a template supplies when it has nothing under it.
Read the live description before every edit, diff it against what you last wrote, and change only the sentence that needs it. If a person changed it, patch their text and never regenerate it from your draft. In the observed project, one ticket lost a reviewer's restructure that way and had to be restored from the changelog.
| Situation | Ticket carries | |-----------|----------------| | One reason, nothing contested | Why inline, one to three sentences | | Options were weighed, the choice outlives this work, or the reasoning already exists | Decision plus link | | Parent ticket already states the reason | Parent link | | Self-evident change: typo, version bump | Title and merge request link |
Decision plus link means one sentence naming the choice, then the link. The sentence keeps the ticket readable when the reader lacks access to the document or it has moved. Do not paste the document into the ticket, because two copies drift apart. Link durable things: an ADR, a spec path, a merge request. Screen captures and chat threads do not qualify, so restate what they showed.
Record the decision in the description. When a decision changes, edit the first lines and leave the history in comments.
when that runs longer. Nobody can recover those from the merge request.
Restated diffs, implementation steps, empty headings, filler openers, promotional adjectives. Never put secrets or credentials in a ticket. Before saving a long generated body, run `Skill(scribe:slop-detector)`.
Before: Run the lint script on merge request pipelines. Closed by !14.
After: Run the lint script on merge request pipelines. Why: format and clippy
failures only surfaced after merge. Closed by !14.The first version says what. Only the second lets the reader judge the work.
A ticket and a merge request must each point at the other, in a place tools can find. See [tracker mechanics](modules/tracker-mechanics.md) for what each tracker reads.
No study found measures ticket length or glanceability, so the shape above is judgment. The link rule has data: only 60% of commits linked to issues across six projects ([Rath 2018](https://arxiv.org/abs/1804.02433)), and 47% of release artifacts lacked trace links ([Nath 2025](https://arxiv.org/abs/2511.18187)). See ADR-0028 for the decision.
shape is used because the project has
A plugin marketplace for Claude Code. Install only the plugins you need to run git workflows, code review, spec-driven development, and autonomous agents from inside your Claude Code session.
Explain plugin, skill, command, agent, and hook mechanics used here. Use when authoring or debugging plugins. Do not use for ops;…
States load-bearing decisions, invariants, and weak points. Use when judging a design change. Do not use for gating; use…
Rebuild the dev environment: uv, Python tiers, pins, traps. Use when onboarding or toolchain breaks. Do not use for daily…
Classify, gate, and review changes. Use when landing a PR, releasing, or amending rules. Do not use for failure triage; use…
Search and record project memory (Discussions, journal, ADRs). Use before re-investigating anything. Do not use for settled…
Bind loop 'done' to unfakeable gates. Use to harden egregore/herald loops or promote completion_integrity. Not for QA gates; use…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.