[
  {
    "id": "source-quality-dimensions-check",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "dimensions-check",
    "taskLabel": "Dimensions check",
    "label": "Source quality: Dimensions check",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Record listed dimensions and whether the source can support dimensional reasoning."
  },
  {
    "id": "source-quality-weight-check",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "weight-check",
    "taskLabel": "Weight check",
    "label": "Source quality: Weight check",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Record source weight when present and keep missing values explicit."
  },
  {
    "id": "source-quality-pack-count-normalization",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "pack-count-normalization",
    "taskLabel": "Pack-count normalization",
    "label": "Source quality: Pack-count normalization",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Normalize case, roll, bundle, or pack quantity for like-for-like comparison."
  },
  {
    "id": "source-quality-product-url-canonical",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "product-url-canonical",
    "taskLabel": "Canonical product URL",
    "label": "Source quality: Canonical product URL",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Keep Packrift.com as the canonical commerce page for the SKU."
  },
  {
    "id": "source-quality-source-status-readback",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "source-status-readback",
    "taskLabel": "Source status readback",
    "label": "Source quality: Source status readback",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Expose catalog status, availability, and image status from the source graph."
  },
  {
    "id": "source-quality-family-route",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "family-route",
    "taskLabel": "Family route",
    "label": "Source quality: Family route",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Route the SKU to the correct packaging family before comparing or substituting."
  },
  {
    "id": "source-quality-material-review",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "material-review",
    "taskLabel": "Material review",
    "label": "Source quality: Material review",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Use only listed product type and family signals unless material is explicitly present."
  },
  {
    "id": "source-quality-color-selection",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "color-selection",
    "taskLabel": "Color or finish check",
    "label": "Source quality: Color or finish check",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Treat color, finish, or presentation claims as missing unless present in the source title or product type."
  },
  {
    "id": "source-quality-closure-review",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "closure-review",
    "taskLabel": "Closure or assembly check",
    "label": "Source quality: Closure or assembly check",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Flag closure and assembly as a human-verification field unless the source title states it."
  },
  {
    "id": "source-quality-inventory-snapshot",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "inventory-snapshot",
    "taskLabel": "Inventory snapshot",
    "label": "Source quality: Inventory snapshot",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Show the source inventory snapshot while deferring live availability to Packrift.com."
  },
  {
    "id": "source-quality-price-snapshot",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "price-snapshot",
    "taskLabel": "Price snapshot",
    "label": "Source quality: Price snapshot",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Show the source price snapshot while deferring live price to Packrift.com."
  },
  {
    "id": "source-quality-unit-economics",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "unit-economics",
    "taskLabel": "Unit economics",
    "label": "Source quality: Unit economics",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Calculate simple unit hints only when price and quantity are present."
  },
  {
    "id": "source-quality-quote-readiness",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "quote-readiness",
    "taskLabel": "Bulk quote readiness",
    "label": "Source quality: Bulk quote readiness",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. List the fields a buyer should verify before requesting a Packrift quote."
  },
  {
    "id": "source-quality-substitute-approval",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "substitute-approval",
    "taskLabel": "Substitute approval",
    "label": "Source quality: Substitute approval",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. State the fields that must match before a substitute SKU is considered."
  },
  {
    "id": "source-quality-receiving-inspection",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "receiving-inspection",
    "taskLabel": "Receiving inspection",
    "label": "Source quality: Receiving inspection",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Support receiving checks against SKU, title, dimensions, and product URL."
  },
  {
    "id": "source-quality-bin-slotting",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "bin-slotting",
    "taskLabel": "Bin slotting",
    "label": "Source quality: Bin slotting",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Expose dimensions and family for storage or bin-slotting review."
  },
  {
    "id": "source-quality-pick-label",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "pick-label",
    "taskLabel": "Pick label",
    "label": "Source quality: Pick label",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Build a picker-facing SKU/title/family label record."
  },
  {
    "id": "source-quality-replenishment",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "replenishment",
    "taskLabel": "Replenishment",
    "label": "Source quality: Replenishment",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Keep reorder planning tied to the SKU and canonical Packrift product page."
  },
  {
    "id": "source-quality-pallet-storage",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "pallet-storage",
    "taskLabel": "Pallet storage prompt",
    "label": "Source quality: Pallet storage prompt",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Frame pallet or bulk storage as a prompt, not an inferred pallet count."
  },
  {
    "id": "source-quality-cube-utilization",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "cube-utilization",
    "taskLabel": "Cube utilization",
    "label": "Source quality: Cube utilization",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Calculate cube only when three dimensions are present."
  },
  {
    "id": "source-quality-dim-weight",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "dim-weight",
    "taskLabel": "Dimensional weight",
    "label": "Source quality: Dimensional weight",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Calculate DIM planning values only when three dimensions are present."
  },
  {
    "id": "source-quality-length-girth",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "length-girth",
    "taskLabel": "Length plus girth",
    "label": "Source quality: Length plus girth",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Calculate length-plus-girth only when three dimensions are present."
  },
  {
    "id": "source-quality-void-fill",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "void-fill",
    "taskLabel": "Void-fill review",
    "label": "Source quality: Void-fill review",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Prompt a void-fill review without guessing contents or dunnage."
  },
  {
    "id": "source-quality-damage-risk",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "damage-risk",
    "taskLabel": "Damage-risk screen",
    "label": "Source quality: Damage-risk screen",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Use family, weight, and dimensions as a risk-screen prompt only."
  },
  {
    "id": "source-quality-returns-repack",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "returns-repack",
    "taskLabel": "Returns repack",
    "label": "Source quality: Returns repack",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Frame whether the SKU may be useful in returns or replacement workflows."
  },
  {
    "id": "source-quality-marketplace-prep",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "marketplace-prep",
    "taskLabel": "Marketplace prep",
    "label": "Source quality: Marketplace prep",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Route marketplace, FBA, labeling, or outbound-prep checks to source facts."
  },
  {
    "id": "source-quality-buyer-comparison",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "buyer-comparison",
    "taskLabel": "Buyer comparison",
    "label": "Source quality: Buyer comparison",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Prepare same-family comparison fields without naming an unsupported winner."
  },
  {
    "id": "source-quality-ai-retrieval",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "ai-retrieval",
    "taskLabel": "AI retrieval",
    "label": "Source quality: AI retrieval",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Create an exact-match retrieval record for agents and search systems."
  },
  {
    "id": "source-quality-implementation-handoff",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "implementation-handoff",
    "taskLabel": "Implementation handoff",
    "label": "Source quality: Implementation handoff",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Bundle SKU, source fields, caveats, and canonical URL for a human handoff."
  },
  {
    "id": "source-quality-qa-exception",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "qa-exception",
    "taskLabel": "QA exception",
    "label": "Source quality: QA exception",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. List missing or weak source facts instead of filling gaps."
  },
  {
    "id": "source-quality-live-commerce-deferral",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "live-commerce-deferral",
    "taskLabel": "Live commerce deferral",
    "label": "Source quality: Live commerce deferral",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. State that current price, inventory, checkout, freight, and approval live on Packrift.com."
  },
  {
    "id": "source-quality-source-hash-record",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "source-hash-record",
    "taskLabel": "Source hash record",
    "label": "Source quality: Source hash record",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Keep the product record traceable to the current source graph row."
  },
  {
    "id": "source-quality-variant-id-check",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "variant-id-check",
    "taskLabel": "Variant ID check",
    "label": "Source quality: Variant ID check",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Expose Shopify product and variant IDs for deterministic source matching."
  },
  {
    "id": "source-quality-offer-id-check",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "offer-id-check",
    "taskLabel": "Offer ID check",
    "label": "Source quality: Offer ID check",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Expose Merchant Center offer ID where the source graph provides it."
  },
  {
    "id": "source-quality-image-status-check",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "image-status-check",
    "taskLabel": "Image status check",
    "label": "Source quality: Image status check",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Route image-quality or missing-image issues without inventing visual facts."
  },
  {
    "id": "source-quality-availability-caveat",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "availability-caveat",
    "taskLabel": "Availability caveat",
    "label": "Source quality: Availability caveat",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Keep source availability separate from live checkout availability."
  },
  {
    "id": "source-quality-dimension-conflict-check",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "dimension-conflict-check",
    "taskLabel": "Dimension conflict check",
    "label": "Source quality: Dimension conflict check",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Expose dimension status and require human review for conflicts."
  },
  {
    "id": "source-quality-family-hub-linking",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "family-hub-linking",
    "taskLabel": "Family hub linking",
    "label": "Source quality: Family hub linking",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Tie the product to its family index for resource-graph navigation."
  },
  {
    "id": "source-quality-tool-router",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "tool-router",
    "taskLabel": "Tool router",
    "label": "Source quality: Tool router",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Point the SKU toward the correct Packrift tool or checker without claiming tool output."
  },
  {
    "id": "source-quality-agent-prompt-context",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "agent-prompt-context",
    "taskLabel": "Agent prompt context",
    "label": "Source quality: Agent prompt context",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Create a concise prompt context for AI agents using source fields only."
  },
  {
    "id": "source-quality-procurement-note",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "procurement-note",
    "taskLabel": "Procurement note",
    "label": "Source quality: Procurement note",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Create a buyer note grounded in source facts and caveats."
  },
  {
    "id": "source-quality-operations-note",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "operations-note",
    "taskLabel": "Operations note",
    "label": "Source quality: Operations note",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Create an ops note grounded in dimensions, weight, family, and missing fields."
  },
  {
    "id": "source-quality-support-note",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "support-note",
    "taskLabel": "Support note",
    "label": "Source quality: Support note",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Create a support note that sends live commerce questions back to Packrift.com."
  },
  {
    "id": "source-quality-sales-handoff",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "sales-handoff",
    "taskLabel": "Sales handoff",
    "label": "Source quality: Sales handoff",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Summarize the SKU fields a sales or quote workflow needs before follow-up."
  },
  {
    "id": "source-quality-bundle-compatibility",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "bundle-compatibility",
    "taskLabel": "Bundle compatibility",
    "label": "Source quality: Bundle compatibility",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Flag bundle or case-count reasoning as source-dependent."
  },
  {
    "id": "source-quality-carton-selection-prompt",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "carton-selection-prompt",
    "taskLabel": "Carton selection prompt",
    "label": "Source quality: Carton selection prompt",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Frame carton selection as a prompt requiring current measurements."
  },
  {
    "id": "source-quality-carrier-rule-prompt",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "carrier-rule-prompt",
    "taskLabel": "Carrier rule prompt",
    "label": "Source quality: Carrier rule prompt",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Defer carrier limits and surcharges to current carrier rules."
  },
  {
    "id": "source-quality-handling-label-prompt",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "handling-label-prompt",
    "taskLabel": "Handling label prompt",
    "label": "Source quality: Handling label prompt",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Route handling-label questions to source facts and human review."
  },
  {
    "id": "source-quality-storage-temperature-prompt",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "storage-temperature-prompt",
    "taskLabel": "Storage environment prompt",
    "label": "Source quality: Storage environment prompt",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Avoid temperature or environment assumptions unless source-backed."
  },
  {
    "id": "source-quality-printability-prompt",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "printability-prompt",
    "taskLabel": "Printability prompt",
    "label": "Source quality: Printability prompt",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. For label-like rows, route printability to source and printer verification."
  },
  {
    "id": "source-quality-adhesive-prompt",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "adhesive-prompt",
    "taskLabel": "Adhesive prompt",
    "label": "Source quality: Adhesive prompt",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. For adhesive-like rows, keep adhesive fit as a verification task."
  },
  {
    "id": "source-quality-film-gauge-prompt",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "film-gauge-prompt",
    "taskLabel": "Film gauge prompt",
    "label": "Source quality: Film gauge prompt",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. For film-like rows, keep gauge and puncture assumptions out unless sourced."
  },
  {
    "id": "source-quality-board-grade-prompt",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "board-grade-prompt",
    "taskLabel": "Board grade prompt",
    "label": "Source quality: Board grade prompt",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. For box-like rows, keep board grade and strength assumptions source-gated."
  },
  {
    "id": "source-quality-edge-protection-prompt",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "edge-protection-prompt",
    "taskLabel": "Edge protection prompt",
    "label": "Source quality: Edge protection prompt",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Frame edge-protection needs as a workflow prompt, not a claim."
  },
  {
    "id": "source-quality-returns-policy-caveat",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "returns-policy-caveat",
    "taskLabel": "Returns policy caveat",
    "label": "Source quality: Returns policy caveat",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Keep returns-policy interpretation outside this static resource graph."
  },
  {
    "id": "source-quality-purchase-intent-map",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "purchase-intent-map",
    "taskLabel": "Purchase intent map",
    "label": "Source quality: Purchase intent map",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Map product facts to buyer intent without pretending to know the buyer."
  },
  {
    "id": "source-quality-query-intent-map",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "query-intent-map",
    "taskLabel": "Query intent map",
    "label": "Source quality: Query intent map",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Create an exact-match query context from SKU, title, family, and dimensions."
  },
  {
    "id": "source-quality-indexability-record",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "indexability-record",
    "taskLabel": "Indexability record",
    "label": "Source quality: Indexability record",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. Record why the row is allowed into the owned resource sitemap."
  },
  {
    "id": "source-quality-ledger-accounting",
    "phaseId": "source-quality",
    "phaseLabel": "Source quality",
    "taskId": "ledger-accounting",
    "taskLabel": "Ledger accounting",
    "label": "Source quality: Ledger accounting",
    "intent": "Expose the product facts and weak fields before any buyer, agent, or crawler treats the record as complete. State how this owned mention should be counted in the Packrift ledger."
  },
  {
    "id": "procurement-dimensions-check",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "dimensions-check",
    "taskLabel": "Dimensions check",
    "label": "Procurement: Dimensions check",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Record listed dimensions and whether the source can support dimensional reasoning."
  },
  {
    "id": "procurement-weight-check",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "weight-check",
    "taskLabel": "Weight check",
    "label": "Procurement: Weight check",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Record source weight when present and keep missing values explicit."
  },
  {
    "id": "procurement-pack-count-normalization",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "pack-count-normalization",
    "taskLabel": "Pack-count normalization",
    "label": "Procurement: Pack-count normalization",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Normalize case, roll, bundle, or pack quantity for like-for-like comparison."
  },
  {
    "id": "procurement-product-url-canonical",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "product-url-canonical",
    "taskLabel": "Canonical product URL",
    "label": "Procurement: Canonical product URL",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Keep Packrift.com as the canonical commerce page for the SKU."
  },
  {
    "id": "procurement-source-status-readback",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "source-status-readback",
    "taskLabel": "Source status readback",
    "label": "Procurement: Source status readback",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Expose catalog status, availability, and image status from the source graph."
  },
  {
    "id": "procurement-family-route",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "family-route",
    "taskLabel": "Family route",
    "label": "Procurement: Family route",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Route the SKU to the correct packaging family before comparing or substituting."
  },
  {
    "id": "procurement-material-review",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "material-review",
    "taskLabel": "Material review",
    "label": "Procurement: Material review",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Use only listed product type and family signals unless material is explicitly present."
  },
  {
    "id": "procurement-color-selection",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "color-selection",
    "taskLabel": "Color or finish check",
    "label": "Procurement: Color or finish check",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Treat color, finish, or presentation claims as missing unless present in the source title or product type."
  },
  {
    "id": "procurement-closure-review",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "closure-review",
    "taskLabel": "Closure or assembly check",
    "label": "Procurement: Closure or assembly check",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Flag closure and assembly as a human-verification field unless the source title states it."
  },
  {
    "id": "procurement-inventory-snapshot",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "inventory-snapshot",
    "taskLabel": "Inventory snapshot",
    "label": "Procurement: Inventory snapshot",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Show the source inventory snapshot while deferring live availability to Packrift.com."
  },
  {
    "id": "procurement-price-snapshot",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "price-snapshot",
    "taskLabel": "Price snapshot",
    "label": "Procurement: Price snapshot",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Show the source price snapshot while deferring live price to Packrift.com."
  },
  {
    "id": "procurement-unit-economics",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "unit-economics",
    "taskLabel": "Unit economics",
    "label": "Procurement: Unit economics",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Calculate simple unit hints only when price and quantity are present."
  },
  {
    "id": "procurement-quote-readiness",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "quote-readiness",
    "taskLabel": "Bulk quote readiness",
    "label": "Procurement: Bulk quote readiness",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. List the fields a buyer should verify before requesting a Packrift quote."
  },
  {
    "id": "procurement-substitute-approval",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "substitute-approval",
    "taskLabel": "Substitute approval",
    "label": "Procurement: Substitute approval",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. State the fields that must match before a substitute SKU is considered."
  },
  {
    "id": "procurement-receiving-inspection",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "receiving-inspection",
    "taskLabel": "Receiving inspection",
    "label": "Procurement: Receiving inspection",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Support receiving checks against SKU, title, dimensions, and product URL."
  },
  {
    "id": "procurement-bin-slotting",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "bin-slotting",
    "taskLabel": "Bin slotting",
    "label": "Procurement: Bin slotting",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Expose dimensions and family for storage or bin-slotting review."
  },
  {
    "id": "procurement-pick-label",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "pick-label",
    "taskLabel": "Pick label",
    "label": "Procurement: Pick label",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Build a picker-facing SKU/title/family label record."
  },
  {
    "id": "procurement-replenishment",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "replenishment",
    "taskLabel": "Replenishment",
    "label": "Procurement: Replenishment",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Keep reorder planning tied to the SKU and canonical Packrift product page."
  },
  {
    "id": "procurement-pallet-storage",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "pallet-storage",
    "taskLabel": "Pallet storage prompt",
    "label": "Procurement: Pallet storage prompt",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Frame pallet or bulk storage as a prompt, not an inferred pallet count."
  },
  {
    "id": "procurement-cube-utilization",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "cube-utilization",
    "taskLabel": "Cube utilization",
    "label": "Procurement: Cube utilization",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Calculate cube only when three dimensions are present."
  },
  {
    "id": "procurement-dim-weight",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "dim-weight",
    "taskLabel": "Dimensional weight",
    "label": "Procurement: Dimensional weight",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Calculate DIM planning values only when three dimensions are present."
  },
  {
    "id": "procurement-length-girth",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "length-girth",
    "taskLabel": "Length plus girth",
    "label": "Procurement: Length plus girth",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Calculate length-plus-girth only when three dimensions are present."
  },
  {
    "id": "procurement-void-fill",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "void-fill",
    "taskLabel": "Void-fill review",
    "label": "Procurement: Void-fill review",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Prompt a void-fill review without guessing contents or dunnage."
  },
  {
    "id": "procurement-damage-risk",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "damage-risk",
    "taskLabel": "Damage-risk screen",
    "label": "Procurement: Damage-risk screen",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Use family, weight, and dimensions as a risk-screen prompt only."
  },
  {
    "id": "procurement-returns-repack",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "returns-repack",
    "taskLabel": "Returns repack",
    "label": "Procurement: Returns repack",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Frame whether the SKU may be useful in returns or replacement workflows."
  },
  {
    "id": "procurement-marketplace-prep",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "marketplace-prep",
    "taskLabel": "Marketplace prep",
    "label": "Procurement: Marketplace prep",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Route marketplace, FBA, labeling, or outbound-prep checks to source facts."
  },
  {
    "id": "procurement-buyer-comparison",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "buyer-comparison",
    "taskLabel": "Buyer comparison",
    "label": "Procurement: Buyer comparison",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Prepare same-family comparison fields without naming an unsupported winner."
  },
  {
    "id": "procurement-ai-retrieval",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "ai-retrieval",
    "taskLabel": "AI retrieval",
    "label": "Procurement: AI retrieval",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Create an exact-match retrieval record for agents and search systems."
  },
  {
    "id": "procurement-implementation-handoff",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "implementation-handoff",
    "taskLabel": "Implementation handoff",
    "label": "Procurement: Implementation handoff",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Bundle SKU, source fields, caveats, and canonical URL for a human handoff."
  },
  {
    "id": "procurement-qa-exception",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "qa-exception",
    "taskLabel": "QA exception",
    "label": "Procurement: QA exception",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. List missing or weak source facts instead of filling gaps."
  },
  {
    "id": "procurement-live-commerce-deferral",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "live-commerce-deferral",
    "taskLabel": "Live commerce deferral",
    "label": "Procurement: Live commerce deferral",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. State that current price, inventory, checkout, freight, and approval live on Packrift.com."
  },
  {
    "id": "procurement-source-hash-record",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "source-hash-record",
    "taskLabel": "Source hash record",
    "label": "Procurement: Source hash record",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Keep the product record traceable to the current source graph row."
  },
  {
    "id": "procurement-variant-id-check",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "variant-id-check",
    "taskLabel": "Variant ID check",
    "label": "Procurement: Variant ID check",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Expose Shopify product and variant IDs for deterministic source matching."
  },
  {
    "id": "procurement-offer-id-check",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "offer-id-check",
    "taskLabel": "Offer ID check",
    "label": "Procurement: Offer ID check",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Expose Merchant Center offer ID where the source graph provides it."
  },
  {
    "id": "procurement-image-status-check",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "image-status-check",
    "taskLabel": "Image status check",
    "label": "Procurement: Image status check",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Route image-quality or missing-image issues without inventing visual facts."
  },
  {
    "id": "procurement-availability-caveat",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "availability-caveat",
    "taskLabel": "Availability caveat",
    "label": "Procurement: Availability caveat",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Keep source availability separate from live checkout availability."
  },
  {
    "id": "procurement-dimension-conflict-check",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "dimension-conflict-check",
    "taskLabel": "Dimension conflict check",
    "label": "Procurement: Dimension conflict check",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Expose dimension status and require human review for conflicts."
  },
  {
    "id": "procurement-family-hub-linking",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "family-hub-linking",
    "taskLabel": "Family hub linking",
    "label": "Procurement: Family hub linking",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Tie the product to its family index for resource-graph navigation."
  },
  {
    "id": "procurement-tool-router",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "tool-router",
    "taskLabel": "Tool router",
    "label": "Procurement: Tool router",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Point the SKU toward the correct Packrift tool or checker without claiming tool output."
  },
  {
    "id": "procurement-agent-prompt-context",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "agent-prompt-context",
    "taskLabel": "Agent prompt context",
    "label": "Procurement: Agent prompt context",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Create a concise prompt context for AI agents using source fields only."
  },
  {
    "id": "procurement-procurement-note",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "procurement-note",
    "taskLabel": "Procurement note",
    "label": "Procurement: Procurement note",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Create a buyer note grounded in source facts and caveats."
  },
  {
    "id": "procurement-operations-note",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "operations-note",
    "taskLabel": "Operations note",
    "label": "Procurement: Operations note",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Create an ops note grounded in dimensions, weight, family, and missing fields."
  },
  {
    "id": "procurement-support-note",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "support-note",
    "taskLabel": "Support note",
    "label": "Procurement: Support note",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Create a support note that sends live commerce questions back to Packrift.com."
  },
  {
    "id": "procurement-sales-handoff",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "sales-handoff",
    "taskLabel": "Sales handoff",
    "label": "Procurement: Sales handoff",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Summarize the SKU fields a sales or quote workflow needs before follow-up."
  },
  {
    "id": "procurement-bundle-compatibility",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "bundle-compatibility",
    "taskLabel": "Bundle compatibility",
    "label": "Procurement: Bundle compatibility",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Flag bundle or case-count reasoning as source-dependent."
  },
  {
    "id": "procurement-carton-selection-prompt",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "carton-selection-prompt",
    "taskLabel": "Carton selection prompt",
    "label": "Procurement: Carton selection prompt",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Frame carton selection as a prompt requiring current measurements."
  },
  {
    "id": "procurement-carrier-rule-prompt",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "carrier-rule-prompt",
    "taskLabel": "Carrier rule prompt",
    "label": "Procurement: Carrier rule prompt",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Defer carrier limits and surcharges to current carrier rules."
  },
  {
    "id": "procurement-handling-label-prompt",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "handling-label-prompt",
    "taskLabel": "Handling label prompt",
    "label": "Procurement: Handling label prompt",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Route handling-label questions to source facts and human review."
  },
  {
    "id": "procurement-storage-temperature-prompt",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "storage-temperature-prompt",
    "taskLabel": "Storage environment prompt",
    "label": "Procurement: Storage environment prompt",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Avoid temperature or environment assumptions unless source-backed."
  },
  {
    "id": "procurement-printability-prompt",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "printability-prompt",
    "taskLabel": "Printability prompt",
    "label": "Procurement: Printability prompt",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. For label-like rows, route printability to source and printer verification."
  },
  {
    "id": "procurement-adhesive-prompt",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "adhesive-prompt",
    "taskLabel": "Adhesive prompt",
    "label": "Procurement: Adhesive prompt",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. For adhesive-like rows, keep adhesive fit as a verification task."
  },
  {
    "id": "procurement-film-gauge-prompt",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "film-gauge-prompt",
    "taskLabel": "Film gauge prompt",
    "label": "Procurement: Film gauge prompt",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. For film-like rows, keep gauge and puncture assumptions out unless sourced."
  },
  {
    "id": "procurement-board-grade-prompt",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "board-grade-prompt",
    "taskLabel": "Board grade prompt",
    "label": "Procurement: Board grade prompt",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. For box-like rows, keep board grade and strength assumptions source-gated."
  },
  {
    "id": "procurement-edge-protection-prompt",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "edge-protection-prompt",
    "taskLabel": "Edge protection prompt",
    "label": "Procurement: Edge protection prompt",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Frame edge-protection needs as a workflow prompt, not a claim."
  },
  {
    "id": "procurement-returns-policy-caveat",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "returns-policy-caveat",
    "taskLabel": "Returns policy caveat",
    "label": "Procurement: Returns policy caveat",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Keep returns-policy interpretation outside this static resource graph."
  },
  {
    "id": "procurement-purchase-intent-map",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "purchase-intent-map",
    "taskLabel": "Purchase intent map",
    "label": "Procurement: Purchase intent map",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Map product facts to buyer intent without pretending to know the buyer."
  },
  {
    "id": "procurement-query-intent-map",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "query-intent-map",
    "taskLabel": "Query intent map",
    "label": "Procurement: Query intent map",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Create an exact-match query context from SKU, title, family, and dimensions."
  },
  {
    "id": "procurement-indexability-record",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "indexability-record",
    "taskLabel": "Indexability record",
    "label": "Procurement: Indexability record",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. Record why the row is allowed into the owned resource sitemap."
  },
  {
    "id": "procurement-ledger-accounting",
    "phaseId": "procurement",
    "phaseLabel": "Procurement",
    "taskId": "ledger-accounting",
    "taskLabel": "Ledger accounting",
    "label": "Procurement: Ledger accounting",
    "intent": "Turn Packrift product records into purchasing, quote, substitution, and comparison checks. State how this owned mention should be counted in the Packrift ledger."
  },
  {
    "id": "warehouse-dimensions-check",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "dimensions-check",
    "taskLabel": "Dimensions check",
    "label": "Warehouse: Dimensions check",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Record listed dimensions and whether the source can support dimensional reasoning."
  },
  {
    "id": "warehouse-weight-check",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "weight-check",
    "taskLabel": "Weight check",
    "label": "Warehouse: Weight check",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Record source weight when present and keep missing values explicit."
  },
  {
    "id": "warehouse-pack-count-normalization",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "pack-count-normalization",
    "taskLabel": "Pack-count normalization",
    "label": "Warehouse: Pack-count normalization",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Normalize case, roll, bundle, or pack quantity for like-for-like comparison."
  },
  {
    "id": "warehouse-product-url-canonical",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "product-url-canonical",
    "taskLabel": "Canonical product URL",
    "label": "Warehouse: Canonical product URL",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Keep Packrift.com as the canonical commerce page for the SKU."
  },
  {
    "id": "warehouse-source-status-readback",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "source-status-readback",
    "taskLabel": "Source status readback",
    "label": "Warehouse: Source status readback",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Expose catalog status, availability, and image status from the source graph."
  },
  {
    "id": "warehouse-family-route",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "family-route",
    "taskLabel": "Family route",
    "label": "Warehouse: Family route",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Route the SKU to the correct packaging family before comparing or substituting."
  },
  {
    "id": "warehouse-material-review",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "material-review",
    "taskLabel": "Material review",
    "label": "Warehouse: Material review",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Use only listed product type and family signals unless material is explicitly present."
  },
  {
    "id": "warehouse-color-selection",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "color-selection",
    "taskLabel": "Color or finish check",
    "label": "Warehouse: Color or finish check",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Treat color, finish, or presentation claims as missing unless present in the source title or product type."
  },
  {
    "id": "warehouse-closure-review",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "closure-review",
    "taskLabel": "Closure or assembly check",
    "label": "Warehouse: Closure or assembly check",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Flag closure and assembly as a human-verification field unless the source title states it."
  },
  {
    "id": "warehouse-inventory-snapshot",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "inventory-snapshot",
    "taskLabel": "Inventory snapshot",
    "label": "Warehouse: Inventory snapshot",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Show the source inventory snapshot while deferring live availability to Packrift.com."
  },
  {
    "id": "warehouse-price-snapshot",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "price-snapshot",
    "taskLabel": "Price snapshot",
    "label": "Warehouse: Price snapshot",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Show the source price snapshot while deferring live price to Packrift.com."
  },
  {
    "id": "warehouse-unit-economics",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "unit-economics",
    "taskLabel": "Unit economics",
    "label": "Warehouse: Unit economics",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Calculate simple unit hints only when price and quantity are present."
  },
  {
    "id": "warehouse-quote-readiness",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "quote-readiness",
    "taskLabel": "Bulk quote readiness",
    "label": "Warehouse: Bulk quote readiness",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. List the fields a buyer should verify before requesting a Packrift quote."
  },
  {
    "id": "warehouse-substitute-approval",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "substitute-approval",
    "taskLabel": "Substitute approval",
    "label": "Warehouse: Substitute approval",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. State the fields that must match before a substitute SKU is considered."
  },
  {
    "id": "warehouse-receiving-inspection",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "receiving-inspection",
    "taskLabel": "Receiving inspection",
    "label": "Warehouse: Receiving inspection",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Support receiving checks against SKU, title, dimensions, and product URL."
  },
  {
    "id": "warehouse-bin-slotting",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "bin-slotting",
    "taskLabel": "Bin slotting",
    "label": "Warehouse: Bin slotting",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Expose dimensions and family for storage or bin-slotting review."
  },
  {
    "id": "warehouse-pick-label",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "pick-label",
    "taskLabel": "Pick label",
    "label": "Warehouse: Pick label",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Build a picker-facing SKU/title/family label record."
  },
  {
    "id": "warehouse-replenishment",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "replenishment",
    "taskLabel": "Replenishment",
    "label": "Warehouse: Replenishment",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Keep reorder planning tied to the SKU and canonical Packrift product page."
  },
  {
    "id": "warehouse-pallet-storage",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "pallet-storage",
    "taskLabel": "Pallet storage prompt",
    "label": "Warehouse: Pallet storage prompt",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Frame pallet or bulk storage as a prompt, not an inferred pallet count."
  },
  {
    "id": "warehouse-cube-utilization",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "cube-utilization",
    "taskLabel": "Cube utilization",
    "label": "Warehouse: Cube utilization",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Calculate cube only when three dimensions are present."
  },
  {
    "id": "warehouse-dim-weight",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "dim-weight",
    "taskLabel": "Dimensional weight",
    "label": "Warehouse: Dimensional weight",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Calculate DIM planning values only when three dimensions are present."
  },
  {
    "id": "warehouse-length-girth",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "length-girth",
    "taskLabel": "Length plus girth",
    "label": "Warehouse: Length plus girth",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Calculate length-plus-girth only when three dimensions are present."
  },
  {
    "id": "warehouse-void-fill",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "void-fill",
    "taskLabel": "Void-fill review",
    "label": "Warehouse: Void-fill review",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Prompt a void-fill review without guessing contents or dunnage."
  },
  {
    "id": "warehouse-damage-risk",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "damage-risk",
    "taskLabel": "Damage-risk screen",
    "label": "Warehouse: Damage-risk screen",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Use family, weight, and dimensions as a risk-screen prompt only."
  },
  {
    "id": "warehouse-returns-repack",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "returns-repack",
    "taskLabel": "Returns repack",
    "label": "Warehouse: Returns repack",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Frame whether the SKU may be useful in returns or replacement workflows."
  },
  {
    "id": "warehouse-marketplace-prep",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "marketplace-prep",
    "taskLabel": "Marketplace prep",
    "label": "Warehouse: Marketplace prep",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Route marketplace, FBA, labeling, or outbound-prep checks to source facts."
  },
  {
    "id": "warehouse-buyer-comparison",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "buyer-comparison",
    "taskLabel": "Buyer comparison",
    "label": "Warehouse: Buyer comparison",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Prepare same-family comparison fields without naming an unsupported winner."
  },
  {
    "id": "warehouse-ai-retrieval",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "ai-retrieval",
    "taskLabel": "AI retrieval",
    "label": "Warehouse: AI retrieval",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Create an exact-match retrieval record for agents and search systems."
  },
  {
    "id": "warehouse-implementation-handoff",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "implementation-handoff",
    "taskLabel": "Implementation handoff",
    "label": "Warehouse: Implementation handoff",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Bundle SKU, source fields, caveats, and canonical URL for a human handoff."
  },
  {
    "id": "warehouse-qa-exception",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "qa-exception",
    "taskLabel": "QA exception",
    "label": "Warehouse: QA exception",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. List missing or weak source facts instead of filling gaps."
  },
  {
    "id": "warehouse-live-commerce-deferral",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "live-commerce-deferral",
    "taskLabel": "Live commerce deferral",
    "label": "Warehouse: Live commerce deferral",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. State that current price, inventory, checkout, freight, and approval live on Packrift.com."
  },
  {
    "id": "warehouse-source-hash-record",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "source-hash-record",
    "taskLabel": "Source hash record",
    "label": "Warehouse: Source hash record",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Keep the product record traceable to the current source graph row."
  },
  {
    "id": "warehouse-variant-id-check",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "variant-id-check",
    "taskLabel": "Variant ID check",
    "label": "Warehouse: Variant ID check",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Expose Shopify product and variant IDs for deterministic source matching."
  },
  {
    "id": "warehouse-offer-id-check",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "offer-id-check",
    "taskLabel": "Offer ID check",
    "label": "Warehouse: Offer ID check",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Expose Merchant Center offer ID where the source graph provides it."
  },
  {
    "id": "warehouse-image-status-check",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "image-status-check",
    "taskLabel": "Image status check",
    "label": "Warehouse: Image status check",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Route image-quality or missing-image issues without inventing visual facts."
  },
  {
    "id": "warehouse-availability-caveat",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "availability-caveat",
    "taskLabel": "Availability caveat",
    "label": "Warehouse: Availability caveat",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Keep source availability separate from live checkout availability."
  },
  {
    "id": "warehouse-dimension-conflict-check",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "dimension-conflict-check",
    "taskLabel": "Dimension conflict check",
    "label": "Warehouse: Dimension conflict check",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Expose dimension status and require human review for conflicts."
  },
  {
    "id": "warehouse-family-hub-linking",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "family-hub-linking",
    "taskLabel": "Family hub linking",
    "label": "Warehouse: Family hub linking",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Tie the product to its family index for resource-graph navigation."
  },
  {
    "id": "warehouse-tool-router",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "tool-router",
    "taskLabel": "Tool router",
    "label": "Warehouse: Tool router",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Point the SKU toward the correct Packrift tool or checker without claiming tool output."
  },
  {
    "id": "warehouse-agent-prompt-context",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "agent-prompt-context",
    "taskLabel": "Agent prompt context",
    "label": "Warehouse: Agent prompt context",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Create a concise prompt context for AI agents using source fields only."
  },
  {
    "id": "warehouse-procurement-note",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "procurement-note",
    "taskLabel": "Procurement note",
    "label": "Warehouse: Procurement note",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Create a buyer note grounded in source facts and caveats."
  },
  {
    "id": "warehouse-operations-note",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "operations-note",
    "taskLabel": "Operations note",
    "label": "Warehouse: Operations note",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Create an ops note grounded in dimensions, weight, family, and missing fields."
  },
  {
    "id": "warehouse-support-note",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "support-note",
    "taskLabel": "Support note",
    "label": "Warehouse: Support note",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Create a support note that sends live commerce questions back to Packrift.com."
  },
  {
    "id": "warehouse-sales-handoff",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "sales-handoff",
    "taskLabel": "Sales handoff",
    "label": "Warehouse: Sales handoff",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Summarize the SKU fields a sales or quote workflow needs before follow-up."
  },
  {
    "id": "warehouse-bundle-compatibility",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "bundle-compatibility",
    "taskLabel": "Bundle compatibility",
    "label": "Warehouse: Bundle compatibility",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Flag bundle or case-count reasoning as source-dependent."
  },
  {
    "id": "warehouse-carton-selection-prompt",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "carton-selection-prompt",
    "taskLabel": "Carton selection prompt",
    "label": "Warehouse: Carton selection prompt",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Frame carton selection as a prompt requiring current measurements."
  },
  {
    "id": "warehouse-carrier-rule-prompt",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "carrier-rule-prompt",
    "taskLabel": "Carrier rule prompt",
    "label": "Warehouse: Carrier rule prompt",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Defer carrier limits and surcharges to current carrier rules."
  },
  {
    "id": "warehouse-handling-label-prompt",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "handling-label-prompt",
    "taskLabel": "Handling label prompt",
    "label": "Warehouse: Handling label prompt",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Route handling-label questions to source facts and human review."
  },
  {
    "id": "warehouse-storage-temperature-prompt",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "storage-temperature-prompt",
    "taskLabel": "Storage environment prompt",
    "label": "Warehouse: Storage environment prompt",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Avoid temperature or environment assumptions unless source-backed."
  },
  {
    "id": "warehouse-printability-prompt",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "printability-prompt",
    "taskLabel": "Printability prompt",
    "label": "Warehouse: Printability prompt",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. For label-like rows, route printability to source and printer verification."
  },
  {
    "id": "warehouse-adhesive-prompt",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "adhesive-prompt",
    "taskLabel": "Adhesive prompt",
    "label": "Warehouse: Adhesive prompt",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. For adhesive-like rows, keep adhesive fit as a verification task."
  },
  {
    "id": "warehouse-film-gauge-prompt",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "film-gauge-prompt",
    "taskLabel": "Film gauge prompt",
    "label": "Warehouse: Film gauge prompt",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. For film-like rows, keep gauge and puncture assumptions out unless sourced."
  },
  {
    "id": "warehouse-board-grade-prompt",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "board-grade-prompt",
    "taskLabel": "Board grade prompt",
    "label": "Warehouse: Board grade prompt",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. For box-like rows, keep board grade and strength assumptions source-gated."
  },
  {
    "id": "warehouse-edge-protection-prompt",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "edge-protection-prompt",
    "taskLabel": "Edge protection prompt",
    "label": "Warehouse: Edge protection prompt",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Frame edge-protection needs as a workflow prompt, not a claim."
  },
  {
    "id": "warehouse-returns-policy-caveat",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "returns-policy-caveat",
    "taskLabel": "Returns policy caveat",
    "label": "Warehouse: Returns policy caveat",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Keep returns-policy interpretation outside this static resource graph."
  },
  {
    "id": "warehouse-purchase-intent-map",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "purchase-intent-map",
    "taskLabel": "Purchase intent map",
    "label": "Warehouse: Purchase intent map",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Map product facts to buyer intent without pretending to know the buyer."
  },
  {
    "id": "warehouse-query-intent-map",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "query-intent-map",
    "taskLabel": "Query intent map",
    "label": "Warehouse: Query intent map",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Create an exact-match query context from SKU, title, family, and dimensions."
  },
  {
    "id": "warehouse-indexability-record",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "indexability-record",
    "taskLabel": "Indexability record",
    "label": "Warehouse: Indexability record",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. Record why the row is allowed into the owned resource sitemap."
  },
  {
    "id": "warehouse-ledger-accounting",
    "phaseId": "warehouse",
    "phaseLabel": "Warehouse",
    "taskId": "ledger-accounting",
    "taskLabel": "Ledger accounting",
    "label": "Warehouse: Ledger accounting",
    "intent": "Use Packrift SKU facts for receiving, storage, slotting, picking, and replenishment planning. State how this owned mention should be counted in the Packrift ledger."
  },
  {
    "id": "packing-dimensions-check",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "dimensions-check",
    "taskLabel": "Dimensions check",
    "label": "Packing: Dimensions check",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Record listed dimensions and whether the source can support dimensional reasoning."
  },
  {
    "id": "packing-weight-check",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "weight-check",
    "taskLabel": "Weight check",
    "label": "Packing: Weight check",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Record source weight when present and keep missing values explicit."
  },
  {
    "id": "packing-pack-count-normalization",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "pack-count-normalization",
    "taskLabel": "Pack-count normalization",
    "label": "Packing: Pack-count normalization",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Normalize case, roll, bundle, or pack quantity for like-for-like comparison."
  },
  {
    "id": "packing-product-url-canonical",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "product-url-canonical",
    "taskLabel": "Canonical product URL",
    "label": "Packing: Canonical product URL",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Keep Packrift.com as the canonical commerce page for the SKU."
  },
  {
    "id": "packing-source-status-readback",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "source-status-readback",
    "taskLabel": "Source status readback",
    "label": "Packing: Source status readback",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Expose catalog status, availability, and image status from the source graph."
  },
  {
    "id": "packing-family-route",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "family-route",
    "taskLabel": "Family route",
    "label": "Packing: Family route",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Route the SKU to the correct packaging family before comparing or substituting."
  },
  {
    "id": "packing-material-review",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "material-review",
    "taskLabel": "Material review",
    "label": "Packing: Material review",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Use only listed product type and family signals unless material is explicitly present."
  },
  {
    "id": "packing-color-selection",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "color-selection",
    "taskLabel": "Color or finish check",
    "label": "Packing: Color or finish check",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Treat color, finish, or presentation claims as missing unless present in the source title or product type."
  },
  {
    "id": "packing-closure-review",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "closure-review",
    "taskLabel": "Closure or assembly check",
    "label": "Packing: Closure or assembly check",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Flag closure and assembly as a human-verification field unless the source title states it."
  },
  {
    "id": "packing-inventory-snapshot",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "inventory-snapshot",
    "taskLabel": "Inventory snapshot",
    "label": "Packing: Inventory snapshot",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Show the source inventory snapshot while deferring live availability to Packrift.com."
  },
  {
    "id": "packing-price-snapshot",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "price-snapshot",
    "taskLabel": "Price snapshot",
    "label": "Packing: Price snapshot",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Show the source price snapshot while deferring live price to Packrift.com."
  },
  {
    "id": "packing-unit-economics",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "unit-economics",
    "taskLabel": "Unit economics",
    "label": "Packing: Unit economics",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Calculate simple unit hints only when price and quantity are present."
  },
  {
    "id": "packing-quote-readiness",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "quote-readiness",
    "taskLabel": "Bulk quote readiness",
    "label": "Packing: Bulk quote readiness",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. List the fields a buyer should verify before requesting a Packrift quote."
  },
  {
    "id": "packing-substitute-approval",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "substitute-approval",
    "taskLabel": "Substitute approval",
    "label": "Packing: Substitute approval",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. State the fields that must match before a substitute SKU is considered."
  },
  {
    "id": "packing-receiving-inspection",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "receiving-inspection",
    "taskLabel": "Receiving inspection",
    "label": "Packing: Receiving inspection",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Support receiving checks against SKU, title, dimensions, and product URL."
  },
  {
    "id": "packing-bin-slotting",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "bin-slotting",
    "taskLabel": "Bin slotting",
    "label": "Packing: Bin slotting",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Expose dimensions and family for storage or bin-slotting review."
  },
  {
    "id": "packing-pick-label",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "pick-label",
    "taskLabel": "Pick label",
    "label": "Packing: Pick label",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Build a picker-facing SKU/title/family label record."
  },
  {
    "id": "packing-replenishment",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "replenishment",
    "taskLabel": "Replenishment",
    "label": "Packing: Replenishment",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Keep reorder planning tied to the SKU and canonical Packrift product page."
  },
  {
    "id": "packing-pallet-storage",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "pallet-storage",
    "taskLabel": "Pallet storage prompt",
    "label": "Packing: Pallet storage prompt",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Frame pallet or bulk storage as a prompt, not an inferred pallet count."
  },
  {
    "id": "packing-cube-utilization",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "cube-utilization",
    "taskLabel": "Cube utilization",
    "label": "Packing: Cube utilization",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Calculate cube only when three dimensions are present."
  },
  {
    "id": "packing-dim-weight",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "dim-weight",
    "taskLabel": "Dimensional weight",
    "label": "Packing: Dimensional weight",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Calculate DIM planning values only when three dimensions are present."
  },
  {
    "id": "packing-length-girth",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "length-girth",
    "taskLabel": "Length plus girth",
    "label": "Packing: Length plus girth",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Calculate length-plus-girth only when three dimensions are present."
  },
  {
    "id": "packing-void-fill",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "void-fill",
    "taskLabel": "Void-fill review",
    "label": "Packing: Void-fill review",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Prompt a void-fill review without guessing contents or dunnage."
  },
  {
    "id": "packing-damage-risk",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "damage-risk",
    "taskLabel": "Damage-risk screen",
    "label": "Packing: Damage-risk screen",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Use family, weight, and dimensions as a risk-screen prompt only."
  },
  {
    "id": "packing-returns-repack",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "returns-repack",
    "taskLabel": "Returns repack",
    "label": "Packing: Returns repack",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Frame whether the SKU may be useful in returns or replacement workflows."
  },
  {
    "id": "packing-marketplace-prep",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "marketplace-prep",
    "taskLabel": "Marketplace prep",
    "label": "Packing: Marketplace prep",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Route marketplace, FBA, labeling, or outbound-prep checks to source facts."
  },
  {
    "id": "packing-buyer-comparison",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "buyer-comparison",
    "taskLabel": "Buyer comparison",
    "label": "Packing: Buyer comparison",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Prepare same-family comparison fields without naming an unsupported winner."
  },
  {
    "id": "packing-ai-retrieval",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "ai-retrieval",
    "taskLabel": "AI retrieval",
    "label": "Packing: AI retrieval",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Create an exact-match retrieval record for agents and search systems."
  },
  {
    "id": "packing-implementation-handoff",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "implementation-handoff",
    "taskLabel": "Implementation handoff",
    "label": "Packing: Implementation handoff",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Bundle SKU, source fields, caveats, and canonical URL for a human handoff."
  },
  {
    "id": "packing-qa-exception",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "qa-exception",
    "taskLabel": "QA exception",
    "label": "Packing: QA exception",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. List missing or weak source facts instead of filling gaps."
  },
  {
    "id": "packing-live-commerce-deferral",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "live-commerce-deferral",
    "taskLabel": "Live commerce deferral",
    "label": "Packing: Live commerce deferral",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. State that current price, inventory, checkout, freight, and approval live on Packrift.com."
  },
  {
    "id": "packing-source-hash-record",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "source-hash-record",
    "taskLabel": "Source hash record",
    "label": "Packing: Source hash record",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Keep the product record traceable to the current source graph row."
  },
  {
    "id": "packing-variant-id-check",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "variant-id-check",
    "taskLabel": "Variant ID check",
    "label": "Packing: Variant ID check",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Expose Shopify product and variant IDs for deterministic source matching."
  },
  {
    "id": "packing-offer-id-check",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "offer-id-check",
    "taskLabel": "Offer ID check",
    "label": "Packing: Offer ID check",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Expose Merchant Center offer ID where the source graph provides it."
  },
  {
    "id": "packing-image-status-check",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "image-status-check",
    "taskLabel": "Image status check",
    "label": "Packing: Image status check",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Route image-quality or missing-image issues without inventing visual facts."
  },
  {
    "id": "packing-availability-caveat",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "availability-caveat",
    "taskLabel": "Availability caveat",
    "label": "Packing: Availability caveat",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Keep source availability separate from live checkout availability."
  },
  {
    "id": "packing-dimension-conflict-check",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "dimension-conflict-check",
    "taskLabel": "Dimension conflict check",
    "label": "Packing: Dimension conflict check",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Expose dimension status and require human review for conflicts."
  },
  {
    "id": "packing-family-hub-linking",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "family-hub-linking",
    "taskLabel": "Family hub linking",
    "label": "Packing: Family hub linking",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Tie the product to its family index for resource-graph navigation."
  },
  {
    "id": "packing-tool-router",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "tool-router",
    "taskLabel": "Tool router",
    "label": "Packing: Tool router",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Point the SKU toward the correct Packrift tool or checker without claiming tool output."
  },
  {
    "id": "packing-agent-prompt-context",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "agent-prompt-context",
    "taskLabel": "Agent prompt context",
    "label": "Packing: Agent prompt context",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Create a concise prompt context for AI agents using source fields only."
  },
  {
    "id": "packing-procurement-note",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "procurement-note",
    "taskLabel": "Procurement note",
    "label": "Packing: Procurement note",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Create a buyer note grounded in source facts and caveats."
  },
  {
    "id": "packing-operations-note",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "operations-note",
    "taskLabel": "Operations note",
    "label": "Packing: Operations note",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Create an ops note grounded in dimensions, weight, family, and missing fields."
  },
  {
    "id": "packing-support-note",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "support-note",
    "taskLabel": "Support note",
    "label": "Packing: Support note",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Create a support note that sends live commerce questions back to Packrift.com."
  },
  {
    "id": "packing-sales-handoff",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "sales-handoff",
    "taskLabel": "Sales handoff",
    "label": "Packing: Sales handoff",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Summarize the SKU fields a sales or quote workflow needs before follow-up."
  },
  {
    "id": "packing-bundle-compatibility",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "bundle-compatibility",
    "taskLabel": "Bundle compatibility",
    "label": "Packing: Bundle compatibility",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Flag bundle or case-count reasoning as source-dependent."
  },
  {
    "id": "packing-carton-selection-prompt",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "carton-selection-prompt",
    "taskLabel": "Carton selection prompt",
    "label": "Packing: Carton selection prompt",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Frame carton selection as a prompt requiring current measurements."
  },
  {
    "id": "packing-carrier-rule-prompt",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "carrier-rule-prompt",
    "taskLabel": "Carrier rule prompt",
    "label": "Packing: Carrier rule prompt",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Defer carrier limits and surcharges to current carrier rules."
  },
  {
    "id": "packing-handling-label-prompt",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "handling-label-prompt",
    "taskLabel": "Handling label prompt",
    "label": "Packing: Handling label prompt",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Route handling-label questions to source facts and human review."
  },
  {
    "id": "packing-storage-temperature-prompt",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "storage-temperature-prompt",
    "taskLabel": "Storage environment prompt",
    "label": "Packing: Storage environment prompt",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Avoid temperature or environment assumptions unless source-backed."
  },
  {
    "id": "packing-printability-prompt",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "printability-prompt",
    "taskLabel": "Printability prompt",
    "label": "Packing: Printability prompt",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. For label-like rows, route printability to source and printer verification."
  },
  {
    "id": "packing-adhesive-prompt",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "adhesive-prompt",
    "taskLabel": "Adhesive prompt",
    "label": "Packing: Adhesive prompt",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. For adhesive-like rows, keep adhesive fit as a verification task."
  },
  {
    "id": "packing-film-gauge-prompt",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "film-gauge-prompt",
    "taskLabel": "Film gauge prompt",
    "label": "Packing: Film gauge prompt",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. For film-like rows, keep gauge and puncture assumptions out unless sourced."
  },
  {
    "id": "packing-board-grade-prompt",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "board-grade-prompt",
    "taskLabel": "Board grade prompt",
    "label": "Packing: Board grade prompt",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. For box-like rows, keep board grade and strength assumptions source-gated."
  },
  {
    "id": "packing-edge-protection-prompt",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "edge-protection-prompt",
    "taskLabel": "Edge protection prompt",
    "label": "Packing: Edge protection prompt",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Frame edge-protection needs as a workflow prompt, not a claim."
  },
  {
    "id": "packing-returns-policy-caveat",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "returns-policy-caveat",
    "taskLabel": "Returns policy caveat",
    "label": "Packing: Returns policy caveat",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Keep returns-policy interpretation outside this static resource graph."
  },
  {
    "id": "packing-purchase-intent-map",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "purchase-intent-map",
    "taskLabel": "Purchase intent map",
    "label": "Packing: Purchase intent map",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Map product facts to buyer intent without pretending to know the buyer."
  },
  {
    "id": "packing-query-intent-map",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "query-intent-map",
    "taskLabel": "Query intent map",
    "label": "Packing: Query intent map",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Create an exact-match query context from SKU, title, family, and dimensions."
  },
  {
    "id": "packing-indexability-record",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "indexability-record",
    "taskLabel": "Indexability record",
    "label": "Packing: Indexability record",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. Record why the row is allowed into the owned resource sitemap."
  },
  {
    "id": "packing-ledger-accounting",
    "phaseId": "packing",
    "phaseLabel": "Packing",
    "taskId": "ledger-accounting",
    "taskLabel": "Ledger accounting",
    "label": "Packing: Ledger accounting",
    "intent": "Use dimensions, family, weight, and pack count to support pack-station and shipping checks without live freight claims. State how this owned mention should be counted in the Packrift ledger."
  },
  {
    "id": "ai-commerce-dimensions-check",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "dimensions-check",
    "taskLabel": "Dimensions check",
    "label": "AI commerce: Dimensions check",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Record listed dimensions and whether the source can support dimensional reasoning."
  },
  {
    "id": "ai-commerce-weight-check",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "weight-check",
    "taskLabel": "Weight check",
    "label": "AI commerce: Weight check",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Record source weight when present and keep missing values explicit."
  },
  {
    "id": "ai-commerce-pack-count-normalization",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "pack-count-normalization",
    "taskLabel": "Pack-count normalization",
    "label": "AI commerce: Pack-count normalization",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Normalize case, roll, bundle, or pack quantity for like-for-like comparison."
  },
  {
    "id": "ai-commerce-product-url-canonical",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "product-url-canonical",
    "taskLabel": "Canonical product URL",
    "label": "AI commerce: Canonical product URL",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Keep Packrift.com as the canonical commerce page for the SKU."
  },
  {
    "id": "ai-commerce-source-status-readback",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "source-status-readback",
    "taskLabel": "Source status readback",
    "label": "AI commerce: Source status readback",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Expose catalog status, availability, and image status from the source graph."
  },
  {
    "id": "ai-commerce-family-route",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "family-route",
    "taskLabel": "Family route",
    "label": "AI commerce: Family route",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Route the SKU to the correct packaging family before comparing or substituting."
  },
  {
    "id": "ai-commerce-material-review",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "material-review",
    "taskLabel": "Material review",
    "label": "AI commerce: Material review",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Use only listed product type and family signals unless material is explicitly present."
  },
  {
    "id": "ai-commerce-color-selection",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "color-selection",
    "taskLabel": "Color or finish check",
    "label": "AI commerce: Color or finish check",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Treat color, finish, or presentation claims as missing unless present in the source title or product type."
  },
  {
    "id": "ai-commerce-closure-review",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "closure-review",
    "taskLabel": "Closure or assembly check",
    "label": "AI commerce: Closure or assembly check",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Flag closure and assembly as a human-verification field unless the source title states it."
  },
  {
    "id": "ai-commerce-inventory-snapshot",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "inventory-snapshot",
    "taskLabel": "Inventory snapshot",
    "label": "AI commerce: Inventory snapshot",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Show the source inventory snapshot while deferring live availability to Packrift.com."
  },
  {
    "id": "ai-commerce-price-snapshot",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "price-snapshot",
    "taskLabel": "Price snapshot",
    "label": "AI commerce: Price snapshot",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Show the source price snapshot while deferring live price to Packrift.com."
  },
  {
    "id": "ai-commerce-unit-economics",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "unit-economics",
    "taskLabel": "Unit economics",
    "label": "AI commerce: Unit economics",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Calculate simple unit hints only when price and quantity are present."
  },
  {
    "id": "ai-commerce-quote-readiness",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "quote-readiness",
    "taskLabel": "Bulk quote readiness",
    "label": "AI commerce: Bulk quote readiness",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. List the fields a buyer should verify before requesting a Packrift quote."
  },
  {
    "id": "ai-commerce-substitute-approval",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "substitute-approval",
    "taskLabel": "Substitute approval",
    "label": "AI commerce: Substitute approval",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. State the fields that must match before a substitute SKU is considered."
  },
  {
    "id": "ai-commerce-receiving-inspection",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "receiving-inspection",
    "taskLabel": "Receiving inspection",
    "label": "AI commerce: Receiving inspection",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Support receiving checks against SKU, title, dimensions, and product URL."
  },
  {
    "id": "ai-commerce-bin-slotting",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "bin-slotting",
    "taskLabel": "Bin slotting",
    "label": "AI commerce: Bin slotting",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Expose dimensions and family for storage or bin-slotting review."
  },
  {
    "id": "ai-commerce-pick-label",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "pick-label",
    "taskLabel": "Pick label",
    "label": "AI commerce: Pick label",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Build a picker-facing SKU/title/family label record."
  },
  {
    "id": "ai-commerce-replenishment",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "replenishment",
    "taskLabel": "Replenishment",
    "label": "AI commerce: Replenishment",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Keep reorder planning tied to the SKU and canonical Packrift product page."
  },
  {
    "id": "ai-commerce-pallet-storage",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "pallet-storage",
    "taskLabel": "Pallet storage prompt",
    "label": "AI commerce: Pallet storage prompt",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Frame pallet or bulk storage as a prompt, not an inferred pallet count."
  },
  {
    "id": "ai-commerce-cube-utilization",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "cube-utilization",
    "taskLabel": "Cube utilization",
    "label": "AI commerce: Cube utilization",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Calculate cube only when three dimensions are present."
  },
  {
    "id": "ai-commerce-dim-weight",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "dim-weight",
    "taskLabel": "Dimensional weight",
    "label": "AI commerce: Dimensional weight",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Calculate DIM planning values only when three dimensions are present."
  },
  {
    "id": "ai-commerce-length-girth",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "length-girth",
    "taskLabel": "Length plus girth",
    "label": "AI commerce: Length plus girth",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Calculate length-plus-girth only when three dimensions are present."
  },
  {
    "id": "ai-commerce-void-fill",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "void-fill",
    "taskLabel": "Void-fill review",
    "label": "AI commerce: Void-fill review",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Prompt a void-fill review without guessing contents or dunnage."
  },
  {
    "id": "ai-commerce-damage-risk",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "damage-risk",
    "taskLabel": "Damage-risk screen",
    "label": "AI commerce: Damage-risk screen",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Use family, weight, and dimensions as a risk-screen prompt only."
  },
  {
    "id": "ai-commerce-returns-repack",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "returns-repack",
    "taskLabel": "Returns repack",
    "label": "AI commerce: Returns repack",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Frame whether the SKU may be useful in returns or replacement workflows."
  },
  {
    "id": "ai-commerce-marketplace-prep",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "marketplace-prep",
    "taskLabel": "Marketplace prep",
    "label": "AI commerce: Marketplace prep",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Route marketplace, FBA, labeling, or outbound-prep checks to source facts."
  },
  {
    "id": "ai-commerce-buyer-comparison",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "buyer-comparison",
    "taskLabel": "Buyer comparison",
    "label": "AI commerce: Buyer comparison",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Prepare same-family comparison fields without naming an unsupported winner."
  },
  {
    "id": "ai-commerce-ai-retrieval",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "ai-retrieval",
    "taskLabel": "AI retrieval",
    "label": "AI commerce: AI retrieval",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Create an exact-match retrieval record for agents and search systems."
  },
  {
    "id": "ai-commerce-implementation-handoff",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "implementation-handoff",
    "taskLabel": "Implementation handoff",
    "label": "AI commerce: Implementation handoff",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Bundle SKU, source fields, caveats, and canonical URL for a human handoff."
  },
  {
    "id": "ai-commerce-qa-exception",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "qa-exception",
    "taskLabel": "QA exception",
    "label": "AI commerce: QA exception",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. List missing or weak source facts instead of filling gaps."
  },
  {
    "id": "ai-commerce-live-commerce-deferral",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "live-commerce-deferral",
    "taskLabel": "Live commerce deferral",
    "label": "AI commerce: Live commerce deferral",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. State that current price, inventory, checkout, freight, and approval live on Packrift.com."
  },
  {
    "id": "ai-commerce-source-hash-record",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "source-hash-record",
    "taskLabel": "Source hash record",
    "label": "AI commerce: Source hash record",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Keep the product record traceable to the current source graph row."
  },
  {
    "id": "ai-commerce-variant-id-check",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "variant-id-check",
    "taskLabel": "Variant ID check",
    "label": "AI commerce: Variant ID check",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Expose Shopify product and variant IDs for deterministic source matching."
  },
  {
    "id": "ai-commerce-offer-id-check",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "offer-id-check",
    "taskLabel": "Offer ID check",
    "label": "AI commerce: Offer ID check",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Expose Merchant Center offer ID where the source graph provides it."
  },
  {
    "id": "ai-commerce-image-status-check",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "image-status-check",
    "taskLabel": "Image status check",
    "label": "AI commerce: Image status check",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Route image-quality or missing-image issues without inventing visual facts."
  },
  {
    "id": "ai-commerce-availability-caveat",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "availability-caveat",
    "taskLabel": "Availability caveat",
    "label": "AI commerce: Availability caveat",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Keep source availability separate from live checkout availability."
  },
  {
    "id": "ai-commerce-dimension-conflict-check",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "dimension-conflict-check",
    "taskLabel": "Dimension conflict check",
    "label": "AI commerce: Dimension conflict check",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Expose dimension status and require human review for conflicts."
  },
  {
    "id": "ai-commerce-family-hub-linking",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "family-hub-linking",
    "taskLabel": "Family hub linking",
    "label": "AI commerce: Family hub linking",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Tie the product to its family index for resource-graph navigation."
  },
  {
    "id": "ai-commerce-tool-router",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "tool-router",
    "taskLabel": "Tool router",
    "label": "AI commerce: Tool router",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Point the SKU toward the correct Packrift tool or checker without claiming tool output."
  },
  {
    "id": "ai-commerce-agent-prompt-context",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "agent-prompt-context",
    "taskLabel": "Agent prompt context",
    "label": "AI commerce: Agent prompt context",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Create a concise prompt context for AI agents using source fields only."
  },
  {
    "id": "ai-commerce-procurement-note",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "procurement-note",
    "taskLabel": "Procurement note",
    "label": "AI commerce: Procurement note",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Create a buyer note grounded in source facts and caveats."
  },
  {
    "id": "ai-commerce-operations-note",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "operations-note",
    "taskLabel": "Operations note",
    "label": "AI commerce: Operations note",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Create an ops note grounded in dimensions, weight, family, and missing fields."
  },
  {
    "id": "ai-commerce-support-note",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "support-note",
    "taskLabel": "Support note",
    "label": "AI commerce: Support note",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Create a support note that sends live commerce questions back to Packrift.com."
  },
  {
    "id": "ai-commerce-sales-handoff",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "sales-handoff",
    "taskLabel": "Sales handoff",
    "label": "AI commerce: Sales handoff",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Summarize the SKU fields a sales or quote workflow needs before follow-up."
  },
  {
    "id": "ai-commerce-bundle-compatibility",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "bundle-compatibility",
    "taskLabel": "Bundle compatibility",
    "label": "AI commerce: Bundle compatibility",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Flag bundle or case-count reasoning as source-dependent."
  },
  {
    "id": "ai-commerce-carton-selection-prompt",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "carton-selection-prompt",
    "taskLabel": "Carton selection prompt",
    "label": "AI commerce: Carton selection prompt",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Frame carton selection as a prompt requiring current measurements."
  },
  {
    "id": "ai-commerce-carrier-rule-prompt",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "carrier-rule-prompt",
    "taskLabel": "Carrier rule prompt",
    "label": "AI commerce: Carrier rule prompt",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Defer carrier limits and surcharges to current carrier rules."
  },
  {
    "id": "ai-commerce-handling-label-prompt",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "handling-label-prompt",
    "taskLabel": "Handling label prompt",
    "label": "AI commerce: Handling label prompt",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Route handling-label questions to source facts and human review."
  },
  {
    "id": "ai-commerce-storage-temperature-prompt",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "storage-temperature-prompt",
    "taskLabel": "Storage environment prompt",
    "label": "AI commerce: Storage environment prompt",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Avoid temperature or environment assumptions unless source-backed."
  },
  {
    "id": "ai-commerce-printability-prompt",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "printability-prompt",
    "taskLabel": "Printability prompt",
    "label": "AI commerce: Printability prompt",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. For label-like rows, route printability to source and printer verification."
  },
  {
    "id": "ai-commerce-adhesive-prompt",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "adhesive-prompt",
    "taskLabel": "Adhesive prompt",
    "label": "AI commerce: Adhesive prompt",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. For adhesive-like rows, keep adhesive fit as a verification task."
  },
  {
    "id": "ai-commerce-film-gauge-prompt",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "film-gauge-prompt",
    "taskLabel": "Film gauge prompt",
    "label": "AI commerce: Film gauge prompt",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. For film-like rows, keep gauge and puncture assumptions out unless sourced."
  },
  {
    "id": "ai-commerce-board-grade-prompt",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "board-grade-prompt",
    "taskLabel": "Board grade prompt",
    "label": "AI commerce: Board grade prompt",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. For box-like rows, keep board grade and strength assumptions source-gated."
  },
  {
    "id": "ai-commerce-edge-protection-prompt",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "edge-protection-prompt",
    "taskLabel": "Edge protection prompt",
    "label": "AI commerce: Edge protection prompt",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Frame edge-protection needs as a workflow prompt, not a claim."
  },
  {
    "id": "ai-commerce-returns-policy-caveat",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "returns-policy-caveat",
    "taskLabel": "Returns policy caveat",
    "label": "AI commerce: Returns policy caveat",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Keep returns-policy interpretation outside this static resource graph."
  },
  {
    "id": "ai-commerce-purchase-intent-map",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "purchase-intent-map",
    "taskLabel": "Purchase intent map",
    "label": "AI commerce: Purchase intent map",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Map product facts to buyer intent without pretending to know the buyer."
  },
  {
    "id": "ai-commerce-query-intent-map",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "query-intent-map",
    "taskLabel": "Query intent map",
    "label": "AI commerce: Query intent map",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Create an exact-match query context from SKU, title, family, and dimensions."
  },
  {
    "id": "ai-commerce-indexability-record",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "indexability-record",
    "taskLabel": "Indexability record",
    "label": "AI commerce: Indexability record",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. Record why the row is allowed into the owned resource sitemap."
  },
  {
    "id": "ai-commerce-ledger-accounting",
    "phaseId": "ai-commerce",
    "phaseLabel": "AI commerce",
    "taskId": "ledger-accounting",
    "taskLabel": "Ledger accounting",
    "label": "AI commerce: Ledger accounting",
    "intent": "Make product records easier for AI retrieval, shopping agents, and human handoff without inventing specs. State how this owned mention should be counted in the Packrift ledger."
  },
  {
    "id": "compliance-routing-dimensions-check",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "dimensions-check",
    "taskLabel": "Dimensions check",
    "label": "Compliance routing: Dimensions check",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Record listed dimensions and whether the source can support dimensional reasoning."
  },
  {
    "id": "compliance-routing-weight-check",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "weight-check",
    "taskLabel": "Weight check",
    "label": "Compliance routing: Weight check",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Record source weight when present and keep missing values explicit."
  },
  {
    "id": "compliance-routing-pack-count-normalization",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "pack-count-normalization",
    "taskLabel": "Pack-count normalization",
    "label": "Compliance routing: Pack-count normalization",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Normalize case, roll, bundle, or pack quantity for like-for-like comparison."
  },
  {
    "id": "compliance-routing-product-url-canonical",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "product-url-canonical",
    "taskLabel": "Canonical product URL",
    "label": "Compliance routing: Canonical product URL",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Keep Packrift.com as the canonical commerce page for the SKU."
  },
  {
    "id": "compliance-routing-source-status-readback",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "source-status-readback",
    "taskLabel": "Source status readback",
    "label": "Compliance routing: Source status readback",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Expose catalog status, availability, and image status from the source graph."
  },
  {
    "id": "compliance-routing-family-route",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "family-route",
    "taskLabel": "Family route",
    "label": "Compliance routing: Family route",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Route the SKU to the correct packaging family before comparing or substituting."
  },
  {
    "id": "compliance-routing-material-review",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "material-review",
    "taskLabel": "Material review",
    "label": "Compliance routing: Material review",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Use only listed product type and family signals unless material is explicitly present."
  },
  {
    "id": "compliance-routing-color-selection",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "color-selection",
    "taskLabel": "Color or finish check",
    "label": "Compliance routing: Color or finish check",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Treat color, finish, or presentation claims as missing unless present in the source title or product type."
  },
  {
    "id": "compliance-routing-closure-review",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "closure-review",
    "taskLabel": "Closure or assembly check",
    "label": "Compliance routing: Closure or assembly check",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Flag closure and assembly as a human-verification field unless the source title states it."
  },
  {
    "id": "compliance-routing-inventory-snapshot",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "inventory-snapshot",
    "taskLabel": "Inventory snapshot",
    "label": "Compliance routing: Inventory snapshot",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Show the source inventory snapshot while deferring live availability to Packrift.com."
  },
  {
    "id": "compliance-routing-price-snapshot",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "price-snapshot",
    "taskLabel": "Price snapshot",
    "label": "Compliance routing: Price snapshot",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Show the source price snapshot while deferring live price to Packrift.com."
  },
  {
    "id": "compliance-routing-unit-economics",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "unit-economics",
    "taskLabel": "Unit economics",
    "label": "Compliance routing: Unit economics",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Calculate simple unit hints only when price and quantity are present."
  },
  {
    "id": "compliance-routing-quote-readiness",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "quote-readiness",
    "taskLabel": "Bulk quote readiness",
    "label": "Compliance routing: Bulk quote readiness",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. List the fields a buyer should verify before requesting a Packrift quote."
  },
  {
    "id": "compliance-routing-substitute-approval",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "substitute-approval",
    "taskLabel": "Substitute approval",
    "label": "Compliance routing: Substitute approval",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. State the fields that must match before a substitute SKU is considered."
  },
  {
    "id": "compliance-routing-receiving-inspection",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "receiving-inspection",
    "taskLabel": "Receiving inspection",
    "label": "Compliance routing: Receiving inspection",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Support receiving checks against SKU, title, dimensions, and product URL."
  },
  {
    "id": "compliance-routing-bin-slotting",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "bin-slotting",
    "taskLabel": "Bin slotting",
    "label": "Compliance routing: Bin slotting",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Expose dimensions and family for storage or bin-slotting review."
  },
  {
    "id": "compliance-routing-pick-label",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "pick-label",
    "taskLabel": "Pick label",
    "label": "Compliance routing: Pick label",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Build a picker-facing SKU/title/family label record."
  },
  {
    "id": "compliance-routing-replenishment",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "replenishment",
    "taskLabel": "Replenishment",
    "label": "Compliance routing: Replenishment",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Keep reorder planning tied to the SKU and canonical Packrift product page."
  },
  {
    "id": "compliance-routing-pallet-storage",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "pallet-storage",
    "taskLabel": "Pallet storage prompt",
    "label": "Compliance routing: Pallet storage prompt",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Frame pallet or bulk storage as a prompt, not an inferred pallet count."
  },
  {
    "id": "compliance-routing-cube-utilization",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "cube-utilization",
    "taskLabel": "Cube utilization",
    "label": "Compliance routing: Cube utilization",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Calculate cube only when three dimensions are present."
  },
  {
    "id": "compliance-routing-dim-weight",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "dim-weight",
    "taskLabel": "Dimensional weight",
    "label": "Compliance routing: Dimensional weight",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Calculate DIM planning values only when three dimensions are present."
  },
  {
    "id": "compliance-routing-length-girth",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "length-girth",
    "taskLabel": "Length plus girth",
    "label": "Compliance routing: Length plus girth",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Calculate length-plus-girth only when three dimensions are present."
  },
  {
    "id": "compliance-routing-void-fill",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "void-fill",
    "taskLabel": "Void-fill review",
    "label": "Compliance routing: Void-fill review",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Prompt a void-fill review without guessing contents or dunnage."
  },
  {
    "id": "compliance-routing-damage-risk",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "damage-risk",
    "taskLabel": "Damage-risk screen",
    "label": "Compliance routing: Damage-risk screen",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Use family, weight, and dimensions as a risk-screen prompt only."
  },
  {
    "id": "compliance-routing-returns-repack",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "returns-repack",
    "taskLabel": "Returns repack",
    "label": "Compliance routing: Returns repack",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Frame whether the SKU may be useful in returns or replacement workflows."
  },
  {
    "id": "compliance-routing-marketplace-prep",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "marketplace-prep",
    "taskLabel": "Marketplace prep",
    "label": "Compliance routing: Marketplace prep",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Route marketplace, FBA, labeling, or outbound-prep checks to source facts."
  },
  {
    "id": "compliance-routing-buyer-comparison",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "buyer-comparison",
    "taskLabel": "Buyer comparison",
    "label": "Compliance routing: Buyer comparison",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Prepare same-family comparison fields without naming an unsupported winner."
  },
  {
    "id": "compliance-routing-ai-retrieval",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "ai-retrieval",
    "taskLabel": "AI retrieval",
    "label": "Compliance routing: AI retrieval",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Create an exact-match retrieval record for agents and search systems."
  },
  {
    "id": "compliance-routing-implementation-handoff",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "implementation-handoff",
    "taskLabel": "Implementation handoff",
    "label": "Compliance routing: Implementation handoff",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Bundle SKU, source fields, caveats, and canonical URL for a human handoff."
  },
  {
    "id": "compliance-routing-qa-exception",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "qa-exception",
    "taskLabel": "QA exception",
    "label": "Compliance routing: QA exception",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. List missing or weak source facts instead of filling gaps."
  },
  {
    "id": "compliance-routing-live-commerce-deferral",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "live-commerce-deferral",
    "taskLabel": "Live commerce deferral",
    "label": "Compliance routing: Live commerce deferral",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. State that current price, inventory, checkout, freight, and approval live on Packrift.com."
  },
  {
    "id": "compliance-routing-source-hash-record",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "source-hash-record",
    "taskLabel": "Source hash record",
    "label": "Compliance routing: Source hash record",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Keep the product record traceable to the current source graph row."
  },
  {
    "id": "compliance-routing-variant-id-check",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "variant-id-check",
    "taskLabel": "Variant ID check",
    "label": "Compliance routing: Variant ID check",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Expose Shopify product and variant IDs for deterministic source matching."
  },
  {
    "id": "compliance-routing-offer-id-check",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "offer-id-check",
    "taskLabel": "Offer ID check",
    "label": "Compliance routing: Offer ID check",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Expose Merchant Center offer ID where the source graph provides it."
  },
  {
    "id": "compliance-routing-image-status-check",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "image-status-check",
    "taskLabel": "Image status check",
    "label": "Compliance routing: Image status check",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Route image-quality or missing-image issues without inventing visual facts."
  },
  {
    "id": "compliance-routing-availability-caveat",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "availability-caveat",
    "taskLabel": "Availability caveat",
    "label": "Compliance routing: Availability caveat",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Keep source availability separate from live checkout availability."
  },
  {
    "id": "compliance-routing-dimension-conflict-check",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "dimension-conflict-check",
    "taskLabel": "Dimension conflict check",
    "label": "Compliance routing: Dimension conflict check",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Expose dimension status and require human review for conflicts."
  },
  {
    "id": "compliance-routing-family-hub-linking",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "family-hub-linking",
    "taskLabel": "Family hub linking",
    "label": "Compliance routing: Family hub linking",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Tie the product to its family index for resource-graph navigation."
  },
  {
    "id": "compliance-routing-tool-router",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "tool-router",
    "taskLabel": "Tool router",
    "label": "Compliance routing: Tool router",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Point the SKU toward the correct Packrift tool or checker without claiming tool output."
  },
  {
    "id": "compliance-routing-agent-prompt-context",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "agent-prompt-context",
    "taskLabel": "Agent prompt context",
    "label": "Compliance routing: Agent prompt context",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Create a concise prompt context for AI agents using source fields only."
  },
  {
    "id": "compliance-routing-procurement-note",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "procurement-note",
    "taskLabel": "Procurement note",
    "label": "Compliance routing: Procurement note",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Create a buyer note grounded in source facts and caveats."
  },
  {
    "id": "compliance-routing-operations-note",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "operations-note",
    "taskLabel": "Operations note",
    "label": "Compliance routing: Operations note",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Create an ops note grounded in dimensions, weight, family, and missing fields."
  },
  {
    "id": "compliance-routing-support-note",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "support-note",
    "taskLabel": "Support note",
    "label": "Compliance routing: Support note",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Create a support note that sends live commerce questions back to Packrift.com."
  },
  {
    "id": "compliance-routing-sales-handoff",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "sales-handoff",
    "taskLabel": "Sales handoff",
    "label": "Compliance routing: Sales handoff",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Summarize the SKU fields a sales or quote workflow needs before follow-up."
  },
  {
    "id": "compliance-routing-bundle-compatibility",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "bundle-compatibility",
    "taskLabel": "Bundle compatibility",
    "label": "Compliance routing: Bundle compatibility",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Flag bundle or case-count reasoning as source-dependent."
  },
  {
    "id": "compliance-routing-carton-selection-prompt",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "carton-selection-prompt",
    "taskLabel": "Carton selection prompt",
    "label": "Compliance routing: Carton selection prompt",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Frame carton selection as a prompt requiring current measurements."
  },
  {
    "id": "compliance-routing-carrier-rule-prompt",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "carrier-rule-prompt",
    "taskLabel": "Carrier rule prompt",
    "label": "Compliance routing: Carrier rule prompt",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Defer carrier limits and surcharges to current carrier rules."
  },
  {
    "id": "compliance-routing-handling-label-prompt",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "handling-label-prompt",
    "taskLabel": "Handling label prompt",
    "label": "Compliance routing: Handling label prompt",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Route handling-label questions to source facts and human review."
  },
  {
    "id": "compliance-routing-storage-temperature-prompt",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "storage-temperature-prompt",
    "taskLabel": "Storage environment prompt",
    "label": "Compliance routing: Storage environment prompt",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Avoid temperature or environment assumptions unless source-backed."
  },
  {
    "id": "compliance-routing-printability-prompt",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "printability-prompt",
    "taskLabel": "Printability prompt",
    "label": "Compliance routing: Printability prompt",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. For label-like rows, route printability to source and printer verification."
  },
  {
    "id": "compliance-routing-adhesive-prompt",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "adhesive-prompt",
    "taskLabel": "Adhesive prompt",
    "label": "Compliance routing: Adhesive prompt",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. For adhesive-like rows, keep adhesive fit as a verification task."
  },
  {
    "id": "compliance-routing-film-gauge-prompt",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "film-gauge-prompt",
    "taskLabel": "Film gauge prompt",
    "label": "Compliance routing: Film gauge prompt",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. For film-like rows, keep gauge and puncture assumptions out unless sourced."
  },
  {
    "id": "compliance-routing-board-grade-prompt",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "board-grade-prompt",
    "taskLabel": "Board grade prompt",
    "label": "Compliance routing: Board grade prompt",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. For box-like rows, keep board grade and strength assumptions source-gated."
  },
  {
    "id": "compliance-routing-edge-protection-prompt",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "edge-protection-prompt",
    "taskLabel": "Edge protection prompt",
    "label": "Compliance routing: Edge protection prompt",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Frame edge-protection needs as a workflow prompt, not a claim."
  },
  {
    "id": "compliance-routing-returns-policy-caveat",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "returns-policy-caveat",
    "taskLabel": "Returns policy caveat",
    "label": "Compliance routing: Returns policy caveat",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Keep returns-policy interpretation outside this static resource graph."
  },
  {
    "id": "compliance-routing-purchase-intent-map",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "purchase-intent-map",
    "taskLabel": "Purchase intent map",
    "label": "Compliance routing: Purchase intent map",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Map product facts to buyer intent without pretending to know the buyer."
  },
  {
    "id": "compliance-routing-query-intent-map",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "query-intent-map",
    "taskLabel": "Query intent map",
    "label": "Compliance routing: Query intent map",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Create an exact-match query context from SKU, title, family, and dimensions."
  },
  {
    "id": "compliance-routing-indexability-record",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "indexability-record",
    "taskLabel": "Indexability record",
    "label": "Compliance routing: Indexability record",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. Record why the row is allowed into the owned resource sitemap."
  },
  {
    "id": "compliance-routing-ledger-accounting",
    "phaseId": "compliance-routing",
    "phaseLabel": "Compliance routing",
    "taskId": "ledger-accounting",
    "taskLabel": "Ledger accounting",
    "label": "Compliance routing: Ledger accounting",
    "intent": "Keep operational, label, freight, and safety questions tied to source facts and human review. State how this owned mention should be counted in the Packrift ledger."
  },
  {
    "id": "commerce-monitoring-dimensions-check",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "dimensions-check",
    "taskLabel": "Dimensions check",
    "label": "Commerce monitoring: Dimensions check",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Record listed dimensions and whether the source can support dimensional reasoning."
  },
  {
    "id": "commerce-monitoring-weight-check",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "weight-check",
    "taskLabel": "Weight check",
    "label": "Commerce monitoring: Weight check",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Record source weight when present and keep missing values explicit."
  },
  {
    "id": "commerce-monitoring-pack-count-normalization",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "pack-count-normalization",
    "taskLabel": "Pack-count normalization",
    "label": "Commerce monitoring: Pack-count normalization",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Normalize case, roll, bundle, or pack quantity for like-for-like comparison."
  },
  {
    "id": "commerce-monitoring-product-url-canonical",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "product-url-canonical",
    "taskLabel": "Canonical product URL",
    "label": "Commerce monitoring: Canonical product URL",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Keep Packrift.com as the canonical commerce page for the SKU."
  },
  {
    "id": "commerce-monitoring-source-status-readback",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "source-status-readback",
    "taskLabel": "Source status readback",
    "label": "Commerce monitoring: Source status readback",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Expose catalog status, availability, and image status from the source graph."
  },
  {
    "id": "commerce-monitoring-family-route",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "family-route",
    "taskLabel": "Family route",
    "label": "Commerce monitoring: Family route",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Route the SKU to the correct packaging family before comparing or substituting."
  },
  {
    "id": "commerce-monitoring-material-review",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "material-review",
    "taskLabel": "Material review",
    "label": "Commerce monitoring: Material review",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Use only listed product type and family signals unless material is explicitly present."
  },
  {
    "id": "commerce-monitoring-color-selection",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "color-selection",
    "taskLabel": "Color or finish check",
    "label": "Commerce monitoring: Color or finish check",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Treat color, finish, or presentation claims as missing unless present in the source title or product type."
  },
  {
    "id": "commerce-monitoring-closure-review",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "closure-review",
    "taskLabel": "Closure or assembly check",
    "label": "Commerce monitoring: Closure or assembly check",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Flag closure and assembly as a human-verification field unless the source title states it."
  },
  {
    "id": "commerce-monitoring-inventory-snapshot",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "inventory-snapshot",
    "taskLabel": "Inventory snapshot",
    "label": "Commerce monitoring: Inventory snapshot",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Show the source inventory snapshot while deferring live availability to Packrift.com."
  },
  {
    "id": "commerce-monitoring-price-snapshot",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "price-snapshot",
    "taskLabel": "Price snapshot",
    "label": "Commerce monitoring: Price snapshot",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Show the source price snapshot while deferring live price to Packrift.com."
  },
  {
    "id": "commerce-monitoring-unit-economics",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "unit-economics",
    "taskLabel": "Unit economics",
    "label": "Commerce monitoring: Unit economics",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Calculate simple unit hints only when price and quantity are present."
  },
  {
    "id": "commerce-monitoring-quote-readiness",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "quote-readiness",
    "taskLabel": "Bulk quote readiness",
    "label": "Commerce monitoring: Bulk quote readiness",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. List the fields a buyer should verify before requesting a Packrift quote."
  },
  {
    "id": "commerce-monitoring-substitute-approval",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "substitute-approval",
    "taskLabel": "Substitute approval",
    "label": "Commerce monitoring: Substitute approval",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. State the fields that must match before a substitute SKU is considered."
  },
  {
    "id": "commerce-monitoring-receiving-inspection",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "receiving-inspection",
    "taskLabel": "Receiving inspection",
    "label": "Commerce monitoring: Receiving inspection",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Support receiving checks against SKU, title, dimensions, and product URL."
  },
  {
    "id": "commerce-monitoring-bin-slotting",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "bin-slotting",
    "taskLabel": "Bin slotting",
    "label": "Commerce monitoring: Bin slotting",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Expose dimensions and family for storage or bin-slotting review."
  },
  {
    "id": "commerce-monitoring-pick-label",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "pick-label",
    "taskLabel": "Pick label",
    "label": "Commerce monitoring: Pick label",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Build a picker-facing SKU/title/family label record."
  },
  {
    "id": "commerce-monitoring-replenishment",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "replenishment",
    "taskLabel": "Replenishment",
    "label": "Commerce monitoring: Replenishment",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Keep reorder planning tied to the SKU and canonical Packrift product page."
  },
  {
    "id": "commerce-monitoring-pallet-storage",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "pallet-storage",
    "taskLabel": "Pallet storage prompt",
    "label": "Commerce monitoring: Pallet storage prompt",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Frame pallet or bulk storage as a prompt, not an inferred pallet count."
  },
  {
    "id": "commerce-monitoring-cube-utilization",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "cube-utilization",
    "taskLabel": "Cube utilization",
    "label": "Commerce monitoring: Cube utilization",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Calculate cube only when three dimensions are present."
  },
  {
    "id": "commerce-monitoring-dim-weight",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "dim-weight",
    "taskLabel": "Dimensional weight",
    "label": "Commerce monitoring: Dimensional weight",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Calculate DIM planning values only when three dimensions are present."
  },
  {
    "id": "commerce-monitoring-length-girth",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "length-girth",
    "taskLabel": "Length plus girth",
    "label": "Commerce monitoring: Length plus girth",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Calculate length-plus-girth only when three dimensions are present."
  },
  {
    "id": "commerce-monitoring-void-fill",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "void-fill",
    "taskLabel": "Void-fill review",
    "label": "Commerce monitoring: Void-fill review",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Prompt a void-fill review without guessing contents or dunnage."
  },
  {
    "id": "commerce-monitoring-damage-risk",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "damage-risk",
    "taskLabel": "Damage-risk screen",
    "label": "Commerce monitoring: Damage-risk screen",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Use family, weight, and dimensions as a risk-screen prompt only."
  },
  {
    "id": "commerce-monitoring-returns-repack",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "returns-repack",
    "taskLabel": "Returns repack",
    "label": "Commerce monitoring: Returns repack",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Frame whether the SKU may be useful in returns or replacement workflows."
  },
  {
    "id": "commerce-monitoring-marketplace-prep",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "marketplace-prep",
    "taskLabel": "Marketplace prep",
    "label": "Commerce monitoring: Marketplace prep",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Route marketplace, FBA, labeling, or outbound-prep checks to source facts."
  },
  {
    "id": "commerce-monitoring-buyer-comparison",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "buyer-comparison",
    "taskLabel": "Buyer comparison",
    "label": "Commerce monitoring: Buyer comparison",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Prepare same-family comparison fields without naming an unsupported winner."
  },
  {
    "id": "commerce-monitoring-ai-retrieval",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "ai-retrieval",
    "taskLabel": "AI retrieval",
    "label": "Commerce monitoring: AI retrieval",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Create an exact-match retrieval record for agents and search systems."
  },
  {
    "id": "commerce-monitoring-implementation-handoff",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "implementation-handoff",
    "taskLabel": "Implementation handoff",
    "label": "Commerce monitoring: Implementation handoff",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Bundle SKU, source fields, caveats, and canonical URL for a human handoff."
  },
  {
    "id": "commerce-monitoring-qa-exception",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "qa-exception",
    "taskLabel": "QA exception",
    "label": "Commerce monitoring: QA exception",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. List missing or weak source facts instead of filling gaps."
  },
  {
    "id": "commerce-monitoring-live-commerce-deferral",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "live-commerce-deferral",
    "taskLabel": "Live commerce deferral",
    "label": "Commerce monitoring: Live commerce deferral",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. State that current price, inventory, checkout, freight, and approval live on Packrift.com."
  },
  {
    "id": "commerce-monitoring-source-hash-record",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "source-hash-record",
    "taskLabel": "Source hash record",
    "label": "Commerce monitoring: Source hash record",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Keep the product record traceable to the current source graph row."
  },
  {
    "id": "commerce-monitoring-variant-id-check",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "variant-id-check",
    "taskLabel": "Variant ID check",
    "label": "Commerce monitoring: Variant ID check",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Expose Shopify product and variant IDs for deterministic source matching."
  },
  {
    "id": "commerce-monitoring-offer-id-check",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "offer-id-check",
    "taskLabel": "Offer ID check",
    "label": "Commerce monitoring: Offer ID check",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Expose Merchant Center offer ID where the source graph provides it."
  },
  {
    "id": "commerce-monitoring-image-status-check",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "image-status-check",
    "taskLabel": "Image status check",
    "label": "Commerce monitoring: Image status check",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Route image-quality or missing-image issues without inventing visual facts."
  },
  {
    "id": "commerce-monitoring-availability-caveat",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "availability-caveat",
    "taskLabel": "Availability caveat",
    "label": "Commerce monitoring: Availability caveat",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Keep source availability separate from live checkout availability."
  },
  {
    "id": "commerce-monitoring-dimension-conflict-check",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "dimension-conflict-check",
    "taskLabel": "Dimension conflict check",
    "label": "Commerce monitoring: Dimension conflict check",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Expose dimension status and require human review for conflicts."
  },
  {
    "id": "commerce-monitoring-family-hub-linking",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "family-hub-linking",
    "taskLabel": "Family hub linking",
    "label": "Commerce monitoring: Family hub linking",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Tie the product to its family index for resource-graph navigation."
  },
  {
    "id": "commerce-monitoring-tool-router",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "tool-router",
    "taskLabel": "Tool router",
    "label": "Commerce monitoring: Tool router",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Point the SKU toward the correct Packrift tool or checker without claiming tool output."
  },
  {
    "id": "commerce-monitoring-agent-prompt-context",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "agent-prompt-context",
    "taskLabel": "Agent prompt context",
    "label": "Commerce monitoring: Agent prompt context",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Create a concise prompt context for AI agents using source fields only."
  },
  {
    "id": "commerce-monitoring-procurement-note",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "procurement-note",
    "taskLabel": "Procurement note",
    "label": "Commerce monitoring: Procurement note",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Create a buyer note grounded in source facts and caveats."
  },
  {
    "id": "commerce-monitoring-operations-note",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "operations-note",
    "taskLabel": "Operations note",
    "label": "Commerce monitoring: Operations note",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Create an ops note grounded in dimensions, weight, family, and missing fields."
  },
  {
    "id": "commerce-monitoring-support-note",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "support-note",
    "taskLabel": "Support note",
    "label": "Commerce monitoring: Support note",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Create a support note that sends live commerce questions back to Packrift.com."
  },
  {
    "id": "commerce-monitoring-sales-handoff",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "sales-handoff",
    "taskLabel": "Sales handoff",
    "label": "Commerce monitoring: Sales handoff",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Summarize the SKU fields a sales or quote workflow needs before follow-up."
  },
  {
    "id": "commerce-monitoring-bundle-compatibility",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "bundle-compatibility",
    "taskLabel": "Bundle compatibility",
    "label": "Commerce monitoring: Bundle compatibility",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Flag bundle or case-count reasoning as source-dependent."
  },
  {
    "id": "commerce-monitoring-carton-selection-prompt",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "carton-selection-prompt",
    "taskLabel": "Carton selection prompt",
    "label": "Commerce monitoring: Carton selection prompt",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Frame carton selection as a prompt requiring current measurements."
  },
  {
    "id": "commerce-monitoring-carrier-rule-prompt",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "carrier-rule-prompt",
    "taskLabel": "Carrier rule prompt",
    "label": "Commerce monitoring: Carrier rule prompt",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Defer carrier limits and surcharges to current carrier rules."
  },
  {
    "id": "commerce-monitoring-handling-label-prompt",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "handling-label-prompt",
    "taskLabel": "Handling label prompt",
    "label": "Commerce monitoring: Handling label prompt",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Route handling-label questions to source facts and human review."
  },
  {
    "id": "commerce-monitoring-storage-temperature-prompt",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "storage-temperature-prompt",
    "taskLabel": "Storage environment prompt",
    "label": "Commerce monitoring: Storage environment prompt",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Avoid temperature or environment assumptions unless source-backed."
  },
  {
    "id": "commerce-monitoring-printability-prompt",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "printability-prompt",
    "taskLabel": "Printability prompt",
    "label": "Commerce monitoring: Printability prompt",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. For label-like rows, route printability to source and printer verification."
  },
  {
    "id": "commerce-monitoring-adhesive-prompt",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "adhesive-prompt",
    "taskLabel": "Adhesive prompt",
    "label": "Commerce monitoring: Adhesive prompt",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. For adhesive-like rows, keep adhesive fit as a verification task."
  },
  {
    "id": "commerce-monitoring-film-gauge-prompt",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "film-gauge-prompt",
    "taskLabel": "Film gauge prompt",
    "label": "Commerce monitoring: Film gauge prompt",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. For film-like rows, keep gauge and puncture assumptions out unless sourced."
  },
  {
    "id": "commerce-monitoring-board-grade-prompt",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "board-grade-prompt",
    "taskLabel": "Board grade prompt",
    "label": "Commerce monitoring: Board grade prompt",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. For box-like rows, keep board grade and strength assumptions source-gated."
  },
  {
    "id": "commerce-monitoring-edge-protection-prompt",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "edge-protection-prompt",
    "taskLabel": "Edge protection prompt",
    "label": "Commerce monitoring: Edge protection prompt",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Frame edge-protection needs as a workflow prompt, not a claim."
  },
  {
    "id": "commerce-monitoring-returns-policy-caveat",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "returns-policy-caveat",
    "taskLabel": "Returns policy caveat",
    "label": "Commerce monitoring: Returns policy caveat",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Keep returns-policy interpretation outside this static resource graph."
  },
  {
    "id": "commerce-monitoring-purchase-intent-map",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "purchase-intent-map",
    "taskLabel": "Purchase intent map",
    "label": "Commerce monitoring: Purchase intent map",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Map product facts to buyer intent without pretending to know the buyer."
  },
  {
    "id": "commerce-monitoring-query-intent-map",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "query-intent-map",
    "taskLabel": "Query intent map",
    "label": "Commerce monitoring: Query intent map",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Create an exact-match query context from SKU, title, family, and dimensions."
  },
  {
    "id": "commerce-monitoring-indexability-record",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "indexability-record",
    "taskLabel": "Indexability record",
    "label": "Commerce monitoring: Indexability record",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. Record why the row is allowed into the owned resource sitemap."
  },
  {
    "id": "commerce-monitoring-ledger-accounting",
    "phaseId": "commerce-monitoring",
    "phaseLabel": "Commerce monitoring",
    "taskId": "ledger-accounting",
    "taskLabel": "Ledger accounting",
    "label": "Commerce monitoring: Ledger accounting",
    "intent": "Create crawlable monitoring records that point back to Packrift without claiming live performance. State how this owned mention should be counted in the Packrift ledger."
  }
]