A POV-anchored content machine for LinkedIn, built as a Claude Code skill. It interviews you, codifies your voice from your best posts, drafts in your own words, gates every draft through a six-persona writer's council — and learns from the edits you make before publishing.
Most AI content fails for one reason: weak input. You give the model a topic, it gives you back the average of the internet. Standpoint refuses to work that way. It never writes from nothing — no interview or raw material from you, no post.
you ──▶ interview ──▶ sufficiency gate ──▶ draft (your words) ──▶ council ──▶ post
▲ │ fail?
│ ▼
POV platform ◀───────────── lessons loop ◀─── what you actually published
(what you're for,
what you're against)
Plenty of tools make posts sound like you. Sounding like you is table stakes here — the strategic layer is the point:
- A POV platform before a single post. Setup starts with a discovery interview that maps the 3–5 opinions you can credibly own — each earned by something you actually did, force-ranked on five axes, tested against a falsification rule (name a real actor who'd defend the opposite), and tied to the concrete buying-situation moments where your audience should remember you (grounded in Ehrenberg-Bass / "95-5" thinking about how buyers actually recall people and brands). Every post anchors to one. The platform's coverage map shows which moments you own and where the gaps are.
- A fact-checker with a veto. Every claim, number, and scene in a draft must be traceable to your interview transcript. One untraceable claim fails the draft outright — fabrication can't be averaged away by good scores.
- A council that scores strategy, not just style. Five scoring personas — Voice Keeper, Strategist, Slop Allergist, Cold Reader, Editor — each score against written anchors (what a 5, 7, and 9 look like). Below the bar → targeted revision, three scored rounds max. Still failing? You get the draft marked "DID NOT PASS" with the objections. The gate is honest, and every scorecard is persisted so you can audit the gate itself.
- Measured voice, not vibes.
scripts/fingerprint.pycomputes your actual writing metrics (sentence rhythm, em-dash density, question rate…) from your samples, andscripts/slop_check.pyis a deterministic regex gate that catches mechanical AI tells before a human-judgment pass. Both are stdlib Python — no dependencies. - It compounds. After you publish, the machine diffs your published version against its draft, proposes generalizable lessons ("you cut 30% — draft 30% shorter"), and — only with your approval — adds them to a lessons file every future draft must obey. Performance rolls up per POV, so the idea engine learns which of your stances actually land.
- Your data stays yours. Everything lives in a
content-machine/folder of plain markdown you can read, edit, and version. No third-party service is involved beyond the model provider already running your Claude Code session (your transcripts and drafts go to it like any conversation — nowhere else).
npx skills add olson-adam/standpointManual alternative: clone this repo and copy/symlink the repo folder to ~/.claude/skills/standpoint/ (the folder containing SKILL.md). Verify with /skills in Claude Code — standpoint should be listed.
Requires Claude Code and Python 3 for the scripts. No API keys, no accounts — including voice: interviews can be answered by voice note, transcribed locally via scripts/transcribe.py (optional; any whisper backend, Apple Silicon fastest via mlx-whisper). The Oracle's capture mode ships with a cron recipe for a daily morning scan. (The idea engine can use MCP-connected tools like Slack or Notion if you have them — it works fine without.)
Before you start, collect 10–15 of your best LinkedIn posts — split into top performers and personal favorites. Setup is a real interview, not a form: budget 60–90 minutes, resumable across sessions.
you: set up my content machine
POV discovery → force-ranking → voice codification with measured fingerprint. In a hurry? Say I need a post today and you get a 10-minute provisional setup with an honest quality warning.
you: what should I write about this week?
The Oracle ranks sparks from your week's work against your POV platform and rotation plan — and it remembers what it already pitched.
you: let's write the one about the budget cut
Two interviewer archetypes — three for meaty topics — pull the actual story out of you. A sufficiency gate checks the transcript has a scene, a checkable detail, a contestable claim, and a payoff — then the draft is built from your words, and the council takes over:
COUNCIL — round 2 of 3
Fact-Checker OK (9 claims traceable)
Voice Keeper 9.0 "cold-open incident hook — litmus-adjacent"
Strategist 9.0 "evokes the new-tier-for-revenue moment; competitor couldn't post this"
Slop Allergist 8.5 "clean after round-1 parallelism cut"
Cold Reader 8.5 "stops on line one; concrete Monday action"
Editor 8.5 "round-1 was 31% longer; ending lands"
Avg 8.7 · min 8.5 → PASS
After you publish:
you: here's what I actually posted → [paste]
The lessons loop diffs, extracts what generalizes, and asks before it learns.
assets/example-workspace/ is a complete worked example — a fictional fractional CFO's platform with four force-ranked POVs, a coverage map, a measured voice guide, a real interview transcript, and a post file that went draft → council → published → lessons. Read it before your own setup; it shows what "good" looks like at every step.
evals/ contains six deliberately flawed drafts (fabricated numbers, mechanical slop, voice mismatch, POV-orphan, topic-not-moment, beige body) with expected council outcomes — proof the gate grips, and a regression suite for anyone modifying the council.
content-machine/
├── pov-platform.md # the opinions you own, force-ranked, with coverage map
├── voice-guide.md # your hooks, structure, measured fingerprint, local slop tells
├── style-guide.md # who you are, goals, boundaries, council threshold
├── content-lessons.md # everything the machine has learned from your edits
├── vault.md # parked sparks
├── plan.md # cadence + POV rotation log
├── samples/ # your writing samples + local slop tells
├── interviews/ # transcripts — the raw material of every post
└── posts/ # one file per post: draft, scorecard, published, repurposed
- Council threshold defaults to min 8.0 / avg 8.5 (not a hard 9): the bar is calibrated per user after ~10 posts rather than fixed — a threshold you always fail teaches nothing.
- The Oracle is on-demand, not a daemon: no background processes in v1. Its capture mode is schedulable with your agent's own scheduler if you want daily scanning.
- One person, one account per workspace: ghostwriters and multi-account users run one workspace per profile.
The six-step machine architecture (oracle → interview → codified voice → council → lessons loop → repurpose) is inspired by Alex Lieberman's content machine, as shared on the How I AI podcast. Standpoint rebuilds it as an open, installable skill and adds the strategic layer: the POV platform with force-ranking and coverage mapping, entry-point anchoring, a fact-checker with veto power, measured voice fingerprints, and a council that scores what you say — not just how you sound.
MIT