Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Scope Ticket

ASecurity

Turn a thin or vague ticket into one you can write a failing test from, before any branch is cut. Use when about to implement a ticket whose description is underspecified, when asked to scope/refine/groom a ticket, or when a task lacks clear acceptance criteria or a defined entry point. The bar is a single question - could you write a red test from this cold? If not, it is not ready to implement.

2 stars
0 votes
0 copies
0 views
Added 9/28/2026
ai-agentsrustgoshelldatabasesecurity

Works with

cli

Security Analysis

A100/100

Scanned 9/28/2026

Install to Claude Code

$npx -y skills add Dusttoo/orka --skill scope-ticket --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Scope Ticket?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Scope Ticket
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/dusttoo-scope-ticket/badge)](https://www.skillsdirectory.com/skills/dusttoo-scope-ticket)

More formats (shields.io, HTML) on the badges page.

Files
SKILL.md
---
name: scope-ticket
description: Turn a thin or vague ticket into one you can write a failing test from, before any branch is cut. Use when about to implement a ticket whose description is underspecified, when asked to scope/refine/groom a ticket, or when a task lacks clear acceptance criteria or a defined entry point. The bar is a single question - could you write a red test from this cold? If not, it is not ready to implement.
---

# Scope a ticket to "Ready"

A ticket is Ready when someone with no prior context could write a failing test
from it and know exactly when it is done. Most defects that reach production
trace back to a ticket that was implemented while still ambiguous: the agent
guessed, and the guess shipped. Scoping first is cheaper than re-work.

Do not cut a branch on a ticket that is not Ready. Scope it, or push it back.

## Fill every section

Work the ticket into these six sections. If you cannot fill one, that gap is
the thing to resolve before implementing.

1. **Behavior.** What the system should do, in the user's terms, not the
   implementation's. One or two sentences. If you cannot state it without naming
   internal functions, the requirement is not understood yet.

2. **Acceptance Criteria.** Specific, testable statements. Each one must map to a
   test you could write now. "Works correctly" is not a criterion; "an anonymous
   visitor sees the price from the database, not the template default" is.
   Include the values, labels, and states that matter.

3. **Entry Points.** Where a real user reaches this, in concrete clicks or
   routes. This is the guard against the most common silent failure: shipping a
   column, a function, a component, or a CSS class that nothing wires to a
   user-visible surface. If the entry point is undefined, the feature is not
   scoped, it is half-imagined.

4. **Edge Cases.** Empty states, error states, boundaries, permissions, the
   unauthenticated path, the too-many and the zero cases. Name the ones that
   apply; note the ones you are deliberately not handling.

5. **Out of Scope.** What this ticket explicitly does NOT do. This is what keeps
   the implementation from sprawling and what protects the next ticket's turf.

6. **Implementation Boundary.** Name the repository/runtime boundary that can
   enforce the requested behavior. Record any required root-owned installation,
   distinct UID, daemon, container, cloud resource, migration, or operational
   rollout. If one is required but not authorized in this ticket, split or defer
   it; a repository-local approximation does not make the ticket Ready. For
   orchestration host controls, record the configured `worker_trust_profile`.

## Required adversarial test matrix

Before declaring Ready, derive a matrix whose rows contain: attack/failure mode,
setup or input, invariant/expected result, test layer, and the assertion that
would fail for a plausible bug. Select categories from the actual surface, but
explicitly consider parser/interpreter variants (including shell wrappers,
substitutions, heredocs, redirections, and pipelines), ignored/untracked state,
failed inspection commands, partial execution, cleanup/recovery, permissions,
concurrency, retries, boundary values, and hostile input. A category may be N/A
only with a concrete reason. This matrix is part of Ready and must exist before
a branch is cut or production code is edited.

## The readiness test

After filling the sections, ask the one question that decides it:

> Could a fresh implementer write a failing test from this, today, without
> asking a clarifying question?

- **Yes** -> Ready. It can be pulled into implementation.
- **No** -> Not Ready. The specific missing piece (an unstated value, an
  undefined entry point, an ambiguous behavior) is the next thing to resolve.
  Resolve it or send the ticket back; do not paper over it with a half-feature.

## Output

Produce the ticket rewritten into the six sections and the adversarial test
matrix, then state the verdict
(Ready / Not Ready) and, if Not Ready, the exact gap that blocks it. If the
repo's `rules_docs` define a ticket template or extra required fields (a
surface-area label, a definition-of-done clause), honor that template too.

When the sprint controller requests a scope assessment, also write a repository
artifact using this schema so the result can be scheduled without interpreting
prose:

```json
{
  "schema_version": 1,
  "ticket": "PROJ-123",
  "verdict": "ready | decompose | operator_decision | tracking_parent",
  "complexity_score": 0,
  "prerequisites": [],
  "children": [],
  "reasons": ["evidence-based reason"],
  "slices": [
    {
      "id": "stable-short-id",
      "summary": "independently releasable slice",
      "behavior": "user-visible or system behavior",
      "acceptance_criteria": ["testable outcome"],
      "migration_owner": "none",
      "test_plan": ["specific regression test and expected result"],
      "depends_on": []
    }
  ]
}
```

Use `decompose` when the ticket crosses multiple independently releasable
boundaries or cannot reasonably complete design, implementation, and review
inside one ticket budget. Produce two through the repository's configured
`max_auto_slices` slices. Each slice must be safe to merge independently and
must assign migration ownership, rollout ordering, and security invariants in
its behavior or acceptance criteria. Use `operator_decision` only when slicing
would choose product behavior or weaken a required invariant; ordinary
technical decomposition is not a human decision.

Each slice must include `migration_owner` (the owning slice ID, or `none` when
no migration is needed) and a nonempty `test_plan`. These fields are validated
and copied into the Jira child description.

Before returning `ready`, enumerate every prerequisite found in the ticket text in
`prerequisites` (an array of ticket keys, empty only when none exist). Compare them
with the supplied scheduler dependencies. A missing relationship requires dependency
reconciliation before implementation, never speculative work.

For a tracking parent whose work is entirely owned by its already-existing children,
return `tracking_parent`, empty `slices`, and `children` containing exactly the
authenticated child keys. Do not create another decomposition or reserve an
implementation lane to discover the parent disposition. If the parent has independent
acceptance criteria beyond those children, do not classify it as tracking-only.

Attribution

DusttooDusttoo
View sourceMore from Dusttoo →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1074701 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

695601 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

691 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →