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.astrowith 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.readywait, 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 prioritiesestate-assessment.astro— Estate attorney with ABA Rules 1.1/1.6, “compliance counsel” terminologyfoundation-assessment.astro— Board-ready framing, transparent pricing (7,500), 5-step processcapabilities.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>accordionreg-sp-guide.astro— 4-page educational guide: 3 major requirements, 4 common gaps, readiness checklist, 10-week timelineinternal.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, typedResourceinterface
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=1or--workers=2to 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
| Token | Value | Usage |
|---|---|---|
| Navy (primary) | #020532 | Headings, nav, footer, print header |
| Copper (accent) | #C47A3D | CTAs, links, accents, print accent line |
| Parchment | #FEF9F1 | Page background |
| Warm-stone | #F0EBE4 | Card borders, dividers |
| Charcoal | #111827 | Body text |
| White | #FFFFFF | Card 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)
| Fact | Value | Source |
|---|---|---|
| Reg S-P compliance deadline (smaller entities) | June 3, 2026 | SEC Small Entity Compliance Guide |
| Reg S-P compliance deadline (larger entities) | December 2025 | SEC Final Rule |
| Reg S-P adoption date | May 2024 (May 16, 2024) | SEC |
| Vendor notification window | 72 hours | Reg S-P amendments |
| Client notification window | 30 days | Reg S-P amendments |
| ABA competence rule | Rule 1.1 | ABA Model Rules |
| ABA confidentiality rule | Rule 1.6 | ABA Model Rules |
| Estate attorney label | ”Compliance Counsel” (not “Compliance Consultant”) | Style guide |
| Foundation assessment pricing | 7,500 | Foundation assessment page |
| Blackbaud breach figure | $59M+ | Foundation assessment page |
| Partner referral: standard rate | 10% of first engagement revenue | Referral playbook v2.0 |
| Partner referral: Founding Partner rate | 15% (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 protection | 120 days | Referral playbook v1.1 |
| Partner referral: per-client cap | $2,500 | Referral 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
-
Start the dev server:
cd solanasis-site && npx astro dev --port 4321 -
In a separate terminal, generate all PDFs:
node scripts/generate-pdfs.mjs -
Verify all 8 PDFs were created in
public/downloads/:solanasis-assessment-overview.pdfsolanasis-ria-assessment.pdfsolanasis-estate-assessment.pdfsolanasis-foundation-assessment.pdfsolanasis-capabilities-brief.pdfsolanasis-faq-sheet.pdfsolanasis-reg-sp-guide.pdfsolanasis-partner-kit.pdf
-
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)
-
If any PDF has rendering issues:
- Check the print branch of the source
.astrofile - Look for: missing
.print-no-breakon cards that split across pages, incorrect.print-page-breakplacement, content that overflows the 6.5” content width - Fix the source file and regenerate:
node scripts/generate-pdfs.mjs [slug]
- Check the print branch of the source
-
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 doneAll 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.
Links to Create
| Short Path | Full Destination URL | Notes |
|---|---|---|
/overview | https://solanasis.com/resources/assessment-overview | Generic assessment |
/ria | https://solanasis.com/resources/ria-assessment | RIA one-pager |
/estate | https://solanasis.com/resources/estate-assessment | Estate one-pager |
/foundations | https://solanasis.com/resources/foundation-assessment | Foundation one-pager |
/capabilities | https://solanasis.com/resources/capabilities | Capabilities brief |
/faq | https://solanasis.com/resources/faq | FAQ sheet |
/reg-sp | https://solanasis.com/resources/reg-sp-guide | Reg S-P guide |
/partner | https://solanasis.com/partners | Partner/referral kit |
/resources | https://solanasis.com/resources | Resources hub |
Existing Links (DO NOT modify)
| Short Path | Destination |
|---|---|
/intro | Cal.com booking page |
/checklist | Verify 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
donePhase 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=2Expected 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:
| Pattern | Rule | Exception |
|---|---|---|
— (em dash, U+2014) | Zero in user-facing text | OK in JSDoc @see comments, OK in <title> tags if needed |
genuinely | Zero everywhere | None |
seamless | Zero everywhere | None |
frictionless | Zero everywhere | None |
SMBs | Zero everywhere | Use “growing organizations” |
audit (case-insensitive) | Zero in regulatory context | OK in “activity logs” (not “audit trails”), OK in literal file names, OK in code variable names |
Resilience Checkup | Zero everywhere | Must use “Compliance Readiness Assessment” |
Also scan for:
- Hardcoded
https://go.solanasis.com/intro(should useBOOKING_URLconstant) - Hardcoded
Book a 30-Minute Intro Call(should useCTA_TEXTconstant)
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)
3d. Link Verification
For each of the 8 resource pages + partners page:
- PDF download
hrefmatches a file that now exists inpublic/downloads/ - Cal.com booking links have BOTH
data-cal-link="mrsunshine/intro"ANDhref={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.astrohave correctwebUrlanddownloadUrlvalues
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-headerelement is present and visible - No site navigation or footer from BaseLayout
- Google Fonts load (Playfair Display for headings, Montserrat for body)
-
hi@solanasis.comand303-900-8969appear 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.astrosolanasis-site/scripts/generate-pdfs.mjs- All 8 files in
solanasis-site/src/pages/resources/ solanasis-site/src/pages/partners.astrosolanasis-site/src/pages/resources.astrosolanasis-site/src/components/Nav.astrosolanasis-site/tests/e2e/resource-pages.spec.tssolanasis-docs/sales/assets-cheat-sheet.mdsolanasis-site/content-style-guide.md(for style compliance checking)
Evaluation criteria:
- Regulatory accuracy — All facts in the “Regulatory Facts” table above must be correct in every page they appear
- Three-party positioning — Consistent across all pages. Never oversteps into compliance consultant territory
- Style guide compliance — No banned words, no em dashes, proper terminology, signature terms used
- Professional quality — Score each page 1-10 for polish, persuasiveness, and wealth management specificity
- Code quality — Proper slot usage, no duplicate code that should be extracted, constants used correctly
- PDF quality — If PDFs are generated, verify they look professional (spot-check 2-3)
- SEO — Unique titles, unique meta descriptions, proper heading hierarchy, canonical URLs
- Accessibility — ARIA attributes, keyboard navigation, 44px touch targets, semantic HTML
- Cross-page consistency — Same pricing, same program terms, same team bios across all assets
Reviewer output format:
- Overall score (1-10)
- Per-page scores (1-10)
- Must-fix issues (with file:line references)
- Should-fix issues
- 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:
- Pre-engagement: What we need from you (access credentials list, primary contact, preferred communication)
- Day-by-day timeline: What happens during the 10 business days
- Your team’s time commitment: approximately 3-4 hours total (1-hour kickoff, 1-hour walkthrough, 1-2 hours of Q&A)
- Deliverables list: Gap analysis, risk register, 90-day roadmap, DR restore report, maturity scorecard, executive summary
- After the assessment: Three paths (execute independently, remediation sprint, fractional partner)
- 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=truestill 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
- Phase 1 — Generate PDFs (blocks everything; download buttons are broken without this)
- Phase 2 — Short URLs (can run in parallel with Phase 3)
- Phase 3 — Full verification (tests, scans, mobile, links)
- Phase 4 — Senior reviewer (must happen AFTER Phases 1-3)
- Phase 5 — Additional assets (only if Phases 1-4 are clean)
- 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
| File | Purpose |
|---|---|
solanasis-site/src/layouts/PrintLayout.astro | Dual-mode layout (web + print) |
solanasis-site/scripts/generate-pdfs.mjs | Playwright PDF generator |
solanasis-site/src/pages/resources.astro | Resources hub (9 entries) |
solanasis-site/src/pages/partners.astro | Partner/referral kit |
solanasis-site/src/pages/resources/internal.astro | Internal cheat sheet (noindex) |
solanasis-site/src/components/Nav.astro | Navigation with Resources dropdown |
solanasis-site/src/lib/constants.ts | BOOKING_URL, CTA_TEXT, SITE_URL |
solanasis-site/content-style-guide.md | Voice, terminology, positioning rules |
solanasis-site/public/downloads/ | PDF output directory |
solanasis-site/tests/e2e/resource-pages.spec.ts | 46 resource page tests |
solanasis-docs/sales/assets-cheat-sheet.md | Markdown cheat sheet |
solanasis-docs/sales/asset-refinement-checklist.md | Monthly/quarterly review (create in Phase 6) |
Quick Reference: All Short URLs
| Short URL | Destination | Status |
|---|---|---|
go.solanasis.com/intro | Cal.com booking | EXISTS — do not modify |
go.solanasis.com/checklist | Resources page / checklist PDF | VERIFY existing |
go.solanasis.com/overview | /resources/assessment-overview | CREATE in Phase 2 |
go.solanasis.com/ria | /resources/ria-assessment | CREATE in Phase 2 |
go.solanasis.com/estate | /resources/estate-assessment | CREATE in Phase 2 |
go.solanasis.com/foundations | /resources/foundation-assessment | CREATE in Phase 2 |
go.solanasis.com/capabilities | /resources/capabilities | CREATE in Phase 2 |
go.solanasis.com/faq | /resources/faq | CREATE in Phase 2 |
go.solanasis.com/reg-sp | /resources/reg-sp-guide | CREATE in Phase 2 |
go.solanasis.com/partner | /partners | CREATE in Phase 2 |
go.solanasis.com/resources | /resources | CREATE in Phase 2 |