Page Brief

Create or review a page-brief, the artifact between a wireflow and full PRD, turning each screen into documented requirements tied to jobs.

Sby Skills Guide Bot
DocumentationIntermediate
007/26/2026
Claude CodeCopilotCursor
#page-brief#requirements#product-design#documentation#jtbd

Recommended for


name: page-brief description: > Create OR review a page-brief — the artifact BETWEEN a wireflow and the full PRD. It turns each unique page/screen of a product into documented requirements TIED TO JOBS: a self-contained board card per page (what the page is accountable for, the job-tagged checklist of what it must let you do, the journeys it appears in, what it connects to, and the acceptance criteria that say how you'd know it's right). It is the "PRD per page", not a sitemap — and it stops ABOVE the screen: no components, no layout, no hierarchy. Use whenever the user wants to "spec the pages", "document each screen", turn a wireflow + live design into per-page requirements, or asks "what does this page need to do / which jobs pass through it" — even if they never say "page-brief". Natural NEXT STEP after the wireflow skill. ALSO use it to REVIEW an existing page-brief / screen catalog. In the A-Team pipeline this is a definition-phase skill: output lands in docs/features/<slug>/briefs/pages/, job codes are the durable [[NN]] ids from docs/product/jtbd/, and pipeline mode derives all cards with flags headlined at the gate while standalone runs the per-page grill. CREATE gates on JTBD quality first, then generates verified SVG/HTML cards (self-checked by rendering and Reading the output) and can rebuild in FigJam. Do NOT use for a full PRD (that consumes this), wireframes / UI design / component specs, a wireflow (use the wireflow skill), or a sitemap. metadata: version: 2.1.0 owner: Alvaro Bezerra provenance: ported 2026-07-24 from product-craft page-brief v2.0.0 (github.com/ABZerra/product-craft) and adapted to the A-Team contract — briefs/pages/ home, durable job ids, derive-mode for the definition phase.

Page-brief

A page-brief is the layer between the wireflow and the full PRD. It turns each unique page/screen into documented requirements tied to jobs — the "PRD per page", not a sitemap. It makes the implicit decisions baked into an existing design explicit and documentable: what the page is accountable for, what it must let a user do (and which job each of those rolls up to), where it sits in the product's journeys and graph, and how you would know the page is actually right.

Pipeline position: JTBDs → journeys → wireflow → page-brief → PRD → wireframes/build. (In an A-Team feature run the PRD may exist first — then the cards check against its scope and roll up into its revision rather than being consumed by a later PRD.)

It is bounded on both sides, and both boundaries are load-bearing:

  • It stops below the PRD — no business goals, metrics, or scope/phasing.
  • It stops above the screen — no components, no layout, no hierarchy, no information design. That's design's work, and the live design is its source of truth.

The success metric to hold onto: the output must be digestible by a human, not just the AI. A cold reader should be able to pick up one card and understand the page.

Place in the A-Team pipeline

Definition-phase skill. Output home: <target>/docs/features/<slug>/briefs/pages/board.json (spec — breadcrumbed source of truth), combined HTML + SVG (deliverable), PNG (verification copy for gate reviewers). Per-feature artifact: overwrite cleanly on revision. Commit per run: docs(<slug>): page briefs.

  • Job codes are the durable ids. Board-wide job codes ARE [[NN-<slug>]] from docs/product/jtbd/, headlines quoted verbatim. Never invent a job label on a card — an "unlisted job?" flag routes to jobs-to-be-done.
  • The wireflow is machine-readable input: read briefs/wireflow/board.json for the page set, the journey↔page linkage, and where each job enters a screen — that entry-point detail is flow-level and lives there, not here.
  • Two interaction modes, one method:
    • Standalone (human present) — full draft-then-grill per page (Movement 1 below).
    • Pipeline (definition phase — draft + review, no interrogation)derive all cards from wireflow + PRD + jobs + the live design. Every guess and every "serves an unlisted job?" signal is flagged on the card; qualitative acceptance criteria are marked "not yet run with a human" (never self-certified); the gate reviews the full catalog with the flags headlined, and the revise loop fixes what's wrong.

The card (7 fields, 3 blocks)

Header        P{n} · Page name · route · design-ref
Purpose       1. Responsibilities    — 1–3 lines translating the JTBD into page accountability
              2. Checklist           — TASKS, each tagged to the JTBD it rolls up to
Connections   3. Appears in journeys — inbound journey·step chips
              4. Connects to         — outbound, cross-page AND cross-job
Validation    5. Acceptance criteria — factual + qualitative (the cotton test)
Footer        6. Reading key

That's the whole card. Do not add fields. Everything that used to be here and isn't was removed deliberately — the reasoning is in references/method-decisions.md Q3/Q14. Read it before you re-add anything.

Mode 0 — Create or Review? (decide first)

  • CREATE (default) — build page-briefs from JTBDs / journeys / wireflow / live design.
  • REVIEW — critique an existing page-brief or screen catalog against the method.

Ambiguous intent → ask. Artifact + "what's wrong" → REVIEW. Raw material + "spec the pages" → CREATE.


Creating page-briefs

Three movements: (0) gate on the upstream jobs, (1) draft each card — grilled per page standalone, derived-with-flags in pipeline, (2) run the generate → rasterize → Read pipeline until every card renders cleanly, then deliver.

The method is draft-then-confirm, per page: the design/prototype is the WHAT (the page's capabilities are readable off the live screen), the human is the WHY and the whether-it's-good (responsibilities, which jobs truly pass through, ambiguous mappings, the acceptance criteria). Drafting first grounds the conversation so the human reacts rather than authors from scratch.

Movement 0 — Gather inputs, and GATE on the jobs

A page-brief cannot be better than the JTBDs feeding it. Thin cards trace back to feature-shaped jobs, every time. Check the jobs before drafting.

1. Assemble the inputs:

| Input | Supplies | If missing | |---|---|---| | The JTBD set (docs/product/jtbd/, active) | the jobs every card tags against | Stop — gate below. | | The journeys / wireflow (briefs/wireflow/board.json) | page set + "Appears in journeys" linkage | Degraded mode (below). | | prd.md | scope the cards must live within | Proceed; cards feed the PRD later. | | The live design/prototype | what each page actually does; the design-ref link | Draft from the wireflow alone, flag heavily. |

2. Run the job gate. Even A-Team jobs that passed jobs-to-be-done's gates get rechecked — defense in depth, and standalone runs may bring outside jobs:

  • Progress-shaped, not feature-shaped? A job is macro, about progress or feeling — never a feature or a screen. ("One place to work my leads" → reject; "Have fluid control over my leads and any opportunity that comes" → accept.)
  • Template followed? When [situation], I want [motivation], so I can [desired outcome] — motivation ≠ outcome.
  • Attached to an actor-in-situation? Jobs belong to people in situations, never to "the platform". The same product serves two people at the same company with different jobs; one flat product-owned job list is a smell. (Not personas — the A-Team works situations and struggles, not demographics; the job's Context section carries the who/when.)
  • Names a feature at all? Then it isn't a job yet.

3. Act on the gate. If the jobs fail: say so plainly, quote the offending job, show the progress-shaped version beside it, and route to jobs-to-be-done. Explain the downstream cost — every checklist item and criterion inherits the weakness. Proceed on insistence, but say once, clearly, that the cards will be limited by it. Never silently draft on bad jobs.

Degraded mode (no wireflow): run from design + JTBDs alone; leave "Appears in journeys" as an explicit TODO per card — that field is the one thing only a wireflow can supply.

Movement 1 — Draft each card, then confirm it (the core loop)

Work one unique page at a time. The unit is the unique page, deduplicated into a catalog — one card per page, not one per journey-occurrence. Materially different behavior by context is a variant inside the one card, never a second card.

For each page: draft the card from the live screen + wireflow + jobs — responsibility, job-tagged checklist, connections, acceptance criteria — flagging every gap and guess. Then: standalone, grill the human on that card one thing at a time (confirm the responsibility, validate each job mapping, resolve every "unlisted job?" flag, land the criteria — especially the qualitative ones, which you cannot write alone); pipeline, keep the flags on the card and move on — the gate is the confirmation pass.

Rules to enforce while drafting (full reasoning in references/method-decisions.md):

  • Responsibilities translate the job. 1–3 lines of page accountability; variants noted here.
  • Checklist items are TASKS, not jobs. Each a concrete thing the user must be able to do or see on this page, tagged task ——▷ [[NN]]. Test: an item that could appear unchanged on three pages is a job — rewrite until it's true of this page only.
  • The checklist is a job-alignment audit — a gap-finder. An item mapping to no listed job branches two ways: drop it, or flag "serves an unlisted job?" — that flag is a signal the upstream job set is missing something. Surface it prominently (gate headline in pipeline mode); route to jobs-to-be-done.
  • Connects to = outbound, and it's what makes this a graph. Cross-page (→ P2) and cross-job, including non-navigational connections (open WhatsApp, notify someone, open an external form) — exactly what a sitemap would miss.
  • Acceptance criteria have two layers, both required.
    1. Factual — present and true, binary, checkable by anyone.
    2. Qualitative — the cotton test: hand a person only the criterion and the screen and ask "can you do this?" Never self-certify this layer. Draft the criteria, then state plainly they need to be run with a person — in pipeline mode, every qualitative criterion ships marked "not yet run with a human", and running them lands on the research plan as an activity.
  • Every reference declares its kind: JOB or JOURNEY. Job pills are [[NN]] ids — stable board-wide, never invented on a card. Journey chips come from the wireflow. No field mixes the namespaces.
  • ID-based page↔journey linkage. Pages carry stable IDs (P1, P2, …); link by ID, not drawn connectors.
  • Say nothing about the surface. No components, layout, hierarchy. If you catch yourself describing the screen you would draw — stop; that's design's step.
  • Open questions live on the board, not on the card. Raise in the grill (standalone) or as a pinned note beside the card (pipeline); once answered they become a checklist item or a criterion. Genuinely open ones mirror into the context ledger.

Movement 2 — The build pipeline (the reliability core)

Do not build straight onto a FigJam board via the API first — you'd be building blind.

  1. Write the board spec (board.json) — title, jtbds (ids + verbatim headlines + the actor-in-situation each belongs to), pages. Schema + worked example: references/spec-schema.md.
  2. Generate: python scripts/page-brief.py board.json --out docs/features/<slug>/briefs/pages --rasterize (add --columns N for the card grid). Emits the SVG, combined HTML, PNG — including the JTBD definitions page and the job → pages reverse index.
  3. Read the PNG. See your own output; catch overflow, glyph problems, cramped columns before anyone else does. Verify every card — never skip.
  4. Iterate on the spec until clean — references/card-layout.md.
  5. Deliver the combined HTML + SVG. Header design-refs point to live routes, not screenshots.
  6. If requested, rebuild natively in FigJam (references/figjam-rebuild.md).
  7. Hand off. Upward: prd-writer consumes (or re-scopes against) the catalog — pass the job-tagged checklists, acceptance criteria, and "unlisted job?" flags. Sideways to design: the acceptance criteria are the brief a designer works against, and the cotton tests validate their output. Cotton-test runs land as research-plan activities.

Reviewing page-briefs

Critique against the method — don't redraw unless asked.

  1. Take in the artifact (Read images; screenshot FigJam; read specs). Note what you can't see.
  2. Score against references/review-criteria.md. Headline checks: unit = unique page, deduplicated? Checklist = tasks-not-jobs, each [[NN]]-tagged? Acceptance criteria present with a qualitative layer, not self-certified? Connects-to a real graph (cross-page and cross-job)? Job vs journey explicit, codes stable board-wide? Below the PRD and above the screen? Upstream jobs progress-shaped and actor-attached? Digestible to a cold reader?
  3. Check upstream too. Weak cards usually trace to weak jobs — say which it is; fixing cards without fixing jobs is wasted work.
  4. Structured verdict: Verdict (one line + biggest issue) · Strengths · Findings (ordered by impact, each with the fix) · Fastest wins (2–3).
  5. Offer to apply the fixes via CREATE (grill only the gaps).

Guardrails to hold throughout

  • Unit = the unique page. Variants within one card, never new cards.
  • 7 fields, no more. What you want to add was removed on purpose — check Q3.
  • Checklist = tasks tagged to jobs. The card's only concrete layer.
  • Qualitative criteria are human-run. Never self-certify a cotton test.
  • Job vs journey always explicit; job codes are the durable [[NN]] ids. Never invented.
  • Below the PRD, above the screen.
  • Gate on the jobs before drafting. Feature-shaped jobs produce thin cards, every time.
  • Always verify by rasterize → Read before showing anyone. No blind delivery.

What ships in this skill

  • scripts/page-brief.py — the spec-driven card engine (3-block layout, job pills with explicit kind, JTBD definitions page, job → pages reverse index, N-up grid, combined HTML, optional PNG).
  • references/method-decisions.md — the method: each locked decision (Q1–Q14) + why, including what v2 removed and the reasoning.
  • references/spec-schema.md — the board JSON schema + worked example.
  • references/card-layout.md — card layout rules and debugging.
  • references/pipeline.md — the end-to-end build checklist (incl. rasterizer fallbacks).
  • references/review-criteria.md — the REVIEW rubric.
  • references/figjam-rebuild.md — native FigJam mechanics (load only for an editable board).
  • references/examples/ — a worked example spec (illustration only, not method).
Related skills