Editorial voice engine — Opus-4.7-powered proactive drafting + dare-voice + Google-signal integration (parked sketch)
DARE.CO.UK · PARKED SKETCH · 2026-05-18
Mirrored from ~/.claude/.../memory/project_editorial_voice_engine_parked.md. This is a design sketch parked for future build — read for context, not as a current deliverable.
2026-05-18 sketch. An LLM-powered (Opus 4.7) creative engine baked into health.dare.co.uk that proactively SUGGESTS ways to write — opening lines, angles, full drafts — in dare’s voice while targeting Google signals. Learns + adapts from Dan’s accept/reject feedback. Recommender pattern at editorial scale; not “you should write” but “here’s a draft, accept or shape it.” Portable to audrey + dogwood + client work.
Dan, 2026-05-18 evening, after seeing health.dare.co.uk Phase 0+1 deployed: “On health.dare I can see an editorial voice engine, that can be active to get actionable on ways to write, ways to get started, it might have sketched some ideas, it will be learning and adapting. Park it for now, sketch it, but this is super interesting way of using your highest grade LLM (Opus 4.7) to do some heavy lifting, some proactive work, it gleans what gives strong google signals, yet it frames it within dare.”
Five-attribute definition (per user_streamlined_purpose_defined_surfaces.md)
| Attribute | Definition |
|---|---|
| Purpose | Compress the distance between “I should write something” and “I have a draft to react to.” Active drafting, not passive suggestion. |
| Goal | Materially increase the rate of high-quality editorial output across the portfolio — every priority-queue page on health.* should have a draft-able starting point, not just a recommendation. |
| Approach | Opus 4.7 on demand with three context layers: (a) brand-voice canon (dare four pillars + canonical examples), (b) Google signal layer (GSC keyword + impressions data per page), (c) page-specific context (current content if any, sibling pages, target audience). Outputs draft openings / angles / partial drafts → Dan accepts / rejects / refines. |
| Editorial voice | dare four pillars (per feedback_dare_brand_voice_four_pillars.md). For audrey + dogwood variants, brand-specific canonical voice memory required first. |
| Prompt needed | “Draft me a 200-word opener for this page that addresses ‘X’ in dare voice and targets [GSC keyword].” — the engine generates this prompt from page context; Dan refines. |
Architecture — three context layers + LLM + feedback loop
�STASH3�
The feedback store IS the learning loop — each accepted draft enriches the brand-voice canon; each rejection refines what NOT to do. Over months, the engine’s suggestions converge on dare’s actual voice + sharpened targeting.
Phases
Phase 1: One-shot drafting (no learning yet)
- “Draft opening” button on a priority-queue card on health.dare.co.uk
- Worker assembles context → Opus 4.7 → returns 200-word draft
- Renders inline; copy-to-clipboard; no feedback persistence
~half-day build once Phase 0 of health.* is live + Anthropic API key is in 1P (already done).
Phase 2: Multi-angle suggestion
- “3 angles” button → engine returns three distinct entry points (e.g. “from the craft angle” / “from the cultural-context angle” / “from the personal-narrative angle”). Dan picks one → it expands.
- Same single-call API cost; richer output structure.
Phase 3: Feedback capture + canon enrichment
- Accept / reject / refine buttons on each draft
- Feedback stored in KV
dare_voice_canon - Next call’s prompt includes the most-recently-accepted ~5 drafts as “what good looks like for this brand”
- Engine starts adapting
Phase 4: GSC signal integration
- GSC API integration (per
project_markers_from_google_parked.md) - Per-URL keyword data appended to context Layer 2
- Drafts target the specific keywords driving (or potentially-driving) traffic to this URL
- Engine becomes “voice + ranking” optimizer, not just “voice”
Phase 5: Active proactivity
- Daily cron: engine pre-generates draft openings for top-10 priority-queue pages overnight
- Dan opens health.dare.co.uk in the morning → drafts are ALREADY there to react to
- Friction-to-write drops further
Phase 6: Cross-portfolio adaptation
- Port to health.audreyinc.com with audrey’s voice canon (luxury craft register)
- Port to dashboard.dogwood.house with dogwood’s voice canon (British-Brooklyn register)
- Same engine, three brand canons; one weighty model call per editorial decision per brand
Cost envelope
Opus 4.7 is the LOAD-BEARING choice per Dan’s framing — quality of brand-voice adherence + editorial judgment justifies the model. Cost shape:
| Operation | Input tokens (est) | Output tokens (est) | Cost / call (Opus 4.7 pricing) |
|---|---|---|---|
| Draft opening | ~3-5k (3 context layers) | ~300-500 | ~$0.05-0.10 |
| 3 angles | ~3-5k | ~600-900 | ~$0.10-0.15 |
| Full draft | ~3-5k | ~1.5-2k | ~$0.15-0.25 |
| Phase 5 daily pre-gen (10 pages × full draft) | 30-50k | 15-20k | ~$1.50-2.50/day |
Monthly budget at Phase 5 cadence: ~$45-75. Negligible against the editorial-output gain.
Caching opportunity: brand-voice canon + canonical examples are STABLE across calls — perfect for Anthropic prompt caching. Cache the brand-voice layer (~1-3k tokens) → each subsequent call costs ~10% of uncached. Monthly budget drops to ~$10-20 at Phase 5 cadence.
Per claude-api skill — always include prompt caching in Anthropic SDK apps. Bake in from day one.
The Google-signal integration angle (Dan’s emphasis)
“it gleans what gives strong google signals, yet it frames it within dare.”
The two-axis balance: - Google signal side: what keywords drive traffic to similar dare pages? what’s the search intent? what’s the ranking gap? what query would this page ideally answer? - dare voice side: how does that question get ANSWERED in dare’s register? Not SEO-content factory; SEO-aware essay craft.
The engine’s value is the bridge — not either pole alone. A dare-voiced essay that nobody searches for compounds slowly. A search-targeted page that doesn’t sound like dare violates the brand. The engine threads both.
Per project_markers_from_google_parked.md — this is where the GSC API integration earns its keep. Markers tell us where the gap is; the voice engine writes the bridge.
Open design questions
- Canonical-examples corpus. Phase 1 needs ~5 canonical dare long-form pieces as register reference. Which ones? Probably the few /observations/ + /methods-of-business-design/ long-form pieces. Need explicit curation by Dan.
- Feedback granularity. Accept/reject is binary; refine is open-ended. How much weight does a refine carry vs an accept? v1 = treat refine as “partial accept, but mind these changes.”
- Brand-canon contamination risk. If accepted drafts feed back into the canon, drift compounds. Need a guardrail: canon never auto-expands without Dan’s explicit “promote to canon” action.
- GSC integration freshness. GSC data is days-lagging. Engine should be honest when it’s working from stale data; surface confidence level.
- UI shape inside health.dare.co.uk. Inline drafting expands cards substantially. Modal? Side panel? Click-through to a dedicated drafting page? v1 = modal; v2 = dedicated page if drafts get long.
- Multi-brand canon switching. Phase 6 needs clean brand-voice switching. Memory naming convention:
<brand>_voice_canonKV namespace. The engine knows which brand it’s serving from URL.
Why Opus 4.7 specifically
Per Dan’s emphasis on “your highest grade LLM”:
- Voice register fidelity. Smaller models drift toward generic register; Opus holds dare’s specific four-pillars cadence.
- Editorial judgment. Picking which of three angles is RIGHT for a specific page requires taste — Opus has it.
- Long-context capability. Three context layers + reference examples + page context = 5-10k tokens easily. Opus handles this without quality loss.
- Cost is justified. $0.10-0.25 per draft is the price of one editorial decision; cheaper than Dan’s 30-min reasoning loop.
- Caching mitigates. Stable brand-voice context layer caches → ~90% cost reduction on repeat calls.
Sibling memories
user_invest_in_content_quality_not_more_tooling.md— the stance. This tool QUALIFIES as content-quality-supporting tooling per the exception clause.user_observer_to_recommender_dashboard_evolution.md— recommender pattern at editorial scale. This engine is “recommender → drafter” — one rung further along the active-help spectrum.user_streamlined_purpose_defined_surfaces.md— the five-attribute definition is at the top of this sketch.project_health_dare_co_uk_editorial_uplift_parked.md— the surface this engine lives inside.project_markers_from_google_parked.md— the GSC signal layer.feedback_dare_brand_voice_four_pillars.md— the dare-canon reference.claude-apiskill (Claude Code) — implementation includes prompt caching from day one.user_compounding_signal_north_star.md— the engine’s feedback loop is the compounding mechanism applied to editorial quality.user_dare_test_bed_to_commercial_leverage.md— port to audrey + dogwood + client engagements per the portability claim.
Resume conditions
- ✅ Dan begins active content-quality push on dare (regular sessions writing/upgrading priority-queue pages) — the engine pays off when Dan’s already in editorial mode + wants leverage.
- ✅ Anthropic API key in 1P (already done) + prompt caching tested via the
claude-apiskill. - ✅ 5 canonical dare long-form examples curated as the initial brand-canon corpus.
- ✅ GSC API integration lands (per
project_markers_from_google_parked.md) — enables Phase 4. - Earliest qualifying trigger → Phase 1 build (single-call drafting on one priority-queue card). Subsequent phases stage as feedback corpus + GSC data + cross-portfolio canons mature.