{
"harness_version": "1.0",
"master": {
"key": "crm-automation",
"title": "CRM Automation & Orchestration",
"manual": "MANUAL.md",
"verify": "./init.sh"
},
"features": [
{
"id": "automation-spec",
"name": "Automation Spec",
"description": "A fully-specified automation: name, trigger, entry conditions, action steps, mandatory EXIT/suppression condition, failure path, idempotency note, owner, kill switch. Any step that emails a contact must reference a compliance-checked template ID.",
"status": "todo",
"dependencies": [],
"done_criteria": "A workspace/*.md file declares 'Deliverable-Type: automation-spec' and contains at least one '## Automation: <name>' block satisfying every required field in MANUAL.md §8.2.",
"verify": "python3 verify_crm_automation.py workspace/<file>.md",
"evidence": ""
},
{
"id": "lead-scoring-model",
"name": "Lead Scoring Model",
"description": "Dual-axis lead score: explicit-fit criteria table + implicit-behavior criteria table with a DECAY rule, an MQL threshold paired to a routing action, >=2 negative-scoring entries, a review cadence, and a Goodhart note with a named counter-metric.",
"status": "todo",
"dependencies": [],
"done_criteria": "A workspace/*.md file declares 'Deliverable-Type: lead-scoring-model' and passes every check in MANUAL.md §8.2 (decay, negatives, threshold-action pairing, review cadence, Goodhart note).",
"verify": "python3 verify_crm_automation.py workspace/<file>.md",
"evidence": ""
},
{
"id": "segmentation-plan",
"name": "Segmentation Plan",
"description": "Machine-evaluable segments (name, exact rule, size estimate + data source, treatment, mutual-exclusivity declaration), an RFM base layer with numeric R/F/M boundaries, and a sunset/dead segment.",
"status": "todo",
"dependencies": [],
"done_criteria": "A workspace/*.md file declares 'Deliverable-Type: segmentation-plan' with rule-bearing (non-prose) segments, a numeric RFM layer, and a sunset segment.",
"verify": "python3 verify_crm_automation.py workspace/<file>.md",
"evidence": ""
},
{
"id": "journey-map",
"name": "Journey Map",
"description": "Named, ordered lifecycle stages with entry criteria, a trigger inventory referencing every automation-spec touching the journey, a stated-minutes SLA on the inbound/speed-to-lead stage, conflict rules, and per-transition instrumentation.",
"status": "todo",
"dependencies": ["automation-spec"],
"done_criteria": "A workspace/*.md file declares 'Deliverable-Type: journey-map' with entry criteria on every stage, a minutes-SLA on the inbound stage, a trigger inventory referencing real automation-spec files, conflict rules, and metrics.",
"verify": "python3 verify_crm_automation.py workspace/<file>.md",
"evidence": ""
},
{
"id": "pipeline-audit",
"name": "Pipeline Audit",
"description": "A sourced audit: stale-deal count (age threshold stated), next-step-empty count, stage-conversion rates vs prior period, pipeline coverage ratio vs target, top-5 at-risk deals with reason codes — every number tagged with a query/source — ending in a ranked, owner-assigned action list.",
"status": "todo",
"dependencies": [],
"done_criteria": "A workspace/*.md file declares 'Deliverable-Type: pipeline-audit' with every number source-tagged, 5 reason-coded at-risk deals, and an owner-assigned ranked action list.",
"verify": "python3 verify_crm_automation.py workspace/<file>.md",
"evidence": ""
},
{
"id": "integration-runbook",
"name": "Integration Runbook",
"description": "Per-integration doc: systems + sync direction, field-mapping table, auth via env var/vault reference only (no inline secrets), sync frequency/trigger, dedupe rule, failure/retry behavior, rollback procedure.",
"status": "todo",
"dependencies": [],
"done_criteria": "A workspace/*.md file declares 'Deliverable-Type: integration-runbook' with a real field-mapping table, zero secret-pattern matches, and all six required sections present.",
"verify": "python3 verify_crm_automation.py workspace/<file>.md",
"evidence": ""
}
]
}