skills/mine/writing-tech-post/SKILL.md
Authors engineering blog posts end-to-end: launch deep-dives, incident postmortems, architecture migrations, performance case studies, tutorials, AI/agent system writeups, security disclosures, and research-to-product translations. Picks the correct archetype, plans the abstraction ladder, enforces an evidence cadence (diagrams, benchmarks, profiles, traces, code, ablations), tunes voice against publisher house styles (Datadog, Vercel, GitHub, AWS, Meta, Cloudflare, Jane Street), and runs a pre-publish gate for narrative momentum and disclosure ethics. Use when drafting a new engineering post, restructuring a draft that feels flat, deciding which evidence form belongs where, validating that depth and product context are balanced, or preparing a postmortem, migration, or performance narrative for external publication. Do not use for API reference documentation, README authoring, marketing copy, release notes, generic SEO content, ghost-written executive thought leadership, or non-engineering long-form essays.
npx skillsauth add pedronauck/skills writing-tech-postInstall 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.
SOTA authoring loop for technical blog posts. The philosophy is archetype-first (pick the genre), depth-second (commit the abstraction ladder), evidence-third (every claim attaches to an artifact), voice & disclosure fourth (publisher register + ethics), momentum last (narrative spine, lede, closer). Inline content in this SKILL.md is a dispatcher; the contract lives in references/.
Match the post's archetype (or the active phase) to the row. Read the listed files in full before producing the corresponding output. Inline content in this SKILL.md is a pointer, not a substitute.
| Task / Archetype | MUST read |
| --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| Selecting an archetype (Phase 1, every post) | references/archetypes-and-structure.md |
| Planning depth / abstraction ladder (Phase 2, every post) | references/depth-and-abstraction.md |
| Writing an incident postmortem | references/postmortems.md + references/voice-and-disclosure.md |
| Writing an architecture migration narrative | references/migrations.md + references/depth-and-abstraction.md |
| Writing a performance deep-dive | references/performance-deep-dive.md + references/evidence-diagrams-code.md |
| Writing an AI/agent system post | references/ai-and-agents.md + references/evidence-diagrams-code.md |
| Writing a security or reliability post | references/security-and-reliability.md + references/voice-and-disclosure.md |
| Writing a tutorial or research-to-product translation | references/archetypes-and-structure.md + references/depth-and-abstraction.md |
| Placing diagrams, charts, code, tables, ablations (Phase 3) | references/evidence-diagrams-code.md |
| Tuning to a publisher house voice (Phase 4) | references/voice-and-disclosure.md + references/publisher-voice-matrix.md |
| Tightening lede, headlines, transitions, closer (Phase 5) | references/narrative-and-pacing.md |
| Pre-publish gate (Phase 6) | references/pre-publish-checklist.md + references/anti-patterns.md |
references/archetypes-and-structure.md — Eight canonical archetypes (launch deep-dive, postmortem, migration, performance, tutorial, research-to-product translation, AI/agent, security/reliability) with their 9-column contract (opening / sequence / closing / length / byline / evidence / voice / hybrid partner / silent failure mode) plus the 9-question decision tree and hybrid-disclosure rules.references/depth-and-abstraction.md — Five-rung abstraction ladder (R1 user → R5 measurement) with three traversal patterns (staircase, yo-yo, spiral), the rung-whiplash diagnostic, the anchor-N rule, and per-archetype default depth profiles.references/postmortems.md — Canonical postmortem section sequence (Summary → Background → Incident → Timeline → Contributing factors → Mitigation → Action items), blameless register three rules, UTC-timeline + named-artifact obligations, failed-mitigation requirement.references/migrations.md — Five migration sub-types (rewrite, decomposition, stack replacement, pipeline replacement, component modernization, dual-stack, maturity-level), seven-panel canonical structure, empathetic strategic voice, "what we'd do differently" honesty, dated-status-snapshot closing.references/performance-deep-dive.md — Detective-arc structure (hypothesis → measurement → reveal → next bottleneck), distribution-shift evidence contract (percentile + sample size + window + environment), iterative bottleneck-peeling, partial-victory disclosure between fixes.references/ai-and-agents.md — Paper-link-first attribution, named-benchmark + ablation evidence contract, named-checker idiom (debugging-agent + leakage-checker + usage-checker), "AI handles the long tail" closing motif and its slop variant (bolted-on AI-future paragraphs).references/security-and-reliability.md — Threat-model opening, layered-defense walkthrough, coordinated-disclosure four-panel (threat-model → background → defense → mitigations), probabilistic register for adversary capabilities, CVE + upstream-commit citation contract.references/evidence-diagrams-code.md — Twelve-form evidence taxonomy (architecture diagram, sequence/flow, timeline, dashboard, distribution chart, flamegraph/profile, trace view, results table, code listing, config/manifest, ablation matrix, benchmark plot), captioning conventions (caption states the finding), claim → artifact → reading cadence rule, code-length thresholds (1–15 / 16–30 / >30).references/voice-and-disclosure.md — Blameless register, coordinated-disclosure four-panel, paper-link-first attribution, "what we'd do differently" honesty pattern, vendor-naming conventions, charity toward predecessor systems, disclaimer-paragraph genre signal.references/narrative-and-pacing.md — Five-lede taxonomy (result-first / mystery / stakes-first / 3-W summary / paper-link-first / shipping-status), H2-as-question-resolution discipline, story-shape catalogue (detective / migration / blameless / paper-link-first / tutorial arcs), closer multiple-choice gate, first-200 + last-200 callback-coupling test.references/publisher-voice-matrix.md — Cross-publisher matrix (Datadog, Vercel, GitHub, AWS, Meta, Cloudflare, Jane Street) by six surface features (byline weight, sentence length, vendor density, evidence reflex, opening register, closing register), plus banned moves per publisher.references/anti-patterns.md — Banned moves catalogue: buried lede, rung whiplash, evidence-free percent claims, blame-by-implication, code-without-context, depth-without-product-framing, paper-name-dropping, false-precision metrics, hedged ledes, exciting-announcement templates, coordinated-disclosure violations, AI-eval-as-anecdote, archetype-bait headlines, framework-without-instance, bolted-on AI-future close.references/pre-publish-checklist.md — Archetype-conditional checklist (postmortem-only / migration-only / performance-only / AI-only / security-only rows), disclosure-blocker list, lint-thresholds, publishable / hold-for-review / rework rubric.Resolve every bundled helper relative to the directory containing this SKILL.md. When the command below appears as scripts/<name>, treat the actual invocation as <writing-tech-post-dir>/scripts/<name> — expand <writing-tech-post-dir> to the absolute skill directory before running. Likewise expand assets/<name> and references/<name> to the bundled paths under the skill directory.
Each phase ends in a STOP directive. The inline content in each phase is a gist tripwire — enough to detect violations during scanning — not the contract. The reference file holds the contract.
product-user / engineer-adopter / peer-engineer-deep / infra-or-research-peer). The lede must speak to that rung.Gist tripwires (the moves the archetype demands, in one line each):
STOP. Read references/archetypes-and-structure.md in full before drafting the outline. That file holds the 9-column contract per archetype (opening / sequence / closing / length / byline / evidence / voice / hybrid partner / silent failure mode), the 9-question decision tree, the archetype-straddle rules, and the per-archetype silent failure modes. The tripwires above are pointers, not the contract.
(opening rung, body residency band, closing rung, traversal). Pick the traversal: staircase (R1→R5 monotonic), yo-yo (R3↔R5 oscillation around a probe), or spiral (R1→R3→R1→R4→R1→R5, restating product context between depth dives).assets/outline.<archetype>.md. Mark sections that the archetype requires versus optional.Gist tripwires:
STOP. Read references/depth-and-abstraction.md in full before fixing the outline. That file holds the rung definitions with corpus examples, the three traversal patterns with worked walkthroughs, the rung-whiplash diagnostic, and the per-archetype default depth profile. Also STOP and read the archetype's deep-dive reference file (references/postmortems.md, migrations.md, performance-deep-dive.md, ai-and-agents.md, or security-and-reliability.md) when the archetype matches one of those five. The outline skeleton in assets/ is a starting point, not a contract.
claim → artifact → reading cadence: every artifact is preceded by a prose claim and followed by a prose reading. Captions state the finding, never the artifact name.// ... patterns and a one-line note of what was cut). Warn when a snippet crosses 30 lines — split with prose, elide, or replace with a source link plus a load-bearing slice.Gist tripwires:
STOP. Read references/evidence-diagrams-code.md in full before placing any chart, diagram, code block, or table. That file holds the twelve-form evidence taxonomy with selection guide, the captioning conventions, the prose↔evidence cadence rule, the elision-marker code standard, the distribution-shift evidence pattern (mandatory for any performance claim), the named-benchmark + ablation contract (mandatory for AI/agent capability claims), and the alt-text-as-prose discipline.
Gist tripwires:
STOP. Read references/voice-and-disclosure.md in full before the voice pass. Disclosure ethics, blameless register rules, paper-link-first attribution conventions, coordinated-disclosure constraints, and vendor-naming conventions live there. STOP and additionally read references/publisher-voice-matrix.md when targeting a specific publisher voice; that file holds the seven-publisher matrix (byline weight, sentence length, vendor density, evidence reflex, opening register, closing register) and the per-publisher banned moves.
Gist tripwires:
STOP. Read references/narrative-and-pacing.md in full before finalizing the lede, headlines, transitions, and closer. That file holds the five lede types with archetype pairings, the H2-as-question-resolution rule with worked examples, the story-shape catalogue, the momentum-stall diagnostics, the closer multiple-choice gate (call-to-build / call-to-adopt / open-question / shipping-status-roadmap / prevention-list), and the headline-as-compressed-lede check.
python3 <writing-tech-post-dir>/scripts/lint-post.py <draft-path> (read-only). It scans for slop signatures: triumphal-vocabulary density, hedged-lede patterns, uncaptioned figures, evidence-free percent claims, blame language inside a postmortem context, missing rung tags in outline comments, code blocks over 30 lines without elision markers.references/pre-publish-checklist.md row-by-row against the draft. Each row is a hard gate; warnings are not optional.Gist tripwires:
STOP. Read references/pre-publish-checklist.md in full before declaring the post publishable. That file holds the archetype-conditional checklist (postmortem-only / migration-only / performance-only / AI-only / security-only rows), the disclosure-blocker list, the lint-threshold rationale, and the publishable / hold-for-review / rework rubric. STOP and additionally read references/anti-patterns.md to confirm no banned move slipped in.
The full elaborated list with examples lives in references/anti-patterns.md. The list below catches the most common slop during scanning.
STOP. Read references/anti-patterns.md in full before any review pass. The bullets above are tripwires, not the full catalogue.
hybrid: <primary>+<secondary> and follow the primary's structural contract. Add a one-sentence note in the post's frontmatter declaring the hybridisation. Do not invent a ninth archetype.[REDACTED: pending disclosure] markers and produce a "what can be shared now / what comes later" addendum. Do not publish until references/security-and-reliability.md's disclosure-blocker checklist clears.scripts/lint-post.py. When the lint script flags slop signatures, treat each as a blocker, not a warning. The pre-publish gate does not pass with open lint findings.scripts/validate-metadata.py). Re-read the failure (NAME ERROR / DESCRIPTION ERROR / STYLE WARNING) and rewrite the offending field. Do not bypass the validator.crafting-effective-readmes.copywriting.creating-spec.Before declaring the skill output publishable, confirm:
(opening rung, body residency band, closing rung, traversal) is recorded.scripts/lint-post.py exits 0; no open findings.Each verification step has a corresponding gate in references/pre-publish-checklist.md. The skill is not done until every gate clears.
development
Deep review of branch diffs, working trees, or GitHub PRs at any size. Use when the user asks for CodeRabbit-grade review, an incremental re-review after new pushes, publication of findings to a PR, a cross-LLM peer-review verdict round, or conformance review against spec artifacts. Don't use for applying fixes, reviewing specs or PRDs as documents, or quick single-file feedback.
tools
Orchestrate Claude and Codex worker TUIs from a controller agent through herdr panes and the herdr socket CLI. Use when delegating bounded tasks to herdr worker panes, running user-activated plan-first delegations (Claude Code plan mode, Codex Plan mode), waiting on native agent status (idle, working, blocked, done), or verifying worker reports. Workers launch as interactive TUIs via herdr agent start — never through headless runners (compozy exec, claude -p, codex exec). Not for cmux workspaces (see cmux-orchestration) and not for end-user herdr control.
tools
TanStack Query, Router, and Form patterns for React. Use when writing useQuery/queryOptions, mutations, caching, file-based routes, search params, loaders, or TanStack Form validation. Don't use for TanStack Start, TanStack DB/collections, Zustand client state, or non-TanStack routing.
development
Use when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a frontend interface. Covers websites, landing pages, dashboards, product UI, app shells, components, forms, settings, onboarding, and empty states. Handles UX review, visual hierarchy, information architecture, cognitive load, accessibility, performance, responsive behavior, theming, anti-patterns, typography, fonts, spacing, layout, alignment, color, motion, micro-interactions, UX copy, error states, edge cases, i18n, and reusable design systems or tokens. Also use for bland designs that need to become bolder or more delightful, loud designs that should become quieter, live browser iteration on UI elements, or ambitious visual effects that should feel technically extraordinary. Not for backend-only or non-UI tasks.