Agent skill
write-note
Create high-engagement Substack Notes. Use when asked to write a Substack Note, create a note for Substack, share an insight on Notes, promote a newsletter issue via Notes, or post between newsletter issues. Also use when the user mentions "note", "Substack Note", or "short-form Substack content".
Install this agent skill to your Project
npx add-skill https://github.com/kenneth-liao/ai-launchpad-marketplace/tree/main/creator-stack/skills/write-note
SKILL.md
Create Substack Note
Overview
This orchestrator creates Substack Notes by sequencing creator-stack:research for strategic context and creator-stack:write for content generation. It handles newsletter context awareness, note type selection, and output management -- all actual content generation and strategy are delegated to the foundation skills and their references.
Core Principle: This is a thin orchestrator. Strategy lives in creator-stack:research via references/substack-notes-strategy.md. Templates and formatting live in creator-stack:write via references/substack-notes.md. This skill manages the workflow sequence, newsletter context, and user decisions only.
When to Use
Use this skill when:
- Writing a standalone Substack Note for audience engagement
- Promoting a newsletter issue through Notes
- Building engagement between newsletter issues
- Sharing insights, hot takes, or behind-the-scenes content
- Creating any short-form Substack content
Prerequisites
Optional: A recent newsletter issue directory at ./newsletter/issues/[issue_name]/ with a plan.md file. This is only needed for issue-linked notes. Standalone notes do not require an issue directory.
Workflow
Execute all steps below in order.
Step 0: Newsletter Context Check
Check if the user has specified a newsletter issue or if an issue directory exists at ./newsletter/issues/[issue_name]/.
If issue directory exists:
- Read
plan.mdfor issue topic, title, and context - Suggest a lifecycle phase based on context:
- Issue not yet published -> pre-newsletter
- Issue just published -> issue day
- Issue published 3-7 days ago -> post-newsletter
- Use this context to inform the research invocation in Step 1
If no issue directory:
- Default to between issues mode
- Notes will focus on engagement, authority-building, or value delivery
- Any note type is available
Content Bank Check:
Also check if ./substack/notes/ideas.md (the content bank) exists:
- If it exists and the user did NOT specify a topic, read the bank and present pending ideas organized by type as topic options
- If it exists and the user DID specify a topic, check if the topic matches a pending idea in the bank — if so, note the match for status update in Step 5
- If the bank does not exist, proceed normally — the user provides a topic directly
Step 1: Invoke creator-stack:research
MANDATORY: Invoke creator-stack:research with references/substack-notes-strategy.md to determine the strategic context for this note.
Provide:
- The lifecycle phase (from Step 0 or user input)
- The topic
- The user's stated goal (engagement, promotion, authority, connection, quick value, transparency, positioning)
The research skill will apply the strategy framework to determine:
- Optimal note type ranking for the context
- Cadence awareness
- Strategic rationale for the approach
NOTE: This is a lighter research invocation -- the orchestrator is asking research to apply the strategy framework to the user's context, not to do full competitor analysis.
Step 2: Present Note Type Options
Based on the research output, present the ranked note type options to the user:
- Single-Punch Wisdom -- one sharp insight
- Income Proof Story -- results-driven credibility
- Pattern Observation -- trend or pattern spotted
- Contrarian Statement -- against-the-grain take
- Problem -> Solution -- actionable fix
- Build-in-Public Update -- transparency and progress
- List-Based Tactical -- quick-hit value list
- Vulnerable Personal Story -- authentic connection
- Newsletter Teaser -- drive issue reads
- Direct Advice -- straight recommendation
Include the research skill's recommendation for which type best fits the context. User selects their preferred type.
Default to Short (3-5 sentences) unless the message demands more.
Step 3: Invoke creator-stack:write
MANDATORY: Invoke creator-stack:write with references/substack-notes.md to draft the note.
Provide:
- The selected note type from Step 2
- The strategic context from Step 1
- The newsletter context from Step 0 (if applicable)
- The lifecycle phase and user's stated goal
The creator-stack:write skill will automatically invoke creator-stack:voice for voice consistency. The reference file contains all templates, formatting rules, and structural formulas.
Step 4: Quality Checklist
Verify the drafted note against all eight criteria before presenting to the user:
- Follows structural formula for chosen note type
- Opens with strong hook (first line grabs attention)
- Length matches type guideline
- Ends with engagement hook (not formulaic)
- Specific, not vague (numbers, examples, concrete details)
- Standalone value (interesting without clicking any link)
- NOT a generic link dump
- Note type matches the stated goal
If any criterion fails, request a revision from creator-stack:write before presenting to the user.
Step 5: Save Output
Present the final note to the user for approval.
If issue directory exists:
- After user approval, append to
./newsletter/issues/[issue_name]/notes.md
If no issue directory:
- Present the final note inline to the user
Content Bank Update:
If the note was based on a content bank idea:
- Update the idea's status from
pendingtodraftedin./substack/notes/ideas.md - Recalculate the Quick Stats header (pending/drafted/published counts, types needing ideas)
Output Format
When saving to notes.md, use this structure:
## [Type] Note - [Date]
**Type:** [Note type name]
**Context:** [Standalone / Pre-newsletter / Issue Day / Post-newsletter / Between Issues]
**Goal:** [Engagement / Authority / Connection / Promotion / Quick Value / Transparency / Positioning]
### Note Content
[Final note text]
### Notes
- Suggested timing: [from research]
- Engagement hook type: [question / agree-disagree / share / reply]
Multiple notes are appended to the same file with a horizontal rule separator (---) between entries.
Quality Checklist
Verify completion before finalizing:
- Newsletter context checked (Step 0)
-
creator-stack:researchinvoked withreferences/substack-notes-strategy.md-- strategic context determined - Note type options presented and user selection received
-
creator-stack:writeinvoked withreferences/substack-notes.md-- note drafted - Voice consistency maintained (handled by writing skill's
creator-stack:voiceinvocation) - All 8 quality criteria passed (Step 4)
- Note presented to user for approval
- Output saved to issue directory or presented inline
Common Pitfalls to Avoid
- Writing templates inline: All templates live in
references/substack-notes.md-- do not duplicate them in this orchestrator - Embedding strategy logic: All strategy lives in
references/substack-notes-strategy.md-- do not hardcode timing, cadence, or algorithm advice here - Skipping foundation skill invocations: Both
creator-stack:researchandcreator-stack:writemust be invoked -- do not generate notes directly - Ignoring newsletter context: Always check for an issue directory first -- it changes the entire strategic approach
- Defaulting to "new issue out" link dumps: The research and writing skills are specifically designed to avoid generic link dumps -- trust the foundation skills
- Skipping the quality checklist: Every note must pass all 8 criteria before presenting to the user
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
test-skill
Run or generate test suites for any skill. Use when testing a skill before deployment, after making changes, before/after plugin upgrades, when validating skill behavior, or when the user says "test skill", "run skill tests", "generate tests for skill", or "check for regressions".
upgrade-plugin
Upgrade a plugin's skills, hooks, and patterns to align with latest Claude Code capabilities and best practices. Use when a plugin needs modernization, after Claude Code updates, or when the user says "upgrade plugin", "modernize plugin", or "update plugin to latest patterns".
skill-retro
Use when reviewing how skills performed during a session, when the user wants to analyze skill invocations and identify improvements, or when the user says "skill retro", "review skills", "how did skills do", "improve this skill", or "skill retrospective".
view-team-session
Generate a self-contained HTML viewer for any Claude Code session, including agent team sessions with full inter-agent DM timelines. Use whenever the user asks to "view a session", "visualize a conversation", "show me what happened in session X", "generate a session viewer", "replay a session", "show me what my agents did", "session replay", "team timeline", or references viewing/inspecting Claude Code JSONL logs. Also use when the user provides a session ID and wants to see the conversation.
analyze-team-session
Use when reviewing an agent team session export for quality, when asked to "analyze this team session", "review my agent team run", "what went wrong with this session", "how can I improve my agent team usage", or when provided a markdown team session transcript and asked for feedback on agent teams effectiveness.
youtube-data
Retrieve YouTube data using the YouTube Data API. Use when you need to search videos, get video or channel details, fetch transcripts, read comments, find trending or related content, or when the user mentions 'YouTube data', 'video stats', 'transcript', or 'channel info'.
Didn't find tool you were looking for?