โ† All deliverables

Pre-Delivery Gap Analysis

Rebuilding Seminars Audit โ€” Gap Analysis (2026-04-25)

For: Annette Thompson Re: Tuesday 2026-04-28 deadline check-in Prepared by: Charlie (Opus 4.7), MyExecAssistant worker-coding lane, packet 2026-04-25-003-rebuilding-tuesday-report


TL;DR

๐ŸŽ‰ Headline: The Tuesday-deadline report is already shippable as of Apr 21. The 105-page PDF (Rebuilding-Audit-for-Bob.pdf at the project root) is a complete, polished, branded deliverable โ€” cover, letter, 27 numbered sections, plus the 37-page Brand Voice Guidelines appendix. There is no scope gap that blocks Tuesday delivery.

What this run did:

The remaining unknowns are Annette-decision questions for the client conversation, not blockers to the document itself. They appear in ยง27 of the report ("Discovery questions for Bob") by design โ€” that's where they belong.


What the Tuesday report should contain (inferred scope)

From the project state, packet, and current report.html structure, the deliverable is:

  1. A consultative audit of rebuildingseminars.com (current state)
  2. Strategic framing (brand discovery, competitive landscape, personas, journey, SWOT)
  3. Site/GBP/technical audit findings
  4. Brand direction concepts + IA proposal
  5. Go-to-market plan (community, volunteer, video capture, local marketing)
  6. Growth funnel + KPIs + 90-day content calendar
  7. Tech, IP, risk, compliance, finance, insurance, succession (the "MBA-grade" parts Bob will appreciate)
  8. 90-day timeline + budget
  9. Phase-2 discovery questions for Bob
  10. Brand Voice Guidelines as appendix

Inferred from: the TOC at report.html lines 859โ€“937, the existence of Rebuilding-Audit-for-Bob.pdf from Apr 21, and the project context in boulder-move-secrets.md.


What already exists

Artifact Path State
Final shippable PDF Rebuilding-Audit-for-Bob.pdf (root) โœ… 105 pp, rendered Apr 21, 8.5 MB
Source HTML report/report.html โœ… 2,958 lines, complete
Audit-only PDF report/Rebuilding-Audit.pdf โœ… 88 pp, no appendix
Audit + brand voice PDF report/Rebuilding-Audit-with-Brand-Voice.pdf โœ… 105 pp, identical to for-Bob
Brand voice guidelines brand-voice-guidelines.pdf (root) โœ… Standalone PDF
Site audit raw material audit/ (rebuild-recommendation.md, SEO crawl JSON, GBP, NAP, schema, OG, screenshots) โœ… All present
Strategy material strategy/ (phase-2 backlog, future SEO strategy) โœ… Complete in MD + HTML
Brand assets brand/social-starter-pack.{md,pdf}, assets/logo/, assets/screenshots/ โœ…
Render pipeline render.mjs + Playwright โœ… Tested, fast (~2s repeat), 4 modes (one-off, watch, server, args)
Letters from Bob (voice source) 3 docx files in root โœ… Read into brand-voice work already
Fisher's Rebuilding (lineage source) PDF in root โœ… Referenced in ยง20 IP analysis

What's missing (gaps)

Autonomously fillable โ€” DONE this run

# Gap Fix applied
A1 $1,000 rising to $1,200 on [date] placeholder in Executive Summary ยง1 (line 1058) Rewrote to $1,000 โ€” rising to $1,200 with the next cohort + added italic clarifier "(Lock the exact rise date with the cohort start; we suggest pairing it with the next seminar opening.)". This reads as decisive guidance rather than an unfinished template.
A2 Same [date] placeholder in ยง7.5 Booking-Flow rewrite suggestion (line 1666) Same fix โ€” copy now reads cleanly as a paste-ready CTA.
A3 PDF re-render needed after A1+A2 Re-ran node render.mjs. New report/Rebuilding-Audit.pdf (audit-only) is fresh. NOTE: the for-Bob PDF at the root and report/Rebuilding-Audit-with-Brand-Voice.pdf were NOT regenerated โ€” those bundle the brand voice appendix, and the bundling logic isn't in render.mjs (see Q3 below). They retain the old [date] text.

Annette-decision gaps โ€” NEED YOUR CALL

These are the 5 things only you can decide before this ships to Bob. Each has a recommended default in [brackets] so you can quickly say "go with default" or override.

Q1: Which PDF do we send Bob?

The two for-Bob candidates are essentially identical except for whether the 37-page Brand Voice appendix is bundled:

[Recommended default: send BOTH as separate attachments โ€” the audit PDF as the primary, brand voice PDF as "the companion document referenced throughout."] Two files reads as more deliberate than one giant bundle, and Bob can read the audit on a phone in a sitting; he'll open the brand voice when he's at a desk.

Q2: Re-bundle the for-Bob PDF with the new Apr-25 edits, or send Apr-21 version?

The edits (A1, A2) are cosmetic improvements in 2 sentences. They do not change any finding, recommendation, or number.

[Recommended default: re-bundle. It's a 30-second job once we know how the bundling was done, and it's cheap insurance against Bob noticing [date] and asking "what date?".] See Q3 โ€” we may need to recreate the bundling step.

Q3: How was Rebuilding-Audit-for-Bob.pdf originally bundled? (operational, not content)

render.mjs only renders report/report.html โ†’ report/Rebuilding-Audit.pdf (88 pp). The 105-page combined PDF must have been merged with the 17-page brand-voice tail via a separate step. I can see candidates in scripts/: build_brand_pdf.py, verify_pdf.py. Likely flow was: render audit โ†’ use PyMuPDF or Pillow to append brand-voice-guidelines.pdf (or the 37-page version) โ†’ save as Rebuilding-Audit-with-Brand-Voice.pdf โ†’ copy to root.

[Recommended default: I run build_brand_pdf.py (likely the bundler) to regenerate. If it errors or does the wrong thing, fall back to a 5-line PyMuPDF merge script.] Tell me to proceed and I'll do it in the next turn.

Q4: Cover-letter email to Bob โ€” write fresh, or already drafted?

The packet doesn't reference an email. Bob will need a 100-150-word cover note when you send the PDFs, framing it as "the audit you and I discussed, here's what to read first if you're short on time, let's set up a call when you're ready to walk through it."

[Recommended default: I'll draft the email Saturday morning before you send Tuesday โ€” sets up the ยง1 exec summary as the must-read and ยง27 discovery questions as the call agenda. Want me to draft it now and queue it in Pending-Questions.md for your edit, or wait until Monday?]

Q5: Is there a separate executive-summary one-pager or slide deck Bob expects?

Sometimes consulting clients expect a 1-pager + the deep report. Bob hasn't asked for one (per memory), but a CS/MBA-trained reader often appreciates one. The ยง1 Executive Summary inside the report (~2 pages) is already that, in essence.

[Recommended default: SKIP the standalone 1-pager. The in-report exec summary does the job, and adding a separate file dilutes "open the PDF" as the single CTA.]


Render pipeline โ€” what render.mjs does

Read confirms:

I ran node render.mjs once this session to regenerate report/Rebuilding-Audit.pdf after the A1/A2 edits. Output: rendered cleanly, no errors. The bundled Rebuilding-Audit-for-Bob.pdf and Rebuilding-Audit-with-Brand-Voice.pdf were NOT touched โ€” they still contain the pre-edit text. See Q2/Q3.


Risk flags for Tuesday

Risk Likelihood Impact Mitigation
Bob spots [date] in the bundled PDF M (still in for-Bob PDF until re-bundled) L (looks like a template glitch, easy explain) Q2/Q3 โ€” re-bundle
Email goes out without a cover note L M (cold PDF feels less personal) Q4 โ€” draft Saturday
8.5 MB attachment bounces from Bob's email L L Q1 default of two files / use Drive link as fallback
You realize on Monday you wanted to add something M (it's a 105-page report โ€” easy to want one more thing) L Build in a Monday afternoon block to do one final pass; no scope expansion this week

Net: ZERO blocker risks for the Tuesday deadline. The work is done. The remaining decisions are operational and 30-90 minutes total.


Estimated remaining work to ship by Tuesday

Total: ~80 minutes, almost all of it light. Most of it can happen Saturday/Sunday/Monday in tiny windows.


Drift check โ€” private/public split audit

Per the standing rule (no Boulder/Colorado/Bob-personal-relationship/rent-trade language in the deliverable), I checked:

No drift detected in the deliverable.


Files modified or created this run

NOT modified: