Skip to main content

jaw-dev-pabcd

MUST USE for cli-jaw PABCD orchestration workflows — orchestrate, phase, attest/attestation, interview mode, goal mode, checkpoints, and multi-phase development. Triggers: orchestrate, phase, attest, attestation, interview, goal mode, checkpoint, PABCD, 요구사항 정리, 인터뷰, 스펙 정리. Operate state transitions only when the user explicitly requests orchestration or an active PABCD phase is injected — do not transition state merely because a document mentions phases, goals, or checkpoints.

Informações da origem

Repositório
lidge-jun/cli-jaw-skills
Última atividade na origem
8 de outubro de 2026 às 02:54
Idioma detectado do SKILL.md
inglês
Estrelas
5
Forks
1

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Explorador de arquivos
10 arquivos

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
jaw-dev-pabcd
description
MUST USE for cli-jaw PABCD orchestration workflows — orchestrate, phase, attest/attestation, interview mode, goal mode, checkpoints, and multi-phase development. Triggers: orchestrate, phase, attest, attestation, interview, goal mode, checkpoint, PABCD, 요구사항 정리, 인터뷰, 스펙 정리. Operate state transitions only when the user explicitly requests orchestration or an active PABCD phase is injected — do not transition state merely because a document mentions phases, goals, or checkpoints.
metadata
{"short-description":"cli-jaw PABCD orchestration workflow for interview, phases, attest, and checkpoints.","last-verified":"2026-10-08"}
Structured 5-phase development. Advance with the required user approval or, in authorized goal mode, an evidence-backed checkpoint. > **C0/C1 work:** see `jaw-dev` §0.0 Work Classifier and §0.1 Patch Fast-Path first — full > PABCD is mandatory for C4 and conditional for C3, not the baseline for every task. > **`jaw-dev` is canonical:** `jaw-dev` §0.2 Rule Classes, §3 Verification Gate, and §5 Safety Rules apply to all work governed by this skill. ## §1. Interview Trigger (MUST) Use Interview behavior for an interview request; read [Interview evidence and closeout](references/interview.md). Enter persisted I only when the user explicitly requests stateful orchestration or an active authorized PABCD workflow requires it. Read `jaw orchestrate status` first. An interview-only, read-only, or plan-only request does not itself authorize a state transition. Jaw's I→P readiness gate is soft; keep textual evidence and contradiction checks. - **Teach the decision space, don't only narrow it** (DEFAULT, INTERVIEW-TEACH-01): intent transfer is bidirectional — a user cannot choose among options they have never seen. Questions that merely confirm details the user already stated are the weak form; the strong form maps the option landscape (research it first when needed) with a trade-off explanation per option, at every load-bearing altitude: stack, architecture, **algorithm/strategy**, data structure, evaluation method. - Recommend one with project-specific reasoning - Confirm once, then proceed For broad changes or unfamiliar repositories, P phase MUST include: - Compact tree of the current repository shape - Detected repo conventions: docs, plans, architecture notes, source-of-truth logs, naming, tests - Whether existing `structure/`, `devlog/`, `docs/`, `plans/`, or equivalent logs were read and will be reused - Whether `structure/` or `devlog/` is proposed - The SoT sync target (SOT-SYNC-01): which general source-of-truth doc (`structure/`, architecture/INDEX docs) this unit will patch in C — or, if the repo has none, the plan recommends creating one (jaw-dev-scaffolding §2.1) Do not create new project-level source-of-truth folders during B unless approved in P or explicitly requested by the user. For every planned conditional path (error handler, fallback, retry, cache, guard, feature-gated branch, threshold behavior), the plan's accept criteria name its **activation scenario**: how C will trigger the condition and what observable effect proves the path ran (C-ACTIVATION-GROUNDING-01, §3 C). Design phases before mapping them to PABCD. **Slice and order phases by dependency/architecture structure (STRICT, PHASE-SPLIT-01)** — the orthodox unlimited-time build order: foundations (schema, contracts, core data flow) → core capabilities → integration → hardening/polish — so each phase consumes the verified output of the previous one. DB/API/UI/test work inside a phase are subtasks, not top-level phases by default, and every phase must still close with something independently verifiable (build, tests, or a demonstrable surface). Effort-based bucketing is FORBIDDEN: never split or order phases by estimated effort or payoff speed — no "quick win vs heavy" buckets, no impact/effort matrices, no time-boxed slices. Phase boundaries encode the system's build order, not the schedule. A simple task can finish in one PABCD with several small phases; larger work splits into multiple PABCD passes — one full P→A→B→C→D per work-phase, closed by D and re-entered at P for the next work-phase (see Terminology / Rule 4). Read project docs and jaw-dev skills first. Write the complete plan internally, then report it simply — like a developer reporting to the CEO. Write a plan with two parts: **Before P settle three things** (DEFAULT, INTERVIEW-CLASSIFY-01): the work class (jaw-dev §0.0), the **loop archetype** (§11.4) — ask "does a verifier define *done* for this work, or only *better*?" — and the **unit residence** (UNIT-RESIDENCE-01, §3.1). Apply this in HITL Interview when authorized, or in goal-mode planning without inventing an Interview round. An archetype discovered after candidates were burned indicates inadequate initial classification. **Interview may widen, not only narrow** (DEFAULT, INTERVIEW-DIVERGE-01): sometimes the truest transfer of intent is "we don't know yet — test both." When a load-bearing choice is genuinely uncertain and a spike is cheap, present options as `A · B · BOTH (parallel spike, select by evidence)` instead of forcing one pick. Generate the option list against typicality bias: the 2-3 options a model volunteers are usually one attractor family — deliberately include at least one atypical (low-probability) approach. A `BOTH` answer becomes an explore-and-select work-phase (§11.4) with the comparison verifier declared in the loop-spec. Divergence seeded at Interview is far cheaper than divergence discovered at a plateau. **Interview sub-modes** (DEFAULT, INTERVIEW-CATALOG-01): pick by the user's knowledge level. *Clarification* (existing) — the user already knows roughly what they want; questions structure goals, constraints, success criteria. *Catalog Discovery* — the user names a vague domain but no features ("사주 앱 만들고 싶어", "뭘 만들지 모르겠어"); see below. *Configurator* — compile the selections into a spec. Heuristic: concrete feature/goal → Clarification; vague domain, no tech specifics → Catalog Discovery; explicit user request → honor it. **Catalog Discovery — design/UX LEADS** (DEFAULT, CATALOG-DESIGN-FIRST-01): the user cannot choose from options they have never seen (the strong form of INTERVIEW-TEACH-01). Present the option ontology in `references/catalog-discovery.yaml`. *Hard barrier:* iterate `axis_order` by ascending `stage`; do NOT present a stage until every `required` entry of all earlier stages is answered. Stage 1 is design, so all six design dials (mood, lightness, density, shape, typography, motion), each `required: true`, MUST be answered before any Stage 2 (domain) or Stage 3 (feature/data/ security/ops/cost) question appears. This is the load-bearing invariant — backend is asked on top of design, never before it. - *Design methodology — Product-Personality Selection first* (`design_methodology.primary`, from jaw-dev-uiux-design §1): for each design dial show its `question_options` (labels + trade-offs) anchored on familiar products, then ask (present-then-ask, not confirm-what-they-said); refine via the declared `followups` — Korean Request Translation (§3), Reference Discovery (§1 Step 6), Design Read (§2). - *Deriving backend questions* — two paths populate Stage 3 from earlier answers, never a flat list: **structural** — a chosen Stage-2 domain entry's `implies[]` plus each Stage-3 entry's `derived_from` (resolve `implies[]` transitively); **keyword** — scan the user's INITIAL free-text request against Stage-3 `auto_activate_rules` (e.g. "사주"/"생년월일" pre-activates `security.pii_protection`). Confirm high-impact activations. - The catalog is a DATA STRUCTURE — do not invent entries not in it. The YAML encodes derivation INPUTS + dependency metadata; this prose is the agent procedure that reads it. Automated runtime filtering is out of scope (it would escalate to code). **Configurator**: once selections are complete, compile them (with resolved `implies[]` chains) into a spec — PRD sections, an MVP cut ordered by `cost_class`, a risk register of every `risk_class: high` entry, and a PABCD plan seed carrying the work class + loop archetype from INTERVIEW-CLASSIFY-01. ## §2. How It Works ``` IDLE ──→ P ──→ A ──→ B ──→ C ──→ D ──→ IDLE │ │ │ │ │ STOP STOP STOP auto auto wait wait wait └──────┴──── I (Interview) — reachable from any phase, context preserved Transitions (each phase accepts only its predecessor): jaw orchestrate I|P|A|B|C|D → I from any state (context preserved); P from IDLE/I; A←P, B←A, C←B, D←C (D returns to IDLE) jaw orchestrate reset → IDLE from any state (context cleared); re-enter with P ``` ### §2.1 Evidence gate (forward transitions) The four forward transitions (P→A, A→B, B→C, C→D) require an **evidence attestation** — a real `jaw orchestrate` command with an `--attest` JSON, not narration. The server gates the agent (identified by its boss token); a human's `/orchestrate X` keeps the free pass. P, A, and B also require user approval; C and D proceed automatically once their work is done. In goal mode, §4 rule 4 replaces user approval with evidence-backed checkpoints. ``` jaw orchestrate A --attest '{"from":"P","to":"A","did":"<the concrete plan you wrote: files/surfaces + approved plan path>"}' jaw orchestrate B --attest '{"from":"A","to":"B","did":"<audit and disposition>","auditOutput":"<review tail>","auditVerdict":"pass"}' jaw orchestrate C --attest '{"from":"B","to":"C","did":"<what you built + who verified it>"}' jaw orchestrate D --attest '{"from":"C","to":"D","did":"<what you checked>","checkOutput":"<paste the real tsc/test tail>","exitCode":0}' ``` The gate validates form and declared audit outcomes: a specific `did` is required; declared `auditVerdict:"fail"` blocks A→B, and `near-pass` requires `auditResidual`. C→D requires non-empty `checkOutput` and, if present, `exitCode:0`. It does NOT cross-check the narrative against runtime state — it forces a deliberate, specific claim, not malice-proofing. **Evidence pointers (DEFAULT, ATTEST-EVIDENCE-01):** even though the gate checks form only, write `did` with artifact pointers: approved plan path, changed-file list, verifier command, exit code, and relevant `jaw goal update` checkpoint when goal mode is active, so a later reader can re-check the claim. Narration without running the command does nothing: the state moves only on the command. Threat model = laziness, not malice. Accepted residuals (NOT bugs): fabricated `did`, the hidden `--force` hatch, a prior-turn `pendingAttestation`, and boss-token stripping (closing it would break the legitimate human-via-CLI free pass). ### 2.2 Orchestration invariants Four rules govern what a transition means. The gate enforces attestation shape and some declared outcomes; artifact truth and cycle ownership remain agent duties. **ORCH-MANDATE-01 (STRICT) — a narrated phase did not happen.** A phase claim without a persisted transition is invalid. Narrating phases — "now I'm in B", "the audit passed" — without issuing them is the failure this rule exists to stop: nothing gated anything, the log is empty, and the cycle is one ordinary turn wearing a PABCD costume. §2.1 already says it for one edge; this generalizes it to entry and re-entry. 1. **Read the real state before claiming one.** Query the current phase, or read the last recorded transition. Do not resume from memory. 2. **Arm the mode explicitly** — enter at `orchestrate I` or `orchestrate P`. 3. **Advance every forward edge with an evidence-bearing attestation**, carrying that phase's real artifact (ORCH-ARTIFACT-01 below). 4. **After D closes, read durable state** — the plan record and the transition log — to confirm what remains, then re-enter P for the next work-phase (LOOP-UNIT-CHAIN-01). Work outside an authorized cycle does not become a recorded phase by narration. Read actual server state and document the real artifact before advancing; never fabricate a prior transition. **ORCH-ARTIFACT-01 (DEFAULT) — advancing a phase is not doing it.** Each forward edge must carry its real artifact, not just an attestation string: | Edge | Required artifact | |---|---| | P→A | the actual diff-level plan document | | A→B | an audit verdict that names its blockers | | B→C | the implementation delta | | C→D | fresh relevant check output — non-empty `checkOutput`, zero `exitCode` when supplied | | D | a cycle summary with evidence and the next-phase decision | A phase whose artifact is absent is not done, regardless of adjacency. The gate is form-only and cannot tell a real artifact from a plausible sentence; this rule is the discipline the gate cannot enforce. **ATTEST-SHAPE-01 (STRICT) — name the edge.** Every supplied `--attest` object carries exact `from`, `to`, and a specific `did` for the transition. P→A may carry `planUnit` at the repository-approved plan location; its absence is advisory. A→B carries actual `auditOutput`, boss `auditVerdict`, and residual dispositions. The parser preserves `planUnit`, `workPhaseId`, `auditOutput`, `auditVerdict`, and `auditResidual`; declared `fail` blocks A→B and `near-pass` requires `auditResidual`. `testReceiptPath` is unsupported. See [phase control](references/phase-control.md) for real edge requirements and CLI limits. **SESSION-IDENTITY-01 (STRICT) — do not attest for a state you do not own.** cli-jaw keeps one FSM per server rather than one per session, and `jaw orchestrate` takes no `--session` flag, so there is no id to get wrong here. What remains is the failure the rule exists to prevent: advancing a phase that another conversation is mid-cycle on. Read the current phase before claiming one, and when several conversations share the server, confirm the in-flight cycle is yours before advancing it. Two cycles writing one record is not a mistake that reports itself: the other conversation's phase moves without it acting, and neither side can tell from inside. That is why this is STRICT rather than hygiene. See [phase control](references/phase-control.md). ## §3. Phases ### P — Plan Read [Plan phase](references/phase-plan.md) for the loop-spec, consultation when authorized, verifier/field-chain/bypass checks, and the reader summary. **PHASE-SPLIT-01:** order work-phases by dependency and give each a verifiable outcome. Name activation scenarios for conditional paths (C-ACTIVATION-GROUNDING-01). Plan-only scope does not authorize execution. Present the plan and obtain any required approval before P→A. ### §3.1 Implementation-Unit Documents For C2+ planning or any multi-cycle roadmap, read [Implementation units](references/implementation-units.md) (DIFFLEVEL-ROADMAP-01, LEXICO-SPLIT-01, UNIT-RESIDENCE-01). Use the repository-approved plan location; never create private records in a public checkout. C0 creates no numbered record; C1 records only inside an already-existing unit. C2+ follows the approved unit convention. For projects allowing in-tree records, `devlog/_plan/YYMMDD_slug/` remains the default placeholder; repositories forbidding them use an approved external location. Documents use decade-range numbering (000-009 research/spec/MOC, 010-019 phase 1, ...); never bare `PLAN.md`, `DIFF_PLAN.md`, `PHASES.md` or `RCA.md` (LEXICO-SPLIT-01). ### A — Plan Audit Read [Audit phase](references/phase-audit.md) for actual path, verifier and evidence review, then synthesize blockers and re-audit (AUDIT-LOOP-01). A declared `fail` cannot advance; near-pass records each residual disposition. The main agent judges the verdict and carries `auditOutput`, `auditVerdict` and, when applicable, `auditResidual` into A→B. Independent review is conditional on authorized delegation and an available employee. ### B — Build Implement the plan. You write code by default and own every verdict; a worker may write when its slice passes DISPATCH-ECONOMY-01 ([dispatch](references/dispatch.md)) and the dispatch is explicitly write-capable with a bounded scope (see Pitfalls). Workers without that grant are read-only verifiers. Do not create new source-of-truth folders unless approved in P; keep private records only in the repository-approved location. After implementing, output worker JSON for verification (code exists, integrates cleanly): NEEDS_FIX → fix and re-verify (repair thresholds §11.3); DONE → report to the user. ⛔ Wait for user approval. When approved, advance with the canonical B→C attestation form in §2.1. ### C — Check Read [Check phase](references/phase-check.md) for fresh target-specific verification, SoT sync (SOT-SYNC-01), rendered and paged artifacts (C-RENDER-GROUNDING-01), reachable conditional paths (C-ACTIVATION-GROUNDING-01), and the reader check (C-READER-01). C→D carries real nonempty `checkOutput`; an `exitCode`, if supplied, must be zero. Register and verify a `jaw bgtask` wake before yielding on a long external gate. ### D — Done Summarize the entire flow: what was planned (P), audited (A), built (B), checked (C); the list of files changed; any follow-up items. **Pessimistic close-out (DEFAULT, LOOP-PESSIMIST-01):** for loop/multi-pass work, D also records the negative delta: what did NOT improve, which hypothesis died this cycle, and one sentence answering "what evidence would show the current direction is wrong?" The next P quotes this (§10 LOOP-CONTINUITY-01). D→IDLE→P is a context/bias-flush boundary: the next cycle resumes from disk artifacts, not the transcript's accumulated assumptions. State returns to IDLE automatically. Project root configuration is persistent: D resets PABCD state but not `projectDirs`; `jaw project clear` only on explicit user request. ## §4. Rules 1. One phase per response (the gate-and-wait turn boundary; canonical approval rule in §2.1). Goal-mode exception: with an active goal, do not end the turn before D while PABCD-phases remain — keep going P→D, close D, re-enter P for the next work-phase. 2. Sequence: P → A → B → C → D. Use `jaw orchestrate reset` to restart. 3. Workers verify (read-only) by default; write-capable dispatch follows [dispatch](references/dispatch.md) DISPATCH-ECONOMY-01. Verdicts stay with the boss in B. 4. Goal-mode precedence: when a jaw goal is active (jaw-dev §0.4), use §2.1 with evidence-backed checkpoints (`jaw goal update`) instead of user approval; phase order, audit conditions, and verification intensity are unchanged. Gate quick-reference (strict vs goal mode): | Gate | Strict PABCD | Goal mode | |------|--------------|-----------| | P→A, A→B, B→C | user approval + `--attest` | evidence-backed checkpoint + `--attest` | | C→D | auto + `--attest` w/ `checkOutput`/`exitCode` | same | | Turn boundary | one phase per response | continue P→D within the cycle | ## §5. Terminology: work-phase vs PABCD-phase **work-phase** = one outcome slice of a larger goal (e.g. "Phase 3: Management API"); **PABCD-phase** = one letter P/A/B/C/D inside a single orchestration cycle. Work-phases need not be slices of one feature: successive cycles in the SAME session may target completely different features or plans under the same goal (LOOP-UNIT-CHAIN-01). "This needs its own PABCD" is a plan statement — append the unit to the slice map and run it as the next cycle, never a reason to end the goal or defer to a new session. **Invariant: one work-phase = one full PABCD cycle.** Run P→A→B→C→D, close D (→ IDLE), then `jaw orchestrate P` for the next work-phase. Never run B for several work-phases back-to-back or commit out of B without passing C and D. Depth scales per class (§9); the P→D **sequence** is never skipped. **Loop / multi-pass tasks** run one complete P→A→B→C→D cycle per work-phase. A two-or-more-cycle loop starts with a docs-only roadmap cycle (LOOP-DOCS-FIRST-01, DIFFLEVEL-ROADMAP-01); later P cycles revalidate their prewritten unit against the live tree. See [Implementation units](references/implementation-units.md) and [Goal and loop continuation](references/loop-continuation.md) (LOOP-READS-PABCD-01). With remaining authorized work, D→IDLE is followed by the next P (GOAL-IDLE-CONTINUE-01). ## §6. Repository Root Contract Before writing a PABCD plan or dispatching an employee, determine the actual working repository root with `pwd -P` from the target repo. If `Project root` is injected at the top of the system prompt, use it directly; if not, recommend the user configure it (Manager UI → Project settings, or `jaw project set /path/to/repo`) to avoid JAW_HOME/codebase confusion. Every A/B phase `jaw dispatch` task body MUST begin with `Project root: /absolute/path/to/current/repo`. Rules: `Project root` is the current working repository, never `JAW_HOME`; workers never infer the root from `~/.cli-jaw*`, `process.cwd()`, or a temp dir; all relative repo paths resolve against `Project root`; if it is unknown, STOP and ask before dispatching. ## §7. Shared plan and bounded dispatch
Ver no GitHub
Este SKILL.md e muito grande, entao o SkillsMP mostra aqui apenas a primeira secao. Ver no GitHub