// DEV_CYCLE_PLAYBOOK

Dev-Cycle Playbook

The seven workflow questions /saikit-workflows asks, and the project-level skill it synthesizes into .claude/skills/dev-cycle/SKILL.md.

The dev-cycle playbook is the single most useful artifact /saikit-workflows produces. It captures the connective tissue between your tools, how a Linear ticket turns into a branch, how that branch turns into a PR titled the way your team titles PRs, and what fires the moment the PR merges.

It lives at .claude/skills/dev-cycle/SKILL.md (mirrored to .cursor/skills/ and ~/.codex/skills/ if those targets are selected). It's a project-level skill, versioned with the repo, applied to anyone who works in it.

//What It Is

A SKILL.md that tells the AI:

  • Your branch naming pattern (e.g. feat/PROJ-123-slug, <user>/<feature>).
  • Your sub-task template for breaking down work under a Story.
  • Your commit footer for ticket references (e.g. Refs PROJ-123, Closes #456).
  • Your PR title pattern (e.g. feat(scope): subject (PROJ-123)).
  • When the ticket transitions to In Progress, branch creation, first commit, PR open, or manual.
  • What fires after merge, close the ticket, post to Slack, add a Notion row, tag a release, run deploy.
  • What the AI is authorized to do in autonomous mode, commit, transition tickets, post comments, create new tickets when discovering scope.

That last point is the most important: the playbook makes the autonomous-mode permissions explicit, so the AI never improvises around what the team has decided to grant.

//When It Runs

The playbook step only fires when both of two preconditions are met:

  1. At least one ticketing tool was confirmed (Linear, Jira, GitHub Issues, Notion-as-PM, Asana, Shortcut, Monday, ClickUp).
  2. At least one code-hosting tool was confirmed (GitHub Issues counts as both; otherwise Cloudflare/Vercel/etc. are inferred from the cloud category).

If you only confirm payments and error tracking, the playbook step is skipped entirely. The dev-cycle is about the ticket-to-merge motion, and there's no point synthesizing one when half the inputs are missing.

//The Seven Questions

The questions ship hardcoded in the binary and the order is intentional, branch convention first because every other answer hangs off it.

| # | Question | Type | | --- | --- | --- | | 1 | What is your branch naming convention? Be specific, e.g. feat/PROJ-123-slug, <user>/<feature>, bug/JIRA-456. | free text | | 2 | If you use a sub-task template per Story / Task, list the names in order. Reply "none" if you don't. | free text | | 3 | What format is your commit footer for ticket references? e.g. Refs PROJ-123, Closes #456, or "none". | free text | | 4 | What is your PR title pattern? e.g. feat(scope): subject (PROJ-123), conventional commits, or describe your style. | free text | | 5 | When does the ticket move to In Progress? | single-select: branch / first commit / PR open / manual | | 6 | After a PR merges, what fires automatically? | multi-select: close ticket / Slack / Notion DB / release tag / deploy | | 7 | In autonomous mode, what is the AI authorized to do without confirmation? | multi-select: commit / transitions / comments / create-tickets |

The whole thing takes two to three minutes to answer. Reply skip on optionals; reply none to opt out of an entire concept (e.g. you don't use sub-tasks).

//What the Skill Looks Like

The synthesized dev-cycle/SKILL.md is a project-level skill that activates on requests touching the ticket-to-merge motion. The description is keyword-dense so Claude picks it up reliably:

code
---
name: dev-cycle
description: This project's branching, commit, and PR conventions plus the post-merge motion. Use when starting a new task, naming a branch, writing a commit message, opening a PR, transitioning tickets, or running autonomous work.
license: Proprietary
metadata:
  generated_by: summonaikit
  skill_kind: dev-cycle-playbook
---

Body sections:

  • Branch naming, your pattern with concrete examples.
  • Sub-task template, names in order, or "this team doesn't use sub-tasks".
  • Commit footer, exact format string.
  • PR title pattern, exact format string.
  • Ticket lifecycle, when each transition happens and which tool fires it.
  • Post-merge motion, bullet list of what fires, in order.
  • Autonomous-mode permissions, the explicit allowlist.
  • Cross-references, pointers to the relevant <tool>-ops skills (linear-ops for transitions, slack-ops for comms, cloudflare-ops for deploys).

//How Claude Uses It

A typical session:

code
You: start work on PROJ-431
Claude: Reading dev-cycle skill…
        Branch naming says feat/PROJ-431-<slug>. Slug from the title?
You: yes, "rate limit the search endpoint"
Claude: → git checkout -b feat/PROJ-431-rate-limit-search-endpoint
        → linear-ops: transition PROJ-431 to In Progress (your rule: on branch creation)
code
You: open the PR
Claude: Reading dev-cycle skill…
        PR title pattern: `feat(api): rate limit search endpoint (PROJ-431)`.
        → gh pr create --title 'feat(api): rate limit search endpoint (PROJ-431)' --body '…'
code
[PR merges]
Claude: Post-merge motion fires: close PROJ-431, post to #deploys.
        → linear-ops: close PROJ-431
        → slack-ops: post to #deploys ("PROJ-431 merged: rate limit search endpoint")

The AI doesn't have to ask you what your branch convention is, once. It reads the skill on every relevant request.

//Idempotent and Append-Only

Re-running /saikit-workflows after the playbook is written does not overwrite your answers. The binary detects the existing dev-cycle/SKILL.md and skips the playbook step entirely.

To start over, delete the file and re-run:

code
rm .claude/skills/dev-cycle/SKILL.md

To update one answer without re-running the whole flow, edit the section directly. Claude reads the file fresh on every session.

//Editing By Hand

The synthesized playbook is yours. Treat it like any other project-level skill:

  • Add new sections (e.g. "Hotfix branch convention", "Release candidate naming").
  • Refine the autonomous-mode block as you build trust with the AI.
  • Cross-reference new ops skills as you add tools.
  • Commit it to the repo so the rest of the team gets the same context.

/saikit-update --scope=skills does not regenerate the dev-cycle skill, it only refreshes codebase + ops skills. The playbook is treated as user-owned content.

Dev-Cycle Playbook | SummonAI Kit Docs