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
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.
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.
About
Use cases: design, writing
Reviews
Write a reviewNo 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.
More from beefysalad/patrick-workflows
- 0.570score
gauntlet-review
beefysalad
Use when reviewing a branch before a PR, or when /gauntlet-review runs.
SkillAFreshness: AClaude Code +9 - 0.570score
ticket-workspace
beefysalad
Reference for the /start pipeline - workspace layout, state keys, phase machine, ruling and finding formats, and the shared scripts.
SkillAFreshness: AClaude Code +9 - 0.561score
ticket-build
beefysalad
BUILD stage of /start - runs the approved plan task by task with fresh implementers and reviewers, then the gauntlet-review loop, without asking the user…
SkillAFreshness: AClaude Code +9 - 0.561score
ticket-close
beefysalad
CLOSE stage of /start - once the ticket's PR is merged, marks the ticket done, cleans up the branch and worktree, and closes the workspace.
SkillAFreshness: AClaude Code +9 - 0.561score
ticket-ship
beefysalad
SHIP stage of /start - writes one report with numbered questions, takes the user's answers, runs round 2 if they ask for changes, and opens a draft PR only on…
SkillAFreshness: AClaude Code +9 - 0.558score
hello
beefysalad
Example skill.
SkillAFreshness: AClaude Code +9
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
- Repository
- github.com/beefysalad/patrick-workflows
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from beefysalad
- 0.570score
gauntlet-review
beefysalad
Use when reviewing a branch before a PR, or when /gauntlet-review runs.
SkillAFreshness: AClaude Code +9 - 0.570score
ticket-workspace
beefysalad
Reference for the /start pipeline - workspace layout, state keys, phase machine, ruling and finding formats, and the shared scripts.
SkillAFreshness: AClaude Code +9 - 0.561score
ticket-build
beefysalad
BUILD stage of /start - runs the approved plan task by task with fresh implementers and reviewers, then the gauntlet-review loop, without asking the user…
SkillAFreshness: AClaude Code +9 - 0.561score
ticket-close
beefysalad
CLOSE stage of /start - once the ticket's PR is merged, marks the ticket done, cleans up the branch and worktree, and closes the workspace.
SkillAFreshness: AClaude Code +9 - 0.561score
ticket-ship
beefysalad
SHIP stage of /start - writes one report with numbered questions, takes the user's answers, runs round 2 if they ask for changes, and opens a draft PR only on…
SkillAFreshness: AClaude Code +9 - 0.558score
hello
beefysalad
Example skill.
SkillAFreshness: AClaude Code +9
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.
Cite this page
ticket-plan skill. Agent Mart. https://agentmart.dev/skills/beefysalad-ticket-plan (last updated 2026-10-24)