diff --git a/docs/expert-review/dream-spec-panel.md b/docs/expert-review/dream-spec-panel.md new file mode 100644 index 0000000..81e8a05 --- /dev/null +++ b/docs/expert-review/dream-spec-panel.md @@ -0,0 +1,80 @@ +# Dream-Spec Expert Panel — Launch-Ready Spec + +> Operator-redirected expert panel (2026-06-20). **Supersedes the critique-of-current direction in +> `plan.md`.** Instead of reviewing the existing plugin, a panel of world-class LinkedIn-growth experts +> defines the **ideal plugin's capability spec** (north-star), then a second pass reviews the **current** +> plugin against that dream-spec. **Informational — NOT a plan/roadmap** (operator's explicit framing). +> Run as a background multi-agent Workflow; main context writes the final doc (operator-gated). + +## Mission (the exact growth thesis — operator-clarified) +A creator wants a **very large, highly engaged LinkedIn following in 2026 that compounds through +word-of-mouth**: the account (powered by this plugin) gets so good that its **followers "recruit" new +LinkedIn users to the account** — reshares, tagging, "save-and-send", collaborations, comment-networks. +Engaged followers bring in more followers. Plus a strong, differentiated **personal brand** that converts +attention into opportunity. The vehicle is an AI plugin (slash-commands + sub-agents) run by a **non-expert** +who needs the tool to supply the domain expertise. + +## Deliverable +1. `docs/expert-review/dream-spec.md` — the consolidated north-star capability spec (the reference the + operator consults when proposing improvements from real use). +2. A **full review of the current plugin measured against the dream-spec** (delivers / partial / missing, + with file:line evidence) — informational, appended or as `docs/expert-review/review-vs-spec.md`. + +## Panel — 7 expert lenses (define the IDEAL, no anchoring to current) +algo (algorithm & distribution) · craft (hook & format craft) · brand (positioning & personal brand) · +growth (audience growth & network effects — the "verver andre" core) · engage (engagement & community) · +analytics (data-driven iteration, honest about LinkedIn data limits) · voice (authenticity / anti-AI-slop). + +## Review buckets — 7 (assess current plugin vs the dream-spec) +Same 7 keys; each reviewer reads the relevant current files (see script `BUCKETS[].files`). + +## How to run (next session, full context) +1. `Workflow({ script })` below, **`run_in_background: true`**. Launch FIRST (it runs while you do the push). +2. On completion: main context writes `dream-spec.md` + `review-vs-spec.md` from the returned + `{ dreamSpec, principles, reviews }`. Opus, human-facing, operator-gated (no auto-merge). +3. Then write a project memory for the dream-spec artifact. + +## Workflow script (paste verbatim into `Workflow({script})`) +```js +export const meta = { + name: 'linkedin-dream-spec-panel', + description: 'World-class growth-expert panel defines the ideal LinkedIn plugin spec, then reviews the current plugin against it (informational, not a plan)', + phases: [ + { title: 'Dream-spec', detail: '7 expert lenses define ideal capabilities (no anchoring to current)' }, + { title: 'Consolidate', detail: 'merge lenses into one dream-spec' }, + { title: 'Review-vs-spec', detail: 'assess current plugin against the dream-spec' }, + ], +} +const MISSION = `A creator wants a VERY LARGE, HIGHLY ENGAGED LinkedIn following in 2026 that COMPOUNDS THROUGH WORD-OF-MOUTH: the account (powered by this plugin) gets so good that its FOLLOWERS RECRUIT NEW LinkedIn users to the account — reshares, tagging, "save-and-send", collaborations, comment-networks. Engaged followers bring in more followers. Plus a strong, differentiated PERSONAL BRAND that converts attention into opportunity. The vehicle is an AI plugin (slash-commands + sub-agents) run by a NON-EXPERT who needs the tool to supply the domain expertise. Define what that plugin must DO.` +const LENSES = [ + { key:'algo', title:'LinkedIn algorithm & distribution', brief:'how the 2026 feed ranks, tests, suppresses and resurfaces content; what a tool must do to maximize organic reach and dwell' }, + { key:'craft', title:'Hook & content-format craft', brief:'scroll-stopping hooks, narrative tension, format mechanics (carousel/video/text/poll), the craft that earns engagement' }, + { key:'brand', title:'Personal-brand & positioning strategy', brief:'ICP clarity, differentiation, authority architecture, offer<->content fit, a recognizable point of view' }, + { key:'growth', title:'Audience growth & network effects', brief:'the word-of-mouth loop — what makes engaged followers recruit MORE followers to the account: shareable/taggable formats, collaborations, comment-networks, compounding' }, + { key:'engage', title:'Engagement & community building', brief:'first-hour tactics, comment strategy, relationship systems, turning followers into an active community that returns and advocates' }, + { key:'analytics', title:'Analytics & data-driven iteration', brief:'what to measure (honest about LinkedIn data limits), how to close the feedback loop, experiment design, knowing what is working' }, + { key:'voice', title:'Authenticity & anti-AI-slop voice', brief:'staying credibly human at scale, a real voice, avoiding generic AI tells and broetry fatigue, earning trust' }, +] +const BUCKETS = [ + { key:'algo', title:'Algorithm & distribution', files:'references/algorithm-signals-reference.md, commands/analyze.md, commands/report.md, agents/analytics-interpreter.md, agents/post-feedback-monitor.md, references/linkedin-formats.md' }, + { key:'craft', title:'Content & format craft', files:'commands/post.md, commands/quick.md, commands/carousel.md, commands/video.md, commands/react.md, agents/content-optimizer.md, agents/video-scripter.md, references/engagement-frameworks.md, references/content-angles.md' }, + { key:'brand', title:'Positioning & personal brand', files:'commands/strategy.md, commands/profile.md, commands/onboarding.md, commands/setup.md, agents/strategy-advisor.md' }, + { key:'growth', title:'Growth & network effects', files:'commands/outreach.md, commands/competitive.md, commands/batch.md, agents/network-builder.md, agents/content-repurposer.md, agents/trend-spotter.md, references/collaborations-guide.md, references/opportunity-generation.md' }, + { key:'engage', title:'Engagement & community', files:'commands/firsthour.md, commands/calendar.md, agents/engagement-coach.md, references/engagement-frameworks.md' }, + { key:'analytics', title:'Analytics & iteration', files:'commands/import.md, commands/report.md, commands/analyze.md, commands/audit.md, commands/ab-test.md, commands/measure.md, agents/analytics-interpreter.md' }, + { key:'voice', title:'Authenticity, voice & long-form', files:'skills/linkedin-voice/SKILL.md, agents/voice-trainer.md, agents/voice-scrubber.md, agents/differentiation-checker.md, commands/newsletter.md, agents/editorial-reviewer.md, agents/persona-reviewer.md, agents/fact-checker.md' }, +] +const EXPERT_SCHEMA = { type:'object', additionalProperties:false, required:['lens','capabilities','northStarPrinciples'], properties:{ lens:{type:'string'}, capabilities:{type:'array', items:{type:'object', additionalProperties:false, required:['name','whatItDoes','whyItMatters','howDelivered','priority'], properties:{ name:{type:'string'}, whatItDoes:{type:'string'}, whyItMatters:{type:'string'}, howDelivered:{type:'string'}, priority:{type:'string', enum:['core','high','nice']} } } }, northStarPrinciples:{type:'array', items:{type:'string'}} } } +const SPEC_SCHEMA = { type:'object', additionalProperties:false, required:['mission','capabilityAreas'], properties:{ mission:{type:'string'}, capabilityAreas:{type:'array', items:{type:'object', additionalProperties:false, required:['area','goal','capabilities'], properties:{ area:{type:'string'}, goal:{type:'string'}, capabilities:{type:'array', items:{type:'object', additionalProperties:false, required:['name','whatItDoes','whyItMatters','howDelivered','priority','sourceLenses'], properties:{ name:{type:'string'}, whatItDoes:{type:'string'}, whyItMatters:{type:'string'}, howDelivered:{type:'string'}, priority:{type:'string', enum:['core','high','nice']}, sourceLenses:{type:'array', items:{type:'string'}} } } } } } } } } +const REVIEW_SCHEMA = { type:'object', additionalProperties:false, required:['bucket','summary','assessments'], properties:{ bucket:{type:'string'}, summary:{type:'string'}, assessments:{type:'array', items:{type:'object', additionalProperties:false, required:['capability','coverage','evidence','gap'], properties:{ capability:{type:'string'}, coverage:{type:'string', enum:['delivers','partial','missing']}, evidence:{type:'string'}, gap:{type:'string'} } } } } } +phase('Dream-spec') +const expertsRaw = await parallel(LENSES.map(l => () => agent(`You are a world-class expert in ${l.title} — ${l.brief}.\n\nMISSION:\n${MISSION}\n\nDefine the capabilities THIS plugin must have, through YOUR lens ONLY, to make the creator succeed. Define the IDEAL — do NOT anchor to any existing tool or worry about what is already built. For each capability: name; whatItDoes; whyItMatters (the domain MECHANISM — why it drives a large / engaged / self-compounding following); howDelivered (how an AI slash-command or sub-agent would actually deliver it for a non-expert). Mark priority core/high/nice. Aim for 6-12 concrete capabilities. Also give 2-4 northStarPrinciples for your lens. Ground platform-mechanic claims in real 2026 LinkedIn dynamics; if a capability rests on a specific platform number you are unsure of, say so in whyItMatters rather than inventing a figure.`, { label:`spec:${l.key}`, phase:'Dream-spec', schema: EXPERT_SCHEMA }))) +const experts = expertsRaw.filter(Boolean) +log(`Dream-spec: ${experts.length}/${LENSES.length} expert lenses returned`) +phase('Consolidate') +const dreamSpec = await agent(`You are the panel's chief editor. ${experts.length} world-class experts each defined capabilities for the IDEAL LinkedIn-growth plugin (mission below). Consolidate into ONE dream-spec.\n\nMISSION:\n${MISSION}\n\nEXPERT OUTPUTS (JSON):\n${JSON.stringify(experts)}\n\nProduce: a one-paragraph mission; and capabilityAreas — each tied to a concrete creator-goal — with merged capabilities inside (dedupe overlaps across lenses; when lenses overlap, merge into one capability and list all sourceLenses). Comprehensive but non-redundant. This is the operator's north-star reference, so each capability must be concrete and actionable.`, { label:'consolidate', phase:'Consolidate', schema: SPEC_SCHEMA }) +phase('Review-vs-spec') +const reviews = (await parallel(BUCKETS.map(b => () => agent(`You are an adversarial, independent product reviewer. Below is the DREAM-SPEC for an ideal LinkedIn-growth plugin. Assess how the CURRENT plugin delivers the capabilities relevant to the "${b.title}" area — honestly and specifically. INFORMATIONAL (a gap assessment for the operator to read), NOT a plan or roadmap.\n\nDREAM-SPEC (JSON):\n${JSON.stringify(dreamSpec)}\n\nRead these current plugin files (relative to the repo root = cwd): ${b.files}\n\nFor each dream-spec capability relevant to "${b.title}", judge coverage: delivers | partial | missing — with concrete evidence (file:line or a specific observation) and the precise gap vs the dream-spec capability. Do not praise vaguely; cite. End with a 2-3 sentence summary of where this area stands against the dream.`, { label:`review:${b.key}`, phase:'Review-vs-spec', schema: REVIEW_SCHEMA }))).filter(Boolean) +log(`Review: ${reviews.length}/${BUCKETS.length} buckets assessed`) +return { dreamSpec, principles: experts.map(e => ({ lens: e.lens, northStarPrinciples: e.northStarPrinciples })), reviews } +```