niahere 0.2.59 → 0.2.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/package.json +1 -1
  2. package/skills/agent-skill-creator/SKILL.md +60 -121
  3. package/skills/agent-skill-creator/references/patterns.md +178 -0
  4. package/skills/asc-cli/SKILL.md +141 -0
  5. package/skills/code-review/SKILL.md +25 -0
  6. package/skills/{pr-reviewer/SKILL.md → code-review/pr-review.md} +1 -13
  7. package/skills/code-review/pre-landing.md +169 -0
  8. package/skills/codex/SKILL.md +134 -0
  9. package/skills/content-strategy/SKILL.md +12 -354
  10. package/skills/{marketing-ideas/SKILL.md → content-strategy/ideas.md} +5 -13
  11. package/skills/content-strategy/strategy.md +354 -0
  12. package/skills/copywriting/SKILL.md +17 -239
  13. package/skills/{copy-editing/SKILL.md → copywriting/editing.md} +3 -39
  14. package/skills/{marketing-psychology/SKILL.md → copywriting/references/psychology.md} +3 -16
  15. package/skills/copywriting/writing.md +232 -0
  16. package/skills/cro/SKILL.md +29 -0
  17. package/skills/{onboarding-cro/SKILL.md → cro/onboarding.md} +2 -21
  18. package/skills/{page-cro/SKILL.md → cro/page.md} +2 -22
  19. package/skills/{signup-flow-cro/SKILL.md → cro/signup-flow.md} +1 -105
  20. package/skills/customer-research/SKILL.md +5 -5
  21. package/skills/documents/SKILL.md +29 -0
  22. package/skills/{docx/SKILL.md → documents/docx-creating.md} +23 -274
  23. package/skills/documents/docx-editing.md +184 -0
  24. package/skills/documents/docx-reading.md +53 -0
  25. package/skills/{pptx/SKILL.md → documents/pptx.md} +20 -26
  26. package/skills/email/SKILL.md +43 -0
  27. package/skills/{cold-email/SKILL.md → email/cold-outreach.md} +2 -10
  28. package/skills/email/evals/evals.json +196 -0
  29. package/skills/{email-sequence/SKILL.md → email/sequences.md} +2 -12
  30. package/skills/frontend-design/SKILL.md +9 -164
  31. package/skills/frontend-design/building.md +174 -0
  32. package/skills/frontend-design/design-md.md +298 -0
  33. package/skills/gh-stamp/SKILL.md +2 -2
  34. package/skills/marketing/SKILL.md +43 -0
  35. package/skills/marketing/churn-cancel-flows.md +153 -0
  36. package/skills/marketing/churn-dunning.md +83 -0
  37. package/skills/marketing/churn-prediction.md +61 -0
  38. package/skills/marketing/churn-prevention.md +109 -0
  39. package/skills/{competitor-alternatives/SKILL.md → marketing/competitor-alternatives.md} +1 -11
  40. package/skills/marketing/evals/evals.json +378 -0
  41. package/skills/{launch-strategy/SKILL.md → marketing/launch-strategy.md} +4 -13
  42. package/skills/{pricing-strategy/SKILL.md → marketing/pricing-strategy.md} +3 -15
  43. package/skills/{social-content/SKILL.md → marketing/social-content.md} +3 -10
  44. package/skills/plan-review/SKILL.md +41 -0
  45. package/skills/plan-review/ceo.md +333 -0
  46. package/skills/plan-review/eng.md +139 -0
  47. package/skills/{minimalist-review/SKILL.md → plan-review/minimalist.md} +0 -6
  48. package/skills/qa/SKILL.md +353 -0
  49. package/skills/qa/playwright.md +242 -0
  50. package/skills/retro/SKILL.md +234 -0
  51. package/skills/seo/SKILL.md +30 -0
  52. package/skills/{ai-seo/SKILL.md → seo/ai-seo.md} +4 -13
  53. package/skills/seo/evals/evals.json +234 -0
  54. package/skills/{llms-txt/SKILL.md → seo/llms-txt.md} +0 -10
  55. package/skills/{seo-audit/SKILL.md → seo/traditional.md} +3 -14
  56. package/skills/shopify/SKILL.md +41 -0
  57. package/skills/shopify/building.md +511 -0
  58. package/skills/shopify/listing.md +163 -0
  59. package/skills/whisper-cpp-transcribe/SKILL.md +55 -0
  60. package/skills/wrangler/SKILL.md +138 -0
  61. package/src/channels/slack.ts +89 -38
  62. package/src/chat/engine.ts +20 -53
  63. package/src/chat/repl.ts +4 -3
  64. package/src/cli/watch.ts +15 -10
  65. package/src/commands/init.ts +50 -23
  66. package/src/core/daemon.ts +49 -4
  67. package/src/core/finalizer.ts +125 -0
  68. package/src/db/migrations/014_finalization_requests.ts +21 -0
  69. package/src/mcp/server.ts +30 -101
  70. package/src/mcp/tools.ts +23 -69
  71. package/src/types/config.ts +8 -1
  72. package/src/types/paths.ts +1 -0
  73. package/src/utils/config.ts +48 -44
  74. package/src/utils/paths.ts +1 -0
  75. package/src/utils/watches.ts +68 -0
  76. package/skills/ai-seo/evals/evals.json +0 -90
  77. package/skills/churn-prevention/SKILL.md +0 -424
  78. package/skills/churn-prevention/evals/evals.json +0 -93
  79. package/skills/cold-email/evals/evals.json +0 -94
  80. package/skills/competitor-alternatives/evals/evals.json +0 -93
  81. package/skills/copy-editing/evals/evals.json +0 -89
  82. package/skills/copy-editing/references/plain-english-alternatives.md +0 -394
  83. package/skills/email-sequence/evals/evals.json +0 -93
  84. package/skills/launch-strategy/evals/evals.json +0 -91
  85. package/skills/onboarding-cro/evals/evals.json +0 -92
  86. package/skills/page-cro/evals/evals.json +0 -111
  87. package/skills/seo-audit/evals/evals.json +0 -136
  88. package/skills/signup-flow-cro/evals/evals.json +0 -88
  89. package/skills/social-content/evals/evals.json +0 -92
  90. /package/skills/{onboarding-cro/references/experiments.md → cro/references/onboarding-experiments.md} +0 -0
  91. /package/skills/{page-cro/references/experiments.md → cro/references/page-experiments.md} +0 -0
  92. /package/skills/{cold-email → email}/references/benchmarks.md +0 -0
  93. /package/skills/{email-sequence → email}/references/copy-guidelines.md +0 -0
  94. /package/skills/{email-sequence → email}/references/email-types.md +0 -0
  95. /package/skills/{cold-email → email}/references/follow-up-sequences.md +0 -0
  96. /package/skills/{cold-email → email}/references/frameworks.md +0 -0
  97. /package/skills/{cold-email → email}/references/personalization.md +0 -0
  98. /package/skills/{email-sequence → email}/references/sequence-templates.md +0 -0
  99. /package/skills/{cold-email → email}/references/subject-lines.md +0 -0
  100. /package/skills/{churn-prevention → marketing}/references/cancel-flow-patterns.md +0 -0
  101. /package/skills/{competitor-alternatives → marketing}/references/content-architecture.md +0 -0
  102. /package/skills/{churn-prevention → marketing}/references/dunning-playbook.md +0 -0
  103. /package/skills/{social-content → marketing}/references/platforms.md +0 -0
  104. /package/skills/{social-content → marketing}/references/post-templates.md +0 -0
  105. /package/skills/{social-content → marketing}/references/reverse-engineering.md +0 -0
  106. /package/skills/{competitor-alternatives → marketing}/references/templates.md +0 -0
  107. /package/skills/{seo-audit → seo}/references/ai-writing-detection.md +0 -0
  108. /package/skills/{ai-seo → seo}/references/content-patterns.md +0 -0
  109. /package/skills/{ai-seo → seo}/references/platform-ranking-factors.md +0 -0
@@ -0,0 +1,169 @@
1
+ # Code Review — Pre-Landing Review
2
+
3
+ Analyze the current branch's diff against main for structural issues that tests don't catch.
4
+
5
+ ---
6
+
7
+ ## Step 1: Check branch
8
+
9
+ 1. Run `git branch --show-current` to get the current branch.
10
+ 2. If on `main`, output: **"Nothing to review — you're on main or have no changes against main."** and stop.
11
+ 3. Run `git fetch origin main --quiet && git diff origin/main --stat` to check if there's a diff. If no diff, output the same message and stop.
12
+
13
+ ---
14
+
15
+ ## Step 2: Get the diff
16
+
17
+ ```bash
18
+ git fetch origin main --quiet
19
+ git diff origin/main
20
+ ```
21
+
22
+ This includes both committed and uncommitted changes against the latest main.
23
+
24
+ ---
25
+
26
+ ## Step 3: Two-pass review
27
+
28
+ Apply the checklist below against the diff in two passes:
29
+
30
+ 1. **Pass 1 (CRITICAL):** Data Safety, Trust Boundaries, Race Conditions
31
+ 2. **Pass 2 (INFORMATIONAL):** Conditional Side Effects, Magic Numbers, Dead Code, LLM Prompt Issues, Test Gaps, Frontend Issues
32
+
33
+ Follow the output format specified below. Respect the suppressions — do NOT flag items in the "DO NOT flag" section.
34
+
35
+ ---
36
+
37
+ ## Step 4: Output findings
38
+
39
+ **Always output ALL findings** — both critical and informational.
40
+
41
+ - If CRITICAL issues found: output all findings, then for EACH critical issue use a separate AskUserQuestion with the problem, your recommended fix, and options (A: Fix it now, B: Acknowledge, C: False positive — skip).
42
+ - If only non-critical issues found: output findings. No further action needed.
43
+ - If no issues found: output `Pre-Landing Review: No issues found.`
44
+
45
+ ---
46
+
47
+ ## Review Checklist
48
+
49
+ ### Pass 1 — CRITICAL
50
+
51
+ #### Data Safety
52
+ - String interpolation/concatenation in SQL or database queries (use parameterized queries)
53
+ - TOCTOU races: check-then-set patterns that should be atomic operations
54
+ - Bypassing validations on writes to fields that have or should have constraints
55
+ - N+1 queries: missing eager loading for associations used in loops/views
56
+
57
+ #### Race Conditions & Concurrency
58
+ - Read-check-write without uniqueness constraint or conflict handling
59
+ - Find-or-create patterns on columns without unique DB index — concurrent calls can create duplicates
60
+ - Status transitions that don't use atomic compare-and-swap — concurrent updates can skip or double-apply
61
+ - Rendering user-controlled data as trusted HTML (XSS)
62
+
63
+ #### Trust Boundaries
64
+ - LLM/AI-generated values (emails, URLs, names) written to DB or used in actions without format validation
65
+ - Structured tool output (arrays, objects) accepted without type/shape checks before database writes
66
+ - External API responses used without validation
67
+ - User input passed to system commands without sanitization
68
+
69
+ ### Pass 2 — INFORMATIONAL
70
+
71
+ #### Conditional Side Effects
72
+ - Code paths that branch on a condition but forget to apply a side effect on one branch (creating inconsistent state)
73
+ - Log messages that claim an action happened but the action was conditionally skipped
74
+
75
+ #### Magic Numbers & String Coupling
76
+ - Bare numeric literals used in multiple files — should be named constants
77
+ - Error message strings used as query filters elsewhere
78
+
79
+ #### Dead Code & Consistency
80
+ - Variables assigned but never read
81
+ - Comments/docstrings that describe old behavior after the code changed
82
+ - Changelog/version inconsistencies
83
+
84
+ #### LLM Prompt Issues
85
+ - 0-indexed lists in prompts (LLMs reliably return 1-indexed)
86
+ - Prompt text listing available tools/capabilities that don't match what's actually wired up
87
+ - Token/word limits stated in multiple places that could drift
88
+
89
+ #### Test Gaps
90
+ - Negative-path tests that assert type/status but not side effects
91
+ - Assertions on string content without checking format
92
+ - Security enforcement features without integration tests verifying the enforcement path end-to-end
93
+ - Missing "should NOT call" assertions when a code path should explicitly skip an external service
94
+
95
+ #### Crypto & Entropy
96
+ - Truncation of data instead of hashing (less entropy, easier collisions)
97
+ - Non-cryptographic random for security-sensitive values
98
+ - Non-constant-time comparisons on secrets or tokens (timing attacks)
99
+
100
+ #### Time Window Safety
101
+ - Date-key lookups that assume "today" covers 24h
102
+ - Mismatched time windows between related features
103
+
104
+ #### Type Coercion at Boundaries
105
+ - Values crossing language/serialization boundaries where type could change (numeric vs string)
106
+ - Hash/digest inputs that don't normalize types before serialization
107
+
108
+ #### Frontend/View
109
+ - Inline styles in repeated components (re-parsed every render)
110
+ - O(n*m) lookups in views (linear search in a loop instead of hash lookup)
111
+ - Client-side filtering of large datasets that should be server-side
112
+
113
+ ---
114
+
115
+ ## Gate Classification
116
+
117
+ ```
118
+ CRITICAL (blocks ship): INFORMATIONAL (noted in PR):
119
+ |- Data Safety |- Conditional Side Effects
120
+ |- Race Conditions |- Magic Numbers & String Coupling
121
+ |- Trust Boundaries |- Dead Code & Consistency
122
+ |- LLM Prompt Issues
123
+ |- Test Gaps
124
+ |- Crypto & Entropy
125
+ |- Time Window Safety
126
+ |- Type Coercion at Boundaries
127
+ |- Frontend/View
128
+ ```
129
+
130
+ ---
131
+
132
+ ## Output Format
133
+
134
+ ```
135
+ Pre-Landing Review: N issues (X critical, Y informational)
136
+
137
+ **CRITICAL** (blocking):
138
+ - [file:line] Problem description
139
+ Fix: suggested fix
140
+
141
+ **Issues** (non-blocking):
142
+ - [file:line] Problem description
143
+ Fix: suggested fix
144
+ ```
145
+
146
+ If no issues: `Pre-Landing Review: No issues found.`
147
+
148
+ Be terse. One line problem, one line fix. No preamble.
149
+
150
+ ---
151
+
152
+ ## Suppressions — DO NOT flag these
153
+
154
+ - "X is redundant with Y" when the redundancy is harmless and aids readability
155
+ - "Add a comment explaining why this threshold was chosen" — thresholds change, comments rot
156
+ - "This assertion could be tighter" when the assertion already covers the behavior
157
+ - Suggesting consistency-only changes
158
+ - "Regex doesn't handle edge case X" when the input is constrained and X never occurs in practice
159
+ - "Test exercises multiple guards simultaneously" — that's fine
160
+ - Eval threshold/config value changes that are tuned empirically
161
+ - Harmless no-ops
162
+ - ANYTHING already addressed in the diff you're reviewing — read the FULL diff before commenting
163
+
164
+ ## Important Rules
165
+
166
+ - **Read the FULL diff before commenting.** Do not flag issues already addressed in the diff.
167
+ - **Read-only by default.** Only modify files if the user explicitly chooses "Fix it now" on a critical issue. Never commit, push, or create PRs.
168
+ - **Be terse.** One line problem, one line fix. No preamble.
169
+ - **Only flag real problems.** Skip anything that's fine.
@@ -0,0 +1,134 @@
1
+ ---
2
+ name: codex
3
+ description: Consult OpenAI Codex CLI for a second opinion on plans, tests, code review, and more. Use this skill automatically whenever a second perspective would strengthen your output — especially for architectural plans, code review, test strategy, and debugging.
4
+ argument-hint: "[task] [details...]"
5
+ allowed-tools: Bash(codex *), Bash(codex exec *)
6
+ ---
7
+
8
+ ## Runtime Scope
9
+
10
+ - Use this skill in Claude Code workflows.
11
+ - If the active assistant is Codex and this skill is referenced, do not invoke Codex CLI directly; use a subagent for the second-opinion task instead.
12
+
13
+ Consult the OpenAI Codex CLI as a second-opinion advisor. Use its output to compare, validate, or enrich your own analysis.
14
+
15
+ **User request:** $ARGUMENTS
16
+
17
+ ## Instructions
18
+
19
+ ### Step 1: Determine the consultation type
20
+
21
+ Based on the user's request, determine which mode applies:
22
+
23
+ - **plan** — Ask Codex to propose an implementation plan or architecture
24
+ - **review** — Ask Codex to review specific code for bugs, style, and improvements
25
+ - **test** — Ask Codex to suggest test cases or generate tests for specific code
26
+ - **explain** — Ask Codex to explain how specific code works
27
+ - **debug** — Ask Codex to analyze a bug or error and suggest fixes
28
+ - **general** — Any other consultation
29
+
30
+ ### Step 2: Gather context
31
+
32
+ Before calling Codex, gather relevant context so you can craft a focused prompt:
33
+
34
+ - Read the files relevant to the user's request
35
+ - Check `git diff --stat` or `git log --oneline -10` if the request involves recent changes
36
+ - Understand what specific question or area the user wants Codex's perspective on
37
+
38
+ ### Step 3: Call Codex
39
+
40
+ Run Codex via `codex exec` in non-interactive mode. Always pass `-C` with the project directory.
41
+
42
+ **For read-only consultation (review, explain, debug):**
43
+ ```bash
44
+ codex exec -s read-only "YOUR_PROMPT" -C /path/to/project
45
+ ```
46
+
47
+ **For code generation (test, plan with output):**
48
+ ```bash
49
+ codex exec -s workspace-write "YOUR_PROMPT" -C /path/to/project
50
+ ```
51
+
52
+ **For code review specifically:**
53
+ ```bash
54
+ codex exec review -C /path/to/project
55
+ ```
56
+
57
+ #### CLI Reference (codex-cli v0.114.0)
58
+
59
+ | Flag | Description |
60
+ |------|-------------|
61
+ | `-s read-only` | Read-only sandbox — can read files but not modify |
62
+ | `-s workspace-write` | Can write to workspace |
63
+ | `-C /path` | Set working directory |
64
+ | `-m MODEL` | Override model (e.g. `-m o3`) |
65
+ | `--json` | Output events as JSONL |
66
+ | `--ephemeral` | Don't persist session files |
67
+ | `-o FILE` | Write last message to file |
68
+ | `-c key=value` | Override config (e.g. `-c model="o3"`) |
69
+ | `--full-auto` | Convenience alias for sandboxed auto-execution |
70
+
71
+ **Do NOT use these (they don't exist):**
72
+ - `--quiet` — not a valid flag
73
+ - `--approval-mode` — not a valid flag
74
+ - Top-level `codex "prompt"` for non-interactive — use `codex exec` instead
75
+
76
+ #### Prompt crafting rules
77
+ - Include the specific file paths and relevant code context
78
+ - Be explicit about what you want: "Review this code for bugs", "Propose a plan to implement X", "Write unit tests for Y"
79
+ - Include constraints: "This project uses [framework/language]. Follow existing patterns."
80
+ - Keep it focused — one clear ask per invocation
81
+
82
+ If the output is too large or Codex needs to examine many files, break it into multiple focused calls.
83
+
84
+ If `codex` is not installed, tell the user:
85
+ > Codex CLI is not installed. Install it with: `npm install -g @openai/codex`
86
+ > Make sure your `OPENAI_API_KEY` environment variable is set.
87
+
88
+ Then stop.
89
+
90
+ ### Step 4: Synthesize
91
+
92
+ Do NOT just dump Codex's raw output. Instead:
93
+
94
+ 1. **Present Codex's perspective** — summarize its key points clearly
95
+ 2. **Add your own analysis** — where do you agree or disagree? What did it miss? What did it catch that you wouldn't have?
96
+ 3. **Highlight conflicts** — if Codex's suggestion contradicts the project's existing patterns or the user's preferences, flag it
97
+ 4. **Give a recommendation** — a clear, unified recommendation combining the best of both perspectives
98
+
99
+ Format the output as:
100
+
101
+ ---
102
+
103
+ ## Codex Consultation
104
+
105
+ **Query:** (what was asked)
106
+
107
+ ### Codex's Take
108
+ (summarized key points from Codex output)
109
+
110
+ ### My Analysis
111
+ (where you agree, disagree, or would extend Codex's suggestions)
112
+
113
+ ### Conflicts & Caveats
114
+ (any contradictions with existing codebase patterns, CLAUDE.md rules, or project conventions)
115
+
116
+ ### Recommendation
117
+ (unified recommendation — the best path forward considering both perspectives)
118
+
119
+ ---
120
+
121
+ ### Step 5: Offer next steps
122
+
123
+ Ask the user if they want to:
124
+ - Act on the recommendation
125
+ - Ask Codex a follow-up question
126
+ - Get deeper analysis on a specific point
127
+
128
+ ## Keeping This Skill Up To Date
129
+
130
+ This skill was last verified against **codex-cli v0.114.0**. If Codex CLI is updated and commands fail, run `codex exec --help` to check current flags and update this skill accordingly. Common things that change between versions:
131
+ - Flag names and aliases
132
+ - Sandbox mode values
133
+ - Subcommands (e.g. `exec review` was added later)
134
+ - Default model names
@@ -1,365 +1,23 @@
1
1
  ---
2
2
  name: content-strategy
3
- description: When the user wants to plan a content strategy, decide what content to create, or figure out what topics to cover. Also use when the user mentions "content strategy," "what should I write about," "content ideas," "blog strategy," "topic clusters," "content planning," "editorial calendar," "content marketing," "content roadmap," "what content should I create," "blog topics," "content pillars," or "I don't know what to write." Use this whenever someone needs help deciding what content to produce, not just writing it. For writing individual pieces, see copywriting. For SEO-specific audits, see seo-audit. For social media content specifically, see social-content.
3
+ description: "When the user wants to plan a content strategy, decide what content to create, figure out what topics to cover, or needs marketing ideas, growth tactics, and brainstorming. Also use when the user mentions 'content strategy,' 'what should I write about,' 'content ideas,' 'blog strategy,' 'topic clusters,' 'content planning,' 'editorial calendar,' 'content marketing,' 'content roadmap,' 'what content should I create,' 'blog topics,' 'content pillars,' 'I don't know what to write,' 'marketing ideas,' 'growth ideas,' 'how to market,' 'marketing strategies,' 'marketing tactics,' 'ways to promote,' 'ideas to grow,' 'what else can I try,' 'I don't know how to market this,' 'brainstorm marketing,' or 'what marketing should I do.' For writing individual pieces, see copywriting. For SEO-specific audits, see seo. For social media content specifically, see the marketing skill's social-content mode."
4
4
  metadata:
5
- version: 1.1.0
5
+ version: 2.0.0
6
6
  ---
7
7
 
8
- # Content Strategy
8
+ # Content Strategy & Marketing Ideas
9
9
 
10
- You are a content strategist. Your goal is to help plan content that drives traffic, builds authority, and generates leads by being either searchable, shareable, or both.
10
+ This skill routes to the appropriate sub-skill based on your request.
11
11
 
12
- ## Before Planning
12
+ ## Shared Context
13
13
 
14
- **Check for product marketing context first:**
15
- If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
14
+ If `.agents/product-marketing-context.md` exists (or `.claude/product-marketing-context.md` in older setups), read it first before proceeding.
16
15
 
17
- Gather this context (ask if not provided):
16
+ ## Routing
18
17
 
19
- ### 1. Business Context
20
- - What does the company do?
21
- - Who is the ideal customer?
22
- - What's the primary goal for content? (traffic, leads, brand awareness, thought leadership)
23
- - What problems does your product solve?
18
+ | Request Type | Route |
19
+ |---|---|
20
+ | Content planning, topic clusters, editorial calendar, content pillars, what to write about, content roadmap, keyword research, content prioritization | [strategy.md](strategy.md) |
21
+ | Marketing ideas, growth tactics, brainstorming, marketing strategies, ways to promote, how to market, what else can I try, marketing inspiration | [ideas.md](ideas.md) |
24
22
 
25
- ### 2. Customer Research
26
- - What questions do customers ask before buying?
27
- - What objections come up in sales calls?
28
- - What topics appear repeatedly in support tickets?
29
- - What language do customers use to describe their problems?
30
-
31
- ### 3. Current State
32
- - Do you have existing content? What's working?
33
- - What resources do you have? (writers, budget, time)
34
- - What content formats can you produce? (written, video, audio)
35
-
36
- ### 4. Competitive Landscape
37
- - Who are your main competitors?
38
- - What content gaps exist in your market?
39
-
40
- ---
41
-
42
- ## Searchable vs Shareable
43
-
44
- Every piece of content must be searchable, shareable, or both. Prioritize in that order—search traffic is the foundation.
45
-
46
- **Searchable content** captures existing demand. Optimized for people actively looking for answers.
47
-
48
- **Shareable content** creates demand. Spreads ideas and gets people talking.
49
-
50
- ### When Writing Searchable Content
51
-
52
- - Target a specific keyword or question
53
- - Match search intent exactly—answer what the searcher wants
54
- - Use clear titles that match search queries
55
- - Structure with headings that mirror search patterns
56
- - Place keywords in title, headings, first paragraph, URL
57
- - Provide comprehensive coverage (don't leave questions unanswered)
58
- - Include data, examples, and links to authoritative sources
59
- - Optimize for AI/LLM discovery: clear positioning, structured content, brand consistency across the web
60
-
61
- ### When Writing Shareable Content
62
-
63
- - Lead with a novel insight, original data, or counterintuitive take
64
- - Challenge conventional wisdom with well-reasoned arguments
65
- - Tell stories that make people feel something
66
- - Create content people want to share to look smart or help others
67
- - Connect to current trends or emerging problems
68
- - Share vulnerable, honest experiences others can learn from
69
-
70
- ---
71
-
72
- ## Content Types
73
-
74
- ### Searchable Content Types
75
-
76
- **Use-Case Content**
77
- Formula: [persona] + [use-case]. Targets long-tail keywords.
78
- - "Project management for designers"
79
- - "Task tracking for developers"
80
- - "Client collaboration for freelancers"
81
-
82
- **Hub and Spoke**
83
- Hub = comprehensive overview. Spokes = related subtopics.
84
- ```
85
- /topic (hub)
86
- ├── /topic/subtopic-1 (spoke)
87
- ├── /topic/subtopic-2 (spoke)
88
- └── /topic/subtopic-3 (spoke)
89
- ```
90
- Create hub first, then build spokes. Interlink strategically.
91
-
92
- **Note:** Most content works fine under `/blog`. Only use dedicated hub/spoke URL structures for major topics with layered depth (e.g., Atlassian's `/agile` guide). For typical blog posts, `/blog/post-title` is sufficient.
93
-
94
- **Template Libraries**
95
- High-intent keywords + product adoption.
96
- - Target searches like "marketing plan template"
97
- - Provide immediate standalone value
98
- - Show how product enhances the template
99
-
100
- ### Shareable Content Types
101
-
102
- **Thought Leadership**
103
- - Articulate concepts everyone feels but hasn't named
104
- - Challenge conventional wisdom with evidence
105
- - Share vulnerable, honest experiences
106
-
107
- **Data-Driven Content**
108
- - Product data analysis (anonymized insights)
109
- - Public data analysis (uncover patterns)
110
- - Original research (run experiments, share results)
111
-
112
- **Expert Roundups**
113
- 15-30 experts answering one specific question. Built-in distribution.
114
-
115
- **Case Studies**
116
- Structure: Challenge → Solution → Results → Key learnings
117
-
118
- **Meta Content**
119
- Behind-the-scenes transparency. "How We Got Our First $5k MRR," "Why We Chose Debt Over VC."
120
-
121
- For programmatic content at scale, see **programmatic-seo** skill.
122
-
123
- ---
124
-
125
- ## Content Pillars and Topic Clusters
126
-
127
- Content pillars are the 3-5 core topics your brand will own. Each pillar spawns a cluster of related content.
128
-
129
- Most of the time, all content can live under `/blog` with good internal linking between related posts. Dedicated pillar pages with custom URL structures (like `/guides/topic`) are only needed when you're building comprehensive resources with multiple layers of depth.
130
-
131
- ### How to Identify Pillars
132
-
133
- 1. **Product-led**: What problems does your product solve?
134
- 2. **Audience-led**: What does your ICP need to learn?
135
- 3. **Search-led**: What topics have volume in your space?
136
- 4. **Competitor-led**: What are competitors ranking for?
137
-
138
- ### Pillar Structure
139
-
140
- ```
141
- Pillar Topic (Hub)
142
- ├── Subtopic Cluster 1
143
- │ ├── Article A
144
- │ ├── Article B
145
- │ └── Article C
146
- ├── Subtopic Cluster 2
147
- │ ├── Article D
148
- │ ├── Article E
149
- │ └── Article F
150
- └── Subtopic Cluster 3
151
- ├── Article G
152
- ├── Article H
153
- └── Article I
154
- ```
155
-
156
- ### Pillar Criteria
157
-
158
- Good pillars should:
159
- - Align with your product/service
160
- - Match what your audience cares about
161
- - Have search volume and/or social interest
162
- - Be broad enough for many subtopics
163
-
164
- ---
165
-
166
- ## Keyword Research by Buyer Stage
167
-
168
- Map topics to the buyer's journey using proven keyword modifiers:
169
-
170
- ### Awareness Stage
171
- Modifiers: "what is," "how to," "guide to," "introduction to"
172
-
173
- Example: If customers ask about project management basics:
174
- - "What is Agile Project Management"
175
- - "Guide to Sprint Planning"
176
- - "How to Run a Standup Meeting"
177
-
178
- ### Consideration Stage
179
- Modifiers: "best," "top," "vs," "alternatives," "comparison"
180
-
181
- Example: If customers evaluate multiple tools:
182
- - "Best Project Management Tools for Remote Teams"
183
- - "Asana vs Trello vs Monday"
184
- - "Basecamp Alternatives"
185
-
186
- ### Decision Stage
187
- Modifiers: "pricing," "reviews," "demo," "trial," "buy"
188
-
189
- Example: If pricing comes up in sales calls:
190
- - "Project Management Tool Pricing Comparison"
191
- - "How to Choose the Right Plan"
192
- - "[Product] Reviews"
193
-
194
- ### Implementation Stage
195
- Modifiers: "templates," "examples," "tutorial," "how to use," "setup"
196
-
197
- Example: If support tickets show implementation struggles:
198
- - "Project Template Library"
199
- - "Step-by-Step Setup Tutorial"
200
- - "How to Use [Feature]"
201
-
202
- ---
203
-
204
- ## Content Ideation Sources
205
-
206
- ### 1. Keyword Data
207
-
208
- If user provides keyword exports (Ahrefs, SEMrush, GSC), analyze for:
209
- - Topic clusters (group related keywords)
210
- - Buyer stage (awareness/consideration/decision/implementation)
211
- - Search intent (informational, commercial, transactional)
212
- - Quick wins (low competition + decent volume + high relevance)
213
- - Content gaps (keywords competitors rank for that you don't)
214
-
215
- Output as prioritized table:
216
- | Keyword | Volume | Difficulty | Buyer Stage | Content Type | Priority |
217
-
218
- ### 2. Call Transcripts
219
-
220
- If user provides sales or customer call transcripts, extract:
221
- - Questions asked → FAQ content or blog posts
222
- - Pain points → problems in their own words
223
- - Objections → content to address proactively
224
- - Language patterns → exact phrases to use (voice of customer)
225
- - Competitor mentions → what they compared you to
226
-
227
- Output content ideas with supporting quotes.
228
-
229
- ### 3. Survey Responses
230
-
231
- If user provides survey data, mine for:
232
- - Open-ended responses (topics and language)
233
- - Common themes (30%+ mention = high priority)
234
- - Resource requests (what they wish existed)
235
- - Content preferences (formats they want)
236
-
237
- ### 4. Forum Research
238
-
239
- Use web search to find content ideas:
240
-
241
- **Reddit:** `site:reddit.com [topic]`
242
- - Top posts in relevant subreddits
243
- - Questions and frustrations in comments
244
- - Upvoted answers (validates what resonates)
245
-
246
- **Quora:** `site:quora.com [topic]`
247
- - Most-followed questions
248
- - Highly upvoted answers
249
-
250
- **Other:** Indie Hackers, Hacker News, Product Hunt, industry Slack/Discord
251
-
252
- Extract: FAQs, misconceptions, debates, problems being solved, terminology used.
253
-
254
- ### 5. Competitor Analysis
255
-
256
- Use web search to analyze competitor content:
257
-
258
- **Find their content:** `site:competitor.com/blog`
259
-
260
- **Analyze:**
261
- - Top-performing posts (comments, shares)
262
- - Topics covered repeatedly
263
- - Gaps they haven't covered
264
- - Case studies (customer problems, use cases, results)
265
- - Content structure (pillars, categories, formats)
266
-
267
- **Identify opportunities:**
268
- - Topics you can cover better
269
- - Angles they're missing
270
- - Outdated content to improve on
271
-
272
- ### 6. Sales and Support Input
273
-
274
- Extract from customer-facing teams:
275
- - Common objections
276
- - Repeated questions
277
- - Support ticket patterns
278
- - Success stories
279
- - Feature requests and underlying problems
280
-
281
- ---
282
-
283
- ## Prioritizing Content Ideas
284
-
285
- Score each idea on four factors:
286
-
287
- ### 1. Customer Impact (40%)
288
- - How frequently did this topic come up in research?
289
- - What percentage of customers face this challenge?
290
- - How emotionally charged was this pain point?
291
- - What's the potential LTV of customers with this need?
292
-
293
- ### 2. Content-Market Fit (30%)
294
- - Does this align with problems your product solves?
295
- - Can you offer unique insights from customer research?
296
- - Do you have customer stories to support this?
297
- - Will this naturally lead to product interest?
298
-
299
- ### 3. Search Potential (20%)
300
- - What's the monthly search volume?
301
- - How competitive is this topic?
302
- - Are there related long-tail opportunities?
303
- - Is search interest growing or declining?
304
-
305
- ### 4. Resource Requirements (10%)
306
- - Do you have expertise to create authoritative content?
307
- - What additional research is needed?
308
- - What assets (graphics, data, examples) will you need?
309
-
310
- ### Scoring Template
311
-
312
- | Idea | Customer Impact (40%) | Content-Market Fit (30%) | Search Potential (20%) | Resources (10%) | Total |
313
- |------|----------------------|-------------------------|----------------------|-----------------|-------|
314
- | Topic A | 8 | 9 | 7 | 6 | 8.0 |
315
- | Topic B | 6 | 7 | 9 | 8 | 7.1 |
316
-
317
- ---
318
-
319
- ## Output Format
320
-
321
- When creating a content strategy, provide:
322
-
323
- ### 1. Content Pillars
324
- - 3-5 pillars with rationale
325
- - Subtopic clusters for each pillar
326
- - How pillars connect to product
327
-
328
- ### 2. Priority Topics
329
- For each recommended piece:
330
- - Topic/title
331
- - Searchable, shareable, or both
332
- - Content type (use-case, hub/spoke, thought leadership, etc.)
333
- - Target keyword and buyer stage
334
- - Why this topic (customer research backing)
335
-
336
- ### 3. Topic Cluster Map
337
- Visual or structured representation of how content interconnects.
338
-
339
- ---
340
-
341
- ## Task-Specific Questions
342
-
343
- 1. What patterns emerge from your last 10 customer conversations?
344
- 2. What questions keep coming up in sales calls?
345
- 3. Where are competitors' content efforts falling short?
346
- 4. What unique insights from customer research aren't being shared elsewhere?
347
- 5. Which existing content drives the most conversions, and why?
348
-
349
- ---
350
-
351
- ## References
352
-
353
- - **[Headless CMS Guide](references/headless-cms.md)**: CMS selection, content modeling for marketing, editorial workflows, platform comparison (Sanity, Contentful, Strapi)
354
-
355
- ---
356
-
357
- ## Related Skills
358
-
359
- - **copywriting**: For writing individual content pieces
360
- - **seo-audit**: For technical SEO and on-page optimization
361
- - **ai-seo**: For optimizing content for AI search engines and getting cited by LLMs
362
- - **programmatic-seo**: For scaled content generation
363
- - **site-architecture**: For page hierarchy, navigation design, and URL structure
364
- - **email-sequence**: For email-based content
365
- - **social-content**: For social media content
23
+ If the request spans both (e.g., "plan my content and give me marketing ideas"), use both sub-skills and synthesize a combined response.