{
  "catalog": "mf-nwb-001",
  "title": "Materials Factory",
  "host": "https://NWB-Vending.com",
  "base_path": "/2nd-pages/materials-factory/",
  "protocol": "x402",
  "network": "base",
  "health": "/__x402/health",
  "audience": "agent",
  "entry_count": 101,
  "job_spine": {
    "description": "Small-business job lifecycle for Treasure Valley-style ops. Fetch chain in order; attach extensions by anchor.",
    "chain": [
      "mf-tpl-004",
      "mf-tpl-006",
      "mf-tpl-014",
      "mf-tpl-010",
      "mf-tpl-011",
      "mf-tpl-012",
      "mf-tpl-013",
      "mf-tpl-009",
      "mf-tpl-007",
      "mf-tpl-008",
      "mf-tpl-015"
    ],
    "ops_overlay": "mf-tpl-005",
    "complaint_route": "mf-tpl-001",
    "tools": [
      "mf-tool-001",
      "mf-tool-002",
      "mf-tool-003"
    ],
    "extensions": [
      "mf-tpl-016",
      "mf-tpl-017",
      "mf-tpl-018",
      "mf-tpl-019",
      "mf-tpl-020",
      "mf-tpl-021",
      "mf-tpl-022",
      "mf-tpl-023",
      "mf-tpl-024",
      "mf-tpl-025",
      "mf-tpl-026",
      "mf-tpl-027",
      "mf-tpl-028",
      "mf-tpl-029",
      "mf-tpl-030",
      "mf-tpl-031",
      "mf-tpl-032",
      "mf-tpl-033",
      "mf-tpl-034",
      "mf-tpl-035",
      "mf-tpl-036",
      "mf-tpl-037",
      "mf-tpl-038",
      "mf-tpl-039",
      "mf-tpl-040",
      "mf-tpl-041",
      "mf-tpl-042",
      "mf-tpl-043",
      "mf-tpl-044",
      "mf-tpl-045",
      "mf-tpl-046",
      "mf-tpl-047",
      "mf-tpl-048",
      "mf-tpl-049",
      "mf-tpl-050",
      "mf-tpl-051",
      "mf-tpl-052",
      "mf-tpl-053",
      "mf-tpl-054",
      "mf-tpl-055"
    ],
    "extension_clusters": [
      {
        "id": "quote_accept",
        "label": "Quote accepted, pre-production",
        "anchor": "mf-tpl-006",
        "artifacts": [
          "mf-tpl-016",
          "mf-tpl-022",
          "mf-tpl-028",
          "mf-tpl-029",
          "mf-tpl-046",
          "mf-tpl-047",
          "mf-tpl-055"
        ]
      },
      {
        "id": "kickoff_production",
        "label": "Kickoff and floor",
        "anchor": "mf-tpl-010",
        "artifacts": [
          "mf-tpl-017",
          "mf-tpl-026",
          "mf-tpl-033",
          "mf-tpl-034",
          "mf-tpl-042",
          "mf-tpl-043"
        ]
      },
      {
        "id": "active_job",
        "label": "Job in flight",
        "anchor": "mf-tpl-013",
        "artifacts": [
          "mf-tpl-021",
          "mf-tpl-030",
          "mf-tpl-038",
          "mf-tpl-025",
          "mf-tpl-041",
          "mf-tpl-049"
        ]
      },
      {
        "id": "delivery_install",
        "label": "Delivery and install",
        "anchor": "mf-tpl-007",
        "artifacts": [
          "mf-tpl-035",
          "mf-tpl-036",
          "mf-tpl-037",
          "mf-tpl-050",
          "mf-tpl-052"
        ]
      },
      {
        "id": "close_growth",
        "label": "Close and growth",
        "anchor": "mf-tpl-015",
        "artifacts": [
          "mf-tpl-018",
          "mf-tpl-019",
          "mf-tpl-031",
          "mf-tpl-054",
          "mf-tpl-024",
          "mf-tpl-045"
        ]
      },
      {
        "id": "support_escalation",
        "label": "Support and escalation",
        "anchor": "mf-tpl-001",
        "artifacts": [
          "mf-tpl-020",
          "mf-tpl-032",
          "mf-tpl-044",
          "mf-tpl-040",
          "mf-tpl-039"
        ]
      },
      {
        "id": "client_account",
        "label": "Client and account",
        "anchor": "mf-tpl-004",
        "artifacts": [
          "mf-tpl-023",
          "mf-tpl-027",
          "mf-tpl-051",
          "mf-tpl-048"
        ]
      },
      {
        "id": "events_terms",
        "label": "Events and hard deadlines",
        "anchor": "mf-tpl-021",
        "artifacts": [
          "mf-tpl-053"
        ]
      }
    ],
    "extension_index": [
      {
        "id": "mf-tpl-016",
        "anchor": "mf-tpl-010",
        "cluster": "quote_accept",
        "fetch_when": "Deposit missing after accept"
      },
      {
        "id": "mf-tpl-017",
        "anchor": "mf-tpl-011",
        "cluster": "kickoff_production",
        "fetch_when": "Proof approved, hand to floor"
      },
      {
        "id": "mf-tpl-018",
        "anchor": "mf-tpl-014",
        "cluster": "close_growth",
        "fetch_when": "Lead dead: ghost, price, timing"
      },
      {
        "id": "mf-tpl-019",
        "anchor": "mf-tpl-015",
        "cluster": "close_growth",
        "fetch_when": "Happy close, light referral ask"
      },
      {
        "id": "mf-tpl-020",
        "anchor": "mf-tpl-001",
        "cluster": "support_escalation",
        "fetch_when": "Support question, not full complaint"
      },
      {
        "id": "mf-tpl-021",
        "anchor": "mf-tpl-013",
        "cluster": "active_job",
        "fetch_when": "Rush fee and hard proof windows"
      },
      {
        "id": "mf-tpl-022",
        "anchor": "mf-tpl-004",
        "cluster": "quote_accept",
        "fetch_when": "Vague lead needs phone qualify"
      },
      {
        "id": "mf-tpl-023",
        "anchor": "mf-tpl-004",
        "cluster": "client_account",
        "fetch_when": "Wrong fit: refer out polite"
      },
      {
        "id": "mf-tpl-024",
        "anchor": "mf-tpl-006",
        "cluster": "close_growth",
        "fetch_when": "Repeat client reorder path"
      },
      {
        "id": "mf-tpl-025",
        "anchor": "mf-tpl-009",
        "cluster": "active_job",
        "fetch_when": "Sub late or QC fail"
      },
      {
        "id": "mf-tpl-026",
        "anchor": "mf-tpl-017",
        "cluster": "kickoff_production",
        "fetch_when": "Internal QC fail before ship"
      },
      {
        "id": "mf-tpl-027",
        "anchor": "mf-tpl-010",
        "cluster": "client_account",
        "fetch_when": "First job, not repeat"
      },
      {
        "id": "mf-tpl-028",
        "anchor": "mf-tpl-006",
        "cluster": "quote_accept",
        "fetch_when": "Revise quote scope or price"
      },
      {
        "id": "mf-tpl-029",
        "anchor": "mf-tpl-008",
        "cluster": "quote_accept",
        "fetch_when": "Partial payment plan"
      },
      {
        "id": "mf-tpl-030",
        "anchor": "mf-tpl-013",
        "cluster": "active_job",
        "fetch_when": "Client or internal pause"
      },
      {
        "id": "mf-tpl-031",
        "anchor": "mf-tpl-007",
        "cluster": "close_growth",
        "fetch_when": "Light NPS after delivery"
      },
      {
        "id": "mf-tpl-032",
        "anchor": "mf-tpl-001",
        "cluster": "support_escalation",
        "fetch_when": "After-hours message triage"
      },
      {
        "id": "mf-tpl-033",
        "anchor": "mf-tpl-005",
        "cluster": "kickoff_production",
        "fetch_when": "Reprioritize queue internal"
      },
      {
        "id": "mf-tpl-034",
        "anchor": "mf-tpl-011",
        "cluster": "kickoff_production",
        "fetch_when": "Missing logo or file"
      },
      {
        "id": "mf-tpl-035",
        "anchor": "mf-tpl-007",
        "cluster": "delivery_install",
        "fetch_when": "Will-call pickup ready"
      },
      {
        "id": "mf-tpl-036",
        "anchor": "mf-tpl-007",
        "cluster": "delivery_install",
        "fetch_when": "Install schedule and access"
      },
      {
        "id": "mf-tpl-037",
        "anchor": "mf-tpl-007",
        "cluster": "delivery_install",
        "fetch_when": "Tracking and carrier delay"
      },
      {
        "id": "mf-tpl-038",
        "anchor": "mf-tpl-013",
        "cluster": "active_job",
        "fetch_when": "Mid-job photo for anxious client"
      },
      {
        "id": "mf-tpl-039",
        "anchor": "mf-tpl-001",
        "cluster": "support_escalation",
        "fetch_when": "Courtesy credit, not full refund fight"
      },
      {
        "id": "mf-tpl-040",
        "anchor": "mf-tpl-008",
        "cluster": "support_escalation",
        "fetch_when": "Cancel or refund policy branch"
      },
      {
        "id": "mf-tpl-041",
        "anchor": "mf-tpl-010",
        "cluster": "active_job",
        "fetch_when": "COI before install"
      },
      {
        "id": "mf-tpl-042",
        "anchor": "mf-tpl-011",
        "cluster": "kickoff_production",
        "fetch_when": "Design rev before proof"
      },
      {
        "id": "mf-tpl-043",
        "anchor": "mf-tpl-011",
        "cluster": "kickoff_production",
        "fetch_when": "Physical sample approve"
      },
      {
        "id": "mf-tpl-044",
        "anchor": "mf-tpl-007",
        "cluster": "support_escalation",
        "fetch_when": "Damage in transit"
      },
      {
        "id": "mf-tpl-045",
        "anchor": "mf-tpl-006",
        "cluster": "close_growth",
        "fetch_when": "Retainer client monthly touch"
      },
      {
        "id": "mf-tpl-046",
        "anchor": "mf-tpl-008",
        "cluster": "quote_accept",
        "fetch_when": "Net terms application"
      },
      {
        "id": "mf-tpl-047",
        "anchor": "mf-tpl-006",
        "cluster": "quote_accept",
        "fetch_when": "Honest lead time on quote"
      },
      {
        "id": "mf-tpl-048",
        "anchor": "mf-tpl-007",
        "cluster": "client_account",
        "fetch_when": "Multi-site one brand"
      },
      {
        "id": "mf-tpl-049",
        "anchor": "mf-tpl-036",
        "cluster": "active_job",
        "fetch_when": "Permit hold before install"
      },
      {
        "id": "mf-tpl-050",
        "anchor": "mf-tpl-036",
        "cluster": "delivery_install",
        "fetch_when": "Outdoor install weather delay"
      },
      {
        "id": "mf-tpl-051",
        "anchor": "mf-tpl-004",
        "cluster": "client_account",
        "fetch_when": "Contact left company"
      },
      {
        "id": "mf-tpl-052",
        "anchor": "mf-tpl-007",
        "cluster": "delivery_install",
        "fetch_when": "Finished goods storage hold"
      },
      {
        "id": "mf-tpl-053",
        "anchor": "mf-tpl-021",
        "cluster": "events_terms",
        "fetch_when": "Hard event or trade show date"
      },
      {
        "id": "mf-tpl-054",
        "anchor": "mf-tpl-015",
        "cluster": "close_growth",
        "fetch_when": "Portfolio photo permission"
      },
      {
        "id": "mf-tpl-055",
        "anchor": "mf-tpl-006",
        "cluster": "quote_accept",
        "fetch_when": "Tax exempt cert on file"
      }
    ]
  },
  "entries": [
    {
      "id": "mf-train-001",
      "section": "training",
      "title": "LLM API Bootcamp",
      "price": "$0.08",
      "teaser": "training/llm-api-bootcamp/",
      "full": "training/llm-api-bootcamp/full/",
      "primary": "playbook.json",
      "not_for": "Job spine comms packs or rubrics — use templates/tools after bootcamp if needed.",
      "pairs_with": [
        "mf-tool-002",
        "mf-tool-001"
      ],
      "trigger_phrases": [
        "How do I call an LLM API?",
        "Need LLM API bootcamp pack"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tool-001",
      "section": "tools",
      "title": "Should I Automate This?",
      "price": "$0.05",
      "teaser": "tools/should-i-automate/",
      "full": "tools/should-i-automate/full/",
      "primary": "rules.json",
      "description": "Deterministic rubric: should this task stay manual, use a template, gather data, or automate? Built for ops-heavy small business.",
      "tags": [
        "automation",
        "decision-rubric",
        "small-business",
        "vending"
      ],
      "use_when": "Operator asks whether to buy software, automate a task, or keep a manual habit.",
      "not_for": "Routing a specific email draft (mf-tool-002) or saying no to scope creep (mf-tool-003).",
      "pairs_with": [
        "mf-tpl-001",
        "mf-tpl-004"
      ],
      "trigger_phrases": [
        "Operator asks whether to buy software, automate a task, or keep a manual habit.",
        "Need playbook: Should I Automate This?"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tool-002",
      "section": "tools",
      "title": "AI Task Fit",
      "price": "$0.05",
      "teaser": "tools/ai-task-fit/",
      "full": "tools/ai-task-fit/full/",
      "primary": "rules.json",
      "description": "Route tasks to AI draft, human-only, or template path. Pairs with job spine comms packs.",
      "tags": [
        "ai-routing",
        "task-fit",
        "human-in-loop"
      ],
      "use_when": "Deciding if AI should draft, classify, or stay out of a task entirely.",
      "not_for": "Buy/build automation decision (mf-tool-001) or CO boundary (mf-tool-003).",
      "pairs_with": [
        "mf-tool-001",
        "mf-train-001",
        "mf-tpl-001",
        "mf-tpl-004"
      ],
      "trigger_phrases": [
        "Deciding if AI should draft, classify, or stay out of a task entirely.",
        "Need playbook: AI Task Fit"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tool-003",
      "section": "tools",
      "title": "Scope Creep / Say-No",
      "price": "$0.05",
      "teaser": "tools/scope-creep-say-no/",
      "full": "tools/scope-creep-say-no/full/",
      "primary": "rules.json",
      "description": "Say-no and CO routing rubric for scope creep. Cross-links mf-tpl-012 and quote gate.",
      "tags": [
        "scope",
        "boundaries",
        "change-order"
      ],
      "use_when": "Client asks for free extra scope, rush without fee, or work outside signed quote.",
      "not_for": "Automation fit (mf-tool-001) or AI draft routing (mf-tool-002).",
      "pairs_with": [
        "mf-tpl-004",
        "mf-tpl-001",
        "mf-tool-001",
        "mf-tool-002"
      ],
      "trigger_phrases": [
        "Client asks for free extra scope, rush without fee, or work outside signed quote.",
        "Need playbook: Scope Creep / Say-No"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-001",
      "section": "templates",
      "title": "Customer Complaint Recovery",
      "price": "$0.08",
      "teaser": "templates/complaint-recovery-playbook/",
      "full": "templates/complaint-recovery-playbook/full/",
      "primary": "playbook.json",
      "description": "Complaint recovery spine route: severity branches, templates, log rows. Use before treating anger as new intake.",
      "tags": [
        "complaint",
        "recovery",
        "reputation"
      ],
      "use_when": "Existing customer is angry, threatening reviews, or reporting a failure on delivered work.",
      "spine_role": "complaint_route",
      "not_for": "New lead intake (mf-tpl-004) or light warranty FAQ (mf-tpl-020).",
      "pairs_with": [
        "mf-tool-001",
        "mf-tool-003"
      ],
      "trigger_phrases": [
        "Existing customer is angry, threatening reviews, or reporting a failure on delivered work.",
        "Need playbook: Customer Complaint Recovery Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-002",
      "section": "templates",
      "title": "Rapid Employee Onboarding",
      "price": "$0.08",
      "teaser": "templates/employee-onboarding-kit/",
      "full": "templates/employee-onboarding-kit/full/",
      "primary": "playbook.json",
      "description": "Rapid onboarding by role: templates, buddy, Day 7/30 checkpoints. HR adjacent to job spine.",
      "tags": [
        "hiring",
        "onboarding",
        "hr"
      ],
      "use_when": "New hire Day 0 through Day 30 for floor, driver, or office role.",
      "not_for": "Generic ops — fetch only when use_when matches; do not replace spine chain packs.",
      "pairs_with": [
        "mf-tpl-001",
        "mf-tool-001"
      ],
      "trigger_phrases": [
        "New hire Day 0 through Day 30 for floor, driver, or office role.",
        "Need playbook: Rapid Employee Onboarding Kit"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-003",
      "section": "templates",
      "title": "Hiring Character Gauge",
      "price": "$0.08",
      "teaser": "templates/hiring-character-gauge/",
      "full": "templates/hiring-character-gauge/full/",
      "primary": "playbook.json",
      "description": "Three-question character gauge with scored examples. Routes hires to mf-tpl-002 onboarding.",
      "tags": [
        "hiring",
        "interview",
        "character"
      ],
      "use_when": "Interview finishers and hire/pass decision on character, not just skills.",
      "not_for": "Generic ops — fetch only when use_when matches; do not replace spine chain packs.",
      "pairs_with": [
        "mf-tpl-002",
        "mf-tpl-001"
      ],
      "trigger_phrases": [
        "Interview finishers and hire/pass decision on character, not just skills.",
        "Need playbook: Hiring Character Gauge"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-004",
      "section": "templates",
      "title": "Client Intake Playbook",
      "price": "$0.08",
      "teaser": "templates/client-intake-playbook/",
      "full": "templates/client-intake-playbook/full/",
      "primary": "playbook.json",
      "apply": "classify → first touch → qualify → log",
      "description": "Job spine entry: classify intake, first touch within SLA, qualify before mf-tpl-006 quote.",
      "tags": [
        "intake",
        "lead",
        "qualify"
      ],
      "use_when": "First contact from unknown lead: form, email, DM, or call. Not complaint recovery.",
      "spine_role": "chain_start",
      "not_for": "Angry existing customer (mf-tpl-001) or sending a quote (mf-tpl-006).",
      "pairs_with": [
        "mf-tpl-001",
        "mf-tool-002",
        "mf-tool-001",
        "mf-tpl-006",
        "mf-tpl-005"
      ],
      "trigger_phrases": [
        "First contact from unknown lead: form, email, DM, or call. Not complaint recovery.",
        "Need playbook: Client Intake Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-005",
      "section": "templates",
      "title": "Weekly 15-Min Ops Review",
      "price": "$0.08",
      "teaser": "templates/weekly-ops-review/",
      "full": "templates/weekly-ops-review/full/",
      "primary": "playbook.json",
      "description": "15-minute ops overlay for spine. Five blocks, variants, cross-links payment and queue packs.",
      "tags": [
        "ops",
        "weekly-review",
        "overlay"
      ],
      "use_when": "Weekly owner or lead ops ritual: money, queue, people, one improvement.",
      "spine_role": "ops_overlay",
      "not_for": "Single client thread — use spine packs for one job.",
      "pairs_with": [
        "mf-tpl-004",
        "mf-tool-003",
        "mf-tpl-001",
        "mf-tool-002",
        "mf-tool-001"
      ],
      "trigger_phrases": [
        "Weekly owner or lead ops ritual: money, queue, people, one improvement.",
        "Need playbook: Weekly 15-Min Ops Review"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-006",
      "section": "templates",
      "title": "Quote / Estimate Gate",
      "price": "$0.08",
      "teaser": "templates/quote-estimate-gate/",
      "full": "templates/quote-estimate-gate/full/",
      "primary": "playbook.json",
      "apply": "gate → branch → quote + terms",
      "description": "Quote gate: branches for rush, repeat, partial scope. Chains from mf-tpl-004 intake.",
      "tags": [
        "quote",
        "estimate",
        "pricing"
      ],
      "use_when": "Scope is clear enough to price: custom quote or estimate gate before send.",
      "spine_role": "chain",
      "not_for": "Following up silent quote (mf-tpl-014) or revising sent quote (mf-tpl-028).",
      "pairs_with": [
        "mf-tpl-004",
        "mf-tpl-010",
        "mf-tpl-007",
        "mf-tpl-008",
        "mf-tool-003",
        "mf-tpl-001"
      ],
      "trigger_phrases": [
        "Scope is clear enough to price: custom quote or estimate gate before send.",
        "Need playbook: Quote / Estimate Gate"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-007",
      "section": "templates",
      "title": "Delivery + Handoff",
      "price": "$0.08",
      "teaser": "templates/delivery-handoff/",
      "full": "templates/delivery-handoff/full/",
      "primary": "playbook.json",
      "description": "Delivery and handoff templates with unpaid hold and issue branches. Precedes mf-tpl-015 close.",
      "tags": [
        "delivery",
        "handoff",
        "fulfillment"
      ],
      "use_when": "Job ready to leave shop: notify, handoff, confirm receipt, unpaid hold.",
      "spine_role": "chain",
      "not_for": "Generic ops — fetch only when use_when matches; do not replace spine chain packs.",
      "pairs_with": [
        "mf-tpl-006",
        "mf-tpl-008",
        "mf-tpl-001",
        "mf-tool-003",
        "mf-tpl-005",
        "mf-tpl-009"
      ],
      "trigger_phrases": [
        "Job ready to leave shop: notify, handoff, confirm receipt, unpaid hold.",
        "Need playbook: Delivery + Handoff"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-008",
      "section": "templates",
      "title": "Invoice + Payment Chase",
      "price": "$0.08",
      "teaser": "templates/invoice-payment-chase/",
      "full": "templates/invoice-payment-chase/full/",
      "primary": "playbook.json",
      "description": "Invoice and payment chase sequence. Pairs mf-tpl-005 money block and mf-tpl-029 plans.",
      "tags": [
        "invoice",
        "payment",
        "collections"
      ],
      "use_when": "Invoice sent: chase calendar day 3, 7, 14 and partial payment states.",
      "spine_role": "chain",
      "not_for": "Generic ops — fetch only when use_when matches; do not replace spine chain packs.",
      "pairs_with": [
        "mf-tpl-006",
        "mf-tpl-007",
        "mf-tpl-005",
        "mf-tpl-001",
        "mf-tpl-015"
      ],
      "trigger_phrases": [
        "Invoice sent: chase calendar day 3, 7, 14 and partial payment states.",
        "Need playbook: Invoice + Payment Chase"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-009",
      "section": "templates",
      "title": "Vendor Issue Playbook",
      "price": "$0.08",
      "teaser": "templates/vendor-issue/",
      "full": "templates/vendor-issue/full/",
      "primary": "playbook.json",
      "description": "Vendor issue playbook with client delay scripts. Mid-spine between production and delivery.",
      "tags": [
        "vendor",
        "supply",
        "delay"
      ],
      "use_when": "Vendor late, wrong, short, or damaged: internal chase plus honest client plan.",
      "spine_role": "chain",
      "not_for": "Generic ops — fetch only when use_when matches; do not replace spine chain packs.",
      "pairs_with": [
        "mf-tpl-005",
        "mf-tpl-007",
        "mf-tpl-006",
        "mf-tpl-013"
      ],
      "trigger_phrases": [
        "Vendor late, wrong, short, or damaged: internal chase plus honest client plan.",
        "Need playbook: Vendor Issue Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-010",
      "section": "templates",
      "title": "Project Kickoff Checklist",
      "price": "$0.08",
      "teaser": "templates/project-kickoff/",
      "full": "templates/project-kickoff/full/",
      "primary": "playbook.json",
      "description": "Post-accept kickoff checklist. Bridges quote win to proof and production handoffs.",
      "tags": [
        "kickoff",
        "deposit",
        "schedule"
      ],
      "use_when": "Quote accepted: deposit, schedule, proof path, kickoff email.",
      "spine_role": "chain",
      "not_for": "Pre-accept quote work (mf-tpl-006) or proof round (mf-tpl-011).",
      "pairs_with": [
        "mf-tpl-006",
        "mf-tpl-008",
        "mf-tpl-007",
        "mf-tool-003",
        "mf-tpl-005",
        "mf-tpl-014"
      ],
      "trigger_phrases": [
        "Quote accepted: deposit, schedule, proof path, kickoff email.",
        "Need playbook: Project Kickoff Checklist"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-011",
      "section": "templates",
      "title": "Proof + Client Approval Gate",
      "price": "$0.08",
      "teaser": "templates/proof-approval-gate/",
      "full": "templates/proof-approval-gate/full/",
      "primary": "playbook.json",
      "description": "Proof approval gate with written approval rule. Release trigger for floor and mf-tpl-017.",
      "tags": [
        "proof",
        "approval",
        "production-gate"
      ],
      "use_when": "Proof round sent: require written APPROVED before production release.",
      "spine_role": "chain",
      "not_for": "Design loop before proof (mf-tpl-042) or physical sample (mf-tpl-043).",
      "pairs_with": [
        "mf-tpl-010",
        "mf-tpl-007",
        "mf-tool-003",
        "mf-tpl-005",
        "mf-tpl-012"
      ],
      "trigger_phrases": [
        "Proof round sent: require written APPROVED before production release.",
        "Need playbook: Proof + Client Approval Gate"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-012",
      "section": "templates",
      "title": "Change Order Mid-Job",
      "price": "$0.08",
      "teaser": "templates/change-order-mid-job/",
      "full": "templates/change-order-mid-job/full/",
      "primary": "playbook.json",
      "description": "Change order mid-job scripts. Works with mf-tool-003 and mf-tpl-013 updates.",
      "tags": [
        "change-order",
        "scope",
        "mid-job"
      ],
      "use_when": "Scope grows after quote: freeze, document, CO, client accept.",
      "spine_role": "chain",
      "not_for": "Initial quote only — use when scope grows after accept.",
      "pairs_with": [
        "mf-tool-003",
        "mf-tpl-006",
        "mf-tpl-010",
        "mf-tpl-007",
        "mf-tpl-011",
        "mf-tpl-013"
      ],
      "trigger_phrases": [
        "Scope grows after quote: freeze, document, CO, client accept.",
        "Need playbook: Change Order Mid-Job"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-013",
      "section": "templates",
      "title": "Client Status Update",
      "price": "$0.08",
      "teaser": "templates/client-status-update/",
      "full": "templates/client-status-update/full/",
      "primary": "playbook.json",
      "description": "Client status update templates. Spine glue during active jobs.",
      "tags": [
        "status",
        "update",
        "comms"
      ],
      "use_when": "Proactive where-we-are update: on track, slip, waiting on client, waiting on vendor.",
      "spine_role": "chain",
      "not_for": "Complaint recovery (mf-tpl-001) — status updates assume active job in good faith.",
      "pairs_with": [
        "mf-tpl-005",
        "mf-tpl-010",
        "mf-tpl-011",
        "mf-tpl-001",
        "mf-tpl-009",
        "mf-tpl-012"
      ],
      "trigger_phrases": [
        "Proactive where-we-are update: on track, slip, waiting on client, waiting on vendor.",
        "Need playbook: Client Status Update"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-014",
      "section": "templates",
      "title": "Quote Follow-Up",
      "price": "$0.08",
      "teaser": "templates/quote-follow-up/",
      "full": "templates/quote-follow-up/full/",
      "primary": "playbook.json",
      "description": "Quote follow-up sequence between mf-tpl-006 send and mf-tpl-010 accept.",
      "tags": [
        "quote-follow-up",
        "nudge",
        "pipeline"
      ],
      "use_when": "Quote sent, no reply: nudge, expire, requote, win/loss.",
      "spine_role": "chain",
      "not_for": "First quote build (mf-tpl-006) or post-accept kickoff (mf-tpl-010).",
      "pairs_with": [
        "mf-tpl-006",
        "mf-tpl-010",
        "mf-tpl-004",
        "mf-tpl-005"
      ],
      "trigger_phrases": [
        "Quote sent, no reply: nudge, expire, requote, win/loss.",
        "Need playbook: Quote Follow-Up"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-015",
      "section": "templates",
      "title": "Job Close + Archive",
      "price": "$0.08",
      "teaser": "templates/job-close-archive/",
      "full": "templates/job-close-archive/full/",
      "primary": "playbook.json",
      "description": "Job close and archive checklist. Spine terminal node before growth extensions.",
      "tags": [
        "close",
        "archive",
        "job-end"
      ],
      "use_when": "Paid and delivered: archive, internal close, optional review ask.",
      "spine_role": "chain_end",
      "not_for": "Generic ops — fetch only when use_when matches; do not replace spine chain packs.",
      "pairs_with": [
        "mf-tpl-007",
        "mf-tpl-008",
        "mf-tpl-005",
        "mf-tpl-006"
      ],
      "trigger_phrases": [
        "Paid and delivered: archive, internal close, optional review ask.",
        "Need playbook: Job Close + Archive"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-016",
      "section": "templates",
      "title": "Deposit Reminder",
      "price": "$0.08",
      "teaser": "templates/deposit-reminder/",
      "full": "templates/deposit-reminder/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Deposit missing after accept. Extension on mf-tpl-010. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "quote_accept"
      ],
      "use_when": "Deposit missing after accept",
      "spine_anchor": "mf-tpl-010",
      "cluster": "quote_accept",
      "not_for": "Spine chain step only when mf-tpl-010 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-006",
        "mf-tpl-014",
        "mf-tpl-010",
        "mf-tpl-008"
      ],
      "trigger_phrases": [
        "Deposit missing after accept",
        "Need playbook: Deposit Reminder"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-017",
      "section": "templates",
      "title": "Production Handoff (Internal)",
      "price": "$0.08",
      "teaser": "templates/production-handoff-internal/",
      "full": "templates/production-handoff-internal/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Proof approved, hand to floor. Extension on mf-tpl-011. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "kickoff_production"
      ],
      "use_when": "Proof approved, hand to floor",
      "spine_anchor": "mf-tpl-011",
      "cluster": "kickoff_production",
      "not_for": "Spine chain step only when mf-tpl-011 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-010",
        "mf-tpl-011",
        "mf-tpl-007"
      ],
      "trigger_phrases": [
        "Proof approved, hand to floor",
        "Need playbook: Production Handoff (Internal)"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-018",
      "section": "templates",
      "title": "Lost Lead Archive",
      "price": "$0.08",
      "teaser": "templates/lost-lead-archive/",
      "full": "templates/lost-lead-archive/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Lead dead: ghost, price, timing. Extension on mf-tpl-014. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "close_growth"
      ],
      "use_when": "Lead dead: ghost, price, timing",
      "spine_anchor": "mf-tpl-014",
      "cluster": "close_growth",
      "not_for": "Spine chain step only when mf-tpl-014 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-004",
        "mf-tpl-014",
        "mf-tpl-006"
      ],
      "trigger_phrases": [
        "Lead dead: ghost, price, timing",
        "Need playbook: Lost Lead Archive"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-019",
      "section": "templates",
      "title": "Referral Ask",
      "price": "$0.08",
      "teaser": "templates/referral-ask/",
      "full": "templates/referral-ask/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Happy close, light referral ask. Extension on mf-tpl-015. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "close_growth"
      ],
      "use_when": "Happy close, light referral ask",
      "spine_anchor": "mf-tpl-015",
      "cluster": "close_growth",
      "not_for": "Spine chain step only when mf-tpl-015 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-015",
        "mf-tpl-007",
        "mf-tpl-001"
      ],
      "trigger_phrases": [
        "Happy close, light referral ask",
        "Need playbook: Referral Ask"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-020",
      "section": "templates",
      "title": "Warranty + Support First Touch",
      "price": "$0.08",
      "teaser": "templates/warranty-support-touch/",
      "full": "templates/warranty-support-touch/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Support question, not full complaint. Extension on mf-tpl-001. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "support_escalation"
      ],
      "use_when": "Support question, not full complaint",
      "spine_anchor": "mf-tpl-001",
      "cluster": "support_escalation",
      "not_for": "Full complaint recovery (mf-tpl-001) — heated or reputation threat.",
      "pairs_with": [
        "mf-tpl-015",
        "mf-tpl-001",
        "mf-tpl-013"
      ],
      "trigger_phrases": [
        "Support question, not full complaint",
        "Need playbook: Warranty + Support First Touch"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-021",
      "section": "templates",
      "title": "Rush Client Comms",
      "price": "$0.08",
      "teaser": "templates/rush-client-comms/",
      "full": "templates/rush-client-comms/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Rush fee and hard proof windows. Extension on mf-tpl-013. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "active_job"
      ],
      "use_when": "Rush fee and hard proof windows",
      "spine_anchor": "mf-tpl-013",
      "cluster": "active_job",
      "not_for": "Spine chain step only when mf-tpl-013 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-006",
        "mf-tpl-010",
        "mf-tpl-011",
        "mf-tpl-013"
      ],
      "trigger_phrases": [
        "Rush fee and hard proof windows",
        "Need playbook: Rush Client Comms"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-022",
      "section": "templates",
      "title": "Meeting / Phone Qualify",
      "price": "$0.08",
      "teaser": "templates/meeting-phone-qualify/",
      "full": "templates/meeting-phone-qualify/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Vague lead needs phone qualify. Extension on mf-tpl-004. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "quote_accept"
      ],
      "use_when": "Vague lead needs phone qualify",
      "spine_anchor": "mf-tpl-004",
      "cluster": "quote_accept",
      "not_for": "Spine chain step only when mf-tpl-004 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-004",
        "mf-tpl-006"
      ],
      "trigger_phrases": [
        "Vague lead needs phone qualify",
        "Need playbook: Meeting / Phone Qualify"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-023",
      "section": "templates",
      "title": "Not-a-Fit Referral",
      "price": "$0.08",
      "teaser": "templates/not-a-fit-referral/",
      "full": "templates/not-a-fit-referral/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Wrong fit: refer out polite. Extension on mf-tpl-004. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "client_account"
      ],
      "use_when": "Wrong fit: refer out polite",
      "spine_anchor": "mf-tpl-004",
      "cluster": "client_account",
      "not_for": "Spine chain step only when mf-tpl-004 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-004",
        "mf-tpl-006"
      ],
      "trigger_phrases": [
        "Wrong fit: refer out polite",
        "Need playbook: Not-a-Fit Referral"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-024",
      "section": "templates",
      "title": "Reorder Repeat Client",
      "price": "$0.08",
      "teaser": "templates/reorder-repeat-client/",
      "full": "templates/reorder-repeat-client/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Repeat client reorder path. Extension on mf-tpl-006. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "close_growth"
      ],
      "use_when": "Repeat client reorder path",
      "spine_anchor": "mf-tpl-006",
      "cluster": "close_growth",
      "not_for": "Spine chain step only when mf-tpl-006 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-004",
        "mf-tpl-006",
        "mf-tpl-010",
        "mf-tpl-015"
      ],
      "trigger_phrases": [
        "Repeat client reorder path",
        "Need playbook: Reorder Repeat Client"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-025",
      "section": "templates",
      "title": "Subcontractor Handoff",
      "price": "$0.08",
      "teaser": "templates/subcontractor-handoff/",
      "full": "templates/subcontractor-handoff/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Sub late or QC fail. Extension on mf-tpl-009. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "active_job"
      ],
      "use_when": "Sub late or QC fail",
      "spine_anchor": "mf-tpl-009",
      "cluster": "active_job",
      "not_for": "Spine chain step only when mf-tpl-009 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-010",
        "mf-tpl-013",
        "mf-tpl-009"
      ],
      "trigger_phrases": [
        "Sub late or QC fail",
        "Need playbook: Subcontractor Handoff"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-026",
      "section": "templates",
      "title": "QC Fail / Rework (Internal)",
      "price": "$0.08",
      "teaser": "templates/qc-fail-rework/",
      "full": "templates/qc-fail-rework/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Internal QC fail before ship. Extension on mf-tpl-017. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "kickoff_production"
      ],
      "use_when": "Internal QC fail before ship",
      "spine_anchor": "mf-tpl-017",
      "cluster": "kickoff_production",
      "not_for": "Spine chain step only when mf-tpl-017 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-017",
        "mf-tpl-011",
        "mf-tpl-013",
        "mf-tpl-007"
      ],
      "trigger_phrases": [
        "Internal QC fail before ship",
        "Need playbook: QC Fail / Rework (Internal)"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-027",
      "section": "templates",
      "title": "Client Onboarding (First Job)",
      "price": "$0.08",
      "teaser": "templates/client-onboarding-first/",
      "full": "templates/client-onboarding-first/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "First job, not repeat. Extension on mf-tpl-010. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "client_account"
      ],
      "use_when": "First job, not repeat",
      "spine_anchor": "mf-tpl-010",
      "cluster": "client_account",
      "not_for": "Spine chain step only when mf-tpl-010 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-010",
        "mf-tpl-004",
        "mf-tpl-013"
      ],
      "trigger_phrases": [
        "First job, not repeat",
        "Need playbook: Client Onboarding (First Job)"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-028",
      "section": "templates",
      "title": "Estimate Revision / Change Quote",
      "price": "$0.08",
      "teaser": "templates/estimate-revision/",
      "full": "templates/estimate-revision/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Revise quote scope or price. Extension on mf-tpl-006. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "quote_accept"
      ],
      "use_when": "Revise quote scope or price",
      "spine_anchor": "mf-tpl-006",
      "cluster": "quote_accept",
      "not_for": "Spine chain step only when mf-tpl-006 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-006",
        "mf-tpl-012",
        "mf-tpl-014"
      ],
      "trigger_phrases": [
        "Revise quote scope or price",
        "Need playbook: Estimate Revision / Change Quote"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-029",
      "section": "templates",
      "title": "Payment Plan / Partial Terms",
      "price": "$0.08",
      "teaser": "templates/payment-plan-partial/",
      "full": "templates/payment-plan-partial/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Partial payment plan. Extension on mf-tpl-008. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "quote_accept"
      ],
      "use_when": "Partial payment plan",
      "spine_anchor": "mf-tpl-008",
      "cluster": "quote_accept",
      "not_for": "Spine chain step only when mf-tpl-008 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-008",
        "mf-tpl-006",
        "mf-tpl-016"
      ],
      "trigger_phrases": [
        "Partial payment plan",
        "Need playbook: Payment Plan / Partial Terms"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-030",
      "section": "templates",
      "title": "Job Pause / Client Hold",
      "price": "$0.08",
      "teaser": "templates/job-pause-hold/",
      "full": "templates/job-pause-hold/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Client or internal pause. Extension on mf-tpl-013. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "active_job"
      ],
      "use_when": "Client or internal pause",
      "spine_anchor": "mf-tpl-013",
      "cluster": "active_job",
      "not_for": "Spine chain step only when mf-tpl-013 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-013",
        "mf-tpl-012",
        "mf-tpl-010"
      ],
      "trigger_phrases": [
        "Client or internal pause",
        "Need playbook: Job Pause / Client Hold"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-031",
      "section": "templates",
      "title": "Post-Delivery Survey (Light)",
      "price": "$0.08",
      "teaser": "templates/post-delivery-survey/",
      "full": "templates/post-delivery-survey/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Light NPS after delivery. Extension on mf-tpl-007. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "close_growth"
      ],
      "use_when": "Light NPS after delivery",
      "spine_anchor": "mf-tpl-007",
      "cluster": "close_growth",
      "not_for": "Spine chain step only when mf-tpl-007 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-007",
        "mf-tpl-015",
        "mf-tpl-019"
      ],
      "trigger_phrases": [
        "Light NPS after delivery",
        "Need playbook: Post-Delivery Survey (Light)"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-032",
      "section": "templates",
      "title": "Emergency After-Hours Reply",
      "price": "$0.08",
      "teaser": "templates/emergency-after-hours/",
      "full": "templates/emergency-after-hours/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "After-hours message triage. Extension on mf-tpl-001. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "support_escalation"
      ],
      "use_when": "After-hours message triage",
      "spine_anchor": "mf-tpl-001",
      "cluster": "support_escalation",
      "not_for": "Spine chain step only when mf-tpl-001 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-001",
        "mf-tpl-013",
        "mf-tpl-021"
      ],
      "trigger_phrases": [
        "After-hours message triage",
        "Need playbook: Emergency After-Hours Reply"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-033",
      "section": "templates",
      "title": "Multi-Job Priority Queue (Internal)",
      "price": "$0.08",
      "teaser": "templates/job-priority-queue/",
      "full": "templates/job-priority-queue/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Reprioritize queue internal. Extension on mf-tpl-005. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "kickoff_production"
      ],
      "use_when": "Reprioritize queue internal",
      "spine_anchor": "mf-tpl-005",
      "cluster": "kickoff_production",
      "not_for": "Spine chain step only when mf-tpl-005 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-005",
        "mf-tpl-017",
        "mf-tpl-021"
      ],
      "trigger_phrases": [
        "Reprioritize queue internal",
        "Need playbook: Multi-Job Priority Queue (Internal)"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-034",
      "section": "templates",
      "title": "Client Asset / File Request",
      "price": "$0.08",
      "teaser": "templates/client-asset-request/",
      "full": "templates/client-asset-request/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Missing logo or file. Extension on mf-tpl-011. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "kickoff_production"
      ],
      "use_when": "Missing logo or file",
      "spine_anchor": "mf-tpl-011",
      "cluster": "kickoff_production",
      "not_for": "Spine chain step only when mf-tpl-011 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-004",
        "mf-tpl-011",
        "mf-tpl-010"
      ],
      "trigger_phrases": [
        "Missing logo or file",
        "Need playbook: Client Asset / File Request"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-035",
      "section": "templates",
      "title": "Pickup / Will-Call Handoff",
      "price": "$0.08",
      "teaser": "templates/pickup-will-call/",
      "full": "templates/pickup-will-call/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Will-call pickup ready. Extension on mf-tpl-007. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "delivery_install"
      ],
      "use_when": "Will-call pickup ready",
      "spine_anchor": "mf-tpl-007",
      "cluster": "delivery_install",
      "not_for": "Spine chain step only when mf-tpl-007 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-007",
        "mf-tpl-008",
        "mf-tpl-013"
      ],
      "trigger_phrases": [
        "Will-call pickup ready",
        "Need playbook: Pickup / Will-Call Handoff"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-036",
      "section": "templates",
      "title": "Install / On-Site Coordination",
      "price": "$0.08",
      "teaser": "templates/install-on-site-coord/",
      "full": "templates/install-on-site-coord/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Install schedule and access. Extension on mf-tpl-007. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "delivery_install"
      ],
      "use_when": "Install schedule and access",
      "spine_anchor": "mf-tpl-007",
      "cluster": "delivery_install",
      "not_for": "Spine chain step only when mf-tpl-007 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-007",
        "mf-tpl-025",
        "mf-tpl-013"
      ],
      "trigger_phrases": [
        "Install schedule and access",
        "Need playbook: Install / On-Site Coordination"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-037",
      "section": "templates",
      "title": "Shipping / Tracking Client Update",
      "price": "$0.08",
      "teaser": "templates/shipping-tracking-update/",
      "full": "templates/shipping-tracking-update/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Tracking and carrier delay. Extension on mf-tpl-007. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "delivery_install"
      ],
      "use_when": "Tracking and carrier delay",
      "spine_anchor": "mf-tpl-007",
      "cluster": "delivery_install",
      "not_for": "Spine chain step only when mf-tpl-007 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-007",
        "mf-tpl-013",
        "mf-tpl-008"
      ],
      "trigger_phrases": [
        "Tracking and carrier delay",
        "Need playbook: Shipping / Tracking Client Update"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-038",
      "section": "templates",
      "title": "Progress Photo Update (Mid-Job)",
      "price": "$0.08",
      "teaser": "templates/progress-photo-update/",
      "full": "templates/progress-photo-update/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Mid-job photo for anxious client. Extension on mf-tpl-013. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "active_job"
      ],
      "use_when": "Mid-job photo for anxious client",
      "spine_anchor": "mf-tpl-013",
      "cluster": "active_job",
      "not_for": "Spine chain step only when mf-tpl-013 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-013",
        "mf-tpl-011",
        "mf-tpl-017"
      ],
      "trigger_phrases": [
        "Mid-job photo for anxious client",
        "Need playbook: Progress Photo Update (Mid-Job)"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-039",
      "section": "templates",
      "title": "Goodwill Credit / Courtesy Discount",
      "price": "$0.08",
      "teaser": "templates/goodwill-credit/",
      "full": "templates/goodwill-credit/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Courtesy credit, not full refund fight. Extension on mf-tpl-001. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "support_escalation"
      ],
      "use_when": "Courtesy credit, not full refund fight",
      "spine_anchor": "mf-tpl-001",
      "cluster": "support_escalation",
      "not_for": "Spine chain step only when mf-tpl-001 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-001",
        "mf-tpl-008",
        "mf-tpl-015"
      ],
      "trigger_phrases": [
        "Courtesy credit, not full refund fight",
        "Need playbook: Goodwill Credit / Courtesy Discount"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-040",
      "section": "templates",
      "title": "Refund / Cancellation Policy",
      "price": "$0.08",
      "teaser": "templates/refund-cancellation/",
      "full": "templates/refund-cancellation/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Cancel or refund policy branch. Extension on mf-tpl-008. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "support_escalation"
      ],
      "use_when": "Cancel or refund policy branch",
      "spine_anchor": "mf-tpl-008",
      "cluster": "support_escalation",
      "not_for": "Spine chain step only when mf-tpl-008 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-008",
        "mf-tpl-015",
        "mf-tpl-030"
      ],
      "trigger_phrases": [
        "Cancel or refund policy branch",
        "Need playbook: Refund / Cancellation Policy"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-041",
      "section": "templates",
      "title": "COI / Insurance Certificate Request",
      "price": "$0.08",
      "teaser": "templates/coi-insurance-request/",
      "full": "templates/coi-insurance-request/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "COI before install. Extension on mf-tpl-010. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "active_job"
      ],
      "use_when": "COI before install",
      "spine_anchor": "mf-tpl-010",
      "cluster": "active_job",
      "not_for": "Spine chain step only when mf-tpl-010 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-004",
        "mf-tpl-010",
        "mf-tpl-025"
      ],
      "trigger_phrases": [
        "COI before install",
        "Need playbook: COI / Insurance Certificate Request"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-042",
      "section": "templates",
      "title": "Design Revision Loop (Pre-Proof)",
      "price": "$0.08",
      "teaser": "templates/design-revision-loop/",
      "full": "templates/design-revision-loop/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Design rev before proof. Extension on mf-tpl-011. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "kickoff_production"
      ],
      "use_when": "Design rev before proof",
      "spine_anchor": "mf-tpl-011",
      "cluster": "kickoff_production",
      "not_for": "Spine chain step only when mf-tpl-011 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-011",
        "mf-tpl-034",
        "mf-tpl-012"
      ],
      "trigger_phrases": [
        "Design rev before proof",
        "Need playbook: Design Revision Loop (Pre-Proof)"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-043",
      "section": "templates",
      "title": "Physical Sample / Color Proof Approval",
      "price": "$0.08",
      "teaser": "templates/physical-sample-proof/",
      "full": "templates/physical-sample-proof/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Physical sample approve. Extension on mf-tpl-011. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "kickoff_production"
      ],
      "use_when": "Physical sample approve",
      "spine_anchor": "mf-tpl-011",
      "cluster": "kickoff_production",
      "not_for": "Spine chain step only when mf-tpl-011 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-011",
        "mf-tpl-017",
        "mf-tpl-007"
      ],
      "trigger_phrases": [
        "Physical sample approve",
        "Need playbook: Physical Sample / Color Proof Approval"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-044",
      "section": "templates",
      "title": "Damage in Transit Claim",
      "price": "$0.08",
      "teaser": "templates/damage-transit-claim/",
      "full": "templates/damage-transit-claim/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Damage in transit. Extension on mf-tpl-007. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "support_escalation"
      ],
      "use_when": "Damage in transit",
      "spine_anchor": "mf-tpl-007",
      "cluster": "support_escalation",
      "not_for": "Spine chain step only when mf-tpl-007 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-007",
        "mf-tpl-001",
        "mf-tpl-009"
      ],
      "trigger_phrases": [
        "Damage in transit",
        "Need playbook: Damage in Transit Claim"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-045",
      "section": "templates",
      "title": "Retainer / Ongoing Service Client",
      "price": "$0.08",
      "teaser": "templates/retainer-ongoing/",
      "full": "templates/retainer-ongoing/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Retainer client monthly touch. Extension on mf-tpl-006. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "close_growth"
      ],
      "use_when": "Retainer client monthly touch",
      "spine_anchor": "mf-tpl-006",
      "cluster": "close_growth",
      "not_for": "Spine chain step only when mf-tpl-006 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-006",
        "mf-tpl-024",
        "mf-tpl-005"
      ],
      "trigger_phrases": [
        "Retainer client monthly touch",
        "Need playbook: Retainer / Ongoing Service Client"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-046",
      "section": "templates",
      "title": "Net Terms / Credit Application",
      "price": "$0.08",
      "teaser": "templates/net-terms-credit-app/",
      "full": "templates/net-terms-credit-app/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Net terms application. Extension on mf-tpl-008. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "quote_accept"
      ],
      "use_when": "Net terms application",
      "spine_anchor": "mf-tpl-008",
      "cluster": "quote_accept",
      "not_for": "Spine chain step only when mf-tpl-008 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-008",
        "mf-tpl-006",
        "mf-tpl-004"
      ],
      "trigger_phrases": [
        "Net terms application",
        "Need playbook: Net Terms / Credit Application"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-047",
      "section": "templates",
      "title": "Seasonal Capacity / Lead Time Notice",
      "price": "$0.08",
      "teaser": "templates/seasonal-capacity-notice/",
      "full": "templates/seasonal-capacity-notice/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Honest lead time on quote. Extension on mf-tpl-006. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "quote_accept"
      ],
      "use_when": "Honest lead time on quote",
      "spine_anchor": "mf-tpl-006",
      "cluster": "quote_accept",
      "not_for": "Spine chain step only when mf-tpl-006 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-006",
        "mf-tpl-021",
        "mf-tpl-033"
      ],
      "trigger_phrases": [
        "Honest lead time on quote",
        "Need playbook: Seasonal Capacity / Lead Time Notice"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-048",
      "section": "templates",
      "title": "Multi-Location Client Coordination",
      "price": "$0.08",
      "teaser": "templates/multi-location-coord/",
      "full": "templates/multi-location-coord/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Multi-site one brand. Extension on mf-tpl-007. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "client_account"
      ],
      "use_when": "Multi-site one brand",
      "spine_anchor": "mf-tpl-007",
      "cluster": "client_account",
      "not_for": "Spine chain step only when mf-tpl-007 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-006",
        "mf-tpl-007",
        "mf-tpl-013"
      ],
      "trigger_phrases": [
        "Multi-site one brand",
        "Need playbook: Multi-Location Client Coordination"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-049",
      "section": "templates",
      "title": "Permit / Municipality Coordination",
      "price": "$0.08",
      "teaser": "templates/permit-municipality/",
      "full": "templates/permit-municipality/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Permit hold before install. Extension on mf-tpl-036. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "active_job"
      ],
      "use_when": "Permit hold before install",
      "spine_anchor": "mf-tpl-036",
      "cluster": "active_job",
      "not_for": "Spine chain step only when mf-tpl-036 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-010",
        "mf-tpl-036",
        "mf-tpl-013"
      ],
      "trigger_phrases": [
        "Permit hold before install",
        "Need playbook: Permit / Municipality Coordination"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-050",
      "section": "templates",
      "title": "Weather Delay (Outdoor Work)",
      "price": "$0.08",
      "teaser": "templates/weather-delay-outdoor/",
      "full": "templates/weather-delay-outdoor/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Outdoor install weather delay. Extension on mf-tpl-036. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "delivery_install"
      ],
      "use_when": "Outdoor install weather delay",
      "spine_anchor": "mf-tpl-036",
      "cluster": "delivery_install",
      "not_for": "Spine chain step only when mf-tpl-036 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-036",
        "mf-tpl-013",
        "mf-tpl-021"
      ],
      "trigger_phrases": [
        "Outdoor install weather delay",
        "Need playbook: Weather Delay (Outdoor Work)"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-051",
      "section": "templates",
      "title": "Client Contact / Account Transfer",
      "price": "$0.08",
      "teaser": "templates/contact-account-transfer/",
      "full": "templates/contact-account-transfer/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Contact left company. Extension on mf-tpl-004. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "client_account"
      ],
      "use_when": "Contact left company",
      "spine_anchor": "mf-tpl-004",
      "cluster": "client_account",
      "not_for": "Spine chain step only when mf-tpl-004 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-004",
        "mf-tpl-027",
        "mf-tpl-013"
      ],
      "trigger_phrases": [
        "Contact left company",
        "Need playbook: Client Contact / Account Transfer"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-052",
      "section": "templates",
      "title": "Finished Goods Storage Hold",
      "price": "$0.08",
      "teaser": "templates/finished-goods-storage/",
      "full": "templates/finished-goods-storage/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Finished goods storage hold. Extension on mf-tpl-007. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "delivery_install"
      ],
      "use_when": "Finished goods storage hold",
      "spine_anchor": "mf-tpl-007",
      "cluster": "delivery_install",
      "not_for": "Spine chain step only when mf-tpl-007 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-007",
        "mf-tpl-035",
        "mf-tpl-008"
      ],
      "trigger_phrases": [
        "Finished goods storage hold",
        "Need playbook: Finished Goods Storage Hold"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-053",
      "section": "templates",
      "title": "Event / Trade Show Deadline",
      "price": "$0.08",
      "teaser": "templates/event-deadline-crunch/",
      "full": "templates/event-deadline-crunch/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Hard event or trade show date. Extension on mf-tpl-021. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "events_terms"
      ],
      "use_when": "Hard event or trade show date",
      "spine_anchor": "mf-tpl-021",
      "cluster": "events_terms",
      "not_for": "Spine chain step only when mf-tpl-021 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-021",
        "mf-tpl-011",
        "mf-tpl-007"
      ],
      "trigger_phrases": [
        "Hard event or trade show date",
        "Need playbook: Event / Trade Show Deadline"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-054",
      "section": "templates",
      "title": "Portfolio / Photo Permission Ask",
      "price": "$0.08",
      "teaser": "templates/portfolio-photo-permission/",
      "full": "templates/portfolio-photo-permission/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Portfolio photo permission. Extension on mf-tpl-015. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "close_growth"
      ],
      "use_when": "Portfolio photo permission",
      "spine_anchor": "mf-tpl-015",
      "cluster": "close_growth",
      "not_for": "Spine chain step only when mf-tpl-015 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-015",
        "mf-tpl-019",
        "mf-tpl-007"
      ],
      "trigger_phrases": [
        "Portfolio photo permission",
        "Need playbook: Portfolio / Photo Permission Ask"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-055",
      "section": "templates",
      "title": "Tax Exempt Certificate Request",
      "price": "$0.08",
      "teaser": "templates/tax-exempt-cert/",
      "full": "templates/tax-exempt-cert/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Tax exempt cert on file. Extension on mf-tpl-006. Deterministic branches and templates.",
      "tags": [
        "job-spine-extension",
        "quote_accept"
      ],
      "use_when": "Tax exempt cert on file",
      "spine_anchor": "mf-tpl-006",
      "cluster": "quote_accept",
      "not_for": "Spine chain step only when mf-tpl-006 context applies — not a substitute for chain order.",
      "pairs_with": [
        "mf-tpl-006",
        "mf-tpl-008",
        "mf-tpl-004"
      ],
      "trigger_phrases": [
        "Tax exempt cert on file",
        "Need playbook: Tax Exempt Certificate Request"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-056",
      "section": "templates",
      "title": "Wrong Seat Rescue Playbook",
      "price": "$0.08",
      "teaser": "templates/wrong-seat-rescue/",
      "full": "templates/wrong-seat-rescue/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Wrong seat rescue: observe, test hard work, reassign bored performers. Pairs with mf-tpl-003, mf-tpl-002, mf-tpl-005.",
      "tags": [
        "people-ops",
        "team-management",
        "hr-adjacent"
      ],
      "use_when": "Team member looks like underperformer but may be bored in wrong seat. Manager asks fix behavior before write-up.",
      "not_for": "Generic ops — fetch only when use_when matches; do not replace spine chain packs.",
      "pairs_with": [
        "mf-tpl-003",
        "mf-tpl-002",
        "mf-tpl-005"
      ],
      "trigger_phrases": [
        "Team member looks like underperformer but may be bored in wrong seat. Manager asks fix behavior before write-up.",
        "Need playbook: Wrong Seat Rescue Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-057",
      "section": "templates",
      "title": "Workplace Department Map",
      "price": "$0.08",
      "teaser": "templates/workplace-department-map/",
      "full": "templates/workplace-department-map/full/",
      "primary": "playbook.json",
      "apply": "lane → template → log row",
      "description": "Finance, HR, shipping lanes plus manager-speak decode. Combined department map for frontline routing.",
      "tags": [
        "people-ops",
        "department-routing",
        "frontline"
      ],
      "use_when": "Operator or agent must route a workplace issue to finance, HR, or shipping/receiving without stepping on landmines.",
      "not_for": "Generic ops — fetch only when use_when matches; do not replace spine chain packs.",
      "pairs_with": [
        "mf-tpl-007",
        "mf-tpl-008",
        "mf-tpl-002",
        "mf-tool-003"
      ],
      "trigger_phrases": [
        "Operator or agent must route a workplace issue to finance, HR, or shipping/receiving without stepping on landmines.",
        "Need playbook: Workplace Department Map"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-058",
      "section": "templates",
      "title": "Tenured Change Adoption Playbook",
      "price": "$0.08",
      "teaser": "templates/tenured-change-adoption/",
      "full": "templates/tenured-change-adoption/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log row",
      "description": "Structured change engagement for tenured staff: reflection, report, presentation, refusal path.",
      "tags": [
        "people-ops",
        "change-management",
        "tenured-staff"
      ],
      "use_when": "Longtime staff resist new process or system. Know old way cold. Complain without engaging.",
      "not_for": "Generic ops — fetch only when use_when matches; do not replace spine chain packs.",
      "pairs_with": [
        "mf-tpl-056",
        "mf-tpl-005",
        "mf-tpl-002",
        "mf-tool-001"
      ],
      "trigger_phrases": [
        "Longtime staff resist new process or system. Know old way cold. Complain without engaging.",
        "Need playbook: Tenured Change Adoption Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-059",
      "section": "templates",
      "title": "Shadow Expert Mining Playbook",
      "price": "$0.08",
      "teaser": "templates/shadow-expert-mining/",
      "full": "templates/shadow-expert-mining/full/",
      "primary": "playbook.json",
      "apply": "observe → sprint → backlog → log row",
      "description": "Shadow expert mining: metric mismatch, question sprint, tools backlog, role adjustment.",
      "tags": [
        "people-ops",
        "support-metrics",
        "sme-mining"
      ],
      "use_when": "Support metrics show low availability but high quality. Peers queue for one expert. Repeat questions not captured in training.",
      "not_for": "Generic ops — fetch only when use_when matches; do not replace spine chain packs.",
      "pairs_with": [
        "mf-tpl-056",
        "mf-tpl-058",
        "mf-tpl-057",
        "mf-tool-001",
        "mf-train-001"
      ],
      "trigger_phrases": [
        "Support metrics show low availability but high quality. Peers queue for one expert. Repeat questions not captured in training.",
        "Need playbook: Shadow Expert Mining Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-060",
      "section": "templates",
      "title": "Return Verification Signal Playbook",
      "price": "$0.08",
      "teaser": "templates/return-verification-signal/",
      "full": "templates/return-verification-signal/full/",
      "primary": "playbook.json",
      "apply": "log return → branch → template → QBR slice",
      "description": "Return verification: NDF tracking, cross-train support and test, metric proof, QBR health check.",
      "tags": [
        "quality",
        "returns",
        "enterprise-trust"
      ],
      "use_when": "Returned parts or jobs need verification. NDF rate matters. Support and test blame each other. Enterprise customer wants health proof.",
      "not_for": "Generic ops — fetch only when use_when matches; do not replace spine chain packs.",
      "pairs_with": [
        "mf-tpl-059",
        "mf-tpl-001",
        "mf-tpl-020",
        "mf-tpl-005"
      ],
      "trigger_phrases": [
        "Returned parts or jobs need verification. NDF rate matters. Support and test blame each other. Enterprise customer wants health proof.",
        "Need playbook: Return Verification Signal Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-061",
      "section": "templates",
      "title": "Support Ops Correlation Playbook",
      "price": "$0.08",
      "teaser": "templates/support-ops-correlation/",
      "full": "templates/support-ops-correlation/full/",
      "primary": "playbook.json",
      "apply": "Log weekly ops row → Refresh correlation matrix → Write conclusions",
      "description": "Weekly ops plus CSAT correlations with written conclusions for fair metrics and QBR.",
      "tags": [
        "support-ops",
        "csat",
        "metrics-proof"
      ],
      "use_when": "Support ops and CSAT move together. Leadership dings on one KPI. QBR needs ops proof beyond surveys.",
      "not_for": "Generic ops — fetch only when use_when matches; do not replace spine chain packs.",
      "pairs_with": [
        "mf-tpl-064",
        "mf-tpl-063",
        "mf-tpl-005",
        "mf-tpl-065"
      ],
      "trigger_phrases": [
        "Support ops and CSAT move together. Leadership dings on one KPI. QBR needs ops proof beyond surveys.",
        "Need playbook: Support Ops Correlation Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-062",
      "section": "templates",
      "title": "Queue Split Design Playbook",
      "price": "$0.08",
      "teaser": "templates/queue-split-design/",
      "full": "templates/queue-split-design/full/",
      "primary": "playbook.json",
      "apply": "Export live splits → Fill registry → Validate ASA goals",
      "description": "Split/skill registry: priority, ASA goal, hours. Routing backbone before forecast.",
      "tags": [
        "routing",
        "queue-design",
        "support-ops"
      ],
      "use_when": "Call routing is tribal knowledge. Mixed tiers in one queue. ASA goals undocumented or wrong.",
      "not_for": "Generic ops — fetch only when use_when matches; do not replace spine chain packs.",
      "pairs_with": [
        "mf-tpl-063",
        "mf-tpl-066",
        "mf-tpl-061",
        "mf-tpl-005"
      ],
      "trigger_phrases": [
        "Call routing is tribal knowledge. Mixed tiers in one queue. ASA goals undocumented or wrong.",
        "Need playbook: Queue Split Design Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-063",
      "section": "templates",
      "title": "Volume Split Tracker Playbook",
      "price": "$0.08",
      "teaser": "templates/volume-split-tracker/",
      "full": "templates/volume-split-tracker/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Volume by segment weekly: offered, answered, abandoned. Mix shift detection.",
      "tags": [
        "volume",
        "segmentation",
        "support-ops"
      ],
      "use_when": "Call volume debated without segment split. Mix shift suspected. Forecast needs actuals by queue family.",
      "not_for": "Generic ops — fetch only when use_when matches; do not replace spine chain packs.",
      "pairs_with": [
        "mf-tpl-062",
        "mf-tpl-061",
        "mf-tpl-066",
        "mf-tpl-064"
      ],
      "trigger_phrases": [
        "Call volume debated without segment split. Mix shift suspected. Forecast needs actuals by queue family.",
        "Need playbook: Volume Split Tracker Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-064",
      "section": "templates",
      "title": "Understaffing Impact Log Playbook",
      "price": "$0.08",
      "teaser": "templates/understaffing-impact-log/",
      "full": "templates/understaffing-impact-log/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Annotated understaffing log: ASA, abandon, down-N tags, metric dispute packets.",
      "tags": [
        "staffing",
        "asa",
        "metrics-proof"
      ],
      "use_when": "Headcount dropped and ASA/abandon moved. Someone got dinged without week context. Need fair metric proof.",
      "not_for": "Generic ops — fetch only when use_when matches; do not replace spine chain packs.",
      "pairs_with": [
        "mf-tpl-061",
        "mf-tpl-063",
        "mf-tpl-066",
        "mf-tpl-005"
      ],
      "trigger_phrases": [
        "Headcount dropped and ASA/abandon moved. Someone got dinged without week context. Need fair metric proof.",
        "Need playbook: Understaffing Impact Log Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-065",
      "section": "templates",
      "title": "Support Unit Economics Playbook",
      "price": "$0.08",
      "teaser": "templates/support-unit-economics/",
      "full": "templates/support-unit-economics/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Support unit economics: cost per call, email, RMA. Labor burden roll-up.",
      "tags": [
        "unit-economics",
        "budget",
        "support-ops"
      ],
      "use_when": "Budget or CFO review on support cost. Channel mix shifting. Need cost per call/email/RMA not FTE vibes.",
      "not_for": "Generic ops — fetch only when use_when matches; do not replace spine chain packs.",
      "pairs_with": [
        "mf-tpl-066",
        "mf-tpl-005",
        "mf-tpl-061",
        "mf-tpl-067"
      ],
      "trigger_phrases": [
        "Budget or CFO review on support cost. Channel mix shifting. Need cost per call/email/RMA not FTE vibes.",
        "Need playbook: Support Unit Economics Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-066",
      "section": "templates",
      "title": "Call Forecast Variance Playbook",
      "price": "$0.08",
      "teaser": "templates/call-forecast-variance/",
      "full": "templates/call-forecast-variance/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Forecast assumptions, weekly variance by queue, staffing schedule patches.",
      "tags": [
        "forecast",
        "capacity",
        "support-ops"
      ],
      "use_when": "Call forecast exists but actuals diverge. Overtime or ASA miss tied to one queue. Assumptions not documented.",
      "not_for": "Generic ops — fetch only when use_when matches; do not replace spine chain packs.",
      "pairs_with": [
        "mf-tpl-062",
        "mf-tpl-063",
        "mf-tpl-065",
        "mf-tpl-064"
      ],
      "trigger_phrases": [
        "Call forecast exists but actuals diverge. Overtime or ASA miss tied to one queue. Assumptions not documented.",
        "Need playbook: Call Forecast Variance Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-067",
      "section": "templates",
      "title": "R&D Support Bridge Playbook",
      "price": "$0.08",
      "teaser": "templates/rd-support-bridge/",
      "full": "templates/rd-support-bridge/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "R&D support bridge: field signal, engineering handoff, verify close loop.",
      "tags": [
        "cross-functional",
        "product-quality",
        "support-ops"
      ],
      "use_when": "Support sees field pattern engineering lacks. Bridge role between support and R&D. Verify loop after fix ships.",
      "not_for": "Generic ops — fetch only when use_when matches; do not replace spine chain packs.",
      "pairs_with": [
        "mf-tpl-059",
        "mf-tpl-060",
        "mf-tpl-061",
        "mf-tpl-065"
      ],
      "trigger_phrases": [
        "Support sees field pattern engineering lacks. Bridge role between support and R&D. Verify loop after fix ships.",
        "Need playbook: R&D Support Bridge Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-068",
      "section": "templates",
      "lane": "workplace-exit",
      "pack_type": "field-pattern",
      "title": "Severance Agreement Trail Playbook",
      "price": "$0.08",
      "teaser": "templates/severance-agreement-trail/",
      "full": "templates/severance-agreement-trail/full/",
      "primary": "playbook.json",
      "apply": "document → log → binder (not legal advice)",
      "description": "Severance agreement trail: dates and docs when payments stop. Not legal advice.",
      "tags": [
        "workplace-exit",
        "field-patterns",
        "severance"
      ],
      "use_when": "Severance offered then payments stop or reduce. Need dated document chain from offer through cut notice.",
      "not_for": "Generic ops — fetch only when use_when matches; do not replace spine chain packs.",
      "pairs_with": [
        "mf-tpl-069",
        "mf-tpl-070",
        "mf-tpl-057",
        "mf-tpl-056"
      ],
      "trigger_phrases": [
        "Severance offered then payments stop or reduce. Need dated document chain from offer through cut notice.",
        "Need playbook: Severance Agreement Trail Playbook"
      ],
      "agent_signal_version": "1.2",
      "disclaimer": "Documentation and organizational patterns from field experience. Not legal advice."
    },
    {
      "id": "mf-tpl-069",
      "section": "templates",
      "lane": "workplace-exit",
      "pack_type": "field-pattern",
      "title": "Severance Payment Log Playbook",
      "price": "$0.08",
      "teaser": "templates/severance-payment-log/",
      "full": "templates/severance-payment-log/full/",
      "primary": "playbook.json",
      "apply": "document → log → binder (not legal advice)",
      "description": "Severance payment log: promised vs paid vs owed. Not legal advice.",
      "tags": [
        "workplace-exit",
        "field-patterns",
        "severance"
      ],
      "use_when": "Severance installments promised but partial pay or stop. Need owed balance on paper.",
      "not_for": "Generic ops — fetch only when use_when matches; do not replace spine chain packs.",
      "pairs_with": [
        "mf-tpl-068",
        "mf-tpl-070",
        "mf-tpl-071"
      ],
      "trigger_phrases": [
        "Severance installments promised but partial pay or stop. Need owed balance on paper.",
        "Need playbook: Severance Payment Log Playbook"
      ],
      "agent_signal_version": "1.2",
      "disclaimer": "Documentation and organizational patterns from field experience. Not legal advice."
    },
    {
      "id": "mf-tpl-070",
      "section": "templates",
      "lane": "workplace-exit",
      "pack_type": "field-pattern",
      "title": "ERISA Evidence Binder Playbook",
      "price": "$0.08",
      "teaser": "templates/erisa-evidence-binder/",
      "full": "templates/erisa-evidence-binder/full/",
      "primary": "playbook.json",
      "apply": "document → log → binder (not legal advice)",
      "description": "ERISA evidence binder tabs and timeline. Organization only, not legal advice.",
      "tags": [
        "workplace-exit",
        "field-patterns",
        "erisa-adjacent"
      ],
      "use_when": "Employee benefits or severance dispute. Need organized evidence binder for counsel. Not DIY lawsuit.",
      "not_for": "Generic ops — fetch only when use_when matches; do not replace spine chain packs.",
      "pairs_with": [
        "mf-tpl-068",
        "mf-tpl-069",
        "mf-tpl-071",
        "mf-tpl-072"
      ],
      "trigger_phrases": [
        "Employee benefits or severance dispute. Need organized evidence binder for counsel. Not DIY lawsuit.",
        "Need playbook: ERISA Evidence Binder Playbook"
      ],
      "agent_signal_version": "1.2",
      "disclaimer": "Documentation and organizational patterns from field experience. Not legal advice."
    },
    {
      "id": "mf-tpl-071",
      "section": "templates",
      "lane": "workplace-exit",
      "pack_type": "field-pattern",
      "title": "Bankruptcy Employee Creditor Playbook",
      "price": "$0.08",
      "teaser": "templates/bankruptcy-employee-creditor/",
      "full": "templates/bankruptcy-employee-creditor/full/",
      "primary": "playbook.json",
      "apply": "document → log → binder (not legal advice)",
      "description": "Bankruptcy proof of claim prep for employee severance creditor. Not legal advice.",
      "tags": [
        "workplace-exit",
        "field-patterns",
        "bankruptcy-adjacent"
      ],
      "use_when": "Bankrupt employer. Severance or judgment owed. Proof of claim deadline approaching.",
      "not_for": "Generic ops — fetch only when use_when matches; do not replace spine chain packs.",
      "pairs_with": [
        "mf-tpl-069",
        "mf-tpl-070",
        "mf-tpl-072"
      ],
      "trigger_phrases": [
        "Bankrupt employer. Severance or judgment owed. Proof of claim deadline approaching.",
        "Need playbook: Bankruptcy Employee Creditor Playbook"
      ],
      "agent_signal_version": "1.2",
      "disclaimer": "Documentation and organizational patterns from field experience. Not legal advice."
    },
    {
      "id": "mf-tpl-072",
      "section": "templates",
      "lane": "workplace-exit",
      "pack_type": "field-pattern",
      "title": "Post-Judgment Dead Debtor Playbook",
      "price": "$0.08",
      "teaser": "templates/post-judgment-dead-debtor/",
      "full": "templates/post-judgment-dead-debtor/full/",
      "primary": "playbook.json",
      "apply": "document → log → binder (not legal advice)",
      "description": "Post-judgment dead debtor: writ, costs, closure trail. Not legal advice.",
      "tags": [
        "workplace-exit",
        "field-patterns",
        "collections-adjacent"
      ],
      "use_when": "Judgment won but debtor bankrupt or dead. Writ or costs docs. Need trail without promising payment.",
      "not_for": "Generic ops — fetch only when use_when matches; do not replace spine chain packs.",
      "pairs_with": [
        "mf-tpl-071",
        "mf-tpl-070",
        "mf-tpl-069"
      ],
      "trigger_phrases": [
        "Judgment won but debtor bankrupt or dead. Writ or costs docs. Need trail without promising payment.",
        "Need playbook: Post-Judgment Dead Debtor Playbook"
      ],
      "agent_signal_version": "1.2",
      "disclaimer": "Documentation and organizational patterns from field experience. Not legal advice."
    },
    {
      "id": "mf-tpl-073",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "NDF Metric Gaming Playbook",
      "price": "$0.08",
      "teaser": "templates/ndf-metric-gaming/",
      "full": "templates/ndf-metric-gaming/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "When NDF tracking starts, support routes around the scoreboard. Find untested or auto-credit SKUs and close the game.",
      "tags": [
        "field-patterns",
        "ndf",
        "incentives",
        "support-ops"
      ],
      "use_when": "NDF scoring started and outbound mix shifted to certain SKUs. Suspect untested or auto-credit paths. Need to close gaming without pure blame.",
      "not_for": "Generic job spine comms. Not a substitute for mf-tpl-060 return log basics. Not legal advice.",
      "pairs_with": [
        "mf-tpl-060",
        "mf-tpl-074",
        "mf-tpl-078",
        "mf-tpl-065"
      ],
      "trigger_phrases": [
        "NDF scoring started and outbound mix shifted to certain SKUs. Suspect untested o",
        "Need playbook: NDF Metric Gaming Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-074",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "RMA Test Credibility Playbook",
      "price": "$0.08",
      "teaser": "templates/rma-test-credibility/",
      "full": "templates/rma-test-credibility/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Support will not trust NDF scores if the back-end test is weak or run by a lower-status lane. Standardize the bench so the metric can stand.",
      "tags": [
        "field-patterns",
        "ndf",
        "rma",
        "support-ops"
      ],
      "use_when": "Support disputes NDF or return scores. Bench process is inconsistent. Phone vs shipping/RMA status fight. Need standard protocol and proof.",
      "not_for": "Generic job spine comms. Not a substitute for mf-tpl-060 return log basics. Not legal advice.",
      "pairs_with": [
        "mf-tpl-060",
        "mf-tpl-073",
        "mf-tpl-067",
        "mf-tpl-061"
      ],
      "trigger_phrases": [
        "Support disputes NDF or return scores. Bench process is inconsistent. Phone vs s",
        "Need playbook: RMA Test Credibility Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-075",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "Account NDF Healthcheck Playbook",
      "price": "$0.08",
      "teaser": "templates/account-ndf-healthcheck/",
      "full": "templates/account-ndf-healthcheck/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Turn internal NDF into customer-facing account health: share their return pattern, push back on part-swap theater, productize monthly report",
      "tags": [
        "field-patterns",
        "ndf",
        "enterprise",
        "support-ops"
      ],
      "use_when": "Large or VIP account burns parts with high NDF. Need pushback with their data. Want monthly healthcheck sales can carry.",
      "not_for": "Generic job spine comms. Not a substitute for mf-tpl-060 return log basics. Not legal advice.",
      "pairs_with": [
        "mf-tpl-060",
        "mf-tpl-067",
        "mf-tpl-001",
        "mf-tpl-020"
      ],
      "trigger_phrases": [
        "Large or VIP account burns parts with high NDF. Need pushback with their data. W",
        "Need playbook: Account NDF Healthcheck Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-076",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "Site Process Discovery Playbook",
      "price": "$0.08",
      "teaser": "templates/site-process-discovery/",
      "full": "templates/site-process-discovery/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Before the big data meeting, watch their process. Customer-caused failures often look like hardware until you see the floor.",
      "tags": [
        "field-patterns",
        "ndf",
        "site-visit",
        "root-cause"
      ],
      "use_when": "Account blames hardware at scale. Returns often NDF. Need site visit pattern: observe process before exec data meeting.",
      "not_for": "Generic job spine comms. Not a substitute for mf-tpl-060 return log basics. Not legal advice.",
      "pairs_with": [
        "mf-tpl-075",
        "mf-tpl-060",
        "mf-tpl-067",
        "mf-tpl-001"
      ],
      "trigger_phrases": [
        "Account blames hardware at scale. Returns often NDF. Need site visit pattern: ob",
        "Need playbook: Site Process Discovery Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-077",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "Defect Fix Shotgun Relapse Playbook",
      "price": "$0.08",
      "teaser": "templates/defect-fix-shotgun-relapse/",
      "full": "templates/defect-fix-shotgun-relapse/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "When NDF was right to scream: real bad commodity, weak test, vendor pressure. Fix the line, then stop the free-parts shotgun that follows.",
      "tags": [
        "field-patterns",
        "ndf",
        "vendor",
        "fru-kits"
      ],
      "use_when": "High NDF or floor revolt on one commodity. Suspect real defect and weak test. After a line fix, free-parts shotgun returns. Need kit or rules.",
      "not_for": "Generic job spine comms. Not a substitute for mf-tpl-060 return log basics. Not legal advice.",
      "pairs_with": [
        "mf-tpl-073",
        "mf-tpl-074",
        "mf-tpl-078",
        "mf-tpl-067"
      ],
      "trigger_phrases": [
        "High NDF or floor revolt on one commodity. Suspect real defect and weak test. Af",
        "Need playbook: Defect Fix Shotgun Relapse Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-078",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "Support Incentive Steering Playbook",
      "price": "$0.08",
      "teaser": "templates/support-incentive-steering/",
      "full": "templates/support-incentive-steering/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Support follows incentives. Design measures, free parts, kits, and scoreboards so the crowd moves toward real fixes, not games.",
      "tags": [
        "field-patterns",
        "incentives",
        "support-ops",
        "ndf"
      ],
      "use_when": "Launching or fixing support metrics (including NDF). Floor behavior keeps sliding. Need incentive design and game pre-mortem, not only more training.",
      "not_for": "Generic job spine comms. Not a substitute for mf-tpl-060 return log basics. Not legal advice.",
      "pairs_with": [
        "mf-tpl-073",
        "mf-tpl-077",
        "mf-tpl-060",
        "mf-tpl-061"
      ],
      "trigger_phrases": [
        "Launching or fixing support metrics (including NDF). Floor behavior keeps slidin",
        "Need playbook: Support Incentive Steering Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-079",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "Failure Cohort Truth Playbook",
      "price": "$0.08",
      "teaser": "templates/failure-cohort-truth/",
      "full": "templates/failure-cohort-truth/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "When sales panics on high fail rates, cut the data by age, ship date, and warranty left before the room explodes. Real fails on EOL gear are",
      "tags": [
        "field-patterns",
        "sales-support",
        "failure-analysis",
        "qbr-data"
      ],
      "use_when": "Sales or customer claims high hardware fail rate. Need cohort cuts by age/ship/warranty before product panic. Suspect cherry-picked data easing the customer.",
      "not_for": "Generic job spine. Not NDF program design (see 073-078). Not legal advice.",
      "pairs_with": [
        "mf-tpl-075",
        "mf-tpl-067",
        "mf-tpl-060",
        "mf-tpl-082"
      ],
      "trigger_phrases": [
        "Sales or customer claims high hardware fail rate. Need cohort cuts by age/ship/w",
        "Need playbook: Failure Cohort Truth Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-080",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "Solution Fit Handoff Playbook",
      "price": "$0.08",
      "teaser": "templates/solution-fit-handoff/",
      "full": "templates/solution-fit-handoff/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Sales and SE closed a solution that does not match the real use case. Oversold or undersold, marked fine. Support inherits the gap. Gate the",
      "tags": [
        "field-patterns",
        "sales-support",
        "handoff",
        "enterprise"
      ],
      "use_when": "Closed deal does not match real use case. Oversold or undersold. Support stuck fixing sales design. Need handoff fit gate and gap log.",
      "not_for": "Generic job spine. Not NDF program design (see 073-078). Not legal advice.",
      "pairs_with": [
        "mf-tpl-082",
        "mf-tpl-067",
        "mf-tpl-075",
        "mf-tpl-001"
      ],
      "trigger_phrases": [
        "Closed deal does not match real use case. Oversold or undersold. Support stuck f",
        "Need playbook: Solution Fit Handoff Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-081",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "Metrics That Matter QBR Playbook",
      "price": "$0.08",
      "teaser": "templates/metrics-that-matter-qbr/",
      "full": "templates/metrics-that-matter-qbr/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Customer QBR on back-end truth: did we answer, on time, did we fix (not shotgun parts), CSAT. Treat every account like a big fish. No sales ",
      "tags": [
        "field-patterns",
        "qbr",
        "csat",
        "support-ops"
      ],
      "use_when": "Customer QBR needs back-end metrics not sales fluff. Need answered/on-time/fixed/CSAT and fix-vs-shotgun. Same standard for non-logo accounts.",
      "not_for": "Generic job spine. Not NDF program design (see 073-078). Not legal advice.",
      "pairs_with": [
        "mf-tpl-061",
        "mf-tpl-075",
        "mf-tpl-060",
        "mf-tpl-005"
      ],
      "trigger_phrases": [
        "Customer QBR needs back-end metrics not sales fluff. Need answered/on-time/fixed",
        "Need playbook: Metrics That Matter QBR Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-082",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "Sales Support Incident Bridge Playbook",
      "price": "$0.08",
      "teaser": "templates/sales-support-incident-bridge/",
      "full": "templates/sales-support-incident-bridge/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Sales vs support under fire: panic rooms, blame after the save, weekly vendor bridges on logo pain. Roles, evidence, time-boxed bridges, no ",
      "tags": [
        "field-patterns",
        "sales-support",
        "escalation",
        "vendor"
      ],
      "use_when": "Sales and support in conflict on a hot account. Weekly vendor bridges with no end. Blame after a save. Need roles, evidence order, exit criteria.",
      "not_for": "Generic job spine. Not NDF program design (see 073-078). Not legal advice.",
      "pairs_with": [
        "mf-tpl-079",
        "mf-tpl-080",
        "mf-tpl-067",
        "mf-tpl-001"
      ],
      "trigger_phrases": [
        "Sales and support in conflict on a hot account. Weekly vendor bridges with no en",
        "Need playbook: Sales Support Incident Bridge Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-083",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "High-Volume Interview Redesign Playbook",
      "price": "$0.08",
      "teaser": "templates/high-volume-interview-redesign/",
      "full": "templates/high-volume-interview-redesign/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Hundreds of seats to fill. Roundtables stuck on call-center trivia. Flip to personality and learning signals first when the job can be taugh",
      "tags": [
        "field-patterns",
        "hiring",
        "call-center",
        "people-ops"
      ],
      "use_when": "High-volume support or call-center hiring stuck. Roundtables too long on teachable tech. Need personality/learning-first redesign and time-box.",
      "not_for": "Generic job spine. Not legal/HR compliance advice.",
      "pairs_with": [
        "mf-tpl-003",
        "mf-tpl-002",
        "mf-tpl-057",
        "mf-tpl-058"
      ],
      "trigger_phrases": [
        "High-volume support or call-center hiring stuck. Roundtables too long on teachab",
        "Need playbook: High-Volume Interview Redesign Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-084",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "Floor Morale Task Force Playbook",
      "price": "$0.08",
      "teaser": "templates/floor-morale-task-force/",
      "full": "templates/floor-morale-task-force/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Call center air is dead. Build a rep-owned morale task force: phone people from multiple teams, not leads. They invent the energy. Managemen",
      "tags": [
        "field-patterns",
        "morale",
        "call-center",
        "people-ops"
      ],
      "use_when": "Support or call-center floor morale is dead. Need rep-owned task force not HR theater. Multi-department ICs, weekly ideas, leadership sponsor.",
      "not_for": "Generic job spine. Not legal/HR compliance advice.",
      "pairs_with": [
        "mf-tpl-005",
        "mf-tpl-061",
        "mf-tpl-078",
        "mf-tpl-057"
      ],
      "trigger_phrases": [
        "Support or call-center floor morale is dead. Need rep-owned task force not HR th",
        "Need playbook: Floor Morale Task Force Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-085",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "PIE Weekly Bridge Playbook",
      "price": "$0.08",
      "teaser": "templates/pie-weekly-bridge/",
      "full": "templates/pie-weekly-bridge/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Problems, Incidents, Escalations. Weekly one-hour eng + support leadership forum. Kill toxic punt culture, real-time scenarios, prioritize e",
      "tags": [
        "field-patterns",
        "escalation",
        "engineering",
        "support-ops"
      ],
      "use_when": "Support and engineering in conflict. Escalations everywhere. Sales punts. Need weekly PIE-style problems/incidents/escalations forum with shared ownership.",
      "not_for": "Generic job spine. Not a substitute for incident command tooling alone.",
      "pairs_with": [
        "mf-tpl-067",
        "mf-tpl-082",
        "mf-tpl-080",
        "mf-tpl-001"
      ],
      "trigger_phrases": [
        "Support and engineering in conflict. Escalations everywhere. Sales punts. Need w",
        "Need playbook: PIE Weekly Bridge Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-086",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "Support On-Call Design Playbook",
      "price": "$0.08",
      "teaser": "templates/support-oncall-design/",
      "full": "templates/support-oncall-design/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "On-call that does not destroy the floor: pay that feels different, tiers that keep specialists off how-tos, locked path from after-hours int",
      "tags": [
        "field-patterns",
        "on-call",
        "support-ops",
        "tiers"
      ],
      "use_when": "Support on-call is broken or bitter. Need pay differential, tier protection for specialists, and locked after-hours escalation path. Not a collection of night war stories.",
      "not_for": "War-story anthology. Not legal wage advice; set pay with your counsel/HR.",
      "pairs_with": [
        "mf-tpl-032",
        "mf-tpl-062",
        "mf-tpl-085",
        "mf-tpl-078"
      ],
      "trigger_phrases": [
        "Support on-call is broken or bitter. Need pay differential, tier protection for ",
        "Need playbook: Support On-Call Design Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-087",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "Named Account Support Playbook",
      "price": "$0.08",
      "teaser": "templates/named-account-support/",
      "full": "templates/named-account-support/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Service-account style: a set of agents wholly tied to a set of accounts. Commercial pods; large segments can be one big named pool. Continui",
      "tags": [
        "field-patterns",
        "account-support",
        "structure",
        "support-ops"
      ],
      "use_when": "Need service-account or named-agent support for commercial or strategic accounts. Random queue failing relationship. Large segment as one dedicated pool.",
      "not_for": "Generic job spine only. Not HR legal advice on titles/pay.",
      "pairs_with": [
        "mf-tpl-062",
        "mf-tpl-075",
        "mf-tpl-081",
        "mf-tpl-020"
      ],
      "trigger_phrases": [
        "Need service-account or named-agent support for commercial or strategic accounts",
        "Need playbook: Named Account Support Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-088",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "Escalation Engineer Ladder Playbook",
      "price": "$0.08",
      "teaser": "templates/escalation-engineer-ladder/",
      "full": "templates/escalation-engineer-ladder/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Support Engineering path: support engineers into escalation engineers. Same family, feeding each other. Title and structure that counter sup",
      "tags": [
        "field-patterns",
        "career-ladder",
        "escalation",
        "support-ops"
      ],
      "use_when": "Need support engineer / escalation engineer career ladder. Customers demand next level. Support stigma. Teach path when they want the wrong thing.",
      "not_for": "Generic job spine only. Not HR legal advice on titles/pay.",
      "pairs_with": [
        "mf-tpl-085",
        "mf-tpl-086",
        "mf-tpl-083",
        "mf-tpl-087"
      ],
      "trigger_phrases": [
        "Need support engineer / escalation engineer career ladder. Customers demand next",
        "Need playbook: Escalation Engineer Ladder Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-089",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "Preventable Ticket Kill Playbook",
      "price": "$0.08",
      "teaser": "templates/preventable-ticket-kill/",
      "full": "templates/preventable-ticket-kill/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Solve problems before they become tickets. Factory welcome packs, default passwords in the box, human phone openers with location. Design ou",
      "tags": [
        "field-patterns",
        "deflection",
        "onboarding",
        "support-ops"
      ],
      "use_when": "High volume of preventable tickets (e.g. every ship calls for password). Need welcome pack or upstream kill. Phone open that signals real location/team.",
      "not_for": "Generic job spine only. Not HR legal advice on titles/pay.",
      "pairs_with": [
        "mf-tpl-020",
        "mf-tpl-027",
        "mf-tpl-065",
        "mf-tpl-081"
      ],
      "trigger_phrases": [
        "High volume of preventable tickets (e.g. every ship calls for password). Need we",
        "Need playbook: Preventable Ticket Kill Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-090",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "Support Knowledge Repo Playbook",
      "price": "$0.08",
      "teaser": "templates/support-knowledge-repo/",
      "full": "templates/support-knowledge-repo/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Task support engineers to build a how-to repo that solves problems before the call. Market it to sales and customers. Then govern it: origin",
      "tags": [
        "field-patterns",
        "knowledge-base",
        "integrity",
        "support-ops"
      ],
      "use_when": "Support engineers building how-to/knowledge repo. Pushing KB to sales/customers. Need contribution integrity gate after plagiarism risk. Trust but verify technical heroes.",
      "not_for": "Legal advice on IP disputes. Route serious claims to counsel.",
      "pairs_with": [
        "mf-tpl-089",
        "mf-tpl-088",
        "mf-tpl-059",
        "mf-tpl-067"
      ],
      "trigger_phrases": [
        "Support engineers building how-to/knowledge repo. Pushing KB to sales/customers.",
        "Need playbook: Support Knowledge Repo Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-091",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "Team Showcase Speaking Playbook",
      "price": "$0.08",
      "teaser": "templates/team-showcase-speaking/",
      "full": "templates/team-showcase-speaking/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Team builds short slide talks on a personal interest for the class. Dual win: know each other, and give introvert phone-nerds safe reps at p",
      "tags": [
        "field-patterns",
        "leadership",
        "speaking",
        "team"
      ],
      "use_when": "Support team strong on phone, weak in person. Need bond plus public speaking/slide reps. Leadership program not a roast or performance review.",
      "not_for": "Performance review system or mandatory toastmasters clone.",
      "pairs_with": [
        "mf-tpl-084",
        "mf-tpl-088",
        "mf-tpl-083",
        "mf-tpl-003"
      ],
      "trigger_phrases": [
        "Support team strong on phone, weak in person. Need bond plus public speaking/sli",
        "Need playbook: Team Showcase Speaking Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-092",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "Customer Learning Program Playbook",
      "price": "$0.08",
      "teaser": "templates/customer-learning-program/",
      "full": "templates/customer-learning-program/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Stand up a light customer university: teach product care and warranty path so problems die early. Pair with a warranty revamp customers unde",
      "tags": [
        "field-patterns",
        "warranty",
        "education",
        "support-ops"
      ],
      "use_when": "Need customer education university-style program and clearer warranty experience. Sales should hand materials. Basics still flooding support. No third-party brand slogans.",
      "not_for": "Legal warranty drafting without counsel. Not another company's brand program.",
      "pairs_with": [
        "mf-tpl-020",
        "mf-tpl-089",
        "mf-tpl-090",
        "mf-tpl-027"
      ],
      "trigger_phrases": [
        "Need customer education university-style program and clearer warranty experience",
        "Need playbook: Customer Learning Program Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-093",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "Control Panel Cabinet Playbook",
      "price": "$0.08",
      "teaser": "templates/control-panel-cabinet/",
      "full": "templates/control-panel-cabinet/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Weekly cabinet with the VP and their directs. Each owner covers their slice of the control panel. Shared picture, no silo theater. Sibling t",
      "tags": [
        "field-patterns",
        "leadership",
        "ops-rhythm",
        "exec"
      ],
      "use_when": "VP and directs need a weekly control panel / cabinet operating rhythm. Metrics and risks per owner. Not only fire drills. Sibling pattern to PIE for leadership layer.",
      "not_for": "Generic all-hands. Not a substitute for board governance.",
      "pairs_with": [
        "mf-tpl-005",
        "mf-tpl-085",
        "mf-tpl-061",
        "mf-tpl-081"
      ],
      "trigger_phrases": [
        "VP and directs need a weekly control panel / cabinet operating rhythm. Metrics a",
        "Need playbook: Control Panel Cabinet Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-094",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "Vendor Fleet Remediation Playbook",
      "price": "$0.08",
      "teaser": "templates/vendor-fleet-remediation/",
      "full": "templates/vendor-fleet-remediation/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Site-wide or fleet-wide bad batch (e.g. memory). Deep test with vendor, prove the population, then force manufacturer to fund on-site labor ",
      "tags": [
        "field-patterns",
        "vendor",
        "fleet",
        "remediation"
      ],
      "use_when": "Fleet or data-center scale failures. Bad batch suspected. Need deep test with vendor then full remediation at manufacturer expense with on-site joint install and validation.",
      "not_for": "Single-unit RMA. Not legal contract drafting with vendors.",
      "pairs_with": [
        "mf-tpl-077",
        "mf-tpl-079",
        "mf-tpl-067",
        "mf-tpl-085"
      ],
      "trigger_phrases": [
        "Fleet or data-center scale failures. Bad batch suspected. Need deep test with ve",
        "Need playbook: Vendor Fleet Remediation Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-099",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "Service Operations Desk Playbook",
      "price": "$0.08",
      "teaser": "templates/service-operations-desk/",
      "full": "templates/service-operations-desk/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "SOD: execution arm of post-sales. Traditional RMA/shipping/returns group so support engineers stop shipping parts and chase paperwork. Suppo",
      "tags": [
        "field-patterns",
        "rma",
        "operations",
        "support-ops"
      ],
      "use_when": "Support engineers shipping parts and handling returns instead of solving. Need SOD / RMA execution arm so support focuses on resolution.",
      "not_for": "Generic job spine. Not legal tax advice on write-offs.",
      "pairs_with": [
        "mf-tpl-074",
        "mf-tpl-088",
        "mf-tpl-101",
        "mf-tpl-065"
      ],
      "trigger_phrases": [
        "Support engineers shipping parts and handling returns instead of solving. Need S",
        "Need playbook: Service Operations Desk Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-100",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "Services Revenue Center Playbook",
      "price": "$0.08",
      "teaser": "templates/services-revenue-center/",
      "full": "templates/services-revenue-center/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Graduate support from pure cost center to services revenue path: warranty and license renewals, billable work, enforcement, portal value. Fo",
      "tags": [
        "field-patterns",
        "revenue",
        "warranty",
        "services"
      ],
      "use_when": "Support is only a cost center. Need path to services revenue: renewals, billable work, warranty enforcement after process foundation exists.",
      "not_for": "Generic job spine. Not legal tax advice on write-offs.",
      "pairs_with": [
        "mf-tpl-065",
        "mf-tpl-092",
        "mf-tpl-087",
        "mf-tpl-099"
      ],
      "trigger_phrases": [
        "Support is only a cost center. Need path to services revenue: renewals, billable",
        "Need playbook: Services Revenue Center Playbook"
      ],
      "agent_signal_version": "1.2"
    },
    {
      "id": "mf-tpl-101",
      "section": "templates",
      "lane": "field-patterns",
      "pack_type": "field-pattern",
      "title": "Parts Recovery Program Playbook",
      "price": "$0.08",
      "teaser": "templates/parts-recovery-program/",
      "full": "templates/parts-recovery-program/full/",
      "primary": "playbook.json",
      "apply": "branch → template → log",
      "description": "Stop writing off unreturned parts as cost of doing business. Program for collection, return discipline, and recovered value that can fund op",
      "tags": [
        "field-patterns",
        "rma",
        "parts",
        "recovery"
      ],
      "use_when": "Shipped parts not returned and written off. Need recovery program with aging, chase ladder, and recovered value reporting. Often pairs with SOD.",
      "not_for": "Generic job spine. Not legal tax advice on write-offs.",
      "pairs_with": [
        "mf-tpl-099",
        "mf-tpl-074",
        "mf-tpl-065",
        "mf-tpl-100"
      ],
      "trigger_phrases": [
        "Shipped parts not returned and written off. Need recovery program with aging, ch",
        "Need playbook: Parts Recovery Program Playbook"
      ],
      "agent_signal_version": "1.2"
    }
  ],
  "agent_signal_schema": "1.2",
  "pack_lanes": {
    "job_spine": "Small-business job lifecycle templates and tools",
    "support_backbone": "Support ops metrics, queues, forecast (061-067)",
    "field_patterns": "Field patterns: people ops, returns, NDF incentives, sales/support, QBR metrics, workplace exit. Not legal advice.",
    "workplace_exit": "Severance and benefits documentation patterns (068-072). Bonus aisle.",
    "ndf_cluster": "NDF and support incentive patterns (073-078). Complements 060.",
    "sales_support_qbr": "Sales/support bridge and Metrics That Matter QBR (079-082)."
  }
}
