working-from-a-ticket
Skill1 starsChanged 3 months agoMITView on GitHub
Captures a ticket from an issue tracker as the definition of the work: its text and acceptance criteria as read, and what it leaves unclear, so the plan and the tests bind to a recorded text. Use when the user hands over a ticket, issue, story, or work item as the task, whether pasted, linked, or named by its identifier, and again before ticket-defined work is called done. Skip work the user describes in their own words with no ticket behind it.
In this repository49 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- writing-specsSkill
- clarifying-intentSkill
- dispatching-parallel-agentsSkill
- handoffSkill
- mapping-the-codebaseSkill
- prototypingSkill
- using-git-worktreesSkill
- using-sdlc-skillsSkill
- viewing-artifactsSkill
- writing-skillsSkill
- yagniSkill
- finishing-a-branchSkill
- release-readinessSkill
- architecture-decisionsSkill
- coding-standardsSkill
- data-modelSkill
- migration-strategySkill
- reviewing-plansSkill
- system-architectureSkill
- ui-ux-designSkill
- writing-plansSkill
- adding-observabilitySkill
- changing-a-live-schemaSkill
- executing-plansSkill
- rollout-controlsSkill
- subagent-driven-developmentSkill
- test-driven-developmentSkill
- complexity-auditSkill
- containing-an-incidentSkill
- debuggingSkill
- deprecating-an-apiSkill
- diagnosing-a-sessionSkill
- eliminating-correctionsSkill
- large-scale-changesSkill
- post-mortemSkill
- refactor-architectureSkill
- brainstormingSkill
- define-goalsSkill
- feasibility-checkSkill
- scopingSkill
- receiving-code-reviewSkill
- requesting-code-reviewSkill
- reviewing-a-prSkill
- security-auditsSkill
- verification-before-completionSkill
- verification-strategySkill
- visual-ui-verificationSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
16 rules. About 0 are common, 9 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈9
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
Before ticket-defined work is called done (Step 4).
- Distinctive: line 24
If the ticket was pasted, that text is the ticket.
- Distinctive: line 26
If you were given a link or an identifier, read it only through a tool the harness already provides for that source and the user is …
- Distinctive: line 29
If there is no such tool, or the tool fails or returns only part of the ticket, stop reading, write down exactly what could not be read, …
- Distinctive: line 43
Ask this and end the turn.
- Distinctive: line 44
Read linked tickets, attachments, and comments that carry criteria or constraints the same way.
- Distinctive: line 46
Never fill a gap from memory, from a similar ticket, or from the title.
- Very specific: line 60
If the ticket states none, write none stated.
- Distinctive: line 62
Search the codebase before listing a point as unclear.
- Very specific: line 69
Write the capture to .sdlc-skills/briefs/{{YYYY-MM-DD}}-{{slug}}-ticket.md or the user-set path.
- Very specific: line 87
If Unclear holds an entry, REQUIRED SUB-SKILL: invoke clarifying-intent with that list, addressed to the capture's decision owner.
- Very specific: line 92
If the ticket describes a new project or initiative rather than one change, REQUIRED SUB-SKILL: invoke define-goals, which writes its own …
- Distinctive: line 95
If the ticket reports broken behavior whose cause is unknown,
- Very specific: line 98
If the work spans several steps or files, or the user calls it too big for one go, REQUIRED SUB-SKILL: invoke writing-plans.
- Very specific: line 113
If the text, the criteria, or the comments differ from the capture, the capture is stale.
- Very specific: line 117
If nothing changed, say so, with the identity and the time of the re-read.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Working From a Ticket
Capture what the ticket says, as read and when, so the plan, the tests, and the claim of done bind to one recorded text.
When to use
- The user hands over a ticket — pasted, linked, or named by its identifier — as the task.
- Before ticket-defined work is called done (Step 4).
- Skip work the user describes in their own words with no ticket behind
it;
clarifying-intentowns what such a request leaves open. - Skip turning the ticket into goals, a scope, or a spec:
define-goals,scoping, andwriting-specsown those. This skill writes no requirement of its own and judges no criterion met.
Step 1: Read the ticket through what you were given
- If the ticket was pasted, that text is the ticket. Read all of it, comments included.
- If you were given a link or an identifier, read it only through a tool the harness already provides for that source and the user is entitled to use. Note the tool and the time of the read.
If there is no such tool, or the tool fails or returns only part of the ticket, stop reading, write down exactly what could not be read, and ask once:
I cannot read {{identifier}} from here: {{reason}}. 1. Paste the ticket, acceptance criteria and comments included 2. Name a tool or path I may read it through 3. Continue from what was read so far, recorded as partial Recommendation: 1 — the work binds to the text read, so a partial read binds partial work.Ask this and end the turn.
- Read linked tickets, attachments, and comments that carry criteria or constraints the same way. List the rest; do not read them.
- Never fill a gap from memory, from a similar ticket, or from the title.
Step 2: Capture it
- Open
assets/ticket-capture.mdbefore writing, and fill every section from the text as read. Copy each acceptance criterion as written, informal or partial ones included:
Right: 2. "Should respond within 2 seconds" (as written; no load stated) Wrong: 2. Responds within 2 seconds under normal loadIf the ticket states none, write
none stated; the done condition is then an unclear point.- Search the codebase before listing a point as unclear; never list what the
code answers. List one line per point the text and the code together do
not settle: which component, where a boundary sits, a criterion with
nothing observable to check it by, a comment that contradicts the
description. A comment that narrows or contradicts the description goes
into the capture verbatim and becomes one
Unclearline; never settle it yourself. Write the capture to
.sdlc-skills/briefs/{{YYYY-MM-DD}}-{{slug}}-ticket.mdor the user-set path. The slug is the identifier lowercased, with each run of other characters replaced by one-and the ends trimmed, or a short topic slug when there is no identifier; the H1 keeps the identifier as written. If the path already exists, add-{{n}}before-ticket; a successor never takes the predecessor's path.Compute its identity by the artifact layout's captured-ticket rule in
using-sdlc-skills(the first 7 characters ofgit hash-objectover the whole file), and add one row to its record (the ledger: add to it, never rewrite it; its path is the capture's with.ledger.mdin place of.md): that identity, the statecaptured, and the source and read time as bound evidence. Never edit the capture afterwards; a changed ticket gets a successor (Step 4).
Step 3: Settle what is unclear, then hand on
- If
Unclearholds an entry, REQUIRED SUB-SKILL: invokeclarifying-intentwith that list, addressed to the capture's decision owner. Its answers live where it records them; the capture stays as read. Return here when it returns. Never guess an entry, and never promote a guess to an acceptance criterion. - If the ticket describes a new project or initiative rather than one
change, REQUIRED SUB-SKILL: invoke
define-goals, which writes its own brief file naming the capture's identity, and stop here. - If the ticket reports broken behavior whose cause is unknown,
REQUIRED SUB-SKILL: invoke
debuggingbefore any fix; the acceptance criteria stay the done condition. - If the work spans several steps or files, or the user calls it too big
for one go, REQUIRED SUB-SKILL: invoke
writing-plans. Put the capture's identity on the plan'sBound inputsline; trace each acceptance criterion, cited by that identity, to a task's Evaluator or to the plan's Acceptance check; and make the plan's last task re-read the ticket (Step 4). - Otherwise, REQUIRED SUB-SKILL: invoke
using-git-worktrees, thentest-driven-developmentandyagnibefore the first edit. Take the first test from the first acceptance criterion, or, when the capture saysnone stated, from the done conditionclarifying-intentsettled, wherever it recorded it.
Step 4: Before the work is called done
- Re-read the ticket the way Step 1 read it.
- If the text, the criteria, or the comments differ from the capture, the
capture is stale. Write a successor capture (Step 2) in its own new file,
naming the predecessor; add a
supersededrow to the predecessor's ledger; and return to Step 3. - If nothing changed, say so, with the identity and the time of the
re-read; then REQUIRED SUB-SKILL: invoke
verification-before-completion, listing each acceptance criterion as an item. It judges each criterion against evidence; this skill never does.
Gotchas
- A ticket's title, its description, and its last comment can disagree, and the latest comment often carries the current ask; a capture made from the title alone binds the wrong work — shows when a ticket's final comment narrows the scope.
git hash-objectcan bind only a file in the project, so the identity names the capture, never the ticket; the recorded read time and means are what tell a later reader which version of the ticket it was — shows when a ticket is edited between capture and review.- A criterion written as "should" or "ideally" still binds; dropping it as optional can ship a change the ticket's owner rejects — shows when a ticket's only latency requirement is phrased as "ideally".
Common mistakes
- Paraphrasing the ticket into the capture: copy the text instead; a
paraphrase belongs under
Unclear, as a question.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

