agentleFS
EditorialOSEditorialOS/editorial-os/skills/editorial-config/SKILL.md

editorial-config

Skill0 starsChanged 7 months agoApache-2.0View on GitHub

Load client context at the start of every command by calling client-context skill. Interpret Drive documents into structured editorial intelligence — competitors, pillars, audience segments, constraints, content history, and performance baselines. Run silently. Never narrate the loading process.

The file

We split this skill into the rules it gives an agent

11 rules. About 0 are common, 11 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈11

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Always label these as "industry benchmarks" when used.

    line 126
  2. Distinctive:

    When team size isn't explicitly stated, use these signals:

    line 150
  3. Distinctive:

    Never ask the user to re-enter information that's in their Drive documents

    line 173
  4. Distinctive:

    Never use generic "your competitors probably..." when Drive docs have real competitors

    line 174
  5. Distinctive:

    Never recommend approaches that past content shows were tried and dropped

    line 175
  6. Distinctive:

    Never narrate the loading process — show the status header only

    line 176
  7. Distinctive:

    Never block on missing context — flag what's missing and continue

    line 177
  8. Distinctive:

    Never present industry benchmarks as if they're the client's real data

    line 178
  9. Distinctive:

    Never make up competitors, segments, or pillars that aren't in the documents

    line 179
  10. Distinctive:

    Never apply voice rules from one client to another client's context

    line 180
  11. Distinctive:

    Called by: All commands as the first step

    line 185

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Editorial Config — Context Loader

Load all available client context before generating any output. Call the client-context skill, then apply editorial interpretation to what's found. This is the bridge between raw documents and actionable editorial intelligence.

Loading Sequence

1. Call client-context skill
   → Reads ~~docs folder
   → Extracts brand, audience, competitor, pillar, performance, operational context
   → Checks active connectors (~~email, ~~crm, ~~calendar, ~~assets)
   → Returns status: 🟢 Configured / 🟡 Partial / ⚪ No client loaded

2. Apply editorial interpretation layer (this skill)
   → From competitor documents: build competitors[] with genuine strengths and weaknesses
   → From strategy/pillar docs: build pillars[] with current health assessment
   → From audience docs: build segments[] with content preference and funnel stage
   → From past content: extract history.biggest_wins and approaches_tested
   → From briefs/calendar: extract constraints (cadence, team, seasonal holds)
   → From performance reports: extract goals.metrics_that_matter
   → From brand guide: extract voice rules, vocabulary, tone adaptation

3. Show status header (one line — never narrate the loading process)

Status Header

🟢 [{client name}] | Drive: [{folder}] | Competitors: {N} | Pillars: {N} | Segments: {N}
🟡 [{client name}] | Drive: [{folder}] | Partial — [{what's missing and effect on output}]
⚪ No client loaded — working from what you provide. Run /setup to connect your docs.

Interpretation Rules by Domain

Competitors

RuleWhy
Use competitors found in Drive docs — never invent or generalizeImagined competitors produce imagined analysis
Apply genuine_strengths as documented — don't softenHonest competitive analysis requires honest competitor assessment
Flag if competitive doc is > 90 days oldCompetitive intelligence has a short shelf life
If no competitor doc found: ask for competitors this session, state they're not in DriveDon't guess — the user knows their market
Distinguish between primary competitors (direct) and secondary (adjacent)Weight analysis toward primary competitors
Note competitor content cadence if observable from docsCalibrates competitive urgency

Brand Voice

RuleWhy
Extract voice attributes and apply as baseline to all content commandsVoice consistency is the foundation of brand trust
Note vocabulary to use (hard constraint)Brand terms are non-negotiable
Note vocabulary to avoid (hard constraint)Avoided terms exist for reasons — legal, brand, cultural
Apply voice rules to /draft, /subjects, /social-pack automaticallyThe user should never have to re-state their voice
If no brand guide: extract patterns from past content, flag as "inferred"Inferred voice is less reliable than documented voice
If brand guide conflicts with past content patterns: prefer the guideThe guide is the intended voice; past content may have drifted

Voice Adaptation by Command

Different commands need different emphasis from the same voice:

CommandVoice Emphasis
/draftFull voice application — vocabulary, tone, style rules, headline conventions
/subjectsSubject line voice — conciseness constraints override paragraph-level voice rules
/social-packPlatform-adapted voice — LinkedIn more professional, Twitter/X more punchy, but both recognizably the same brand
/auditAnalytical voice — the output is for the strategist, not the audience
/competitorAnalytical voice — honest, not promotional
/calendarPlanning voice — clear, operational, decision-ready

Content Pillars

RuleWhy
Extract pillar themes from strategy docs and content patternsPillars are the structural foundation of editorial planning
Assess health from piece count, performance, and competitive positionHealth determines where to invest
Use four health statuses: Healthy / Developing / Thin / UntestedAnything more granular is false precision
If no strategy doc: infer pillars from recurring topics in last 5 newslettersBetter to infer than to ignore
Flag inferred pillars clearly — they're hypotheses, not commitmentsUser should confirm before building a quarter around them
Note pillar overlap — some topics span multiple pillarsPrevents double-counting in audits

Pillar Health Assessment Criteria

StatusSignals
Healthy10+ pieces covering multiple angles; at least one top performer; competitive position is strong; directly aligned with primary goal
Developing5-10 pieces; some engagement but no standout; building competitive position; clear goal connection
Thin< 5 pieces or single angle only; no standout performer; competitors are stronger here; goal connection is clear but underserved
Untested0 pieces; unknown audience response; unknown competitive position; goal connection is hypothetical

Audience Segments

RuleWhy
Use segment names from persona docs — don't rename themConsistency with the client's internal language
Map each segment to content preferences if documentedEnables segment-specific recommendations
Note funnel stage for each segmentAligns content type to buying stage
If segments are documented differently across docs: use the most recentSegment definitions evolve
If no segments documented: note "general audience" and flagSegment-specific recommendations require segment data

Email Context

RuleWhy
If ~~email connected: pull real open rates, click rates, list sizeReal data beats industry benchmarks
Use real benchmarks, not industry averages, when real data exists"Your 22% open rate" is more useful than "industry average 18-22%"
Apply subject line rules from brand guide if documentedSubject lines are brand expression
If no email data: label all performance predictions as "estimated"Never present guesses as data
Note list size for audience contextA 500-person list has different dynamics than a 50,000-person list

Email Benchmarks (Use Only When No Real Data Available)

MetricGeneral BenchmarkB2B BenchmarkB2C Benchmark
Open rate18-25%20-28%15-22%
Click-through rate2-5%2-4%3-5%
Click-to-open rate10-17%10-15%12-18%
Unsubscribe rate< 0.5%< 0.3%< 0.5%
List growth rate (monthly)2-5%2-4%3-6%

Always label these as "industry benchmarks" when used. Never present them as if they're the client's data.

Content History

RuleWhy
Extract "what worked" from past newsletters and performance reportsRepeat and amplify proven approaches
Extract "what failed" from retrospective docs or performance dropsDon't recommend what's already been tried and abandoned
Note content formats that have been used vs. not usedFormat gaps are opportunities or deliberate choices
Identify recurring topics vs. one-off experimentsRecurring topics signal pillar commitment
Note seasonal patterns in past publishingBuild into /calendar planning

Operational Constraints

RuleWhy
Extract cadence from briefs and calendar documentsCapacity ceiling — never plan beyond what the team can execute
Extract team signals from brief language"I write everything" = solo operation. "The team" = at least 2-3 people.
Respect blackout periods in calendar or strategy docsThese are hard constraints, not suggestions
Only reference channels that appear in client's documentsDon't recommend TikTok to a B2B newsletter operation
Note publishing tools in use (Beehiiv, WordPress, etc.)Practical context for execution recommendations

Team Size Heuristics

When team size isn't explicitly stated, use these signals:

SignalLikely Team SizeCapacity Implication
"I" throughout briefs, single bylineSolo creator1-2 pieces/week max, no parallel production
"We" with 1-2 bylines2-3 person team2-4 pieces/week, some parallel production
Multiple bylines, departments mentionedFull content team5+ pieces/week, parallel production possible
Agency/consultant languageExternal teamVariable — ask about hours allocated

When Documents Are Ambiguous

SituationAction
Multiple strategy docsSynthesize, prefer most recent by modified date
Competitors mentioned in passing (not in dedicated doc)Include with lower confidence, flag
No clear cadence signalAsk once in the command output, don't block
Conflicting audience descriptionsNote the conflict, use most recent document
Brand guide says one thing, past content shows anotherPrefer the guide (intended voice); note the drift
Performance data exists but is > 90 days oldUse for patterns, flag as potentially stale
Documents are in another languageExtract what you can, note language barrier

Never Do

  • Never ask the user to re-enter information that's in their Drive documents
  • Never use generic "your competitors probably..." when Drive docs have real competitors
  • Never recommend approaches that past content shows were tried and dropped
  • Never narrate the loading process — show the status header only
  • Never block on missing context — flag what's missing and continue
  • Never present industry benchmarks as if they're the client's real data
  • Never make up competitors, segments, or pillars that aren't in the documents
  • Never apply voice rules from one client to another client's context

Cross-Skill Dependencies

  • Calls: client-context (reads Drive, extracts raw context)
  • Called by: All commands as the first step
  • Feeds into: content-strategist (pillar health, gaps, history)
  • Feeds into: competitive-intel (competitor list, strengths, weaknesses)
  • Feeds into: calendar-planner (constraints, cadence, seasonal data)

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.