Sales & Marketing Asset System — Continuation Prompt

Purpose: Paste this entire document as the first message in a new Claude Code session to finish all remaining items, run a full senior review, and set up continuous refinement.

Last updated: 2026-03-18 Session workspace: C:\Users\zasya\Documents\_solanasis


Context: What Was Built

We built a comprehensive sales and marketing asset system for Solanasis, a wealth management cybersecurity firm. The system includes dual-mode web/PDF resource pages, a PDF generation pipeline, an expanded resources hub, E2E tests, and internal cheat sheets. A senior reviewer scored the implementation 8/10 with all must-fix items resolved.

Architecture Overview

The system uses a dual-mode rendering pattern:

  • Web mode (default): Pages render inside BaseLayout.astro with full site chrome (nav, footer, sidebar with download card and booking CTA)
  • Print mode (?print=true): Pages render as standalone HTML with brand header (Playfair Display + Montserrat via Google Fonts), copper accent line, and compact US Letter-optimized CSS. No site nav/footer.

The switch is controlled by Astro.url.searchParams.get('print') === 'true' in both the page file and PrintLayout.astro. All pages using this pattern have export const prerender = false to enable SSR (query params don’t work with prerendered/static pages).

Critical Technical Pattern

Pages use separate conditionals (NOT a ternary) for slot content:

{isPrint && <Fragment>
    ...print-optimized content (goes to PrintLayout's default <slot />)...
</Fragment>}
 
{!isPrint && <Fragment slot="download-button">
    ...download button for sidebar...
</Fragment>}
 
{!isPrint && <Fragment slot="web-content">
    ...Tailwind-styled web content...
</Fragment>}

DO NOT use a ternary with Fragment wrappers like {isPrint ? (<Fragment>A</Fragment>) : (<Fragment>B</Fragment>)}. This breaks Astro’s slot system because named <Fragment slot="..."> elements must be direct children of the parent component, not nested inside another Fragment.

Files Created (DO NOT rebuild)

Infrastructure:

  • solanasis-site/src/layouts/PrintLayout.astro — Dual-mode layout with print CSS classes (.print-page, .print-header, .print-body, .print-card, .print-grid-2, .print-grid-65-35, .print-table, .print-cta, .print-three-party, .print-badges, .print-divider, .print-urgency, .print-page-break, .print-no-break, .check-list)
  • solanasis-site/scripts/generate-pdfs.mjs — Playwright PDF generator (US Letter, networkidle + fonts.ready wait, supports single slug via CLI arg)

Resource Pages (all in solanasis-site/src/pages/resources/):

  • assessment-overview.astro — Generic CRA one-pager (all verticals)
  • ria-assessment.astro — RIA-specific with Reg S-P urgency banner, SEC exam priorities
  • estate-assessment.astro — Estate attorney with ABA Rules 1.1/1.6, “compliance counsel” terminology
  • foundation-assessment.astro — Board-ready framing, transparent pricing (7,500), 5-step process
  • capabilities.astro — 2-page brief: problem + three-party + CRA deliverables (page 1), services + team bios + industries (page 2)
  • faq.astro — 13 questions in 4 categories (The Assessment, Working Together, After the Assessment, Regulatory Questions); web view uses <details>/<summary> accordion
  • reg-sp-guide.astro — 4-page educational guide: 3 major requirements, 4 common gaps, readiness checklist, 10-week timeline
  • internal.astro — Noindex internal cheat sheet for mobile access during sales calls

Other Pages:

  • solanasis-site/src/pages/partners.astro — Partner/referral kit (10%/15% fees, 2,500 cap)
  • solanasis-site/src/pages/resources.astro — Expanded hub with 9 resources across 4 categories, typed Resource interface

Updated Files:

  • solanasis-site/src/components/Nav.astro — Resources dropdown: Blog, Free Compliance Checklist, Assessment Overview, Capabilities Brief, Reg S-P Readiness Guide, FAQ, divider, All Resources (desktop + mobile)
  • solanasis-site/tests/e2e/resource-pages.spec.ts — 46 new E2E tests (page loads, content, PDF links, print layout, nav dropdown)
  • solanasis-site/tests/e2e/smoke.spec.ts — Added 8 new pages to smoke test list (22 total pages)
  • solanasis-site/tests/e2e/wealth-management-niche.spec.ts — Updated nav link assertions and resources page tests

Internal Docs:

  • solanasis-docs/sales/assets-cheat-sheet.md — Markdown version of all 9 assets with descriptions, URLs, audiences, when-to-use, talking points

Test Baseline

  • 227 total tests across 12 spec files
  • 218 passing, 9 failing (6 blog tests are pre-existing/unrelated; 3 were fixed in our session)
  • Key passing suites: resource-pages (46), smoke (22+), wealth-management-niche (59), vertical-pages (26)
  • Tests require dev server on localhost:4321; use --workers=1 or --workers=2 to avoid resource exhaustion

Existing Downloads on Disk

Only these PDFs exist in solanasis-site/public/downloads/:

  • solanasis-compliance-checklist.pdf (pre-existing)
  • solanasis-pitch-deck.pdf (pre-existing)

All 8 new resource PDFs are NOT yet generated. Download buttons on resource pages will 404 until Phase 1 is complete.

Brand Design Tokens

TokenValueUsage
Navy (primary)#020532Headings, nav, footer, print header
Copper (accent)#C47A3DCTAs, links, accents, print accent line
Parchment#FEF9F1Page background
Warm-stone#F0EBE4Card borders, dividers
Charcoal#111827Body text
White#FFFFFFCard backgrounds

Print fonts: Playfair Display (headings, 600/700/800) + Montserrat (body, 400/500/600/700) via Google Fonts CDN Web fonts: Inter (400/500/600/700) via @fontsource

Content Style Guide (Critical Rules)

Before editing ANY user-facing copy, read solanasis-site/content-style-guide.md. Key rules:

  • NO em dashes () in marketing copy; use semicolons, periods, colons, commas, or parentheses
  • NO banned words: “genuinely”, “seamless”, “frictionless”, “SMBs”, “audit” (use “examination” for regulatory visits)
  • Terminology: “Compliance Readiness Assessment” (never “Resilience Checkup”), “cybersecurity” over “compliance” in headings, “examination” not “audit”
  • Max 3 sentences per body paragraph
  • Signature terms (2-3 per page): quiet failure, false comfort, drift, blind spot, risk debt, operational drag, hidden risk, brittle systems, messy handoffs
  • Approved transitions (1+ per page): So, Which is why, Here’s the thing, Let’s face it, Imagine
  • Semicolons as warm connectors: 2+ per page
  • Bold list items: Use period+sentence (**Label.** Text) or colon, never em dash
  • Three-party positioning: “We coordinate with everyone. We replace no one.” (compliance consultant / Solanasis / IT provider)
  • Partner-safe phrases: Never say “we prep you for exams,” “we handle your compliance,” or “replace your compliance consultant”
  • Acronym policy: Do NOT expand SEC, RIA, ABA, FINRA, NIST, WISP, CISO, DORA, MFA, Reg S-P on the website

Regulatory Facts (Must Be Accurate)

FactValueSource
Reg S-P compliance deadline (smaller entities)June 3, 2026SEC Small Entity Compliance Guide
Reg S-P compliance deadline (larger entities)December 2025SEC Final Rule
Reg S-P adoption dateMay 2024 (May 16, 2024)SEC
Vendor notification window72 hoursReg S-P amendments
Client notification window30 daysReg S-P amendments
ABA competence ruleRule 1.1ABA Model Rules
ABA confidentiality ruleRule 1.6ABA Model Rules
Estate attorney label”Compliance Counsel” (not “Compliance Consultant”)Style guide
Foundation assessment pricing7,500Foundation assessment page
Blackbaud breach figure$59M+Foundation assessment page
Partner referral: standard rate10% of first engagement revenueReferral playbook v2.0
Partner referral: Founding Partner rate15% (first 10 partners)Referral playbook v2.0
Partner referral: retainer bonus$500 (client signs retainer within 60 days AND pays first invoice)Referral playbook v1.1
Partner referral: deal protection120 daysReferral playbook v1.1
Partner referral: per-client cap$2,500Referral playbook v1.1

Phase 1: Generate All PDFs

This is the highest priority. Every resource page has a “Download Free PDF” button that currently 404s.

Steps

  1. Start the dev server:

    cd solanasis-site && npx astro dev --port 4321
  2. In a separate terminal, generate all PDFs:

    node scripts/generate-pdfs.mjs
  3. Verify all 8 PDFs were created in public/downloads/:

    • solanasis-assessment-overview.pdf
    • solanasis-ria-assessment.pdf
    • solanasis-estate-assessment.pdf
    • solanasis-foundation-assessment.pdf
    • solanasis-capabilities-brief.pdf
    • solanasis-faq-sheet.pdf
    • solanasis-reg-sp-guide.pdf
    • solanasis-partner-kit.pdf
  4. Visual spot-check each PDF using Chrome browser automation or Playwright:

    • Brand header renders (navy band, “Solanasis” in Playfair Display, contact info)
    • Copper accent line below header
    • Content is readable, no overlapping text
    • Page breaks land between sections (not mid-sentence or mid-card)
    • Footer shows page URL, short URL, and “Last updated” date
    • US Letter format (8.5 x 11 inches)
    • Cards and grids render correctly (not cut off at margins)
  5. If any PDF has rendering issues:

    • Check the print branch of the source .astro file
    • Look for: missing .print-no-break on cards that split across pages, incorrect .print-page-break placement, content that overflows the 6.5” content width
    • Fix the source file and regenerate: node scripts/generate-pdfs.mjs [slug]
  6. After all PDFs pass visual inspection, verify download links work:

    # With dev server running
    for pdf in assessment-overview ria-assessment estate-assessment foundation-assessment capabilities-brief faq-sheet reg-sp-guide partner-kit; do
      curl -sI "http://localhost:4321/downloads/solanasis-${pdf}.pdf" | head -1
    done

    All should return HTTP/1.1 200 OK.


Phase 2: Configure Short URLs in short.io

Use Chrome browser automation to log into short.io and create the following links under the go.solanasis.com domain.

Short PathFull Destination URLNotes
/overviewhttps://solanasis.com/resources/assessment-overviewGeneric assessment
/riahttps://solanasis.com/resources/ria-assessmentRIA one-pager
/estatehttps://solanasis.com/resources/estate-assessmentEstate one-pager
/foundationshttps://solanasis.com/resources/foundation-assessmentFoundation one-pager
/capabilitieshttps://solanasis.com/resources/capabilitiesCapabilities brief
/faqhttps://solanasis.com/resources/faqFAQ sheet
/reg-sphttps://solanasis.com/resources/reg-sp-guideReg S-P guide
/partnerhttps://solanasis.com/partnersPartner/referral kit
/resourceshttps://solanasis.com/resourcesResources hub
Short PathDestination
/introCal.com booking page
/checklistVerify current destination; should point to compliance checklist PDF or resources page

Verification

After creating all links, verify each one resolves correctly:

for path in overview ria estate foundations capabilities faq reg-sp partner resources; do
  echo -n "go.solanasis.com/${path} -> "
  curl -sI "https://go.solanasis.com/${path}" | grep -i "location:" | head -1
done

Phase 3: Full Verification & Quality Scan

3a. E2E Test Suite

Run the full test suite with the dev server on port 4321:

npx playwright test --workers=2

Expected results:

  • 227 total tests
  • 218+ should pass (46 resource-pages, 22+ smoke, 59 wealth-management, 26 vertical-pages, etc.)
  • 6 blog tests may fail (pre-existing, unrelated to asset system)
  • Zero failures in resource-pages.spec.ts, smoke.spec.ts, wealth-management-niche.spec.ts

If any resource or smoke tests fail, investigate and fix before proceeding.

3b. Banned Term Scan

Search ALL .astro files in src/pages/ and src/layouts/ for banned terms. Report every violation with file:line.

Terms to scan for:

PatternRuleException
(em dash, U+2014)Zero in user-facing textOK in JSDoc @see comments, OK in <title> tags if needed
genuinelyZero everywhereNone
seamlessZero everywhereNone
frictionlessZero everywhereNone
SMBsZero everywhereUse “growing organizations”
audit (case-insensitive)Zero in regulatory contextOK in “activity logs” (not “audit trails”), OK in literal file names, OK in code variable names
Resilience CheckupZero everywhereMust use “Compliance Readiness Assessment”

Also scan for:

  • Hardcoded https://go.solanasis.com/intro (should use BOOKING_URL constant)
  • Hardcoded Book a 30-Minute Intro Call (should use CTA_TEXT constant)

3c. Content Style Spot-Check

Read solanasis-site/content-style-guide.md first. Then spot-check 5 resource pages (assessment-overview, ria-assessment, capabilities, faq, reg-sp-guide):

For each page, verify:

  • Max 3 sentences per body paragraph (in user-facing text, not code)
  • At least 2 signature terms used (quiet failure, false comfort, drift, blind spot, risk debt, operational drag, hidden risk, brittle systems, messy handoffs)
  • At least 1 approved transition (So, Which is why, Here’s the thing, Let’s face it, Imagine)
  • At least 2 semicolons used as warm connectors (not in code; in paragraph text)
  • Bold list items use period+sentence or colon (never em dash)
  • No duplicate catchphrases across pages (e.g., don’t reuse the same clever line in multiple assets)

For each of the 8 resource pages + partners page:

  • PDF download href matches a file that now exists in public/downloads/
  • Cal.com booking links have BOTH data-cal-link="mrsunshine/intro" AND href={BOOKING_URL}
  • Short URL in the print footer matches the correct go.solanasis.com/[path]
  • Web URLs in the internal cheat sheet (resources/internal.astro) and markdown cheat sheet (solanasis-docs/sales/assets-cheat-sheet.md) are consistent
  • All 9 resource entries in resources.astro have correct webUrl and downloadUrl values

3e. Mobile Responsiveness Check

Use Playwright or Chrome browser automation at 375px width to check these 3 pages:

  • /resources/assessment-overview
  • /resources/capabilities
  • /partners

Verify for each:

  • No horizontal scrollbar
  • Text is readable (not cut off or overlapping)
  • Cards stack vertically (1 column)
  • CTA buttons are full-width or comfortably tappable (min 44px height)
  • Nav hamburger menu works and shows all resource links
  • Download card sidebar moves below main content (not side-by-side on mobile)

3f. Print Mode Cross-Check

For 3 pages (assessment-overview, capabilities, reg-sp-guide), load ?print=true and verify:

  • .print-header element is present and visible
  • No site navigation or footer from BaseLayout
  • Google Fonts load (Playfair Display for headings, Montserrat for body)
  • hi@solanasis.com and 303-900-8969 appear in header
  • Footer shows page URL, short URL, and last updated date

Phase 4: Senior Reviewer

After ALL of Phases 1-3 are complete, launch the senior-reviewer agent. This is mandatory per the Quality Gate in solanasis-site/CLAUDE.md.

Reviewer Scope

The reviewer should read ALL of these files and evaluate:

Files to review:

  • solanasis-site/src/layouts/PrintLayout.astro
  • solanasis-site/scripts/generate-pdfs.mjs
  • All 8 files in solanasis-site/src/pages/resources/
  • solanasis-site/src/pages/partners.astro
  • solanasis-site/src/pages/resources.astro
  • solanasis-site/src/components/Nav.astro
  • solanasis-site/tests/e2e/resource-pages.spec.ts
  • solanasis-docs/sales/assets-cheat-sheet.md
  • solanasis-site/content-style-guide.md (for style compliance checking)

Evaluation criteria:

  1. Regulatory accuracy — All facts in the “Regulatory Facts” table above must be correct in every page they appear
  2. Three-party positioning — Consistent across all pages. Never oversteps into compliance consultant territory
  3. Style guide compliance — No banned words, no em dashes, proper terminology, signature terms used
  4. Professional quality — Score each page 1-10 for polish, persuasiveness, and wealth management specificity
  5. Code quality — Proper slot usage, no duplicate code that should be extracted, constants used correctly
  6. PDF quality — If PDFs are generated, verify they look professional (spot-check 2-3)
  7. SEO — Unique titles, unique meta descriptions, proper heading hierarchy, canonical URLs
  8. Accessibility — ARIA attributes, keyboard navigation, 44px touch targets, semantic HTML
  9. Cross-page consistency — Same pricing, same program terms, same team bios across all assets

Reviewer output format:

  1. Overall score (1-10)
  2. Per-page scores (1-10)
  3. Must-fix issues (with file:line references)
  4. Should-fix issues
  5. Observations (what’s done well)

Post-Review

  • Fix ALL must-fix items immediately
  • Fix should-fix items unless they’re clearly low priority
  • Re-run the E2E tests after fixes
  • Log any deferred items in FUTURE-SUGGESTIONS.md

Phase 5: Additional Assets (If Time Permits)

5a. Case Study Template (Canva MCP)

Use the Canva MCP tools to create a reusable 1-page case study template:

Design specs:

  • Brand colors: Navy #020532, Copper #C47A3D, Parchment #FEF9F1
  • US Letter (8.5 x 11 in)
  • Header: Navy band with “Solanasis” and case study title
  • Sections: Client Profile (anonymized), The Challenge, Our Approach, Results (with metrics), Client Quote
  • Footer: solanasis.com | hi@solanasis.com | 303-900-8969
  • Placeholder text showing the format for each section

Save to: Canva folder “Solanasis Sales Assets”

5b. Engagement Overview

Create a “What to Expect” document for prospects who have agreed to the Compliance Readiness Assessment. This helps reduce pre-engagement anxiety and sets clear expectations.

Content outline:

  1. Pre-engagement: What we need from you (access credentials list, primary contact, preferred communication)
  2. Day-by-day timeline: What happens during the 10 business days
  3. Your team’s time commitment: approximately 3-4 hours total (1-hour kickoff, 1-hour walkthrough, 1-2 hours of Q&A)
  4. Deliverables list: Gap analysis, risk register, 90-day roadmap, DR restore report, maturity scorecard, executive summary
  5. After the assessment: Three paths (execute independently, remediation sprint, fractional partner)
  6. What we DON’T do: Write policies, prep for exams, replace your compliance consultant

Implementation: New resource page at /resources/engagement-overview using PrintLayout, OR a simple markdown doc at solanasis-docs/sales/engagement-overview.md if a web page is overkill. Use judgment.


Phase 6: Continuous Refinement Setup

Create a refinement checklist at solanasis-docs/sales/asset-refinement-checklist.md.

Checklist Contents

Monthly Review (15 minutes):

  • Run banned term scan across all resource pages
  • Verify all 8 PDF download links return 200
  • Verify all 10 short URLs redirect correctly
  • Check Umami analytics: which resource pages get the most traffic?
  • Check which PDFs get downloaded most (if tracking is set up)
  • Review any new blog posts for cross-links to resource pages

Quarterly Review (1 hour):

  • Re-read all resource page copy for freshness and accuracy
  • Check regulatory dates: Is the Reg S-P June 2026 deadline still in the future? (After June 2026, update language from “deadline approaching” to “now in effect”)
  • Review team bios for accuracy (new team members, new credentials)
  • Check pricing: Is 7,500 for foundations still accurate?
  • Check partner terms: Any changes to referral percentages or caps?
  • Regenerate all PDFs if any content changed: node scripts/generate-pdfs.mjs
  • Run full E2E suite to catch regressions

Content Pipeline (Ongoing):

  • Vendor risk management guide (mentioned in resources.astro “coming soon” section)
  • AI governance guide (mentioned in resources.astro “coming soon” section)
  • Case studies as real engagements complete (use Canva template from Phase 5a)
  • Industry-specific blog posts should link to the relevant vertical assessment page
  • Update internal cheat sheet whenever a new asset is added

A/B Testing Candidates:

  • Assessment overview headline (current: “Your Cybersecurity Controls Look Fine on Paper…“)
  • CTA button text (“Book a 30-Minute Intro Call” vs “Schedule a Free Consultation” vs “Let’s Talk”)
  • Capabilities brief structure (problem-first vs services-first)
  • Resource hub layout (featured resource prominence, category ordering)

Technical Maintenance:

  • If Astro or Playwright major version updates, re-test PDF generation
  • If Cloudflare adapter changes SSR behavior, verify ?print=true still works
  • If Google Fonts CDN changes, verify print layout fonts still load
  • Monitor PDF file sizes (should be < 500KB each; compress images if needed)

Execution Order

  1. Phase 1 — Generate PDFs (blocks everything; download buttons are broken without this)
  2. Phase 2 — Short URLs (can run in parallel with Phase 3)
  3. Phase 3 — Full verification (tests, scans, mobile, links)
  4. Phase 4 — Senior reviewer (must happen AFTER Phases 1-3)
  5. Phase 5 — Additional assets (only if Phases 1-4 are clean)
  6. Phase 6 — Write the refinement checklist (always do this last)

After the senior reviewer passes, commit everything and push to main.


Quick Reference: Key File Paths

FilePurpose
solanasis-site/src/layouts/PrintLayout.astroDual-mode layout (web + print)
solanasis-site/scripts/generate-pdfs.mjsPlaywright PDF generator
solanasis-site/src/pages/resources.astroResources hub (9 entries)
solanasis-site/src/pages/partners.astroPartner/referral kit
solanasis-site/src/pages/resources/internal.astroInternal cheat sheet (noindex)
solanasis-site/src/components/Nav.astroNavigation with Resources dropdown
solanasis-site/src/lib/constants.tsBOOKING_URL, CTA_TEXT, SITE_URL
solanasis-site/content-style-guide.mdVoice, terminology, positioning rules
solanasis-site/public/downloads/PDF output directory
solanasis-site/tests/e2e/resource-pages.spec.ts46 resource page tests
solanasis-docs/sales/assets-cheat-sheet.mdMarkdown cheat sheet
solanasis-docs/sales/asset-refinement-checklist.mdMonthly/quarterly review (create in Phase 6)

Quick Reference: All Short URLs

Short URLDestinationStatus
go.solanasis.com/introCal.com bookingEXISTS — do not modify
go.solanasis.com/checklistResources page / checklist PDFVERIFY existing
go.solanasis.com/overview/resources/assessment-overviewCREATE in Phase 2
go.solanasis.com/ria/resources/ria-assessmentCREATE in Phase 2
go.solanasis.com/estate/resources/estate-assessmentCREATE in Phase 2
go.solanasis.com/foundations/resources/foundation-assessmentCREATE in Phase 2
go.solanasis.com/capabilities/resources/capabilitiesCREATE in Phase 2
go.solanasis.com/faq/resources/faqCREATE in Phase 2
go.solanasis.com/reg-sp/resources/reg-sp-guideCREATE in Phase 2
go.solanasis.com/partner/partnersCREATE in Phase 2
go.solanasis.com/resources/resourcesCREATE in Phase 2