Skip to content
Agentmart
Submit a tool

ticket-plan

PLAN stage of /start - read the ticket, settle acceptance criteria, create the branch, brainstorm the design, write the plan, and agree the autonomy brief…

Skill by beefysalad

IndexedMIT
Write a review

Chalk Labs

Need help deploying ticket-plan?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/beefysalad-ticket-plan

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

PLAN stage of /start - read the ticket, settle acceptance criteria, create the branch, brainstorm the design, write the plan, and agree the autonomy brief with the user. The only interactive stage before BUILD; ends by starting BUILD.

Use cases: design, writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Nov 2, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/ticket-plan

What's inside

Skill name
ticket-plan
Description
PLAN stage of /start - read the ticket, settle acceptance criteria, create the branch, brainstorm the design, write the plan, and agree the autonomy brief with the user. The only interactive stage before BUILD; ends by starting BUILD.
License
MIT
Instructions
51 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# PLAN

Read `patrick-workflows:ticket-workspace` first. `S` = `bash "$SKILL_DIR/../ticket-workspace/scripts/state.sh" <WS>/state.md`. Ask the user whatever you need in this stage; after the final approval nothing more is asked until SHIP.

## 1. Identify the ticket
- An ID (`ABC-123`, `#42`): that is the ID. A URL: extract the ID from it (the issue key such as `ABC-123` in Jira-style URLs, the number in `.../issues/42` as `#42`) and keep the URL for intake; never use the URL itself as the ID. Pasted text with no ID: ask the user for a short ID (suggest `T-<yyyymmdd>-<two words>`).
- `WS=$(bash "$SKILL_DIR/../ticket-workspace/scripts/ticket-ws.sh" path <id>)`. If it exists, resume at the first missing step below according to `phase`. Otherwise `bash ".../ticket-ws.sh" init <id>`, then `S set ticket <id>` and `S phase intake`.

## 2. Intake
Read the ticket with whatever the machine offers: `gh issue view <url or n> --json title,body,comments,url` for GitHub (a GitHub issue URL from step 1 is passed as the URL, never as the bare number, since the issue may live in another repo); a tracker MCP tool if one is available; otherwise ask the user to paste it. Save it verbatim to `WS/ticket.md`; `S set title "<title>"`. When the ticket is a GitHub issue (a GitHub issue URL was given, or `gh issue view` succeeded), `S set issue_url <the issue's url>` (the `url` field `gh` returned); CLOSE closes the issue by this URL only.

## 3. Acceptance criteria
Extract them into `WS/bar.md` as `AC1`, `AC2`, ... followed by a `Deferred:` line. None in the ticket → write them with the user now. The run does not start without them.

## 4. Branch and checkout
1. Type: `fix` for bugs, else `feat` (ask if unclear). `BR=$(bash "$SKILL_DIR/../ticket-workspace/scripts/branch-name.sh" <type> <id> <title>)`; show it; the user may rename it. If the user renames it, check the new name with `git check-ref-format --branch <name>` and ask again if it fails. `S set type <feat|fix>`.
2. Base: the default branch (`git symbolic-ref --short refs/remotes/origin/HEAD`, minus `origin/`; else local `main`). If a remote exists, `git fetch origin <base> -q`.
3. Ask: **main checkout** (recommended) or **a worktree**.
   - Main checkout: requires a clean tree; `git switch -c <BR> origin/<base>` (or `<base>` with no remote). `S set checkout main`.
   - Worktree (only because the user asked for one): call the `EnterWorktree` tool with `name` = the ticket ID. It creates the worktree under `.claude/worktrees/` and moves this session into it. Then `git branch -m <BR>` and, if it was not created from the base, `git reset --hard <base ref>` before any change. `S set checkout <worktree path>`. Do not use `git worktree add` outside the repo: the session cannot write there.
4. `S set branch <BR>`, `S set base $(git rev-parse HEAD)`, `S set base_branch <base>`, `S set pr_target <base>`.

## 5. Design
Invoke `superpowers:brainstorming` with these overrides from the user, which outrank the skill: save the design to `WS/design.md` (not `docs/`); do not commit it; when the user approves the design, do not invoke writing-plans, return here. Then `S phase designed`.

## 6. Plan
Dispatch `patrick-workflows:ticket-planner` (model opus) with `TICKET=WS/ticket.md`, `DESIGN=WS/design.md`, `BAR=WS/bar.md`, `RULINGS=WS/rulings.md` (create it empty if absent) and `OUT=WS/plan.md`. If the planner could not save the plan (permission refused), run `superpowers:writing-plans` here instead with the same overrides. Show the user the task list and risks; revise until they approve. `S set tasks_total <n>`, `S set tasks_done 0`, `S set round2 no`, `S phase planned`.

## 7. Autonomy brief
Settle each item, then show the whole brief once for approval.
1. **Gates:** detect as `gauntlet-review` does (package.json scripts `test`/`lint`/`typecheck`; Makefile `test`/`lint`; pyproject pytest/ruff; Cargo; go.mod). `S set gate.<name> <command>`; `S set gate_timeout 900`.
2. **Scope:** start from the planner's `SCOPE-SUGGESTION`; ask for `forbid:` paths; write `WS/scope.txt`.
3. **Depth:** `lite` if the plan has at most 2 tasks and no path matches auth, security, crypto, payment, billing, session, token, password or permission; `full` is suggested when a path matches that list and the plan has more than 5 tasks; else `standard`. Show it as "review depth" (with the reason when `full` is suggested); the user may raise or lower it. `S set depth <depth>`.
4. **Budget:** `S set budget_impl_max` = 2 × tasks (lite) or 4 × tasks (standard, full); `S set budget_review_max` 3 (lite), 10 (standard) or 16 (full); `S set budget_impl_used 0`.
4b. **Parallel tasks:** `bash "$SKILL_DIR/../ticket-workspace/scripts/waves.sh" WS/plan.md` and show its waves (e.g. "Wave 1: tasks 1, 2, 3 in parallel; wave 2: task 4"). `parallel: on` by default (off for `lite`, which implements inline); the user may switch it off; suggest `off` when the gates need a fixed port or a shared database (parallel runs would collide). `S set parallel on|off`. Exit 2 (a dependency on a later or unknown task) → ask the planner to fix the plan's `Depends on:` lines first.
5. **Exit pair (optional):** if the user wants whole-feature proof, collect `--prove`, `--reset`, `--env-file`, `--db-pattern`; run `bash "$SKILL_DIR/../gauntlet-review/scripts/exit-pair.sh" --check <flags>`. Refused → explain why, then drop it or let the user fix the env file. `S set exit_pair "<flags>"` or `S set exit_pair none`.
5b. **Graded bar (optional, for UI or anything with a reference):** collect the reference (`image-dir:`, `route:` or `url:`), the routes to capture (write `WS/routes.txt`), and the dev command (use `$PORT`). Tell the user: the reference is one page, and it is compared with the first route in `routes.txt` only, so put the page to grade first; an `image-dir:` holds screenshots of that one page named `home-<desktop|phone>-<light|dark>.png`. Write `WS/rubric.md` with the user: 3–6 criteria, each with anchors for 1, 3 and 5; criterion names must not contain ":" (the scorer output parser splits on the first ": "). Anchors describe qualities (alignment, hierarchy, contrast, spacing, readability on phone), never "same as the reference": the reference is a quality target, not content to copy. Write `WS/graded.md` in the `graded.md` format defined in `gauntlet-review`'s section 1 (keys `dev`, `routes`, `reference`, `rubric`, `margin`, `floor`, `min`) (margin 0.3, floor 3.5, min 3 unless the user changes them). `S set graded WS/graded.md`. Add `Bash(npx --yes playwright*)` and the dev command to the permission rules.
6. **Permissions:** print the allow rules this run needs, for the user to add to the project's `.claude/settings.local.json` (never edit settings yourself). Paths under the home directory are written with `~/`; any other absolute path needs a leading `//`.
   - `Read(~/.patrick-workflows/**)`, `Edit(~/.patrick-workflows/**)`
   - `Bash(bash *skills/*/scripts/*)`
   - each gate command, e.g. `Bash(npm test*)`
   - `Bash(git add*)`, `Bash(git commit*)`, `Bash(git diff*)`, `Bash(git log*)`, `Bash(git status*)`, `Bash(git switch*)`, `Bash(git rev-parse*)`
   - with `parallel: on`: `Bash(git reset*)`, `Bash(git cherry-pick*)`, `Bash(git worktree*)`, `Bash(git branch*)`
   - for `/start` CLOSE (used after the merge): `Bash(git worktree*)`, `Bash(git branch*)`, `Bash(git pull*)`, `Bash(gh pr view*)`, `Bash(gh issue view*)`, `Bash(gh issue close*)`
7. **Rulings:** record every decision made in this stage in `WS/rulings.md` with `source: user`.

Ask for one approval of the brief. On approval:
1. `bash "$SKILL_DIR/../gauntlet-review/scripts/workspace.sh" --at "<WS>/gauntlet-review"`, then run every gate once as `bash "$SKILL_DIR/../gauntlet-review/scripts/run-gate.sh" preflight-<name> <timeout> -- "<command>"`. If a permission prompt appeared, ask the user to add the rule now and rerun the gate.
2. `S phase approved`, then invoke `patrick-workflows:ticket-build` immediately. Do not wait for another command.

From beefysalad/patrick-workflows, MIT.

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Oct 5, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from beefysalad

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get ticket-plan running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying ticket-plan?

CallGet help
Cite this page

ticket-plan skill. Agent Mart. https://agentmart.dev/skills/beefysalad-ticket-plan (last updated 2026-10-24)