skills/professional/substack-writer/SKILL.md
Structured multi-pass pipeline for turning raw technical notes into publication-quality Substack/blog posts for a professional software-engineering portfolio. Use whenever the user wants to draft, outline, revise, or polish a Substack post, technical blog article, or portfolio writing piece — especially anything about AI-augmented development, edge AI, RAG, .NET/C#, Python, Rust, APIs, or industrial automation. Trigger even if they just say "help me write a post about X" or paste raw notes to turn into an article. Keeps the human as the source of technical substance and applies editorial craft rather than generating generic filler.
npx skillsauth add michaelalber/ai-toolkit substack-writerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A repeatable editorial pipeline for professional portfolio writing. The purpose of this skill is not to generate posts from a topic string — that produces generic, AI-flavored filler that damages a technical portfolio. The purpose is to take the author's real technical substance and shape it into a tight, credible, well-crafted post through a disciplined multi-pass process, with human gates at the points that matter.
The model does not invent technical claims, benchmarks, war stories, or opinions. Those come from the author. If a draft needs a fact, a number, or a concrete example that the author has not supplied, stop and ask — do not fabricate it. Fabricated specifics are the fastest way to destroy the credibility a portfolio exists to build. The model's job is structure, flow, compression, and craft applied to material the author provides.
references/craft-principles.md — the distilled writing craft. Load this before
the outline stage and consult it explicitly during the critique stage. It is the
editorial standard the draft is measured against.references/voice.md — the author's voice profile (do/don't rules + samples).
Load this before the voice pass. If it is still a template with unfilled
placeholders, ask the author for 2–3 existing posts and populate it first — the
voice pass is worthless against an empty profile.Run these stages in order. Do not collapse them into one shot; the quality comes from the passes being separate. Announce which stage you are entering so the author can follow along.
Collect the raw substance from the author: notes, the actual insight or lesson, code snippets, the specific problem that motivated the post, any numbers or results. Ask targeted questions to fill gaps — what surprised you, what did you try that failed, what would you tell a peer about this. Do not proceed until there is enough real material to write from. This is the stage that separates a portfolio post from a content-mill post.
Propose a structure: a working title, the hook angle, 3–6 section headers, and a one-line note on what each section does. Order for the reader, not for chronology — lead with the payoff or the tension, not the setup. Present the outline and wait for approval or edits before drafting. Reordering at the outline stage costs seconds; reordering a full draft costs an afternoon.
Write the post section by section from the approved outline and the captured material. Prose only — no invented facts, no filler transitions, no throat-clearing intros. Keep it slightly long here; compression happens next. Route this stage to the local draft model (see Model routing).
Re-read the draft against references/craft-principles.md and produce an explicit
critique — not a rewrite yet. Flag, by location:
This self-critique pass is where most of the quality is created. Treat it as the editorial gate a good draft has to survive.
Apply the critique. Cut hard — deleting a good sentence that doesn't earn its place improves the post. Tighten sentences, front-load paragraphs, replace abstractions with the concrete material from stage 1.
Rewrite through references/voice.md. This is the pass that makes it read as the
author rather than as a model: their cadence, their vocabulary, their do/don't
rules. Apply the don't-list aggressively — killing model-default tics (marketing
gloss, "fast-paced world", em-dash overuse, LinkedIn voice) does most of the work.
This is the stage to consider escalating to the larger local model for a final
polish (see Model routing).
Deliver the post as a clean markdown file plus a short changelog of the significant editorial decisions (what was cut and why, where a claim still needs the author's verification). The author always does the final edit and owns publication. Flag any remaining spots where a specific fact or number is still the author's to confirm.
Follow local-first discipline; escalate deliberately, not by default.
http://michaels-mac-mini.cosmach.net:11434). Fast
iteration matters more than peak quality here, and these stages are structural.Sampling for prose lives at temperature ~0.85–0.95 / top-p ~0.9. Below 0.7 the prose
goes flat; the tuned Modelfile in assets/ bakes this in.
development
Interviews the user relentlessly about a plan, decision, or idea — one question at a time, each with a recommended answer. Shared engine behind "grill-me" and "grill-with-docs". Use on any "grill" trigger phrase or to stress-test thinking. Do NOT use to build the plan; it ends at shared understanding, not implementation.
testing
Runs a relentless interview to sharpen a plan or design, capturing the decisions as ADRs and a glossary along the way. Use when the user wants to be grilled AND wants the session to leave durable domain documentation behind. Do NOT use for a throwaway stress-test with no artifacts; use grill-me instead.
tools
OWASP-based security review of Vue/TypeScript front-ends. Detects framework (Vite/Vue CLI/Nuxt), entry points, and data flows; scans the OWASP Top 10 (2025) mapped to Vue client-side risks (raw-HTML XSS via v-html, URL/protocol injection, bundled secrets, insecure token storage, dependency CVEs, missing CSP, open redirects, router guard bypass); emits an exec summary plus graded findings. Use to audit Vue for vulnerabilities. Not for architecture grading (vue-architecture-checklist).
tools
Analyzes legacy Vue codebases and produces actionable modernization plans. Primary migration paths include Options API to Composition API, Vue 2 to Vue 3, Vue CLI to Vite, JavaScript to TypeScript, Vue Test Utils/Karma/Mocha to Vitest + Vue Testing Library, legacy Vuex to Pinia, and removed-in-Vue-3 pattern cleanup (filters, event bus, `$listeners`). Does NOT perform the migration — assesses, quantifies risk, and plans.