@rubytech/create-sitedesk-code 0.1.386 → 0.1.388
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/cron-heartbeat-registration.test.js +5 -0
- package/dist/cron-registration.js +1 -0
- package/dist/index.js +4 -0
- package/package.json +1 -1
- package/payload/platform/config/brand.json +3 -3
- package/payload/platform/neo4j/schema.cypher +36 -1
- package/payload/platform/plugins/.claude-plugin/marketplace.json +5 -5
- package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +61 -1
- package/payload/platform/plugins/docs/references/graph.md +11 -0
- package/payload/platform/plugins/docs/references/plugins-guide.md +1 -0
- package/payload/platform/plugins/docs/references/sweep-guide.md +43 -0
- package/payload/platform/plugins/memory/references/schema-estate-agent.md +34 -0
- package/payload/platform/plugins/scheduling/PLUGIN.md +17 -1
- package/payload/platform/plugins/scheduling/mcp/dist/index.js +12 -0
- package/payload/platform/plugins/scheduling/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/agent-dispatch.test.d.ts +2 -0
- package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/agent-dispatch.test.d.ts.map +1 -0
- package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/agent-dispatch.test.js +101 -0
- package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/agent-dispatch.test.js.map +1 -0
- package/payload/platform/plugins/scheduling/mcp/dist/lib/agent-dispatch.d.ts +54 -0
- package/payload/platform/plugins/scheduling/mcp/dist/lib/agent-dispatch.d.ts.map +1 -0
- package/payload/platform/plugins/scheduling/mcp/dist/lib/agent-dispatch.js +117 -0
- package/payload/platform/plugins/scheduling/mcp/dist/lib/agent-dispatch.js.map +1 -0
- package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-classify.d.ts +7 -0
- package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-classify.d.ts.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-classify.js +6 -3
- package/payload/platform/plugins/scheduling/mcp/dist/lib/schedule-classify.js.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/agent-turn-dispatch.test.d.ts +2 -0
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/agent-turn-dispatch.test.d.ts.map +1 -0
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/agent-turn-dispatch.test.js +88 -0
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/agent-turn-dispatch.test.js.map +1 -0
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/standing-audit.test.d.ts +2 -0
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/standing-audit.test.d.ts.map +1 -0
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/standing-audit.test.js +77 -0
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/__tests__/standing-audit.test.js.map +1 -0
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.d.ts +59 -0
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.d.ts.map +1 -0
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.js +131 -0
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/agent-turn-dispatch.js.map +1 -0
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js +62 -15
- package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-event-agent.test.d.ts +2 -0
- package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-event-agent.test.d.ts.map +1 -0
- package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-event-agent.test.js +110 -0
- package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-event-agent.test.js.map +1 -0
- package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-get-agent.test.d.ts +2 -0
- package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-get-agent.test.d.ts.map +1 -0
- package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-get-agent.test.js +35 -0
- package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-get-agent.test.js.map +1 -0
- package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-update-agent.test.d.ts +2 -0
- package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-update-agent.test.d.ts.map +1 -0
- package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-update-agent.test.js +81 -0
- package/payload/platform/plugins/scheduling/mcp/dist/tools/__tests__/schedule-update-agent.test.js.map +1 -0
- package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.d.ts +7 -0
- package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.d.ts.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.js +21 -4
- package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.js.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-get.d.ts +4 -0
- package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-get.d.ts.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-get.js +6 -0
- package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-get.js.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.d.ts +2 -1
- package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.d.ts.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.js +32 -1
- package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.js.map +1 -1
- package/payload/platform/plugins/sweep/.claude-plugin/plugin.json +8 -0
- package/payload/platform/plugins/sweep/PLUGIN.md +15 -0
- package/payload/platform/plugins/sweep/skills/sweep-workflow/SKILL.md +113 -0
- package/payload/platform/plugins/whatsapp/PLUGIN.md +1 -1
- package/payload/platform/plugins/whatsapp/mcp/dist/index.js +19 -4
- package/payload/platform/plugins/whatsapp/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/whatsapp/references/channels-whatsapp.md +9 -4
- package/payload/platform/plugins/whatsapp/skills/manage-whatsapp-config/SKILL.md +12 -0
- package/payload/platform/scripts/seed-neo4j.sh +38 -0
- package/payload/platform/services/whatsapp-channel/dist/notification.d.ts +5 -0
- package/payload/platform/services/whatsapp-channel/dist/notification.d.ts.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/notification.js.map +1 -1
- package/payload/platform/services/whatsapp-channel/dist/server.js +1 -1
- package/payload/platform/services/whatsapp-channel/dist/server.js.map +1 -1
- package/payload/premium-plugins/.claude-plugin/marketplace.json +0 -15
- package/payload/server/public/assets/{AdminLoginScreens-oxqHKL3C.js → AdminLoginScreens-BejIjbmU.js} +1 -1
- package/payload/server/public/assets/{AdminShell-DBD6ruS1.js → AdminShell-D2-uBSB5.js} +1 -1
- package/payload/server/public/assets/{Checkbox-yr8-ftrE.js → Checkbox-1F1tzqca.js} +1 -1
- package/payload/server/public/assets/Transcript-DkGa4CQH.js +2 -0
- package/payload/server/public/assets/{admin-CQfZnuFy.js → admin-DqQARkjy.js} +1 -1
- package/payload/server/public/assets/{browser-DbdPeDK1.js → browser-nDtEK6RC.js} +1 -1
- package/payload/server/public/assets/{calendar-CFdOhe7Q.js → calendar-CO4Bwmho.js} +1 -1
- package/payload/server/public/assets/chat-DeIge_bC.js +1 -0
- package/payload/server/public/assets/chevron-left-DhVdq0aN.js +1 -0
- package/payload/server/public/assets/data-B1GIdzHk.js +1 -0
- package/payload/server/public/assets/{graph-Bluocsf_.js → graph-DFyicKd7.js} +1 -1
- package/payload/server/public/assets/{graph-labels-BcLJmY-v.js → graph-labels-D3BQdcpD.js} +1 -1
- package/payload/server/public/assets/{operator-DjK3MBSS.js → operator-BxrjWdT9.js} +1 -1
- package/payload/server/public/assets/{page-DQNYTb2d.js → page-ByDLq_o1.js} +1 -1
- package/payload/server/public/assets/{page-zJQTRXB2.js → page-D-Ep4bXd.js} +1 -1
- package/payload/server/public/assets/{public-CHCniosp.js → public-DbdqfdYq.js} +1 -1
- package/payload/server/public/assets/{rotate-ccw-JDfwjfIL.js → rotate-ccw-BkX8HODe.js} +1 -1
- package/payload/server/public/assets/{useSubAccountSwitcher-CfI3J2IX.css → useSubAccountSwitcher-DS0iqSkP.css} +1 -1
- package/payload/server/public/browser.html +4 -4
- package/payload/server/public/calendar.html +5 -5
- package/payload/server/public/chat.html +8 -8
- package/payload/server/public/data.html +7 -7
- package/payload/server/public/graph.html +8 -8
- package/payload/server/public/index.html +10 -10
- package/payload/server/public/operator.html +10 -10
- package/payload/server/public/public.html +8 -8
- package/payload/server/server.js +713 -331
- package/payload/platform/plugins/sales/.claude-plugin/plugin.json +0 -8
- package/payload/platform/plugins/sales/PLUGIN.md +0 -106
- package/payload/platform/plugins/sales/references/close-tracking.md +0 -69
- package/payload/platform/plugins/sales/references/comparisons.md +0 -99
- package/payload/platform/plugins/sales/references/competitive-positioning.md +0 -51
- package/payload/platform/plugins/sales/references/faq.md +0 -73
- package/payload/platform/plugins/sales/references/objection-handling.md +0 -157
- package/payload/platform/plugins/sales/references/pricing.md +0 -101
- package/payload/premium-plugins/teaching/.claude-plugin/plugin.json +0 -8
- package/payload/premium-plugins/teaching/PLUGIN.md +0 -58
- package/payload/premium-plugins/teaching/skills/interactive-tutor/SKILL.md +0 -59
- package/payload/premium-plugins/teaching/skills/interactive-tutor/references/assessment.md +0 -70
- package/payload/premium-plugins/teaching/skills/interactive-tutor/references/classroom-conduct.md +0 -43
- package/payload/premium-plugins/teaching/skills/interactive-tutor/references/teaching-modes.md +0 -83
- package/payload/premium-plugins/teaching/skills/lesson-planner/SKILL.md +0 -48
- package/payload/premium-plugins/teaching/skills/lesson-planner/references/context-gathering.md +0 -41
- package/payload/premium-plugins/teaching/skills/lesson-planner/references/plan-structure.md +0 -94
- package/payload/premium-plugins/teaching/skills/study-pack-builder/SKILL.md +0 -52
- package/payload/premium-plugins/teaching/skills/study-pack-builder/references/disaggregation.md +0 -49
- package/payload/premium-plugins/teaching/skills/study-pack-builder/references/materials.md +0 -116
- package/payload/premium-plugins/venture-studio/.claude-plugin/plugin.json +0 -8
- package/payload/premium-plugins/venture-studio/PLUGIN.md +0 -128
- package/payload/premium-plugins/venture-studio/bin/scaffold.sh +0 -116
- package/payload/premium-plugins/venture-studio/skills/brand-pack/SKILL.md +0 -256
- package/payload/premium-plugins/venture-studio/skills/brand-pack/references/color-psychology.md +0 -118
- package/payload/premium-plugins/venture-studio/skills/investor-data-room/SKILL.md +0 -436
- package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/business-plan-template.md +0 -64
- package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/competitive-battlecard.md +0 -37
- package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/competitor-analysis.md +0 -32
- package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/compliance-research-checklist.md +0 -53
- package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/data-room-structure.md +0 -88
- package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/deck-blueprint-template.md +0 -39
- package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/design-tokens-application.md +0 -79
- package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/html-pdf-pipeline.md +0 -236
- package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/internal-workings-scrub.md +0 -33
- package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/monetization-strategy.md +0 -35
- package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/pricing-strategy.md +0 -37
- package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/strategy-frameworks.md +0 -46
- package/payload/premium-plugins/venture-studio/skills/investor-data-room/references/termsheet-template.md +0 -88
- package/payload/premium-plugins/venture-studio/skills/investor-data-room/templates/prospectus/index.html +0 -1565
- package/payload/premium-plugins/venture-studio/skills/investor-data-room/templates/prospectus/render-pdf.mjs +0 -91
- package/payload/premium-plugins/venture-studio/skills/investor-data-room/templates/prospectus/term_sheet.html +0 -715
- package/payload/premium-plugins/venture-studio/skills/legal-essentials/SKILL.md +0 -65
- package/payload/premium-plugins/venture-studio/skills/office-hours/SKILL.md +0 -587
- package/payload/premium-plugins/venture-studio/skills/prototype-host/SKILL.md +0 -179
- package/payload/premium-plugins/venture-studio/skills/prototype-host/references/cloudflared-ingress-edit.md +0 -81
- package/payload/premium-plugins/venture-studio/skills/prototype-host/references/scaffold-frameworks.md +0 -60
- package/payload/premium-plugins/venture-studio/skills/prototype-host/references/systemd-user-service.md +0 -104
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/SKILL.md +0 -342
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/aarrr-metrics.md +0 -275
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/assumption-testing.md +0 -93
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/boolean-search.md +0 -308
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/build-measure-learn.md +0 -262
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/business-model-canvas.md +0 -171
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/commitment-signals.md +0 -246
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/design-thinking.md +0 -183
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/earlyvangelist.md +0 -190
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/first-principles.md +0 -58
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/fishbone.md +0 -114
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/five-whys.md +0 -43
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/ice-scoring.md +0 -237
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/innovation-accounting.md +0 -290
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/jtbd.md +0 -105
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/landing-page.md +0 -361
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/market-sizing.md +0 -58
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/market-type.md +0 -167
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/mom-test.md +0 -193
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/mvp-types.md +0 -200
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/og-images.md +0 -239
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/pareto.md +0 -103
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/persona-development.md +0 -291
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/pivot-types.md +0 -225
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/positioning-statement.md +0 -179
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/prd.md +0 -363
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/pre-mortem.md +0 -74
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/problem-validation.md +0 -253
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/product-market-fit.md +0 -256
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/research-synthesis.md +0 -276
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/strategy-red-team.md +0 -41
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/three-engines-of-growth.md +0 -248
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/validation-tests.md +0 -89
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/value-proposition-canvas.md +0 -121
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/win-loss-analysis.md +0 -242
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/workflow-mapping.md +0 -271
- package/payload/premium-plugins/writer-craft/.claude-plugin/plugin.json +0 -21
- package/payload/premium-plugins/writer-craft/PLUGIN.md +0 -134
- package/payload/premium-plugins/writer-craft/agents/writer-craft--manuscript-reviewer.md +0 -108
- package/payload/premium-plugins/writer-craft/lib/mcp-lifeline/dist/index.d.ts +0 -8
- package/payload/premium-plugins/writer-craft/lib/mcp-lifeline/dist/index.d.ts.map +0 -1
- package/payload/premium-plugins/writer-craft/lib/mcp-lifeline/dist/index.js +0 -71
- package/payload/premium-plugins/writer-craft/lib/mcp-lifeline/dist/index.js.map +0 -1
- package/payload/premium-plugins/writer-craft/lib/mcp-lifeline/package.json +0 -7
- package/payload/premium-plugins/writer-craft/lib/mcp-spawn-tee/index.js +0 -193
- package/payload/premium-plugins/writer-craft/lib/mcp-spawn-tee/package.json +0 -3
- package/payload/premium-plugins/writer-craft/lib/mcp-stderr-tee/dist/index.d.ts +0 -51
- package/payload/premium-plugins/writer-craft/lib/mcp-stderr-tee/dist/index.d.ts.map +0 -1
- package/payload/premium-plugins/writer-craft/lib/mcp-stderr-tee/dist/index.js +0 -196
- package/payload/premium-plugins/writer-craft/lib/mcp-stderr-tee/dist/index.js.map +0 -1
- package/payload/premium-plugins/writer-craft/lib/mcp-stderr-tee/package.json +0 -7
- package/payload/premium-plugins/writer-craft/mcp/dist/cli/ingest-session-text.d.ts +0 -3
- package/payload/premium-plugins/writer-craft/mcp/dist/cli/ingest-session-text.d.ts.map +0 -1
- package/payload/premium-plugins/writer-craft/mcp/dist/cli/ingest-session-text.js +0 -58
- package/payload/premium-plugins/writer-craft/mcp/dist/cli/ingest-session-text.js.map +0 -1
- package/payload/premium-plugins/writer-craft/mcp/dist/index.d.ts +0 -3
- package/payload/premium-plugins/writer-craft/mcp/dist/index.d.ts.map +0 -1
- package/payload/premium-plugins/writer-craft/mcp/dist/index.js +0 -403
- package/payload/premium-plugins/writer-craft/mcp/dist/index.js.map +0 -1
- package/payload/premium-plugins/writer-craft/mcp/dist/lib/neo4j.d.ts +0 -14
- package/payload/premium-plugins/writer-craft/mcp/dist/lib/neo4j.d.ts.map +0 -1
- package/payload/premium-plugins/writer-craft/mcp/dist/lib/neo4j.js +0 -47
- package/payload/premium-plugins/writer-craft/mcp/dist/lib/neo4j.js.map +0 -1
- package/payload/premium-plugins/writer-craft/mcp/dist/lib/voice-corpus.d.ts +0 -117
- package/payload/premium-plugins/writer-craft/mcp/dist/lib/voice-corpus.d.ts.map +0 -1
- package/payload/premium-plugins/writer-craft/mcp/dist/lib/voice-corpus.js +0 -138
- package/payload/premium-plugins/writer-craft/mcp/dist/lib/voice-corpus.js.map +0 -1
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-distil-profile.d.ts +0 -90
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-distil-profile.d.ts.map +0 -1
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-distil-profile.js +0 -609
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-distil-profile.js.map +0 -1
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-ingest-session-text.d.ts +0 -19
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-ingest-session-text.d.ts.map +0 -1
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-ingest-session-text.js +0 -124
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-ingest-session-text.js.map +0 -1
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-record-feedback.d.ts +0 -38
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-record-feedback.d.ts.map +0 -1
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-record-feedback.js +0 -93
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-record-feedback.js.map +0 -1
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-retrieve-conditioning.d.ts +0 -61
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-retrieve-conditioning.d.ts.map +0 -1
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-retrieve-conditioning.js +0 -171
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-retrieve-conditioning.js.map +0 -1
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-tag-content.d.ts +0 -35
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-tag-content.d.ts.map +0 -1
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-tag-content.js +0 -127
- package/payload/premium-plugins/writer-craft/mcp/dist/tools/voice-tag-content.js.map +0 -1
- package/payload/premium-plugins/writer-craft/mcp/package-lock.json +0 -1327
- package/payload/premium-plugins/writer-craft/mcp/package.json +0 -19
- package/payload/premium-plugins/writer-craft/mcp/scripts/smoke.mjs +0 -420
- package/payload/premium-plugins/writer-craft/mcp/src/index.ts +0 -457
- package/payload/premium-plugins/writer-craft/mcp/src/lib/neo4j.ts +0 -56
- package/payload/premium-plugins/writer-craft/mcp/src/lib/voice-corpus.ts +0 -154
- package/payload/premium-plugins/writer-craft/mcp/src/tools/voice-distil-profile.ts +0 -833
- package/payload/premium-plugins/writer-craft/mcp/src/tools/voice-ingest-session-text.ts +0 -153
- package/payload/premium-plugins/writer-craft/mcp/src/tools/voice-record-feedback.ts +0 -148
- package/payload/premium-plugins/writer-craft/mcp/src/tools/voice-retrieve-conditioning.ts +0 -270
- package/payload/premium-plugins/writer-craft/mcp/src/tools/voice-tag-content.ts +0 -181
- package/payload/premium-plugins/writer-craft/mcp/tsconfig.json +0 -8
- package/payload/premium-plugins/writer-craft/skills/citation-style/SKILL.md +0 -94
- package/payload/premium-plugins/writer-craft/skills/citation-style/references/book-and-chapter-models.md +0 -77
- package/payload/premium-plugins/writer-craft/skills/citation-style/references/citation-rules.md +0 -103
- package/payload/premium-plugins/writer-craft/skills/citation-style/references/journal-article-models.md +0 -74
- package/payload/premium-plugins/writer-craft/skills/citation-style/references/other-source-models.md +0 -146
- package/payload/premium-plugins/writer-craft/skills/citation-style/references/reference-list-rules.md +0 -70
- package/payload/premium-plugins/writer-craft/skills/editorial-practice/SKILL.md +0 -108
- package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/copyediting.md +0 -73
- package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/developmental-editing.md +0 -85
- package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/genre-specific-editing.md +0 -78
- package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/line-editing.md +0 -55
- package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/self-editing.md +0 -89
- package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/SKILL.md +0 -114
- package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/audience-analysis.md +0 -73
- package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/crafting-persuasive-story.md +0 -76
- package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/persuasion-case-studies.md +0 -67
- package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/transformation-framework.md +0 -86
- package/payload/premium-plugins/writer-craft/skills/point-of-view/SKILL.md +0 -97
- package/payload/premium-plugins/writer-craft/skills/point-of-view/references/indirect-narration.md +0 -72
- package/payload/premium-plugins/writer-craft/skills/point-of-view/references/pov-types-and-voice.md +0 -91
- package/payload/premium-plugins/writer-craft/skills/point-of-view/references/protagonist-filter.md +0 -71
- package/payload/premium-plugins/writer-craft/skills/point-of-view/references/tense-and-person.md +0 -85
- package/payload/premium-plugins/writer-craft/skills/prose-craft/SKILL.md +0 -100
- package/payload/premium-plugins/writer-craft/skills/prose-craft/references/punctuation-and-grammar.md +0 -72
- package/payload/premium-plugins/writer-craft/skills/prose-craft/references/repetition.md +0 -71
- package/payload/premium-plugins/writer-craft/skills/prose-craft/references/sound-and-rhythm.md +0 -64
- package/payload/premium-plugins/writer-craft/skills/prose-craft/references/word-economy.md +0 -93
- package/payload/premium-plugins/writer-craft/skills/reader-engagement/SKILL.md +0 -100
- package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/cause-effect-setup-payoff.md +0 -79
- package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/conflict-escalation.md +0 -81
- package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/hooking-readers.md +0 -67
- package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/neurochemistry-of-engagement.md +0 -94
- package/payload/premium-plugins/writer-craft/skills/review-manuscript/SKILL.md +0 -111
- package/payload/premium-plugins/writer-craft/skills/review-manuscript/references/review-manuscript-checklist.md +0 -119
- package/payload/premium-plugins/writer-craft/skills/review-prose/SKILL.md +0 -99
- package/payload/premium-plugins/writer-craft/skills/review-prose/references/prose-review-checklist.md +0 -112
- package/payload/premium-plugins/writer-craft/skills/review-scene/SKILL.md +0 -99
- package/payload/premium-plugins/writer-craft/skills/review-scene/references/scene-analysis-framework.md +0 -95
- package/payload/premium-plugins/writer-craft/skills/story-architecture/SKILL.md +0 -106
- package/payload/premium-plugins/writer-craft/skills/story-architecture/references/blueprinting-and-scene-cards.md +0 -118
- package/payload/premium-plugins/writer-craft/skills/story-architecture/references/inner-issue-and-protagonist-goal.md +0 -66
- package/payload/premium-plugins/writer-craft/skills/story-architecture/references/misbelief-desire-worldview.md +0 -87
- package/payload/premium-plugins/writer-craft/skills/story-architecture/references/origin-scenes-and-escalation.md +0 -82
- package/payload/premium-plugins/writer-craft/skills/story-blueprint/SKILL.md +0 -133
- package/payload/premium-plugins/writer-craft/skills/story-blueprint/references/blueprinting-exercises.md +0 -118
- package/payload/premium-plugins/writer-craft/skills/story-blueprint/references/blueprinting-process.md +0 -128
- package/payload/premium-plugins/writer-craft/skills/voice-mirror/SKILL.md +0 -241
- package/payload/server/public/assets/Transcript-FX_w6no6.js +0 -2
- package/payload/server/public/assets/chat-BunxcNDk.js +0 -1
- package/payload/server/public/assets/chevron-left-Cngmu0Py.js +0 -1
- package/payload/server/public/assets/data-IqZlMSwG.js +0 -1
- /package/payload/server/public/assets/{useSubAccountSwitcher-BpQ3oKiJ.js → useSubAccountSwitcher-DMbRhLPv.js} +0 -0
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
# Compliance research checklist
|
|
2
|
-
|
|
3
|
-
Required before drafting business plan Section 10 (Compliance and regulatory positioning) for a UK-domiciled raise. Every claim must cite a primary source (ICO guidance, gov.uk, regulator strategy document) verified by WebSearch.
|
|
4
|
-
|
|
5
|
-
## UK consumer-protection regime
|
|
6
|
-
|
|
7
|
-
**For estate-agency / property:** Digital Markets, Competition and Consumers Act 2024 (DMCC Act). In force from 6 April 2025. Supersedes the Consumer Protection from Unfair Trading Regulations 2008 for estate-agency consumer protection. Under the DMCC Act, **omitting material information is automatically an unfair commercial practice regardless of whether the omission affected the consumer's decision**. CMA holds direct enforcement powers including fines without court process. Property brochures must include Part B material information.
|
|
8
|
-
|
|
9
|
-
**For other verticals:** Identify the equivalent UK consumer-protection regime (financial services → FCA Consumer Duty; healthcare → CQC; legal services → SRA; etc.). Same pattern: cite the binding statute, name the regulator, identify the enforcement mechanism.
|
|
10
|
-
|
|
11
|
-
## UK data-protection and AI regime
|
|
12
|
-
|
|
13
|
-
- **UK GDPR** sits over UK data processing. Articles 22A to 22D (added by the Data Use and Access Act) govern solely automated decision-making.
|
|
14
|
-
- **No UK AI-specific statute in the 2026 parliamentary session.** Labour's 2024 King's Speech committed to "appropriate legislation on the most powerful AI models" but the Bill has not been introduced. A dedicated 2026 AI Bill is not expected.
|
|
15
|
-
- **ICO strategy.** June 2025 strategy "Preventing Harm, Promoting Trust" frames the regulator's approach. ICO consulting on updated Automated Decision-Making and Profiling guidance during 2025–2026, with a statutory code of practice on AI and ADM in the pipeline. First substantive enforcement guidance expected later in 2026.
|
|
16
|
-
- **UK is not adopting the EU AI Act.** Sector-led approach via existing regulators. Starmer's stated position: *"instead of over-regulating these new technologies, we're seizing the opportunities they offer"*.
|
|
17
|
-
|
|
18
|
-
## EU AI Act (relevant only to international expansion)
|
|
19
|
-
|
|
20
|
-
- Entered into force 1 August 2024.
|
|
21
|
-
- Fully applicable 2 August 2026.
|
|
22
|
-
- Classifies AI systems used in credit and insurance (which overlap with mortgage and property-financing decisions) as **high-risk**. Most marketing and operational AI applications sit at lower risk tiers.
|
|
23
|
-
- High-risk obligations: risk-management systems, data-quality controls, human oversight, transparency to affected individuals, conformity assessment, post-market monitoring.
|
|
24
|
-
- For UK-domiciled companies, the EU AI Act binds only when serving EU customers. Document the international expansion path and confirm whether any planned product crosses into high-risk territory.
|
|
25
|
-
|
|
26
|
-
## Adjacent UK obligations to verify per vertical
|
|
27
|
-
|
|
28
|
-
- **Estate Agents Act 1979** for property: distinguish software vendor (out of scope) from estate agent (in scope).
|
|
29
|
-
- **Money Laundering Regulations 2017 + Economic Crime and Corporate Transparency Act 2023** for AML obligations.
|
|
30
|
-
- **PECR (Privacy and Electronic Communications Regulations 2003)** for electronic marketing, cookies, and tracking. Sits alongside UK GDPR. Enforced by ICO with fines up to £500,000.
|
|
31
|
-
- **Sector membership bodies** (NAEA / ARLA Propertymark for property; equivalents per vertical).
|
|
32
|
-
- **Client Money Protection schemes** where the business handles client money.
|
|
33
|
-
|
|
34
|
-
## WebSearch protocol
|
|
35
|
-
|
|
36
|
-
For each regime, search for:
|
|
37
|
-
|
|
38
|
-
1. The primary statute / regulation page on gov.uk or the regulator's site.
|
|
39
|
-
2. A recent (within last 12 months) legal-firm briefing summarising current state.
|
|
40
|
-
3. The regulator's strategy document.
|
|
41
|
-
|
|
42
|
-
Examples that worked in the reference project:
|
|
43
|
-
|
|
44
|
-
- DMCC Act + Propertymark guidance withdrawal: `https://www.propertymark.co.uk/resource/material-information-guidance-withdrawn-as-the-digital-markets-competition-and-consumers-act-takes-over.html`
|
|
45
|
-
- ICO AI strategy: `https://ico.org.uk/for-organisations/uk-gdpr-guidance-and-resources/artificial-intelligence/guidance-on-ai-and-data-protection/`
|
|
46
|
-
- UK AI Bill status: `https://iapp.org/news/a/king-s-speech-signals-diffuse-uk-digital-policy-agenda-but-no-ai-bill`
|
|
47
|
-
- EU AI Act compliance for UK businesses: `https://www.rmoklegal.com/guides/eu-ai-act-compliance-uk`
|
|
48
|
-
|
|
49
|
-
Cite the actual source URLs in the business plan's reply / Sources block (per the WebSearch tool's mandatory citation rule).
|
|
50
|
-
|
|
51
|
-
## The closing argument
|
|
52
|
-
|
|
53
|
-
The business plan's Section 10 ends with "Why compliance is the moat, not the tax": cloud-CRM-bolted-AI competitors inherit the vendor's data-protection posture; the product owns the agent's data sovereignty by design, so compliance is a competitive moat (especially into EU markets where the EU AI Act amplifies the cost differential).
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
# Data room structure — graph-structured ten-section layout
|
|
2
|
-
|
|
3
|
-
Standard ten numbered sections plus root README, internal-narrative subdirectory, and an `html/` directory for rendered deliverables. Each section's `README.md` is both an investor-diligence index and a content-recording checklist.
|
|
4
|
-
|
|
5
|
-
## Section purposes (README skeletons)
|
|
6
|
-
|
|
7
|
-
### 01-narrative
|
|
8
|
-
**Purpose.** Strategic substance the prospectus, business plan, term sheet, and any future investor-facing material derive from. Internal scratchpad lives here too.
|
|
9
|
-
|
|
10
|
-
**Currently present.**
|
|
11
|
-
- `office-hours-design.md` — APPROVED office-hours output (internal).
|
|
12
|
-
- `business-plan.md` — 16-section public business plan.
|
|
13
|
-
- `deck-blueprint.md` — 13-slide brief.
|
|
14
|
-
- `exit-thesis.md` — target exit value, 5–8-year horizon, exit routes (strategic / PE / IPO), 3–5 named acquirers with one-line rationale each.
|
|
15
|
-
|
|
16
|
-
### 02-corporate-legal
|
|
17
|
-
**Purpose.** Statutory documentation. First section any investor's lawyer asks for.
|
|
18
|
-
|
|
19
|
-
**Standard contents.** Certificate of incorporation, IN01 application, articles of association, shareholder agreement, board resolutions, register of members, register of directors and PSCs.
|
|
20
|
-
|
|
21
|
-
### 03-cap-table
|
|
22
|
-
**Purpose.** Who owns what, before and after the round. Most-scrutinised number in seed-stage diligence.
|
|
23
|
-
|
|
24
|
-
**Standard contents.** Pre-investment cap table (per IN01), post-investment cap table (with dilution math), fully-diluted including option pool, founder vesting schedule (if any), share register, subscription letters, `comparables.md` (recent comparable rounds — company / pre-money / post-money / multiple / source — that the term sheet's valuation cites).
|
|
25
|
-
|
|
26
|
-
### 04-financials
|
|
27
|
-
**Purpose.** The investability of the raise: runway, burn, revenue ramp, break-even, contingency.
|
|
28
|
-
|
|
29
|
-
**Standard contents.** `model_worksheet.md` (opening cash, capex, monthly burn, MRR ramp, two-round funding strategy, contingency levers), historical accounts (if any), bank statements, unit economics (must include **LTV:CAC ratio** and **burn multiple** as named lines alongside ACV / CAC / LTV / gross margin / churn), VAT status.
|
|
30
|
-
|
|
31
|
-
### 05-commercial
|
|
32
|
-
**Purpose.** Customer pipeline, demand evidence, GTM partners, route-to-revenue.
|
|
33
|
-
|
|
34
|
-
**Standard contents.** `demand-evidence.md`, named-partner files (one per partner — e.g. `kerfuffle.md`, `magnetic-bd.md` with companion proposal PDF), `pipeline.md`, pricing schedule, sales playbook, customer references.
|
|
35
|
-
|
|
36
|
-
### 06-product-ip
|
|
37
|
-
**Purpose.** What investors are buying — architecture, code, brand, data, IP ownership chain.
|
|
38
|
-
|
|
39
|
-
**Standard contents.** Deed of assignment (IP transfer to the raising entity), trademark filings, domain inventory, OSS manifest, security posture, privacy policy, terms of service, third-party dependency disclosures, disaster-recovery plan, optional architecture notes (e.g. `encrypted-document-sharing.md`).
|
|
40
|
-
|
|
41
|
-
### 07-team
|
|
42
|
-
**Purpose.** Who is executing, in what capacity, with what compensation.
|
|
43
|
-
|
|
44
|
-
**Standard contents.** Founder CVs (one PDF per foregrounded founder, named `<firstname>-<lastname>.pdf`), employment agreements, director service agreements, advisor agreements, org chart, hiring plan, compensation philosophy, references.
|
|
45
|
-
|
|
46
|
-
### 08-market
|
|
47
|
-
**Purpose.** Size of the prize, shape of demand, competitive landscape. Every market figure in the business plan must trace to a row in this section.
|
|
48
|
-
|
|
49
|
-
**Standard contents.** `sources.md` (every figure with citation), `competitor-value-claims-rebuttal.md` (vendor-by-vendor rebuttal framework), TAM/SAM/SOM file (bottoms-up; **geography-tier floor** — late pre-seed TAM is expected to clear $1B US / $500M UK / $500M EU; flag any named geography that sits below its floor), `market-growth-rate.md` (single CAGR figure with citation + one-line 3-year market-expansion thesis), `market-share-trajectory.md` (path to 3–8% SAM within 5 years, reconciled to the ARR target in the business plan), customer-segmentation analysis, regulatory landscape, international-expansion potential.
|
|
50
|
-
|
|
51
|
-
### 09-operations
|
|
52
|
-
**Purpose.** Day-to-day regulatory, compliance, and operational infrastructure.
|
|
53
|
-
|
|
54
|
-
**Standard contents.** ICO registration, DPIA, data processing agreements, privacy notice, insurance pack (PI, public liability, cyber, D&O, employer's), HMRC registrations (corporation tax, PAYE, VAT, R&D), AML policy, code of conduct, business bank account, accountant retainer, registered office services.
|
|
55
|
-
|
|
56
|
-
### 10-supporting
|
|
57
|
-
**Purpose.** Everything that adds weight to the pitch but does not belong in a structured section. Press, references, brand assets, advisor letters, demo recordings, pitch decks.
|
|
58
|
-
|
|
59
|
-
**Standard contents.** Press kit, pitch deck (live presentation version), demo recording, reference contacts, advisor letters, awards, published thought leadership.
|
|
60
|
-
|
|
61
|
-
### prototype/ (sibling of the ten numbered sections)
|
|
62
|
-
**Purpose.** Running code: landing page source, wedge prototype source, dev-server logs. This is the only top-level under `.docs/data-room/` that ships an executable surface rather than narrative or diligence artefacts. Lives outside the numbered investor sections because investors read the rendered URL, not the source tree.
|
|
63
|
-
|
|
64
|
-
**Standard contents.** One subdirectory per hosted surface (e.g. `landing/`, `prototype/`, `prototype-v2/`), each containing:
|
|
65
|
-
- Framework scaffold (e.g. Vite `package.json`, `src/`, `index.html`) or a single static `index.html`.
|
|
66
|
-
- `.port` — the local port the dev server / file server binds to (allocated by `prototype-host` skill from the 4100–4199 range).
|
|
67
|
-
- Framework dotfiles (`.gitignore`, `vite.config.ts`, etc.).
|
|
68
|
-
|
|
69
|
-
**Lifecycle.** Created by `bin/scaffold.sh` (empty directory) when the data room is first scaffolded. Populated by the `prototype-host` skill when the founder runs "host the landing" or "host the prototype". Multiple surfaces can coexist — port allocation, cloudflared ingress rules, and systemd unit names are all namespaced by surface name.
|
|
70
|
-
|
|
71
|
-
## Top-level README.md doubles as data-room index
|
|
72
|
-
|
|
73
|
-
Three things at the root:
|
|
74
|
-
|
|
75
|
-
1. **Company identity table** — legal name, Companies House number, incorporation date, registered office, SIC code.
|
|
76
|
-
2. **Top-level files** (any published artefacts that need a stable URL — e.g. `index.html` and `prospectus.pdf` if the directory itself is served).
|
|
77
|
-
3. **Section index** with status snapshot (substantively populated / has key item missing / empty placeholder).
|
|
78
|
-
|
|
79
|
-
## Naming conventions
|
|
80
|
-
|
|
81
|
-
- Companies House filings: `incorporation-<co-house-no>-<YYYY-MM-DD>.pdf`.
|
|
82
|
-
- Founder CVs: `<firstname>-<lastname>.pdf`.
|
|
83
|
-
- Commercial partners: `<partner-name>.md` + `<partner-name>-proposal-<id>-<date>.pdf`.
|
|
84
|
-
- All section READMEs are lowercase markdown.
|
|
85
|
-
|
|
86
|
-
## Published-URL stability
|
|
87
|
-
|
|
88
|
-
If the data room hosts a public prospectus (e.g. `realagent.chat/sites/<slug>/`), keep the published path stable across renames. The published HTML lives at `html/<artefact>/index.html` inside the data room and republishes from there to the stable URL.
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# Deck blueprint template — 13 slides
|
|
2
|
-
|
|
3
|
-
Each slide is specified by Purpose, Headline (one-line message), Body (bullets + figures pulled from the business plan), Visual suggestion, and Source reference. The deck is the presentation surface; the business plan is the source of truth.
|
|
4
|
-
|
|
5
|
-
## 13-slide layout
|
|
6
|
-
|
|
7
|
-
| # | Slide | What it lands |
|
|
8
|
-
|---|---|---|
|
|
9
|
-
| 1 | Cover | Company name, raise headline, three foregrounded founders, Companies House identifier. |
|
|
10
|
-
| 2 | Vision | Vision / Mission / Doctrine triad. |
|
|
11
|
-
| 3 | The Market | TAM with citation, structural tailwind (margin-squeeze / regulatory / equivalent), self-employed or analogous wedge, domestic adjacency, international upside, pricing band, **CAGR with citation**. |
|
|
12
|
-
| 4 | Business Model | Subscription tiers + hardware + service layer + future network-effect revenue + unit economics + compute-no-markup doctrine. |
|
|
13
|
-
| 5 | Go-to-Market | Wedge → Beachhead → Blitzscale framework, demand evidence numbers, named GTM partners, horse-before-cart logic. |
|
|
14
|
-
| 6 | The Product | Substrate description, wedge, upsell path, substrate moat, conversation ingestion, network, asymmetric capture, services layer. |
|
|
15
|
-
| 7 | Competition | Three failing categories + most-direct-competitor counter (CRM-agnostic vs migration-required). |
|
|
16
|
-
| 8 | The Team | Founders + strategic shareholders, with one-line credential per person and shareholding %. |
|
|
17
|
-
| 9 | Economics | Y1 revenue, P&L loss, cash burn, M11 cash low, M12 closing cash, closing ARR, break-even month, **LTV:CAC and burn multiple**. Two-panel chart: MRR ramp with burn overlay + monthly cash balance. |
|
|
18
|
-
| 10 | The Raise | Size, pre-money, post-money, dilution, instrument, use of funds, IP transfer at close, Round 2 size + timing, pre-emption. Pie chart of post-investment cap table. |
|
|
19
|
-
| 11 | Exit | Target exit value, 5–8-year horizon, exit routes (strategic / PE / IPO), 3–5 named acquirers with one-line rationale each. Sourced from `01-narrative/exit-thesis.md`. |
|
|
20
|
-
| 12 | Milestones | M0 to M-final timeline with MRR curve and Round-1 / Round-2 close markers. |
|
|
21
|
-
| 13 | Other Information | Compliance (DMCC + UK ICO + EU AI Act), platform-dependency disclosure with the commercial-practice-insurance answer, contact card (founders + email + web). |
|
|
22
|
-
|
|
23
|
-
## Production notes attached to the blueprint
|
|
24
|
-
|
|
25
|
-
- **Format.** 16:9 landscape, A4-or-equivalent print-safe. PDF deliverable + source deck file (PowerPoint or Keynote, founder preference).
|
|
26
|
-
- **Font and colour.** Apply the project's design tokens (`<project-site>/.docs/design-tokens.md`) — teal-ink + gold-accent + paper-surface + slate-text + champagne rule. Tier 1 raw tokens; reference Tier 2 aliases in component CSS, never raw hex.
|
|
27
|
-
- **Charts.** Build in the same renderer the prospectus uses so figures match the financial model. Source all numbers from `04-financials/model_worksheet.md`.
|
|
28
|
-
- **Logo and hero.** Reuse white-mono icon for dark slides, dark icon for light slides.
|
|
29
|
-
- **Internal commentary.** Zero. Every slide carries the current position as a fact. No "open items", no "pending rebuild", no "reconciliation paths". See `internal-workings-scrub.md`.
|
|
30
|
-
- **Speaker notes.** One paragraph per slide. The founder of the relevant function writes their own (technical founder writes the vision and product notes; commercial founder writes the GTM note; operator founder writes the team note).
|
|
31
|
-
|
|
32
|
-
## Deliverables
|
|
33
|
-
|
|
34
|
-
Once the deck is designed, archive at:
|
|
35
|
-
|
|
36
|
-
- `<data-room>/10-supporting/investor-deck.pptx` (or `.key`)
|
|
37
|
-
- `<data-room>/10-supporting/investor-deck.pdf`
|
|
38
|
-
|
|
39
|
-
The blueprint file (`01-narrative/deck-blueprint.md`) stays as the brief for any future redesign.
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
# Design tokens application
|
|
2
|
-
|
|
3
|
-
How a print-ready HTML artefact consumes the project's design-tokens spec.
|
|
4
|
-
|
|
5
|
-
## Source of truth
|
|
6
|
-
|
|
7
|
-
Project keeps `<project-site>/.docs/design-tokens.md` as the canonical tokens spec. Three tiers:
|
|
8
|
-
|
|
9
|
-
- **Tier 1 — Global tokens.** Raw hex values (e.g. `--teal-900: #0E1418`). Never reference directly from a component.
|
|
10
|
-
- **Tier 2 — Semantic aliases.** Maps Tier 1 to roles (e.g. `--text-primary: var(--teal-900)`).
|
|
11
|
-
- **Tier 3 — Component tokens.** Per-component variables that reference Tier 2 aliases.
|
|
12
|
-
|
|
13
|
-
Components consume Tier 2 or Tier 3, never Tier 1 directly. This isolation lets a token-value update propagate without touching component CSS.
|
|
14
|
-
|
|
15
|
-
## Premium register defaults (the reference project)
|
|
16
|
-
|
|
17
|
-
| Token | Value | Role |
|
|
18
|
-
|---|---|---|
|
|
19
|
-
| `--teal-900` | `#0E1418` | Primary ink |
|
|
20
|
-
| `--teal-950` | `#06080A` | Deepest dark surface |
|
|
21
|
-
| `--teal-700` | `#2A3036` | Secondary ink |
|
|
22
|
-
| `--gold-300` | `#C9B07A` | Champagne flourish |
|
|
23
|
-
| `--gold-500` | `#A4884C` | Antique gold rule |
|
|
24
|
-
| `--gold-700` | `#7A6235` | Bronze accent |
|
|
25
|
-
| `--paper-0` | `#FFFFFF` | Pure white (elevated cards) |
|
|
26
|
-
| `--paper-25` | `#FBFAF6` | Near-white page surface (default) |
|
|
27
|
-
| `--paper-50` | `#F4EFE5` | One step warmer |
|
|
28
|
-
| `--paper-100` | `#ECF1F2` | Cool mist (callout / tinted-band surface) |
|
|
29
|
-
| `--slate-400` | `#8A8E96` | Tertiary text |
|
|
30
|
-
| `--slate-600` | `#5C6470` | Secondary text |
|
|
31
|
-
| `--rule-fine` | `#E2D5BD` | Champagne sand divider |
|
|
32
|
-
|
|
33
|
-
## Tier 2 aliases
|
|
34
|
-
|
|
35
|
-
```css
|
|
36
|
-
--surface-page: var(--paper-25); /* default page background */
|
|
37
|
-
--surface-elevated: var(--paper-0); /* cards, panels */
|
|
38
|
-
--surface-warm: var(--paper-100); /* tinted band; in premium register this is cool mist */
|
|
39
|
-
--surface-deep: var(--teal-950); /* full-bleed dark sections */
|
|
40
|
-
--text-primary: var(--teal-900);
|
|
41
|
-
--text-secondary: var(--slate-600);
|
|
42
|
-
--text-tertiary: var(--slate-400);
|
|
43
|
-
--text-on-deep: var(--paper-25);
|
|
44
|
-
--text-accent: var(--gold-700);
|
|
45
|
-
--text-accent-on-deep: var(--gold-300);
|
|
46
|
-
--border-fine: var(--rule-fine);
|
|
47
|
-
--border-accent: var(--gold-500);
|
|
48
|
-
--font-display: var(--serif); /* Cormorant Garamond */
|
|
49
|
-
--font-editorial: var(--body-serif); /* Lora */
|
|
50
|
-
--font-ui: var(--sans); /* Inter */
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
## Hard rules
|
|
54
|
-
|
|
55
|
-
- **Never hard-code a hex value inside component CSS.** Audit by `grep -E '#[0-9A-Fa-f]{3,6}' <artefact>/index.html` — every match must be inside the `:root` block.
|
|
56
|
-
- **Page background is `--paper-25`, never pure `#FFFFFF`.** Pure white is reserved for elevated cards (`--surface-elevated`).
|
|
57
|
-
- **Gold is reserved for accent, never primary CTA.** Primary action buttons sit on `--teal-900` with `--gold-700` hover.
|
|
58
|
-
- **All-caps eyebrows always use `--font-ui` + letter-spacing ≥ 0.24em.**
|
|
59
|
-
- **Cool mist (`--paper-100 #ECF1F2`) replaced warm cream (`#EFE7D8`) in the premium register.** Tinted bands / callouts read as pale steely blue, not light brown.
|
|
60
|
-
|
|
61
|
-
## When the user says "I don't like this colour"
|
|
62
|
-
|
|
63
|
-
The pattern from the reference project: the user identifies a token whose value is off. The fix is:
|
|
64
|
-
|
|
65
|
-
1. Update the value in `<project-site>/.docs/design-tokens.md` Tier 1 table.
|
|
66
|
-
2. Mirror the value in every consuming artefact's `:root` block (business plan HTML, prospectus HTML, deck HTML).
|
|
67
|
-
3. Re-render PDFs.
|
|
68
|
-
|
|
69
|
-
Keep the token NAMES stable. Updating values is non-breaking; renaming is.
|
|
70
|
-
|
|
71
|
-
## Logo assets
|
|
72
|
-
|
|
73
|
-
Project ships icon variants in `<project-site>/public/<brand>/`:
|
|
74
|
-
|
|
75
|
-
- White-mono variant for dark backgrounds (cover, backpage).
|
|
76
|
-
- Dark variant for light content pages.
|
|
77
|
-
- Colour variant for general use.
|
|
78
|
-
|
|
79
|
-
Copy the needed variants into the artefact directory (e.g. `html/business-plan/logo-light.png`) for relative-path reference inside the HTML.
|
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
# HTML + PDF render pipeline
|
|
2
|
-
|
|
3
|
-
Image-only A4 portrait PDF, rendered from a single HTML file via Playwright + img2pdf + qpdf. Constraints inlined in the parent `SKILL.md` Stage 5.
|
|
4
|
-
|
|
5
|
-
## File layout per artefact
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
html/<artefact>/
|
|
9
|
-
index.html # source of truth
|
|
10
|
-
render-pdf.mjs # Playwright pipeline
|
|
11
|
-
<artefact>.pdf # rendered output
|
|
12
|
-
logo-light.png # for dark cover/backpage
|
|
13
|
-
logo-dark.png # for light content pages (optional)
|
|
14
|
-
README.md # render + verify commands, page list
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## HTML scaffold (key blocks)
|
|
18
|
-
|
|
19
|
-
```html
|
|
20
|
-
<!DOCTYPE html>
|
|
21
|
-
<html lang="en-GB">
|
|
22
|
-
<head>
|
|
23
|
-
<meta charset="UTF-8">
|
|
24
|
-
<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Inter:wght@400;500;600;700&family=Lora:ital,wght@0,400;0,500;0,600;1,400&display=swap" rel="stylesheet">
|
|
25
|
-
<style>
|
|
26
|
-
/* Tier 1 + Tier 2 design tokens from project's design-tokens.md */
|
|
27
|
-
:root {
|
|
28
|
-
--teal-900: #0E1418;
|
|
29
|
-
--teal-950: #06080A;
|
|
30
|
-
--gold-500: #A4884C;
|
|
31
|
-
--gold-300: #C9B07A;
|
|
32
|
-
--gold-700: #7A6235;
|
|
33
|
-
--paper-0: #FFFFFF;
|
|
34
|
-
--paper-25: #FBFAF6;
|
|
35
|
-
--paper-100: #ECF1F2;
|
|
36
|
-
--slate-400: #8A8E96;
|
|
37
|
-
--slate-600: #5C6470;
|
|
38
|
-
--rule-fine: #E2D5BD;
|
|
39
|
-
--serif: 'Cormorant Garamond', serif;
|
|
40
|
-
--body-serif: 'Lora', Georgia, serif;
|
|
41
|
-
--sans: 'Inter', sans-serif;
|
|
42
|
-
--surface-page: var(--paper-25);
|
|
43
|
-
--surface-deep: var(--teal-950);
|
|
44
|
-
--text-primary: var(--teal-900);
|
|
45
|
-
--text-on-deep: var(--paper-25);
|
|
46
|
-
--text-accent: var(--gold-700);
|
|
47
|
-
--text-accent-on-deep: var(--gold-300);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
@page { size: A4 portrait; margin: 18mm 16mm 20mm; }
|
|
51
|
-
@page :first { margin: 0; }
|
|
52
|
-
@page backpage-full { margin: 0; }
|
|
53
|
-
|
|
54
|
-
body {
|
|
55
|
-
margin: 0;
|
|
56
|
-
background: var(--surface-page);
|
|
57
|
-
color: var(--text-primary);
|
|
58
|
-
font-family: var(--body-serif);
|
|
59
|
-
font-size: 11pt;
|
|
60
|
-
line-height: 1.55;
|
|
61
|
-
counter-reset: pagenum;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
.page {
|
|
65
|
-
counter-increment: pagenum;
|
|
66
|
-
position: relative;
|
|
67
|
-
}
|
|
68
|
-
.page:not(.page--cover):not(.page--backpage)::after {
|
|
69
|
-
content: counter(pagenum);
|
|
70
|
-
position: absolute;
|
|
71
|
-
bottom: 10mm;
|
|
72
|
-
right: 16mm;
|
|
73
|
-
font-family: var(--sans);
|
|
74
|
-
font-size: 9pt;
|
|
75
|
-
letter-spacing: 0.28em;
|
|
76
|
-
color: var(--slate-400);
|
|
77
|
-
}
|
|
78
|
-
.page:not(.page--cover):not(.page--backpage)::before {
|
|
79
|
-
content: "REAL AGENT NETWORK LIMITED · BUSINESS PLAN · v1.0";
|
|
80
|
-
position: absolute;
|
|
81
|
-
bottom: 10mm;
|
|
82
|
-
left: 16mm;
|
|
83
|
-
font-family: var(--sans);
|
|
84
|
-
font-size: 7pt;
|
|
85
|
-
letter-spacing: 0.24em;
|
|
86
|
-
color: var(--slate-400);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
@media screen {
|
|
90
|
-
body { background: #FFFFFF; padding: 24px; }
|
|
91
|
-
.page {
|
|
92
|
-
width: 210mm; min-height: 297mm;
|
|
93
|
-
margin: 20px auto; padding: 18mm 16mm 20mm;
|
|
94
|
-
background: var(--surface-page);
|
|
95
|
-
box-shadow: 0 4px 28px rgba(0,0,0,0.14);
|
|
96
|
-
}
|
|
97
|
-
.page--cover, .page--backpage { padding: 0; overflow: hidden; }
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
@media print {
|
|
101
|
-
body { background: var(--surface-page); padding: 0; }
|
|
102
|
-
.page { page-break-after: always; padding: 0; }
|
|
103
|
-
.page--cover, .page--backpage {
|
|
104
|
-
margin: 0; width: auto; box-shadow: none;
|
|
105
|
-
height: 100vh; position: relative; overflow: hidden;
|
|
106
|
-
-webkit-print-color-adjust: exact;
|
|
107
|
-
print-color-adjust: exact;
|
|
108
|
-
}
|
|
109
|
-
.page--backpage { page-break-before: always; page: backpage-full; }
|
|
110
|
-
.download-btn { display: none !important; }
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
.download-btn {
|
|
114
|
-
position: fixed; top: 20px; right: 20px; z-index: 100;
|
|
115
|
-
font-family: var(--sans); font-size: 9pt; letter-spacing: 0.28em;
|
|
116
|
-
text-transform: uppercase; color: var(--paper-0);
|
|
117
|
-
background: var(--teal-900); padding: 11px 18px 12px;
|
|
118
|
-
border-radius: 9999px; text-decoration: none;
|
|
119
|
-
box-shadow: 0 4px 16px rgba(14, 20, 24, 0.18);
|
|
120
|
-
}
|
|
121
|
-
.download-btn:hover { background: var(--gold-700); }
|
|
122
|
-
</style>
|
|
123
|
-
</head>
|
|
124
|
-
<body>
|
|
125
|
-
<a class="download-btn" href="<artefact>.pdf" download>Download PDF</a>
|
|
126
|
-
|
|
127
|
-
<section class="page page--cover" data-screen-label="cover"> ... </section>
|
|
128
|
-
<section class="page" data-screen-label="exec-summary"> ... </section>
|
|
129
|
-
<!-- ... one <section class="page"> per A4 page ... -->
|
|
130
|
-
<section class="page page--backpage" data-screen-label="backpage"> ... </section>
|
|
131
|
-
</body>
|
|
132
|
-
</html>
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
## render-pdf.mjs (canonical)
|
|
136
|
-
|
|
137
|
-
```javascript
|
|
138
|
-
#!/usr/bin/env node
|
|
139
|
-
import { chromium } from 'playwright';
|
|
140
|
-
import { execFileSync } from 'node:child_process';
|
|
141
|
-
import { mkdirSync, rmSync, existsSync } from 'node:fs';
|
|
142
|
-
import { dirname, basename, join, resolve, extname } from 'node:path';
|
|
143
|
-
import { pathToFileURL } from 'node:url';
|
|
144
|
-
|
|
145
|
-
const [, , htmlInput, pdfOutput] = process.argv;
|
|
146
|
-
if (!htmlInput || !pdfOutput) {
|
|
147
|
-
console.error('Usage: render-pdf.mjs <input.html> <output.pdf>');
|
|
148
|
-
process.exit(64);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
const htmlPath = resolve(htmlInput);
|
|
152
|
-
const pdfPath = resolve(pdfOutput);
|
|
153
|
-
const tmpDir = resolve(dirname(pdfPath), `.tmp-${basename(pdfPath, extname(pdfPath))}`);
|
|
154
|
-
rmSync(tmpDir, { recursive: true, force: true });
|
|
155
|
-
mkdirSync(tmpDir, { recursive: true });
|
|
156
|
-
|
|
157
|
-
const VIEWPORT_W = 794; // A4 portrait at 96 dpi
|
|
158
|
-
const VIEWPORT_H = 1123;
|
|
159
|
-
const SCALE = 3.125; // → 300 dpi PNGs
|
|
160
|
-
const A4_HEIGHT_PX_SLACK = VIEWPORT_H + 2;
|
|
161
|
-
|
|
162
|
-
(async () => {
|
|
163
|
-
const browser = await chromium.launch();
|
|
164
|
-
const context = await browser.newContext({
|
|
165
|
-
viewport: { width: VIEWPORT_W, height: VIEWPORT_H },
|
|
166
|
-
deviceScaleFactor: SCALE,
|
|
167
|
-
});
|
|
168
|
-
const page = await context.newPage();
|
|
169
|
-
|
|
170
|
-
await page.goto(pathToFileURL(htmlPath).toString(), { waitUntil: 'networkidle' });
|
|
171
|
-
await page.emulateMedia({ media: 'print' });
|
|
172
|
-
await page.evaluate(() => document.fonts ? document.fonts.ready : Promise.resolve());
|
|
173
|
-
await page.evaluate(() => { document.body.style.padding = '0'; });
|
|
174
|
-
|
|
175
|
-
const sections = await page.$$('section.page');
|
|
176
|
-
if (sections.length === 0) {
|
|
177
|
-
console.error('No <section class="page"> elements found.');
|
|
178
|
-
process.exit(65);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
const pngFiles = [];
|
|
182
|
-
let overflow = false;
|
|
183
|
-
|
|
184
|
-
for (let i = 0; i < sections.length; i++) {
|
|
185
|
-
const section = sections[i];
|
|
186
|
-
const label = await section.getAttribute('data-screen-label') || `page${i + 1}`;
|
|
187
|
-
const scrollHeight = await section.evaluate(el => el.scrollHeight);
|
|
188
|
-
if (scrollHeight > A4_HEIGHT_PX_SLACK) {
|
|
189
|
-
console.error(`[OVERFLOW] page ${i + 1} (${label}): ${scrollHeight}px > A4 + 2px slack`);
|
|
190
|
-
overflow = true;
|
|
191
|
-
}
|
|
192
|
-
const outPath = join(tmpDir, `page-${String(i + 1).padStart(2, '0')}-${label}.png`);
|
|
193
|
-
await section.scrollIntoViewIfNeeded();
|
|
194
|
-
await section.screenshot({ path: outPath, type: 'png' });
|
|
195
|
-
pngFiles.push(outPath);
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
await browser.close();
|
|
199
|
-
if (overflow) {
|
|
200
|
-
console.error('Overflow detected. Aborting.');
|
|
201
|
-
process.exit(4);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
const preLinearize = join(tmpDir, 'pre-linearize.pdf');
|
|
205
|
-
execFileSync('img2pdf', ['--pagesize', '210mmx297mm', '--output', preLinearize, ...pngFiles], { stdio: 'inherit' });
|
|
206
|
-
execFileSync('qpdf', ['--linearize', '--object-streams=disable', preLinearize, pdfPath], { stdio: 'inherit' });
|
|
207
|
-
|
|
208
|
-
console.log(`✓ PDF written: ${pdfPath}`);
|
|
209
|
-
})();
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
## Verification
|
|
213
|
-
|
|
214
|
-
After every render:
|
|
215
|
-
|
|
216
|
-
```sh
|
|
217
|
-
qpdf --check <artefact>.pdf # → "No syntax or stream encoding errors found"
|
|
218
|
-
pdfinfo <artefact>.pdf | grep -E "Pages|Optimized" # → confirms page count + linearization
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
Then **read every page visually**. `pdfinfo` reporting "25 pages, A4" is not verification.
|
|
222
|
-
|
|
223
|
-
## Dependencies
|
|
224
|
-
|
|
225
|
-
```sh
|
|
226
|
-
npm i -D playwright && npx playwright install chromium
|
|
227
|
-
brew install img2pdf qpdf
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
## Hard rules
|
|
231
|
-
|
|
232
|
-
- One `<section class="page">` per A4 page. Renderer aborts (exit 4) on overflow.
|
|
233
|
-
- `execFileSync` (never `execSync` with template strings).
|
|
234
|
-
- Cover and backpage are full-bleed dark teal (`--surface-deep`); skip page numbers and running footer via `:not(.page--cover):not(.page--backpage)` selectors on the page-counter pseudo-elements.
|
|
235
|
-
- Even page count for booklet binding (multiple of 4 ideal).
|
|
236
|
-
- Logo: copy the white-mono icon variant as `logo-light.png` for dark cover/backpage; copy the dark icon variant as `logo-dark.png` if used on light content pages.
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# Internal-workings scrub — public-vs-internal doctrine
|
|
2
|
-
|
|
3
|
-
Public-facing documents (business plan, prospectus, deck, term sheet, anything the investor reads) state the **current position** only. The journey to that position, the reasoning behind it, comparisons against prior baselines, open items still being reconciled, and cross-references to internal sections all stay in working documents in the data-room's internal sections.
|
|
4
|
-
|
|
5
|
-
## Patterns that must NOT appear in public docs
|
|
6
|
-
|
|
7
|
-
- **Comparison to baseline / prior version.** *"The loss has grown from -£282.6k to -£323.1k because…"*, *"Total opex (M0 customer-success hire adds £40,500 vs the M10 model worksheet baseline)"*.
|
|
8
|
-
- **Process commentary.** *"Numbers below use the model's published figures pending the reconciled rebuild"*, *"reconciliation pending"*, *"open item, not actioned here"*, *"see Section X critical note and Section Y contingency levers for the reconciliation paths"*.
|
|
9
|
-
- **Internal cross-references to scaffolding.** *"see Section 12.3 critical note"*, *"see Section 12.6 contingency levers"* when the linked content itself is process-talk rather than substance.
|
|
10
|
-
- **Discrepancy resolution narratives.** *"The earlier '£0.01 vs £0.001 nominal' note is resolved by treating the £4,500 as share premium"*.
|
|
11
|
-
- **"Open Q" or "Open item" markers in body text.** Belongs in section READMEs and the office-hours design doc only.
|
|
12
|
-
- **Date-coded internal designs.** *"2026-04-22 design"*, *"office-hours design doc"*, *"model worksheet (Appendix A) needs a rebuild"*.
|
|
13
|
-
- **"Pre-contingency-lever activation" / "once X is included" hedges in summary tables.**
|
|
14
|
-
- **Explanatory parentheticals that name the process.** *"(M10-trigger model did not carry)"* is process commentary and must go.
|
|
15
|
-
|
|
16
|
-
## What IS acceptable in a public-facing document
|
|
17
|
-
|
|
18
|
-
- The current position, stated as a fact.
|
|
19
|
-
- A footnote citing a source (Companies House, IBISWorld, ICO, etc.) when the figure derives from public data.
|
|
20
|
-
- A pointer to a public appendix (titled documents only; not internal-section READMEs).
|
|
21
|
-
- Conditions on a forecast figure that an investor needs to know (e.g. "assuming Round 2 closes at M9-M10").
|
|
22
|
-
|
|
23
|
-
## The same content, internal vs public
|
|
24
|
-
|
|
25
|
-
| Internal version (working doc) | Public version (business plan) |
|
|
26
|
-
|---|---|
|
|
27
|
-
| Total operating expenses ~£649,100 (M0 customer-success hire adds £40,500 vs the M10 model worksheet baseline). | Total operating expenses ~£649,100. |
|
|
28
|
-
| Year-1 P&L loss has grown from -£282.6k to -£323.1k because the customer-success hire is brought forward from M10 to M0. | Year-1 P&L loss is approximately £323k against revenue of £356k. |
|
|
29
|
-
| Cash crosses zero at M8–M9 if Round 2 does not close; the model worksheet's M11 £34k cash low arrives roughly two months earlier under the M0 CS hire structure. | The raise is sized to deliver the Round 2 gating milestones; Round 2 closes at M9 to M10. |
|
|
30
|
-
|
|
31
|
-
## Recurrence is a P0 violation
|
|
32
|
-
|
|
33
|
-
In the reference project this rule was violated three times in one session (initial draft used a dated internal design reference; appendix table referenced internal-only documents alongside externally-shareable ones; M0 customer-success hire updates added "model worksheet baseline" comparisons). The pattern: every time the founder adds content or asks for an update, the temptation is to include "what changed and why" alongside the new value. The temptation must be resisted; the public document carries only the new value. The "what changed and why" goes in a sibling internal document if it needs to live somewhere.
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
# Monetization Strategy
|
|
2
|
-
|
|
3
|
-
The method for turning a product into a revenue model: how the business makes money, from whom, over what time, and how that compounds. Pricing (`pricing-strategy.md`) sets the number on one tier; monetization sets the **shape of revenue across the whole relationship and the whole market**. Output lands in `04-financials/` and feeds business-plan §6 "The Business Model" and the prospectus.
|
|
4
|
-
|
|
5
|
-
## What this produces
|
|
6
|
-
The revenue architecture: the streams, the wedge→upsell path, the expansion mechanics, and the future network/platform revenue — each tied to evidence and reconciled against the financial model. Apply `internal-workings-scrub.md` before anything reaches a public document.
|
|
7
|
-
|
|
8
|
-
## Citation discipline (binding)
|
|
9
|
-
Every quantitative claim — attach/expansion rates, comparable monetization multiples, market spend that a future stream taps — is a **sourced claim**. Route benchmarks (typical net revenue retention, attach rates, comparable take-rates) through the `research-assistant` specialist with `deep-research`. Mark anything unsourced `source pending — route to research-assistant`. Projected expansion rates must cite a comparable or be flagged as an assumption, never stated as fact.
|
|
10
|
-
|
|
11
|
-
## Process
|
|
12
|
-
|
|
13
|
-
### 1. Map the revenue streams
|
|
14
|
-
List every way money comes in, now and planned: subscription, usage, services, and any future network-effect or platform-take revenue. For each, state whether it exists today or is a forward bet, and what gates it (the milestone that turns it on).
|
|
15
|
-
|
|
16
|
-
### 2. Define the wedge → upsell path
|
|
17
|
-
The narrowest unit of value (the wedge) earns trust and the right to sell the high-value product. State the mechanic: what the wedge delivers, what triggers the upsell, and the expected path from wedge ACV to full ACV. This is the monetization thesis — it must match the GTM "horse before cart" logic in business-plan §7.
|
|
18
|
-
|
|
19
|
-
### 3. Choose the expansion engine
|
|
20
|
-
How does revenue per customer grow without a new sale? Seat expansion, usage growth, tier upgrade, cross-sell. Name the one that dominates and tie it to a sourced or evidenced retention/expansion assumption. Land-and-expand only counts if the expand step has evidence.
|
|
21
|
-
|
|
22
|
-
### 4. Sequence future streams to milestones
|
|
23
|
-
Network-effect or platform revenue is real only when its gating milestone is named (e.g. "federation revenue turns on once N accounts are live"). Put it on the model as a forward stream with its trigger, not as day-one revenue.
|
|
24
|
-
|
|
25
|
-
### 5. Reconcile to the model
|
|
26
|
-
The streams and rates here must roll up to the ARR trajectory in business-plan §12 and the SOM in §4. If monetization implies a number the model doesn't show, one is wrong — reconcile explicitly (see the sibling `zero-to-prototype/references/market-sizing.md` reconciliation discipline).
|
|
27
|
-
|
|
28
|
-
## Output
|
|
29
|
-
`04-financials/` working notes → business-plan §6 and the prospectus. Each stream: status (live/forward), mechanic, gating milestone, and a citation for every benchmark.
|
|
30
|
-
|
|
31
|
-
## Common failures
|
|
32
|
-
- Counting forward network revenue as if it were live.
|
|
33
|
-
- An "expand" motion with no evidence the expand step happens.
|
|
34
|
-
- Attach/retention rates asserted, not sourced or evidenced.
|
|
35
|
-
- Monetization that contradicts the ARR line in the financial model.
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# Pricing Strategy
|
|
2
|
-
|
|
3
|
-
The method for setting a defensible price for the wedge and the full product. Output lands in `04-financials/` (unit economics) and feeds business-plan §6 "The Business Model" and the prospectus. Apply the `internal-workings-scrub.md` doctrine to anything that reaches a public document.
|
|
4
|
-
|
|
5
|
-
## What this produces
|
|
6
|
-
A price (or price band) per tier, with the **basis** stated: what the price is anchored to, why a buyer pays it, and what it implies for ACV, gross margin, and the LTV:CAC the financial model depends on.
|
|
7
|
-
|
|
8
|
-
## Citation discipline (binding)
|
|
9
|
-
Pricing is built from numbers — competitor prices, willingness-to-pay signals, cost-to-serve, comparable ACVs. Every such number is a **sourced claim**, not a guess. Route competitor pricing, comparable contract values, and willingness-to-pay benchmarks through the `research-assistant` specialist (with `deep-research` / `data-research`); quote the citation. Any figure you cannot source is written `source pending — route to research-assistant`. A price defended by invented competitor numbers is a failed price.
|
|
10
|
-
|
|
11
|
-
## Process
|
|
12
|
-
|
|
13
|
-
### 1. Choose the pricing basis
|
|
14
|
-
Pick the anchor deliberately — they produce very different numbers:
|
|
15
|
-
- **Cost-plus** — cost-to-serve plus a margin. Floor only; never the headline for software.
|
|
16
|
-
- **Competitor-anchored** — relative to the sourced price of the closest alternative (including "the status quo / doing nothing", which often has a real cost).
|
|
17
|
-
- **Value-based** — a share of the quantified value the buyer gets (time saved × loaded cost, revenue gained, risk avoided). The strongest basis when the value is sourced and legible to the buyer.
|
|
18
|
-
|
|
19
|
-
Most seed-stage pricing is value-based with a competitor-anchored sanity check.
|
|
20
|
-
|
|
21
|
-
### 2. Quantify value and willingness to pay
|
|
22
|
-
State the buyer's gain in their units, sourced or evidenced from discovery (the sibling `zero-to-prototype/references/commitment-signals.md` and `mom-test.md`). Price as a fraction of that gain that still leaves the buyer clearly ahead. Cross-check against willingness-to-pay signals from real conversations, not assertion.
|
|
23
|
-
|
|
24
|
-
### 3. Set the structure
|
|
25
|
-
Decide the model (per-seat, usage, flat subscription, tiered) and the tiers. Keep tiers to the few a founder can explain in one breath. Name the wedge price (the narrow public-by-default entry) and the upsell price separately — the wedge→upsell path is the monetization thesis, detailed in `monetization-strategy.md`.
|
|
26
|
-
|
|
27
|
-
### 4. Reconcile to unit economics
|
|
28
|
-
The chosen price must produce an ACV that makes the model work: **LTV:CAC ≥ 3:1** target, **gross margin ≥ 70%** steady-state (the data-room's standing targets). If the price can't clear these with defensible CAC and churn, the price, the segment, or the cost structure is wrong — say which. Compute-cost pass-through follows the data-room doctrine: never mark up LLM compute; the customer pays the provider directly.
|
|
29
|
-
|
|
30
|
-
## Output
|
|
31
|
-
`04-financials/` working notes → business-plan §6 and the prospectus. Each tier: price, basis, ACV implication, and a citation for every external figure.
|
|
32
|
-
|
|
33
|
-
## Common failures
|
|
34
|
-
- Cost-plus pricing for value-dense software — leaves money on the table.
|
|
35
|
-
- Competitor prices asserted from memory instead of sourced.
|
|
36
|
-
- Tiers a buyer can't tell apart.
|
|
37
|
-
- A price that quietly breaks the LTV:CAC the financial model assumes.
|