01-projects/mac

mac prelaunch readiness checklist

2026-05-14·checklist·status: open·source: distilled from `/dq — An Experimental TDD Approach for Analytics` deck (53 slides, prepared for MG engineers, 2026-05-14)·! medium
macpre-launchreadinesscustomer-zerodq-skills

MAC pre-launch readiness checklist

What this is

Distillation of the friction items the founder flagged on slides 51-52 of his own MG engineering deck ("What's cumbersome" + "Open invitations"). These are the things he knows he needs to fix before MAC ships commercially at $350. The deck audience (MG engineers in the room) won't care about most of these because they have founder-voice nearby to resolve ambiguity. The MAC commercial buyer at $350 won't have that voice — every item below is a place where the absence of founder-in-the-room would cause the buyer to bounce.

Source deck archived: [[06-reference/source-pdfs/2026-05-14-mg-dq-tdd-for-analytics-deck-progress-engagement.pdf]]

Sibling docs: [[01-projects/mac/2026-05-14-mac-pricing-intent]] · [[concepts/2026-05-14-test-id-grammar-mac-join-key-primitive]]

P0 (must fix before any external shipping)

1. Naming consistency in the skill family

Problem (from slide 51): /dq-audit-model plan vs /dq-audit-model audit vs /dq-generate-tests vs /dq-generate-tests --coverage. At least one mode is overloaded as a flag instead of being its own skill. Engineers stumble on which to invoke.

Fix: every verb gets its own skill name. Proposed:

Acceptance criterion: the skill family invocation surface is teachable in <90 seconds without a cheatsheet.

2. MG-specific scrub list

Problem: the deck currently exposes MG client context that cannot ship externally:

Fix: build a canonical sample dbt project (synthetic e-commerce or SaaS, ~5 models, ~3 sources, ~15 starting tests) that ships with MAC. All deck examples re-shot against the canonical project. The sample project IS part of the MAC starter — buyers can run the full loop end-to-end on day one against their own clone.

Acceptance criterion: zero references to MG, Progress, Podio, PRO, or any real person's name in any externally-shipped MAC artifact (deck, docs, sample project, copy).

3. Canonical sample dbt project

Problem: without a canonical sample project, the buyer has to apply the framework to their own data on day one, which is too high a friction. They will bounce.

Fix: ship a sample dbt project alongside MAC with:

Acceptance criterion: a buyer can git clone the sample, run /dq <model>, and see meaningful output within 5 minutes of purchase.

4. File organization in test-plans/

Problem (from slide 51): test-plans/ holds plans, coverage reports, audit reports, review docs side-by-side. Subfolders not yet enforced. Cumbersome for buyers who'll work across multiple models.

Fix: enforce subfolder structure in the MAC starter:

test-plans/
  {model_name}/
    plan.md
    coverage/
      YYYY-MM-DD-HHMM.md
    audits/
      YYYY-MM-DD-audit.md
    reviews/
      human-basis-{test_id}.md

/dq-coverage and /dq-audit write to the correct subfolder by default. The dashboard reads from the standard layout.

Acceptance criterion: tree test-plans/ is legible to a new engineer without explanation.

P1 (fix before MAC marketing campaign)

5. Pause state needs a deadline field

Problem (from slide 51): the Pause state in the 4-state triage (Stop / Go / Pause / Monitor) has no deadline. Tickets can drift in Pause forever.

Fix: Pause state requires a pause_until: YYYY-MM-DD field in the ticket. /dq dashboard surfaces "tickets paused past their pause_until date" as an explicit alert. Default pause duration if not specified: 30 days.

Acceptance criterion: no ticket can be in Pause state with a missing or past pause_until field without the dashboard surfacing it as drift.

6. Stakeholder-time bottleneck — reframe as feature

Problem (from slide 51): 30% of tickets are blocked on business decisions that need stakeholder sign-off. Decision latency outweighs implementation time. Currently named as friction.

Fix (reframe, not solve): in MAC commercial messaging, this is a FEATURE: "MAC tells you which decisions block which releases." The discipline of separating "what's blocking" from "what's broken" is the differentiated POV. The /dq dashboard should explicitly surface "Decisions Blocking Release" as a top-line metric alongside test pass/fail.

Acceptance criterion: the MAC landing page treats stakeholder-decision bottleneck as a discovered feature, not buried friction. The dashboard view names it as a primary surface.

7. Recon basis vs Rel:Production overlap

Problem (from slide 52): Recon basis may be redundant with Relative: Production. Need to decide whether to collapse or differentiate.

Fix: either (a) collapse Recon into Rel:Prod with a sub-flag for external ledger, or (b) sharpen the distinction by tying Recon explicitly to external systems-of-record (Salesforce as the source for ARR; ledger system as the source for revenue). Worked example needs to make the differentiation obvious.

Acceptance criterion: the 18-cell matrix on the hero slide answers "what goes in Recon" vs "what goes in Rel:Prod" in <30 seconds.

8. Human-scope freshness contract

Problem (from slide 52): how stale is a domain-expert sign-off allowed to be before it expires? Currently unspecified.

Fix: add expires_after: <duration> field to human-basis test reviews. Suggested defaults: 90 days for stable business rules, 30 days for actively-evolving products. /dq dashboard surfaces "human-basis sign-offs expiring this week" as an alert.

Acceptance criterion: the human-basis test cell in the matrix names its freshness contract explicitly in the docs.

P2 (post-launch backlog)

9. Cross-model umbrella detection

Problem (from slide 52): umbrella detection (the "10 tests, 3 root causes" pattern) is within-model only today. Cross-model umbrella patterns (e.g., a single source-system glitch hitting 4 downstream models) are not surfaced automatically.

Fix: add cross-model umbrella detection to /dq-triage — joins failures across all models in the project by shared source, shared field, or shared time window.

Acceptance criterion: the dashboard can answer "which failures across the whole project share a single root cause?"

10. Discovery Ticket layer abstraction

Problem (implicit in MG-specific scrub): the framework currently writes Discovery Tickets to Jira (PRO project, acli). MAC commercial buyers use Linear, GitHub Issues, plain markdown, or no ticket system at all.

Fix: abstract the Discovery Ticket layer behind adapters. Default mode: plain markdown in test-plans/{model}/tickets/. Optional adapters: Jira, Linear, GitHub Issues, Notion. Adapter choice is a config field in the MAC starter.

Acceptance criterion: a buyer with no ticket system can use MAC end-to-end with markdown-only Discovery Tickets and lose nothing.

11. Headless JSON mode + Loop heartbeat documentation

Problem (not a bug, an underleveraged feature): the headless mode (HEADLESS_MODE=true /dq --all emits structured JSON) is documented in the deck but not surfaced as a marquee feature. CI gating + Slack bot integration is a real selling point for engineering leaders.

Fix: make headless mode + /loop /dq --all heartbeat a primary feature in MAC marketing copy. Include a Slack bot reference implementation in the sample project.

Acceptance criterion: the MAC landing page names headless mode as a top-3 feature, not a buried footnote.

What's NOT on this checklist (deliberate)

Sequencing recommendation

  1. Week 1 post-MG: items 1-3 (P0). Without these, MAC literally cannot ship externally.
  2. Week 2-3: items 4-6 (P0 cleanup + P1 feature reframes). These are the difference between MAC working and MAC selling.
  3. Pre-launch: items 7-8 (P1 framework tightening). Polish the matrix and human-scope freshness.
  4. Post-launch backlog: items 9-11 (P2). Cross-model + ticket abstraction + headless-as-feature are growth multipliers, not blockers.

Related