en un clic
content-writing
// Create outlines, drafts, and edited content with comprehensive lineage tracking (project)
// Create outlines, drafts, and edited content with comprehensive lineage tracking (project)
| name | content-writing |
| description | Create outlines, drafts, and edited content with comprehensive lineage tracking (project) |
Purpose: Unified content creation workflow with comprehensive lineage tracking Subskills: outline, draft, edit, feedback Lineage: Tracks sources, reasoning, rule compliance, edit history, and persona feedback through YAML frontmatter + inline HTML comments
# Create outline
content-writing-skill outline <project-name> <asset-name> [--interactive]
# Generate draft
content-writing-skill draft <project-name> <asset-name> [--section "Section Name"]
# Review draft with persona-based feedback
content-writing-skill feedback <project-name> <asset-name> [--persona "name"] [--focus "area"]
# Edit content
content-writing-skill edit <file-path> --instructions "Edit instructions" [--section "Section Name"]
This skill routes to the appropriate subskill based on the first argument:
outline → subskills/outline-content.mddraft → subskills/draft-content.mdfeedback → subskills/feedback-content.mdedit → subskills/edit-content.mdExtract subskill and arguments: $ARGUMENTS
Expected format:
outline, draft, feedback, or editIf no arguments or invalid subskill: Show usage help and available subskills.
If subskill is outline, draft, or feedback:
/projects/<project-name>/Load all available rule types and directories from registry:
# Dynamically discover all enabled rule types
registry="rules/rules-config.yaml"
enabled_types=$(yq '.rule_types | to_entries | .[] | select(.value.enabled == true) | .key' "$registry")
# Build context for each rule type
for type in $enabled_types; do
name=$(yq ".rule_types.${type}.name" "$registry")
directory=$(yq ".rule_types.${type}.directory" "$registry")
# Store for context handoff
RULES_${type^^}_DIR="rules/$directory/"
done
Result: Dynamically available rule directories:
RULES_STYLE_DIR: rules/style/ (built-in)RULES_STRUCTURE_DIR: rules/structure/ (built-in)RULES_PERSONAS_DIR: rules/personas/ (built-in)RULES_PUBLISHER_DIR: rules/publisher/ (built-in)RULES_VERTICALS_DIR: rules/verticals/ (if configured)RULES_CHANNELS_DIR: rules/channels/ (if configured)RULES_USE_CASES_DIR: rules/use-cases/ (if configured)For outline:
Invoke subskills/outline-content.md with arguments:
For draft:
Invoke subskills/draft-content.md with arguments:
For edit:
Invoke subskills/edit-content.md with arguments:
Pass the following to subskills:
Shared Context:
PROJECT_NAME: <name>
PROJECT_PATH: /projects/<name>/
PROJECT_BRIEF: /projects/<name>/project.md
REGISTRY_PATH: rules/rules-config.yaml
[Dynamically generated rule directory paths for all enabled types:]
RULES_PUBLISHER_DIR: rules/publisher/
RULES_STYLE_DIR: rules/style/
RULES_STRUCTURE_DIR: rules/structure/
RULES_PERSONAS_DIR: rules/personas/
RULES_VERTICALS_DIR: rules/verticals/ (if configured)
RULES_CHANNELS_DIR: rules/channels/ (if configured)
RULES_USE_CASES_DIR: rules/use-cases/ (if configured)
[... any other custom rule types]
ENABLED_RULE_TYPES: <comma-separated list of enabled types>
Note: Subskills should dynamically iterate over ENABLED_RULE_TYPES rather than assuming specific rule types exist. This ensures compatibility with custom rule configurations.
Asset-Specific Context (outline/draft):
ASSET_NAME: <name>
ASSET_OUTPUT_DIR: /projects/<name>/drafts/
OUTLINE_PATH: /projects/<name>/drafts/<name>-outline.md (if exists)
DRAFT_PATH: /projects/<name>/drafts/<name>-draft.md (if exists)
All subskills must follow these lineage tracking conventions:
Use templates from /skills/content-writing-skill/templates/:
outline-metadata-schema.yamldraft-metadata-schema.yamlinline-comment-patterns.mdIf project not found:
Error: Project '<name>' not found in /projects/
Available projects:
- project-1
- project-2
Create a new project with: /create-project "<name>"
If rule files missing:
Warning: Some rule files not found:
- rules/personas/data-engineer.md
Continue anyway? (Y/n)
If subskill invalid:
Error: Unknown subskill '<name>'
Available subskills:
- outline : Create detailed content outline
- draft : Generate content draft from outline
- edit : Interactive content editing
Usage: content-writing-skill <subskill> [arguments]
✅ Skill invoked successfully when:
✅ Lineage tracking complete when:
This skill replaces the following slash commands:
/outline-content → content-writing-skill outline/write-content → content-writing-skill draft/edit-content → content-writing-skill editAdvantages over commands:
After successful subskill execution, suggest next steps:
After outline:
✅ Outline created: /projects/<name>/drafts/<name>-outline.md
Next steps:
1. Review outline structure and section flow
2. Generate draft: content-writing-skill draft <project> <asset>
3. Or edit outline: content-writing-skill edit <outline-path> --instructions "..."
After draft:
✅ Draft created: /projects/<name>/drafts/<name>-draft.md
Word count: X words
Rule compliance: Y%
Next steps:
1. Review draft for accuracy and completeness
2. Edit draft: content-writing-skill edit <draft-path> --instructions "..."
3. Or check lineage: grep "SECTION:" <draft-path>
After edit:
✅ Edit session complete: <file-path>
Version: X.Y
Sections modified: [list]
Session ID: <id>
Next steps:
1. Review changes in file
2. Further edits: content-writing-skill edit <file-path> --instructions "..."
3. Check edit history: head -100 <file-path> | grep "edit_sessions:"
This is the main entry point for the content-writing-skill. It provides unified routing to outline, draft, and edit subskills with comprehensive lineage tracking capabilities.
Information gathering utilities (analytics, research, content analysis) (general)
Manage Kurt projects - add sources/targets, update project.md, detect missing content, track progress. (project)
One-time team setup that creates Kurt profile and foundation rules
Collect content feedback and identify patterns for rule updates
Extract and manage writing rules (style, structure, persona, publisher, custom) (project)
Configure CMS connections and perform ad-hoc content searches (Sanity, Contentful, WordPress)