MeowKit
Spec → PR: Behind the Scenes

Spec → PR: Behind the Scenes

A guided walkthrough showing what each MeowKit skill actually does as you take a Confluence spec all the way to a merged PR — prompts, agent handoffs, gates, and report shapes.

A guided tour through the full developer loop. Each step shows the prompt you type, which skills fire, which agent forks, what artifact gets written, and which gate decides whether you proceed.

Best for: Developers who want to understand why the workflow is shaped this way — not just the commands. Time estimate: First read 20 min · Real run 1-4 hours depending on ticket size Skills used: mk:confluence-spec-analyst, mk:confluence-collaborate, mk:jira-issue, mk:jira-agile, mk:jira-relationships, mk:jira-evaluator, mk:jira-estimator, mk:planning-engine, mk:agent-detector, mk:scale-routing, mk:plan-creator, mk:cook, mk:review, mk:ship, mk:jira-dev, mk:jira-lifecycle, mk:memory

Quick path

This page is a 20-minute read that explains every step. The steps themselves are:

/mk:confluence-spec-analyst analyze 12345 --include-children 1
/mk:jira-issue create --project AUTH --type Story ...   # one per story it found
/mk:planning-engine plan --tickets AUTH-201,AUTH-202 --capacity 40
/mk:cook AUTH-201                                       # then repeat per ticket
/mk:ship

You end up with a Confluence spec turned into merged PRs, with each handoff visible. If you only want the commands, Ticket to Code is the short version of the second half.

Prerequisites

Jira access needs the jira-as CLI and three variables in .meowkit/.env. Jira Integration covers the install, the token, what the skills will and will not do on their own, and what to check when authentication fails.

This walkthrough also reads Confluence. The same token and the same setup command cover it — see Confluence Integration, which is worth reading for the Cloud-only boundary if you are on Server or Data Center.

The Principle

Every skill emits an artifact. Every gate is a human decision. No automation crosses the spec → ticket → code boundaries.

This page exists because the seam between Confluence, Jira, and your codebase is where most workflows leak. MeowKit's design is to make every seam observable — you can see what each skill produced before deciding whether to advance.

The Flow

Reading the diagram

  • Solid arrows are the default STANDARD / COMPLEX path: Step 3 feasibility scan → Step 8 plan-creator (Gate 1) → Step 9 cook in code mode (Gate 2 only — Phase 1 skipped).
  • Dashed arrow is the TRIVIAL fast-path: skip Steps 7 and 8 entirely, hand cook a natural-language task. Cook's Phase 1 runs inline; both Gate 1 and Gate 2 fire inside the cook invocation.
  • Artifact locations are explicit: tasks/reports/ for spec + tech review (no plan exists yet), tasks/plans/<slug>/ for plan-creator's output. No automatic copy or symlink between them.
  • Two hard gates: Gate 1 = plan approved (Step 8 standalone OR cook Phase 1). Gate 2 = review verdict PASS/WARN (cook Phase 4). Both hook-enforced.

Each arrow is a place where you read an artifact and decide.

The ten steps

What flows between systems

Solid arrows carry work forward; dashed arrows are the write-backs that close the loop.

Three systems, three artifacts crossing each seam. No more, no less.

Skill catalog used in this walkthrough

PhaseSkillRead/WriteNotes
Step 1mk:confluence-spec-analystread Confluence, write local reportForks agent; multimodal optional
Step 1mk:multimodal (opt)read mediaImage/PDF findings in the report
Step 2mk:confluence-collaboratewrite ConfluenceFooter comments for open questions
Step 3mk:scoutread codebasePre-ticket fingerprint (cached for Step 7)
Step 3mk:docs-finder (opt)read external docsCurrent third-party API/library docs
Step 3.5mk:story-sizer --paste --scoutread allPer-story Fibonacci sizing + suggested create commands (v1: paste-only)
Step 3.5mk:story-sizer --paste --auto-create --project KEY (opt-in)delegated write JiraBatch ticket creation with dry-run + single confirmation gate
Step 4mk:jira-issuewrite JiraOne verb per ticket, no bulk
Step 4mk:jira-fields (opt)read JiraResolves custom required fields
Step 5mk:jira-agilewrite JiraEpic-add + rank
Step 5mk:jira-relationshipswrite JiraBlocks / depends-on links
Step 6mk:jira-evaluatorread JiraComplexity + inconsistencies
Step 6mk:jira-estimatorread JiraStory-point suggestion
Step 7mk:planning-engine review TICKET --scoutread allPer-ticket Tech Review Report
Step 7mk:planning-engine plan --tickets ... --spec REPORT --scoutread allSprint-level Planning Report with Spec Context section
Step 8mk:plan-creator --hard (COMPLEX) / --fast (STANDARD) / skip (TRIVIAL)write plan filesStandalone Gate 1 per ticket; durable plan artifacts
Step 9 P0mk:agent-detector + mk:scale-routingreadTier + matched_flags
Step 9 P1mk:plan-creatorwrite plan filesSKIPPED in code mode (plan from Step 8) — runs only for TRIVIAL tickets
Step 9 P2mk:testing (--tdd)write testsRED-phase gate
Step 9 P3mk:cook inner buildwrite codeIncremental commits
Step 9 P4mk:reviewwrite verdictGate 2 enforced
Step 9 P5mk:ship + mk:jira-dev + mk:jira-lifecyclewrite git + JiraBranch, PR, transition
Step 9 P6mk:memorywrite .meowkit/memory/Cross-session continuity
Step 10mk:jira-lifecycle + mk:jira-collaborate + mk:confluence-collaboratewrite Jira + ConfluenceClose the loop

Human gates summary

Every gate where automation stops and a human decides.

GateWhereWho decides
Resolve spec ambiguitiesAfter Step 1Dev + PM
Feasibility / defer decision per suggested storyAfter Step 3Dev
Decide which stories to file from sizing reportAfter Step 3.5Dev
Batch auto-create confirmationStep 3.5 with --auto-createDev (single AskUserQuestion)
Which suggestions become ticketsStep 4Dev
Story-point estimateAfter Step 6Team (planning poker)
Ticket ranking + dependenciesStep 5Dev / tech lead
Tier-aware plan-creator decision (skip TRIVIAL / --fast STANDARD / --hard COMPLEX)Start of Step 8Dev / tech lead
Gate 1 — plan approvalStep 8 standalone (STANDARD/COMPLEX), OR inside /mk:cook Phase 1 (TRIVIAL only)Dev (hook-enforced)
Gate 2 — review verdictPhase 4 of /mk:cook (Step 9)Dev (hook-enforced)
Ship despite WARN dimensionsAfter Gate 2Dev

Common deviations

SituationSkip to
Spec is already a Jira ticket (no Confluence)Step 6 — straight to evaluation
Tickets exist but no spec analysis was doneStep 6; consider asking the PO to back-fill ACs
Bug, not a featureUse Fix a Bug; spec-analyst doesn't apply
Hotfix (one-shot, zero blast radius)/mk:fix bypasses Gate 1 per scale-adaptive-rules.md Rule 4
Green-field product buildAutonomous Build (/mk:autobuild) — different pipeline

When things go sideways

SituationWhat to do
Spec changed mid-sprintRe-run /mk:confluence-spec-analyst — the report includes a source-page hash so you can see what changed
Estimate was way offUpdate points via /mk:jira-agile set-story-points; the team retro picks this up
Gate 1 plan rejected at Step 8Edit tasks/plans/<slug>/phase-*.md directly, re-prompt /mk:plan-creator (or just re-approve) before invoking /mk:cook <plan-path> at Step 9
Plan went stale (>14 days since Step 8)mk:cook will warn on stale plan in code mode — re-run /mk:plan-creator on that ticket before cook
Gate 2 verdict FAILFix the failing dimension, re-run /mk:review. No override.
Two tickets want the same filemk:planning-engine flagged this in Step 7 — sequence them, don't parallelize

On this page