Skip to main content

ideon series

What This Command Does

ideon series manages content series — named collections of related content with shared defaults, editorial policy, and an optional publication association. Series defaults override publication defaults in the settings resolution chain.

Subcommands

Settings Resolution Chain

When a series is associated with a write run, its defaults are applied after publication defaults and before CLI flags:

saved settings → job file → env vars → publication defaults → series defaults → CLI flags

Series can override any setting a publication can: style, intent, targetLength, contentTargets, countryCodes, language, model, modelSettings, and editorialPolicy.

Series Data in Prompts

When a series is active, the following data is injected into all LLM prompts (plan, sections, channel content):

  • Series name and topic as a narrative thread directive
  • Series editorial policy (tone, forbidden topics, disclosure requirements, audience restrictions, notes)

Example prompt injection:

This article is part of the series "AI Deep Dives".
Series topic: Exploring cutting-edge AI technologies
Maintain thematic coherence and continuity with this overarching subject.
Tone: technical
Forbidden topics: hype, speculation

ideon series add

Create a new content series.

Usage

ideon series add [name] [--topic <topic>] [--publication <slug>] [--style <style>] [--intent <intent>] [--length <size>] [--type <type>] [--audience <description>] [--keywords <keywords>] [--tone <tone>] [--forbidden-topics <topics>] [--disclosure-requirements <requirements>] [--audience-restrictions <restrictions>] [--editorial-policy <text>]

Options

FlagRequiredTypeDescription
[name]Yes (or interactive)stringSeries name. Slug is auto-generated from name.
--topic <topic>NostringFreeform description of what the series is about.
--publication <slug>NostringAssociate series to a publication.
--style <style>NoenumDefault writing style.
--intent <intent>NoenumDefault content intent.
--length <size>Noenum or integerDefault target length.
--type <type>NoenumDefault primary content type.
--audience <description>NostringDefault target audience hint.
--country <codes>NostringComma-separated ISO 3166-1 alpha-2 country codes (for example: US,GB,DE).
--language <code>NostringISO 639-1 language code (for example: en, de, es).
--keywords <keywords>NostringComma-separated SEO keywords inherited by all articles in this series. Supports compound keywords (e.g., "organic marketing, content strategy, seo").
--tone <tone>NostringEditorial policy tone.
--forbidden-topics <topics>NostringComma-separated forbidden topics.
--disclosure-requirements <requirements>NostringComma-separated disclosure requirements.
--audience-restrictions <restrictions>NostringComma-separated audience restrictions.
--editorial-policy <text>NostringEditorial policy notes.

Examples

# Minimal series
ideon series add "AI Deep Dives"

# Series with topic and publication
ideon series add "AI Deep Dives" --topic "Exploring cutting-edge AI technologies" --publication tech-blog

# Series with keywords
ideon series add "SEO Playbook" --topic "SEO best practices" --keywords "organic marketing, content strategy, seo"

# Series with market defaults
ideon series add "DACH AI" --publication tech-blog --country DE,AT,CH --language de

# Series with full options
ideon series add "Startup Stories" --topic "Founder interviews and case studies" --publication my-blog --style storytelling --intent case-study --tone conversational

Interactive Mode

When run in a TTY without flags, ideon series add launches an interactive flow:

  1. Topic (freeform text)
  2. Publication selection (pick from existing or skip)
  3. Default style
  4. Default intent
  5. Default target length
  6. Default content type
  7. SEO keywords (comma-separated, optional)
  8. Editorial policy: tone, forbidden topics, disclosure requirements, audience restrictions, notes

ideon series list

List all series.

Usage

ideon series list [--json] [--verbose] [--publication <slug>]

Options

FlagTypeDescription
--jsonbooleanOutput as JSON array.
--verbosebooleanShow editorial policy details.
--publication <slug>stringFilter to series associated with this publication.

Examples

# List all series
ideon series list

# Filter by publication
ideon series list --publication tech-blog

# JSON output
ideon series list --json

ideon series edit

Edit an existing series.

Usage

ideon series edit <slug> [--name <name>] [--topic <topic>] [--publication <slug>] [--unset-publication] [--style <style>] [--intent <intent>] [--length <size>] [--type <type>] [--audience <description>] [--keywords <keywords>] [--tone <tone>] [--forbidden-topics <topics>] [--disclosure-requirements <requirements>] [--audience-restrictions <restrictions>] [--editorial-policy <text>]

Options

FlagRequiredTypeDescription
<slug>YesstringSeries slug to edit.
--name <name>NostringNew display name.
--topic <topic>NostringNew topic.
--publication <slug>NostringAssociate to a different publication.
--unset-publicationNobooleanRemove publication association.
--style <style>NoenumNew default style.
--intent <intent>NoenumNew default intent.
--length <size>Noenum or integerNew default target length.
--type <type>NoenumNew default content type.
--audience <description>NostringNew audience hint.
--country <codes>NostringNew comma-separated ISO country codes for market defaults.
--language <code>NostringNew ISO language code for market defaults.
--keywords <keywords>NostringNew comma-separated SEO keywords. Supports compound keywords.
--tone <tone>NostringNew editorial tone.
--forbidden-topics <topics>NostringNew comma-separated forbidden topics.
--disclosure-requirements <requirements>NostringNew disclosure requirements.
--audience-restrictions <restrictions>NostringNew audience restrictions.
--editorial-policy <text>NostringNew editorial policy notes.

Examples

# Change topic
ideon series edit ai-deep-dives --topic "New topic description"

# Re-associate to different publication
ideon series edit ai-deep-dives --publication new-pub

# Update market defaults
ideon series edit ai-deep-dives --country US,CA --language en

# Remove publication association
ideon series edit ai-deep-dives --unset-publication

ideon series remove

Delete a series.

Usage

ideon series remove <slug> [--force]

Options

FlagRequiredTypeDescription
<slug>YesstringSeries slug to delete.
--force / -fNobooleanSkip confirmation prompt.

Examples

# With confirmation prompt
ideon series remove ai-deep-dives

# Force delete
ideon series remove ai-deep-dives --force

Notes

Deleting a series does not affect articles that were written under it. Their metadata remains as-is.


Using Series with ideon write

CLI Flag

ideon write "My idea" --series ai-deep-dives --primary article=1

Job File

{
"idea": "My idea",
"series": "ai-deep-dives",
"settings": {
"contentTargets": [{ "contentType": "article", "role": "primary", "count": 1 }]
}
}

Interactive TUI

When running ideon write in interactive mode without --series, a series selection step is presented after publication selection (if applicable). Users can pick an existing series or skip.

Combining Publication and Series

ideon write "My idea" --publication tech-blog --series ai-deep-dives --primary article=1

When both are specified:

  • Publication provides the base editorial policy and defaults
  • Series overrides publication defaults where it has its own values
  • Series editorial policy is appended to publication policy in prompts
  • CLI flags still override everything

Validation Notes

  • --country values are strictly validated against Google Ads supported ISO country codes.
  • --language is strictly validated against Google Ads supported ISO language codes.
  • Country codes are normalized to uppercase on save.
  • Language code is normalized to lowercase on save.