After handoff: update gate statuses (current → [✓], next → [→])
After each handoff
$session-prompt-generator
For Session handoff: generate next session prompt, included in file
On session completion
Framework skills (jtbd, prd, rice etc.)
Skill artifacts (completed templates) — part of gate deliverables
When transferring between agents
Handoff Types
Type
Description
File
Next recipient context
Forward
Standard transfer between gates within session
No (in memory)
Full session context available
Reverse
Return for rework
No (in memory)
Full session context available
Session
Cross-session transfer
docs/product/session-N-handoff.md
ZERO prior context — file must be self-contained
Key rule for cross-session handoff: The next session starts with ZERO context. The handoff file is the sole source of information. No references to «see above» or «as discussed». Everything must be in the file.
Key rule for adversarial independence: In Full A/B when transferring the Discovery Brief to both camps — both packages are identical. Alpha and Beta do not see each other's artifacts until Mediator. Session-handoff Camp Alpha is NOT passed to Beta before MED-01.
Transfer Registry — What to Transfer
Full Pipeline A (/ship-right-thing, 6 sessions)
Transition
Artifacts
Key context
COND-01 → DISC-01
Task scope, mode, board, adversarial context
Product question, constraints, ICP, current metrics
For Session — determine file path: docs/product/session-N-handoff.md.
For Full A/B — verify camp isolation (if handoff goes alpha → beta without Mediator — prohibited).
Step 1 — Preconditions
Confirm that $gates gave PASS or CONDITIONAL PASS (except Reverse).
Identify the receiving agent from the registry.
Collect all artifacts from the transfer registry.
For Full A/B — filter out artifacts from the opposing camp (if cross-camp handoff).
Step 2 — Form the envelope
For Forward: fill in the standard envelope template.
For Session: fill in the file template, include FULL artifact contents.
For Reverse: fill in the reverse envelope with gaps.
For CONDITIONAL PASS — explicitly state the gaps being transferred.
Step 3 — User sign-off
Show envelope to user.
Await explicit "Approved".
Do not proceed without Approved. No exceptions.
Step 4 — Save and activate
For Session: save file to docs/product/session-N-handoff.md.
Update $board: current gate → [✓] Completed, next → [→] In Progress.
Add entry to the transfer log.
For Session: call $session-prompt-generator to generate the prompt.
Example — Forward Handoff COND-03 → STRAT-02β (TeamFlow, /ship-right-thing)
Context: TeamFlow (B2B SaaS, HR-tech). Session 3: assigning Camp Beta (Business-Champion). Important: Beta receives ONLY the Discovery Brief, without Session-2 handoff (Alpha artifacts).
### Handoff Envelope — COND-03 → STRAT-02β Product Strategist (Business-Champion)
**Type:** Forward
**Mode:** /ship-right-thing (Full A)
**Session:** 3
**Camp:** Beta (Business-Champion)
**Gate Check:** PASS (camp assignment + independence verified)
**Date:** 2026-04-12
---
**Artifacts:**
1. **Discovery Brief** (from session-1-handoff.md) — FULL text:
- ICP: mid-market HR-tech (100-500 employees)
- Buyer: VP People/HR
- End-user: People managers + ICs
- JTBD canvas (buyer + end-user separate)
- Top 3 problem statements
- Assumption map (12 assumptions, 4 high-risk)
2. **Camp Assignment:** Business-Champion
- You play the role of Business-Champion (β)
- Focus: strategy around revenue, margin, strategic moat, competitive positioning
- Do not play user-value angle (that is Alpha, working in parallel)
**Independence Check:**
- ⛔ Camp Alpha (Customer-Champion) Strategy Brief **NOT passed** — Beta works independently
- Session-2-handoff.md exists, but **explicitly excluded** from this envelope
---
**Task for STRAT-02β:**
Using **only the Discovery Brief**, form a Business-Champion Strategy Brief for the TeamFlow initiative «AI-powered 1:1 note summarization».
Include:
- Vision (business outcomes: ARR, moat, NRR angle)
- North Star Metric (business-value metric)
- OKR (quarterly)
- Product Roadmap (themes)
- Rationale: why this approach from a business perspective
**Expected deliverable:**
Strategy Brief Beta (markdown), ~800-1200 words, with an explicit business-angle argument.
**Blockers:** None
---
→ Awaiting **"Approved"** to proceed to **STRAT-02β Product Strategist (Business-Champion)**
Validation (Quality Gate)
Standard (Forward) envelope
$gates result attached (PASS / CONDITIONAL PASS)
Sending and receiving agents specified with gate IDs
All artifacts from the transfer registry attached
Task for the next agent formulated specifically
Gaps (if CONDITIONAL) explicitly listed
Context transferred
For Full A/B — camp independence verified
User Approved received
$board updated
Cross-session (Session) envelope — additionally
File saved at path docs/product/session-N-handoff.md
All artifacts included as full text (not links or summaries)
Board state saved
Decisions and context recorded
Open questions / blockers recorded
Cumulative index is up to date
Prompt for next session generated
Camp independence check passed (Full A/B)
File is self-contained — test: can be read without ANY prior context
Handoff
The $handoff output serves as input for: the next agent in the pipeline, $board (status updates), $session-prompt-generator (for cross-session handoffs).
Anti-patterns
Error
Why it's bad
How to do it right
Handoff without $gates
Unverified artifacts → problems at next gate
Always $gates PASS → then handoff
Handoff without Approved
Protocol violation, user is unaware
Always wait for explicit Approved
Session handoff with links instead of content
Next session has no access to context
FULL text of artifacts in file
«Do the analysis» instead of a task
Agent does not know the scope
Specific task with parameters and expected deliverable
Transfer without artifacts
Next agent works blind
All artifacts from registry attached
Reverse handoff without specifics
Agent does not know what to fix
Specific gaps + what NOT to touch
Not updating $board
Board is out of sync
Update $board at every handoff
Context lost between sessions
Next session starts from scratch
Cross-session handoff with full content
Recipient did not confirm loading
Unclear if all artifacts were received and understood
Receive Acknowledgement at start of next gate's work
Damaged session file
Next session works with incomplete data
Recovery protocol: verification on load
Camp contamination in Full A/B
Beta sees Alpha artifacts before Mediator → anchoring
Explicit filter in Step 1 + independence check in validation
Output Templates
Forward Handoff (within session)
### Handoff Envelope — [ID From] [Agent From] → [ID To] [Agent To]
**Type:** Forward
**Mode:** [/ship-right-thing | /shape-prioritize | /quick-pm | /spec]
**Session:** [N]
**Camp:** [α (Customer/Build) | β (Business/Cut) | —]
**Gate Check:** [PASS / CONDITIONAL PASS] (iteration [N])
**Date:** [YYYY-MM-DD]
---
**Artifacts:**
- [Artifact 1 — description]
- [Artifact 2 — description]
**Gaps (if CONDITIONAL):**
- [Gap 1 — what to account for]
**Independence Check (Full A/B only):**
- Excluded: [artifacts from opposing camp, if applicable]
---
**Task for [Agent To]:**
[Clear specific formulation]
**Expected deliverable:**
[What the next agent must return]
**Blockers:**
[List or «None»]
---
→ Awaiting **"Approved"** to proceed to **[ID To] [Agent To]**
Reverse Handoff
### Reverse Handoff — [ID From] [Agent From] → [ID To] [Agent To] (return)
**Type:** Reverse
**Reason:** [FAIL / feedback / data discrepancies]
**Date:** [YYYY-MM-DD]
---
**What to fix:**
| # | Gap / Comment | Sev | Specific action |
|---|--------------|:---:|-----------------|
| 1 | [description] | [B] | [what to do] |
**What NOT to touch:**
- [Artifact / section that has already been approved]
---
→ After rework — re-run `$gates` check (iteration [N+1])
→ Awaiting **"Approved"** for return
Receive Acknowledgement (start of recipient's work)
**Handoff received:** [ID From] → [ID To]
**Artifacts loaded:** [N] items
- [Artifact 1] — ✅ received
- [Artifact 2] — ✅ received
**Gaps accepted:** [list or «None»]
**Camp-isolation (Full A/B):** [Verified / N/A]
**Loading issues:** [list or «None»]