tickets
Skill2 starsChanged 35 days agoMITView on GitHub
Convert implementation plan into discrete, executable tickets for Claude Code
9 other projects use a version of this.
Adopted by
Most recently taken up by
- jeremy-farnault/claude-skillstheir own version, first seen Nov 3, 2026
- scottlivingston/claude-skillstheir own version, first seen Oct 25, 2026
- BinayakDotel/skills-marketplacetheir own version, first seen Oct 17, 2026
- phnx-labs/.agentstheir own version, first seen Oct 11, 2026
- jasonhulbert/skillstheir own version, first seen Oct 9, 2026
- Thalisu/SKILLStheir own version, first seen Oct 1, 2026
Used with
Projects with it also use spec, implement and 5 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
SentrySkillspec
Produce a verified spec — problem, desired outcome, and acceptance criteria — before building. Use when given a GitHub/Linear issue link, when starting from a fuzzy in-conversation idea, or asked to "figure out what to do" / "scope this" / "what should I build" — whenever the *what* isn't yet pinned down. Grills the ambiguities, checks the premise against the code, and produces acceptance criteria you sign off on — then hands to design-first.
Also in 4 projects that use this
Hugging FaceSkillimplement
Make tests pass. Invoke after /write-tests produces failing tests.
Also in 4 projects that use this
GoogleSkillprototype
Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.
Also in 3 projects that use this
GoogleSkillgrilling
Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.
Also in 3 projects that use this
NVIDIASkillresearch
Before designing a feature, research how comparable libraries solve the problem, check best practices, known pitfalls, and upstream changes. Use when starting a new feature, investigating an unfamiliar area, or the user asks to research something.
Also in 3 projects that use this
MicrosoftSkillhandoff
Compact the current conversation into a handoff document for another agent to pick up.
Also in 3 projects that use this
- +1 more from google
Other versions9 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 9
- gregwebs/skills-sdlc★ 20same name
- toverux/cantrips★ 3same name
- BinayakDotel/skills-marketplace★ 1same name
- jasonhulbert/skills★ 1same name
- phnx-labs/.agents★ 1same name
- scottlivingston/claude-skills★ 1same name
- Thalisu/SKILLS★ 1same name
- eric-wien/ogma★ 0same name
- jeremy-farnault/claude-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository75 other files it gives its agents.
- acceptance-criteriaSkill
- architect-guideSkill
- architect-reviewSkill
- audit-fixerSkill
- avo-admin-expertSkill
- backend-services-expertSkill
- bug-hunt-allSkill
- bug-hunt-fixSkill
- bug-huntSkill
- build-feature-remoteSkill
- build-featureSkill
- codeSkill
- component-testSkill
- controller-expertSkill
- create-qa-documentSkill
- debugSkill
- devops-expertSkill
- execute-qaSkill
- feature-qaSkill
- fix-bug-indexSkill
- fix-honeybadgerSkill
- fix-spec-bugsSkill
- fix-system-testSkill
- frontend-expertSkill
- frontend-reviewSkill
- full-qa-fixSkill
- full-qaSkill
- full-reviewSkill
- green-ciSkill
- group-issuesSkill
- honeybadger-auditSkill
- ideateSkill
- impact-assessmentSkill
- improveSkill
- merge-mainSkill
- model-expertSkill
- model-testSkill
- native-bug-hunt-fixSkill
- native-bug-huntSkill
- page-speedSkill
- plan-questionsSkill
- planSkill
- plan-system-testsSkill
- policy-testSkill
- prdSkill
- prd-worktreeSkill
- product-questionSkill
- product-question-tldrSkill
- qa-branchSkill
- qa-testerSkill
- refactor-sweepSkill
- resolve-honeybadgerSkill
- resolve-issueSkill
- resolve-issuesSkill
- review-acceptance-criteriaSkill
- review-fixesSkill
- review-railsSkill
- rspec-test-expertSkill
- scale-reviewSkill
- service-testSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
17 rules. 0 are common, 8 are distinctive, and 9 are very specific to this project.
0
Common
Most of the 9 edited versions we read keep these.
8
Distinctive
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
Read the entire implementation plan file at "${1}"
- Very specific: line 22
Check the plan header for a system tests flag.
- Very specific: line 25
If the plan's Success Criteria list contract IDs (AC-n, from .claude/acceptance-criteria/<slug>.md), distribute them:
- Distinctive: line 27
every AC appears verbatim (ID + criterion) as an acceptance criterion on ≥1 ticket — the ticket(s) implementing the plan step(s) the plan …
- Very specific: line 30
every ticket cites ≥1 AC in its Acceptance Criteria, or is tagged infra with a one-line justification in its Description (e.g.
- Distinctive: line 35
If the plan has no contract IDs, distribute its Success Criteria as before.
- Very specific: line 36
If the plan has a ## Frontend → ### Copy table, carry it onto the tickets — /code reads tickets, not the plan, so copy that lives only in …
- Very specific: line 38
every row goes onto the ticket(s) that render that screen/region as - [ ] Copy (allowed): "<string>" — <Kind>.
- Very specific: line 40
every view / component ticket that renders a screen also gets - [ ] Must NOT: render any other …
- Very specific: line 44
never invent copy while writing tickets.
- Distinctive: line 244
Completeness: Every file in the plan is covered by a ticket
- Distinctive: line 245
Dependencies: No circular dependencies exist
- Distinctive: line 246
Testability: Every ticket has clear acceptance criteria
- Very specific: line 257
every file in a phase's tickets is covered by that phase's Owns:
- Very specific: line 259
every After: phase sits in an earlier wave, and every ticket dependency points to the same phase or to a phase in an earlier wave On a …
- Distinctive: line 267
Read the entire plan carefully: - don't miss any files or specifications
- Distinctive: line 272
Estimate realistically: - consider Rails conventions and project patterns
“Common” is measured: kept by at least 6 in 10 of the 9 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Implementation Plan to Tickets Converter
Converting the implementation plan "${1}" into discrete, executable tickets.
Phase 1: Plan Analysis
Read and Parse the Implementation Plan:
- Read the entire implementation plan file at "${1}"
- Extract the following sections:
- Implementation Steps / Phases (the primary source — each step maps to one ticket)
- Technical Specifications (Files to Create, Files to Modify)
- Dependencies between components
- Success Criteria
- Testing Requirements
- Check the plan header for a system tests flag. If the plan says system tests are
excluded (all /build-feature plans do), emit NO tickets that create files under
spec/system/orspec/features/, and omit those paths from mixed tickets. - If the plan's Success Criteria list contract IDs (
AC-n, from.claude/acceptance-criteria/<slug>.md), distribute them:- every AC appears verbatim (ID + criterion) as an acceptance criterion on ≥1 ticket — the ticket(s) implementing the plan step(s) the plan names for it — so nothing is verified only "at the end"
- every ticket cites ≥1 AC in its Acceptance Criteria, or is tagged
infrawith a one-line justification in its Description (e.g. "infra — migration serving TICKET-1-03 / AC-2") - guard ACs from the plan's
## Not Buildinglist are copied onto every ticket they constrain as Must NOT lines (- [ ] Must NOT (AC-9): add an Export button to …), so the implementer sees the fence in the ticket they are working from If the plan has no contract IDs, distribute its Success Criteria as before.
- If the plan has a
## Frontend → ### Copytable, carry it onto the tickets —/codereads tickets, not the plan, so copy that lives only in the plan is unenforced:- every row goes onto the ticket(s) that render that screen/region as
- [ ] Copy (allowed): "<string>" — <Kind>; <source AC or reason>under Acceptance Criteria - every
view/componentticket that renders a screen also gets- [ ] Must NOT: render any other non-label/value/heading/button/validation-error text on this screen (CLAUDE.md "UI Copy Discipline")— including when the table is empty or says "labels, values, and validation errors only" - never invent copy while writing tickets; a ticket may not add
help_text:,description:, tooltip, or banner text the plan did not list
- every row goes onto the ticket(s) that render that screen/region as
Phase 2: Ticket Generation
Generate tickets following these rules:
Ticket Structure
Each ticket MUST follow this exact format:
---
### TICKET-{PHASE}-{NUMBER}: {Title}
**Phase:** {Phase Name}
**Type:** {migration|model|service|controller|component|view|stimulus|job|policy|test|configuration}
**Priority:** {P0-Critical|P1-High|P2-Medium|P3-Low}
**Complexity:** {S|M|L|XL}
**Dependencies:** {List of ticket IDs that must complete first, or "None"}
#### Description
{2-3 sentences explaining what needs to be built and why}
#### Files to Create
- `{file_path}` - {brief description}
#### Files to Modify
- `{file_path}` - {what changes}
#### Implementation Details
{Specific technical guidance from the plan - schemas, patterns, code examples}
#### Acceptance Criteria
- [ ] {Specific, testable criterion}
- [ ] {Another criterion}
- [ ] Tests pass: `bundle exec rspec {relevant_spec_files}`
#### Testing Requirements
- Unit test: `spec/{path}_spec.rb`
- {Additional test files if needed}
---Ticket Grouping Rules
- Database Migrations - One ticket per migration file, always P0-Critical
- Models - One ticket per model, include factory and model spec
- Services - One ticket per service, include service spec
- Controllers - Group by resource (e.g., all CRUD actions for one controller)
- Components - One ticket per ViewComponent, include preview and spec
- Views - Group related views (e.g., all views for one controller)
- Stimulus Controllers - One ticket per controller
- Jobs - One ticket per job with spec
- Policies - Group policies by phase
- Configuration - Group related config changes (routes, initializers)
Phase Size Cap
Each ## Phase N is executed by one fresh implementation agent (/build-feature runs one worker per
phase), so a phase must fit comfortably in one context. Keep every phase to at most 5 tickets and
about 10 app files touched, with no more than one L/XL ticket (a phase made only of S tickets — e.g.
migrations — may hold up to 8). When a plan step is bigger (e.g. one
seam that every caller must adopt), split it into consecutive phases along a dependency line — the
seam and its direct specs first, then its callers in groups of ≤ 5 tickets. Splitting adds phases;
it never reorders dependencies. (Measured 2026-09-22: an 8-ticket "core resolution & claims" phase ran 32 min at a
399k-token peak; the other phases — 2 to 7 smaller tickets — ran 8–22 min at ~200k.)
Lanes and the Phase Schedule
/build-feature runs independent phases concurrently (≤3 per wave) in one working tree, so
every phase declares what it waits for and which files it owns. If the plan has a
### Work Lanes table, map each row to one ## Phase N (split a lane over the size cap into
consecutive phases of the same lane). Without the table, derive lanes yourself the same way.
- Under each
## Phase Nheading, before its tickets, add:**After:** Phase 1, Phase 2 (or "None") **Owns:** `app/services/foo/**`, `app/components/foo_*`, `spec/services/foo/**`, …Owns:covers every file in the phase's tickets' Files to Create / Files to Modify, specs and factories included. - Hot files go only in phases that run serial: migrations and anything under
db/,config/routes.rb,config/importmap.rb,config/locales/**,config/initializers/**, existing shared models,spec/factories/files for existing models, andGemfile*. Put them in the Foundation phase (first); cross-lane wiring (nav, shared partials, docs) goes in an Integration phase (last). - Group phases into waves: a wave is the phases whose
After:phases are all in earlier waves. A wave runs parallel only if its phases'Owns:sets are disjoint and none holds a hot file; otherwise split it into consecutive serial waves. Max 3 phases per wave. - A linear feature is one lane: every wave is serial. That is correct, not a failure.
Dependency Resolution
Order tickets so that:
- Migrations come first within each phase
- Models before services that use them
- Services before controllers that use them
- Controllers before views
- Components can be parallel with controllers
- Tests can be included with implementation or as separate tickets
Complexity Estimation
- S (Small): Single file, < 50 lines, straightforward implementation
- M (Medium): 2-3 files, 50-150 lines, some complexity
- L (Large): 4-6 files, 150-300 lines, significant logic
- XL (Extra Large): 7+ files, 300+ lines, complex integrations
Phase 3: Output Document Generation
Generate the tickets document at: .claude/tickets-{plan-name}.md
The document should have this structure:
# Implementation Tickets: {Project Name}
*Generated from: {plan_file_path}*
*Generated on: {timestamp}*
*Total Tickets: {count}*
## Summary
| Phase | Tickets | P0 | P1 | P2 | P3 |
|-------|---------|----|----|----|----|
| {Phase 1 Name} | {count} | {count} | {count} | {count} | {count} |
| {Phase 2 Name} | {count} | {count} | {count} | {count} | {count} |
| ... | ... | ... | ... | ... | ... |
| **Total** | **{total}** | **{total}** | **{total}** | **{total}** | **{total}** |
**Contract check**: ACs without a ticket: {list or None} • Tickets without an AC: {list or None} • `infra` tickets: {list or None}
## Dependency Graph
{ASCII diagram showing ticket dependencies}
## Execution Order
{Recommended order to execute tickets, grouped by what can be parallelized}
## Phase Schedule
| Wave | Phases | Mode | Why |
|------|--------|------|-----|
| 1 | Phase 1 | serial | Foundation — migrations, routes, shared models |
| 2 | Phase 2, Phase 3 | parallel | disjoint Owns, no hot files |
| 3 | Phase 4 | serial | Integration — nav + docs |
---
## Phase 1: {Phase Name}
**After:** None
**Owns:** `{glob}`, `{glob}`
{All tickets for Phase 1}
---
## Phase 2: {Phase Name}
**After:** Phase 1
**Owns:** `{glob}`, `{glob}`
{All tickets for Phase 2}
---
{Continue for all phases}
---
## Appendix: Quick Reference
### All Tickets by Type
**Migrations:**
- TICKET-1-01: {title}
- ...
**Models:**
- TICKET-1-02: {title}
- ...
{Continue for all types}
### Execution Checklist
- [ ] TICKET-1-01: {title}
- [ ] TICKET-1-02: {title}
- ...Phase 4: Validation
Before finalizing, validate:
- Completeness: Every file in the plan is covered by a ticket
- Dependencies: No circular dependencies exist
- Testability: Every ticket has clear acceptance criteria
- Executability: Each ticket can be independently completed by Claude Code
- Contract check (when the plan carries
AC-nIDs): build two lists —- ACs with no ticket — add each to the ticket that implements its plan step (create a ticket if no step covers it and say so)
- tickets with no AC — tag
infrawith a justification, or drop the ticket if nothing in the plan needs it Print both lists (after fixing, ideally both "None") in the tickets document's Summary under**Contract check**: ACs without a ticket: … • Tickets without an AC: …, and repeat them in your closing message.
- Schedule check — for every wave in
## Phase Schedule:- every file in a phase's tickets is covered by that phase's
Owns: - in a
parallelwave, no file matches two phases'Owns:, and no phase owns a hot file - every
After:phase sits in an earlier wave, and every ticket dependency points to the same phase or to a phase in an earlier wave On a violation, move the offending ticket to the Foundation or Integration phase, or make the wave serial — never leave it. Correctness beats width. State the result in one line in your closing message:Schedule: <n> waves, max width <k>.
- every file in a phase's tickets is covered by that phase's
Important Instructions
- Read the entire plan carefully - don't miss any files or specifications
- Preserve technical details - include schemas, code examples, and patterns from the plan
- Make tickets atomic - each should be completable in one session
- Include context - each ticket should be understandable without reading other tickets
- Prioritize correctly - migrations and foundational work is P0, features are P1-P2
- Estimate realistically - consider Rails conventions and project patterns
Example Ticket
---
### TICKET-1-03: InsurancePolicy Model
**Phase:** Phase 1 - Foundation
**Type:** model
**Priority:** P0-Critical
**Complexity:** M
**Dependencies:** TICKET-1-01 (create_insurance_policies migration)
#### Description
Create the InsurancePolicy model to store client insurance card information. This model represents the core data structure for tracking client insurance coverage, including payer relationships, subscriber info, and card images.
#### Files to Create
- `app/models/insurance_policy.rb` - Main model with validations and associations
- `spec/models/insurance_policy_spec.rb` - Model specs
- `spec/factories/insurance_policies.rb` - FactoryBot factory
#### Files to Modify
- `app/models/client.rb` - Add `has_many :insurance_policies` association
#### Implementation Details
- Use UUID primary key (matches project convention)
- Include `acts_as_tenant(:organization)` for multi-tenancy
- Include `SoftDeletable` concern for soft delete
- Encrypt `subscriber_id` and `group_number` using Rails 7+ encryption
- Status enum: `active`, `inactive`, `terminated`
- Relationship order enum: `primary`, `secondary`, `tertiary`
Schema from migration:
```ruby
create_table :insurance_policies, id: :uuid do |t|
t.references :organization, null: false, foreign_key: true, type: :uuid
t.references :client, null: false, foreign_key: true, type: :uuid
t.references :payer, null: false, foreign_key: true, type: :uuid
t.string :subscriber_id, null: false
t.string :group_number
t.string :subscriber_name
t.date :subscriber_dob
t.string :relationship_to_subscriber
t.integer :relationship_order, default: 0, null: false
t.date :effective_date
t.date :termination_date
t.integer :status, default: 0, null: false
t.datetime :deleted_at
t.timestamps
endAcceptance Criteria
- Model has all validations (subscriber_id presence, payer presence)
- Multi-tenancy works correctly with
acts_as_tenant - Encrypted fields are not readable in plain text
client.primary_insurancereturns the primary active policy- Soft delete works correctly
- Factory creates valid records
- Tests pass:
bundle exec rspec spec/models/insurance_policy_spec.rb
Testing Requirements
- Unit test:
spec/models/insurance_policy_spec.rb - Factory:
spec/factories/insurance_policies.rb
Begin by reading and analyzing the implementation plan file.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.

