Skip to content

docs(rc1): partner outreach checkpoint (Tier-2 B)#470

Merged
trilamsr merged 2 commits into
mainfrom
docs/tier2-B-partner-outreach
Jun 2, 2026
Merged

docs(rc1): partner outreach checkpoint (Tier-2 B)#470
trilamsr merged 2 commits into
mainfrom
docs/tier2-B-partner-outreach

Conversation

@trilamsr

@trilamsr trilamsr commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Ships rc1 Tier-2 item B (Partner outreach checkpoint). Adds docs/partner-outreach.md — the outreach-ready package — and flips the cut-criterion status from ☐ planned → ⧗ in progress by replacing the hard-coded artifact_exists: "false" with a real artifact-presence + tracker-row-count gate.

The artifact carries (per the §Tier-2 B rubric):

  1. Persona list — 12 operator archetypes (P1-P12: GPU-cloud providers, frontier-model labs, hyperscaler ML infra teams, OTel-adjacent maintainers, mid-cap AI startups, HPC centers, GPU-renting marketplaces, observability vendor PMs, kernel-engineering shops, GPU-renting end customers, CNCF TAG-Observability, MLOps community organizers). Each archetype carries a one-line "why they care".
  2. Outreach message template — ~190-word cold-pitch with a specific ask (install the production-preset Helm chart and tell us what broke), plus audit-funding + OSS-maintainer variants.
  3. Talking points — seven bullets covering the 15-pattern coverage story, the RFC-0013 OCB-distro pivot, the why-now structural signal, three-layer differentiation (vs Prometheus + DCGM-exporter alone; vs Datadog Watchdog; vs vendor-tied exporters), production posture, what-we-are-NOT framing, and the conversation ask.
  4. Tracker table shape — columns (name, role, org-archetype, first contacted, status, notes), six-token status vocabulary (queued / contacted / meeting-set / feedback-received / pilot-deploy-attempted / declined / deferred), and four hygiene rules (one row per person, one-line notes, no private contact info, honesty in declined/deferred rows).
  5. Success criteria — SC-1 (≥5 contacted), SC-2 (≥2 feedback responses), SC-3 (≥1 pilot-deploy attempt). SC-3 is the GA blocker.

Why ⧗ in progress, not ☑ shipped

The artifact ships today (file-exists passes); the gate script counts non-placeholder rows in the §Tracker table and requires ≥3 real entries before flipping ☑. Today's count is zero (only the column-shape placeholder row exists), so status correctly reads ⧗ in progress. Honest about the state.

Root cause addressed

The previous YAML hard-coded artifact_exists: "false" with a comment noting "this is tracked on the issue tracker." That made the criterion ungatable — no PR could close it because there was no falsifiable artifact in the repo. This PR ships the artifact at a stable path so the gate becomes file-driven (the same shape as Tier-2 A's RFP) and the path forward to GA is mechanical: add tracker rows, re-render, status flips.

Cross-links (A+ scope)

  • docs/NORTHSTARS.md §O5 — adds a "Partner outreach plan" paragraph pointing at docs/partner-outreach.md.
  • docs/RELEASE-CHECKLIST.md GA additional gates — adds a "Partner outreach checkpoint cleared" row before "Real-operator integration verified"; SC-3 row is the same operator as the case-study writeup.
  • Cross-link from docs/security-audit-rfp.md §Funding plan + gap is already present (the audit-funding variant in §2 carries the pointer back).

Files touched

  • docs/partner-outreach.md (new, 389 lines) — the artifact.
  • docs/cut-criteria.yaml — Tier-2 B rubric_check now exercises test -f docs/partner-outreach.md + tracker-row awk gate; rubric prose + notes updated.
  • docs/v1-rc1-cut-criteria.md — re-rendered via make cut-criteria-render MILESTONE=all. Not hand-edited.
  • docs/NORTHSTARS.md — §O5 cross-link to the artifact.
  • docs/RELEASE-CHECKLIST.md — GA gate matrix row.

Test plan

  • make doc-check clean (includes cut-criteria-check, slo-rules-check, chart-appversion-check, rfc-status-check, alert-check, link-rot, YAML cross-link)
  • bash scripts/validator-recipe.sh clean
  • make cut-criteria-status MILESTONE=v1.0-rc1 shows B = ⧗ in progress
  • make cut-criteria-render MILESTONE=all produces no diff against committed v1-rc1-cut-criteria.md / v1-ga-cut-criteria.md
  • No 🤖 Generated with Claude Code footer
  • DCO sign-off on commit
  • CI doc-check / cut-criteria-check / dco-check green on push

Follow-up

After this PR merges I will file a tracking issue with the rc1-prep label for "execute partner outreach: contact P1-P12 archetypes per docs/partner-outreach.md" so the §Tracker rows accumulate against a real owner. The issue is the unblock signal once SC-1/SC-2/SC-3 land.

Adds the v1.0 rc1 → GA partner-outreach plan at `docs/partner-outreach.md` — 12-archetype persona list, cold-pitch template, talking points, tracker shape, numeric success criteria (≥5 contacted, ≥2 feedback, ≥1 pilot-deploy). Flips rc1 Tier-2 B cut criterion from ☐ planned → ⧗ in progress.

Add docs/partner-outreach.md — 12-archetype persona list, ≤200-word
cold-pitch template with audit-funding + OSS-maintainer variants,
seven live-conversation talking points (15-pattern coverage, RFC-0013
OCB-distro pivot, differentiation vs Prometheus / Datadog / DCGM
alone), tracker table shape with status vocabulary + hygiene rules,
and three falsifiable success criteria (≥5 contacted, ≥2 feedback,
≥1 pilot-deploy). SC-3 is the GA blocker.

Flips rc1 Tier-2 B from ☐ planned → ⧗ in progress: the artifact ships
today (artifact_exists passes); the gate script counts non-placeholder
§Tracker rows and requires ≥3 real entries before flipping ☑.

Cross-links: NORTHSTARS.md §O5 (Distribution & Community) → partner
outreach plan; RELEASE-CHECKLIST.md GA gate matrix adds a partner-
outreach-checkpoint row before "Real-operator integration verified"
(SC-3 row is the same operator as the case-study writeup).

Renders verified via `make cut-criteria-render MILESTONE=all`; doc-check
+ cut-criteria-check + slo-rules-check + chart-appversion-check clean.

Signed-off-by: Tri Lam <tree@lumalabs.ai>
@trilamsr

trilamsr commented Jun 2, 2026

Copy link
Copy Markdown
Contributor Author

Independent Adversarial Review: PR #470 (rc1 Tier-2 B partner outreach)

B/A/A+ Criteria for this PR:

  • Artifact completeness: 12-archetype persona list (✓), cold-outreach pitch ≤200 words (✓), talking points crib (✓), tracker shape (✓), numeric success criteria (✓).
  • Falsifiability: persona list is concrete with org examples; success criteria are numeric (5/2/1 ladder); gate_script is executable.
  • Style parity: matches security-audit-rfp.md structure (status table, "read in order", companion artifacts); cross-links to NORTHSTARS, RELEASE-CHECKLIST, cut-criteria.
  • Simplification + comment discipline: outreach doc is proportional (297 lines); cut-criteria.yaml notes section is justified but borders redundancy.

Critical Issues:

  1. BUG: gate_script threshold misaligned to success criteria — Line 102 of cut-criteria.yaml checks n >= 3 to flip Tier-2 B status to ☑, but success criterion SC-1 (line 379 of partner-outreach.md) defines "≥5 operators contacted" as the actual threshold. The comment on lines 80–84 (cut-criteria.yaml) incorrectly claims "at least three real rows." This breaks the automated cut-criteria render gate; the criterion will flip to ☑ when only 3 operators are contacted, not 5. The 5/2/1 ladder is stated as a contract (partner-outreach.md §5 bottom), so lowering to 3 violates the Tier-2 rubric.

    • Fix: Change line 102 to exit (n >= 5 ? 0 : 1) and correct the comment to read "at least five real (non-placeholder) rows."
  2. RISK: talking-points count inconsistency — Line 261 (partner-outreach.md) claims "Six points; each anchors a question…" but the numbered list contains 7 bullets (points 1–7, lines 264–320). The cut-criteria.yaml notes (line 110) correctly state "seven live-conversation talking points." This is confusing for someone implementing the strategy; an implementer reading §3 intro may prepare for 6 and miss point 7.

    • Fix: Change line 261 to "Seven points; each anchors a question the persona is likely to ask back."
  3. RISK: "queued" status excluded from SC-1 but not explicit — The gate_script correctly excludes "queued" from the 6 valid status tokens (lines 96–98), but success criterion SC-1's definition doesn't explicitly enumerate the valid set; it says Status ∈ {contacted, meeting-set, feedback-received, pilot-deploy-attempted, declined, deferred} (line 379), which omits "queued." A tracker row marked "queued" will not count toward the 5-row threshold, even though "queued" is a legitimate status. This is actually correct behavior (queued ≠ contacted), but the SC-1 definition should match the gate_script logic for clarity.

    • Fix: Ensure SC-1 definition (line 379) explicitly lists all 6 tokens: add "queued" to the set or note that queued rows are explicitly not counted toward SC-1.
  4. NIT: link style inconsistency — Partner-outreach.md uses both bare relative links and inconsistent markup. Compare to security-audit-rfp.md, which consistently uses backtick-markdown style. Not load-bearing but violates parity.

  5. NIT: status table redundancy in cut-criteria.yaml notes — Lines 105–119 (cut-criteria.yaml §notes) repeat nearly all artifact-summary claims from partner-outreach.md lines 130–138. Consider condensing notes to link and summary. Saves ~70 bytes and deduplicates.


Verdict: BLOCK pending fix of critical bug

The 3 vs. 5 threshold mismatch is a show-stopper — it would cause the GA release checklist gate to falsely flip ☑ when the actual success criterion has not been met. Fix lines 102 and 80–84 (cut-criteria.yaml), confirm line 261 (partner-outreach.md) is updated to "Seven points," and re-render the cut-criteria table to validate gate correctness. Once done, this is A (ship after simplification).

The redundancy nit and link-style nit are optional cleanup; the risk on queued-status clarity is low-severity (behavior is correct, just under-documented).

Reviewer-BLOCK fixes on PR #470:

- docs/cut-criteria.yaml §B gate_script: bump n>=3 to n>=5 so the
  executable gate matches SC-1 (5 operators contacted) instead of
  flipping a status check at 3 rows.
- docs/cut-criteria.yaml §B comments + notes: 'three' to 'five';
  add prose pinning queued exclusion to SC-1.
- docs/partner-outreach.md §3 header: 'Six points' to 'Seven points'
  (section has 7 numbered bullets).
- docs/partner-outreach.md §SC-1: clarify that queued rows do not
  count toward the 5, matching the gate_script status whitelist.
- docs/v1-rc1-cut-criteria.md: re-rendered from YAML.

Signed-off-by: Tri Lam <tree@lumalabs.ai>
@trilamsr

trilamsr commented Jun 2, 2026

Copy link
Copy Markdown
Contributor Author

BLOCK fixes applied: (1) gate_script 3→5 matches SC-1; (2) header point-count fixed; (3) queued explicitly excluded from gate. Re-requesting review.

@trilamsr

trilamsr commented Jun 2, 2026

Copy link
Copy Markdown
Contributor Author

Independent Adversarial Review: PR #470 POST-BLOCK-FIX (commit 3f419a6)

Per-Fix Verification

  1. gate_script n >= 3n >= 5

    • Line 494 (docs/cut-criteria.yaml): END { exit (n >= 5 ? 0 : 1) }
    • Executable gate now matches SC-1 threshold correctly.
  2. Header "Six points" → "Seven points"

    • Line 133 (docs/partner-outreach.md): "Seven points; each anchors a question the persona is likely to ask back."
    • Consistent with §3 content (7 numbered bullets).
  3. SC-1 row clarifies "queued doesn't count toward 5"

    • Lines 251–252 (docs/partner-outreach.md SC-1): queued rows do not count toward the 5 — outreach is "actually sent", matching the executable gate.
    • Binds written contract to gate script.

Threshold Flip-Test: PASS

  • 4 tracker rows → gate FAILS (⧗ in progress)
  • 5 tracker rows → gate PASSES (☑ complete)

Simplification Sweep: NO NEW ISSUES

All BLOCK findings closed. Optional nits (redundancy + link style) remain unfixed per builder choice.

VERDICT: A (Ship)

@trilamsr trilamsr enabled auto-merge (squash) June 2, 2026 04:07
@trilamsr trilamsr merged commit bb422d5 into main Jun 2, 2026
12 checks passed
@trilamsr trilamsr deleted the docs/tier2-B-partner-outreach branch June 2, 2026 04:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant