write-opinion

$npx mdskill add techwolf-ai/ai-first-toolkit/write-opinion

Write an opinion piece with varied style and fresh examples

  • Helps authors draft unique op-eds avoiding repetitive patterns.
  • Reads published opinions via script and checks style guidelines.
  • Analyzes recent pieces to vary openings, rhythm, and examples.
  • Outputs a ~3500-character opinion piece with consistent voice.

SKILL.md

.github/skills/write-opinionView on GitHub ↗
---
name: write-opinion
description: Write or develop an opinion piece (opiniestuk/op-ed). Use when asked to write opinion articles, newspaper pieces, or similar long-form opinion content.
---

# Write Opinion Piece

You are helping write an opinion piece for the author.

## Before Writing

1. Run `./scripts/print-published.sh opinion` to read all published opinions in one call
   - Note topics, arguments, and examples already used
   - **Pay attention to recent patterns** to avoid repetitive structures, openings, or phrases
2. Read `guidelines/opinion.md` for style rules (includes language and publication targets)
3. Read `references/professional-profile.md` for background

## Avoid Repetitive Patterns

When reading recent pieces, actively note and vary:

**Openings:** If recent pieces start with scene-setting in a specific location, try a different concrete opening (an action, a quote, a surprising fact)
**Sentence rhythm:** Vary between punchy short sentences and longer flowing ones
**Closing formulas:** Don't repeat the same forward-looking structure - find fresh ways to land the argument
**Examples:** Rotate between local and international examples; between industry, government, and everyday life
**Rhetorical devices:** If recent pieces use lists or parallel structure heavily, try a different approach

The goal is a consistent voice with varied execution. Each piece should feel fresh while still sounding like the author.

## Style Requirements

- Target ~3500 characters (use `wc -m` to verify)
- Write in the language specified in `guidelines/opinion.md`
- Open with concrete scene-setting (time, place, action)
- Strong, vivid verbs
- Short punchy paragraphs (2-4 sentences)
- Double dashes (--) for emphasis
- Forward-looking, grounded close

## Process

1. Develop the angle and core argument
2. Write in the language specified in the style guide
3. Check character count against ~3500 target with `wc -m`
4. Save to content/posts/ with type: opinion, stage: 02-drafts

## Validation

After saving the draft, run the character count checker:
```bash
scripts/check-char-count.sh <yaml-file>
```
Adjust the content if the character count is outside the 3000-4000 range.

## Sub-Agent Review

Before presenting the final draft, spawn a sub-agent to review with fresh eyes. The reviewer should:
- Check voice consistency against `guidelines/opinion.md`
- Verify the opening is concrete (time, place, action) not abstract
- Flag any overlap with published opinion pieces
- Check for weak verbs, overly long paragraphs, or generic phrasing

Incorporate the reviewer's feedback before finalizing.

## Creating New Files

Get timestamp first:
```bash
date -u +"%Y%m%d-%H%M%S"  # For slug
date -u +"%Y-%m-%dT%H:%M:%S.000Z"  # For created/lastUpdated
```

More from techwolf-ai/ai-first-toolkit

SkillDescription
ai-firstifyAnalyze, re-engineer, or bootstrap projects to align with AI-first design principles. Use when asked to review, audit, improve, 'ai-firstify', or start a new project. Performs deep analysis across 7 dimensions, actively restructures existing projects, or guides new project setup through discovery questions. Based on the 9 design principles and 7 design patterns from the TechWolf AI-First Bootcamp.
brainstorm-linkedinGenerate LinkedIn post ideas from external sources (files, URLs, research). Use when the user provides source material (PDFs, URLs, articles) to brainstorm topics. NOT for writing or developing drafts - use write-linkedin-post instead.
brainstorm-opinionGenerate opinion piece ideas from recent LinkedIn posts (last 30 days). Use when asked to find opinion topics, brainstorm article ideas, or cross-pollinate content between LinkedIn and opinion pieces.
build-mcpBuild an MCP server end to end, tailored to how it will be used. Use when asked to build an MCP, create an MCP server, wrap an API as a tool, make a tool for Claude, expose a service to an agent, build a Claude connector, or turn a service into MCP tools. Asks up front who the server is for (just me, my org, or public) and what it wraps, then walks through analyze, build, deploy, scale, and distribute with steps tailored to that answer. Builds on the example-skills:mcp-builder skill for implementation depth.
content-studioEntry point for the TechWolf content-studio plugin. Use to understand the workflow, pick the right content skill, or start setup for a new author/repository.
customer-statusSynthesised view of account health and activity for managers overseeing customer-facing teams (Sales, CS, Professional Services, Presales). Scans project channels, email threads, and Notion pages to surface status, risks, and upcoming milestones, without requiring the manager to trawl through individual channels. Supports proactive account management.
goal-promptTurn a task, plan, or feature request into a ready-to-paste Claude Code /goal command — a single completion condition with a measurable end state, a demonstrable proof, and the constraints that must not drift. Use when the user says "give me a goal", "goal prompt", "make this a /goal", "turn this into a goal", or wants an autonomous long-running objective for Claude Code.
kb-answer|
kb-import|
kb-refresh|