agentsclimarketplace

Story ops

Skill shiva-hack/story-ops/.claude/skills/story-ops

Storytelling Operating System built on Claude Code — draft, rewrite, critique, and lint narrative voice across you + your brands. Ships with a Voice Fingerprint linter, an Audience Simulator (parallel persona subagents), and a Brand Guide PDF generator. File-based, no hidden state, hybrid protagonist model.

Install
npx -y skills add shiva-hack/story-ops --skill story-ops

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Storytelling OS -- draft, rewrite, critique (Audience Simulator), lint voice (Voice Fingerprint), render brand guide PDFs, track pieces

SKILL.md

4.2 KB, as published. Nobody here has run it

story-ops -- Router

Mode Routing

Parse {{mode}} into a sub-command and optional flags. Flags the modes accept:

  • --brand=<key> -- protagonist key (default: personal)
  • --structure=star|heros-journey|scqa|pixar -- draft/rewrite only
  • --surface=linkedin|twitter|substack -- draft/rewrite only
InputMode
(empty / no args)discovery -- show command menu
draft ...draft
rewrite ...rewrite
critique ...critique (delegated to parallel subagents -- see below)
voice-check ...voice-check
brand-guide ...brand-guide
trackertracker
mine ...mine

If {{mode}} is not a known sub-command and does not look like a bare idea phrase, show discovery.


Discovery Mode (no arguments)

Show this menu:

story-ops -- Storytelling Command Center

Drafting
  /story-ops draft <idea>                      → first draft in brand voice + structure
    flags: --brand=<key> --structure=star|heros-journey|scqa|pixar --surface=linkedin|twitter|substack
  /story-ops rewrite <file>                    → rewrite existing text in target brand voice
    flags: --brand=<key>

Intelligence
  /story-ops critique <file>                   → Audience Simulator: parallel persona subagents
    flags: --brand=<key>
  /story-ops voice-check <file>                → Voice Fingerprint linter
    flags: --brand=<key>

Brand
  /story-ops brand-guide                       → render brand/<b>/* to PDF
    flags: --brand=<key>

Pipeline
  /story-ops tracker                           → status across all stories
  /story-ops mine <file-or-paste>              → extract story candidates from transcript/archive
    flags: --brand=<key>

Tip: default --brand=personal. Set up additional brands with their own voice/messaging/audiences.

Onboarding check (first message of each session)

Silently verify before executing any mode:

  1. config/profile.yml exists (not just .example)
  2. modes/_profile.md exists (not just .example)
  3. At least one brand directory exists under brands/ (default: brands/personal/)

If any is missing, enter onboarding mode (see CLAUDE.md § First Run). Do not proceed with the user's requested mode until onboarding completes.


Context Loading by Mode

Modes that load _shared.md + their mode file:

Read modes/_shared.md + modes/{mode}.md + modes/_profile.md.

Applies to: draft, rewrite, voice-check, brand-guide, mine.

Standalone modes (only their mode file):

Read modes/{mode}.md.

Applies to: tracker.

Modes delegated to parallel subagents:

critique is special. It is the Audience Simulator. Load:

  1. Read modes/_shared.md + modes/critique.md + modes/_profile.md.
  2. Read the draft file passed as argument.
  3. Read brands/{brand}/audiences.yml.
  4. For each persona in audiences.yml, launch an Agent in parallel (single message, multiple Agent tool calls):
Agent(
  subagent_type="general-purpose",
  description="critique as {persona.name}",
  prompt="[content of modes/_shared.md]\n\n[content of modes/critique.md -- PERSONA SECTION]\n\nPERSONA CONTEXT:\n{persona yaml}\n\nBRAND CONTEXT:\n[content of brands/{brand}/voice.md]\n[content of brands/{brand}/messaging.md]\n\nDRAFT TO REVIEW:\n{draft content}\n\nReturn a structured critique from THIS persona's perspective only."
)
  1. Once all persona subagents return, synthesize into a single report in reports/<NNN>-<slug>-<date>.md using the SYNTHESIS section of modes/critique.md.

Execute the instructions from the loaded mode file.


Brand resolution

--brand=<key> maps to brands/<key>/. Validate the directory exists before running. If the user requests a brand that doesn't exist, offer to seed it from brands/example/.

Default brand is personal if the flag is omitted. If only one brand exists, use that brand regardless of the flag (and note the assumption in the output).

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.