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.
- package/package.json +1 -1
- package/skills/agent-skill-creator/SKILL.md +60 -121
- package/skills/agent-skill-creator/references/patterns.md +178 -0
- package/skills/asc-cli/SKILL.md +141 -0
- package/skills/code-review/SKILL.md +25 -0
- package/skills/{pr-reviewer/SKILL.md → code-review/pr-review.md} +1 -13
- package/skills/code-review/pre-landing.md +169 -0
- package/skills/codex/SKILL.md +134 -0
- package/skills/content-strategy/SKILL.md +12 -354
- package/skills/{marketing-ideas/SKILL.md → content-strategy/ideas.md} +5 -13
- package/skills/content-strategy/strategy.md +354 -0
- package/skills/copywriting/SKILL.md +17 -239
- package/skills/{copy-editing/SKILL.md → copywriting/editing.md} +3 -39
- package/skills/{marketing-psychology/SKILL.md → copywriting/references/psychology.md} +3 -16
- package/skills/copywriting/writing.md +232 -0
- package/skills/cro/SKILL.md +29 -0
- package/skills/{onboarding-cro/SKILL.md → cro/onboarding.md} +2 -21
- package/skills/{page-cro/SKILL.md → cro/page.md} +2 -22
- package/skills/{signup-flow-cro/SKILL.md → cro/signup-flow.md} +1 -105
- package/skills/customer-research/SKILL.md +5 -5
- package/skills/documents/SKILL.md +29 -0
- package/skills/{docx/SKILL.md → documents/docx-creating.md} +23 -274
- package/skills/documents/docx-editing.md +184 -0
- package/skills/documents/docx-reading.md +53 -0
- package/skills/{pptx/SKILL.md → documents/pptx.md} +20 -26
- package/skills/email/SKILL.md +43 -0
- package/skills/{cold-email/SKILL.md → email/cold-outreach.md} +2 -10
- package/skills/email/evals/evals.json +196 -0
- package/skills/{email-sequence/SKILL.md → email/sequences.md} +2 -12
- package/skills/frontend-design/SKILL.md +9 -164
- package/skills/frontend-design/building.md +174 -0
- package/skills/frontend-design/design-md.md +298 -0
- package/skills/gh-stamp/SKILL.md +2 -2
- package/skills/marketing/SKILL.md +43 -0
- package/skills/marketing/churn-cancel-flows.md +153 -0
- package/skills/marketing/churn-dunning.md +83 -0
- package/skills/marketing/churn-prediction.md +61 -0
- package/skills/marketing/churn-prevention.md +109 -0
- package/skills/{competitor-alternatives/SKILL.md → marketing/competitor-alternatives.md} +1 -11
- package/skills/marketing/evals/evals.json +378 -0
- package/skills/{launch-strategy/SKILL.md → marketing/launch-strategy.md} +4 -13
- package/skills/{pricing-strategy/SKILL.md → marketing/pricing-strategy.md} +3 -15
- package/skills/{social-content/SKILL.md → marketing/social-content.md} +3 -10
- package/skills/plan-review/SKILL.md +41 -0
- package/skills/plan-review/ceo.md +333 -0
- package/skills/plan-review/eng.md +139 -0
- package/skills/{minimalist-review/SKILL.md → plan-review/minimalist.md} +0 -6
- package/skills/qa/SKILL.md +353 -0
- package/skills/qa/playwright.md +242 -0
- package/skills/retro/SKILL.md +234 -0
- package/skills/seo/SKILL.md +30 -0
- package/skills/{ai-seo/SKILL.md → seo/ai-seo.md} +4 -13
- package/skills/seo/evals/evals.json +234 -0
- package/skills/{llms-txt/SKILL.md → seo/llms-txt.md} +0 -10
- package/skills/{seo-audit/SKILL.md → seo/traditional.md} +3 -14
- package/skills/shopify/SKILL.md +41 -0
- package/skills/shopify/building.md +511 -0
- package/skills/shopify/listing.md +163 -0
- package/skills/whisper-cpp-transcribe/SKILL.md +55 -0
- package/skills/wrangler/SKILL.md +138 -0
- package/src/channels/slack.ts +89 -38
- package/src/chat/engine.ts +20 -53
- package/src/chat/repl.ts +4 -3
- package/src/cli/watch.ts +15 -10
- package/src/commands/init.ts +50 -23
- package/src/core/daemon.ts +49 -4
- package/src/core/finalizer.ts +125 -0
- package/src/db/migrations/014_finalization_requests.ts +21 -0
- package/src/mcp/server.ts +30 -101
- package/src/mcp/tools.ts +23 -69
- package/src/types/config.ts +8 -1
- package/src/types/paths.ts +1 -0
- package/src/utils/config.ts +48 -44
- package/src/utils/paths.ts +1 -0
- package/src/utils/watches.ts +68 -0
- package/skills/ai-seo/evals/evals.json +0 -90
- package/skills/churn-prevention/SKILL.md +0 -424
- package/skills/churn-prevention/evals/evals.json +0 -93
- package/skills/cold-email/evals/evals.json +0 -94
- package/skills/competitor-alternatives/evals/evals.json +0 -93
- package/skills/copy-editing/evals/evals.json +0 -89
- package/skills/copy-editing/references/plain-english-alternatives.md +0 -394
- package/skills/email-sequence/evals/evals.json +0 -93
- package/skills/launch-strategy/evals/evals.json +0 -91
- package/skills/onboarding-cro/evals/evals.json +0 -92
- package/skills/page-cro/evals/evals.json +0 -111
- package/skills/seo-audit/evals/evals.json +0 -136
- package/skills/signup-flow-cro/evals/evals.json +0 -88
- package/skills/social-content/evals/evals.json +0 -92
- /package/skills/{onboarding-cro/references/experiments.md → cro/references/onboarding-experiments.md} +0 -0
- /package/skills/{page-cro/references/experiments.md → cro/references/page-experiments.md} +0 -0
- /package/skills/{cold-email → email}/references/benchmarks.md +0 -0
- /package/skills/{email-sequence → email}/references/copy-guidelines.md +0 -0
- /package/skills/{email-sequence → email}/references/email-types.md +0 -0
- /package/skills/{cold-email → email}/references/follow-up-sequences.md +0 -0
- /package/skills/{cold-email → email}/references/frameworks.md +0 -0
- /package/skills/{cold-email → email}/references/personalization.md +0 -0
- /package/skills/{email-sequence → email}/references/sequence-templates.md +0 -0
- /package/skills/{cold-email → email}/references/subject-lines.md +0 -0
- /package/skills/{churn-prevention → marketing}/references/cancel-flow-patterns.md +0 -0
- /package/skills/{competitor-alternatives → marketing}/references/content-architecture.md +0 -0
- /package/skills/{churn-prevention → marketing}/references/dunning-playbook.md +0 -0
- /package/skills/{social-content → marketing}/references/platforms.md +0 -0
- /package/skills/{social-content → marketing}/references/post-templates.md +0 -0
- /package/skills/{social-content → marketing}/references/reverse-engineering.md +0 -0
- /package/skills/{competitor-alternatives → marketing}/references/templates.md +0 -0
- /package/skills/{seo-audit → seo}/references/ai-writing-detection.md +0 -0
- /package/skills/{ai-seo → seo}/references/content-patterns.md +0 -0
- /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,
|
|
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:
|
|
5
|
+
version: 2.0.0
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# Content Strategy
|
|
8
|
+
# Content Strategy & Marketing Ideas
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
This skill routes to the appropriate sub-skill based on your request.
|
|
11
11
|
|
|
12
|
-
##
|
|
12
|
+
## Shared Context
|
|
13
13
|
|
|
14
|
-
|
|
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
|
-
|
|
16
|
+
## Routing
|
|
18
17
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
-
|
|
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.
|