| name | seo-content-writer |
| description | Use when a marketing, growth, or content operator wants Knowhere API product marketing content, SEO keyword research, Semrush competitor analysis, article ideas, editorial briefs, draft packs, markdown blog drafts, article QA, final publishing checks, or publish-ready content grounded in bundled Knowhere references and approved workspace context. Trigger on requests mentioning Knowhere API articles, Semrush, SEO keywords, long-tail keywords, competitor traffic, content opportunities, RAG ingestion, document parsing, document chunking, PDF parsing APIs, structured parsing, or retrieval quality. |
SEO Content Writer
This skill helps marketing operators and agents produce high-quality product content for Knowhere API.
It is AI-IDE agnostic. It can be used from any agent environment that can read this SKILL.md, inspect workspace files, and run local shell commands.
It combines:
- bundled Knowhere product references
- runtime workspace context discovery
- Semrush keyword and competitor research
- brief-first article planning
- final markdown QA
Invocation Names
Treat any of these names as an explicit request to use this skill:
seo-content-writer
SEO Content Writer
Knowhere SEO skill
Knowhere content writer skill
Semrush writer skill
Operator Experience
The operator should not need to remember the internal workflow.
The ideal operator request can be as short as:
Write a publish-ready article for Knowhere API about RAG document chunking. Use Semrush and our workspace context.
If the AI IDE supports explicit skill mentions, the same request can be prefixed with:
@seo-content-writer
When the user gives a simple request like that, the agent must orchestrate the workflow behind the scenes:
- Inspect workspace context
- Run Semrush keyword discovery when needed
- Recommend a keyword cluster
- Ask for confirmation only at major decision points
- Generate or refine the brief
- Create the draft instruction pack
- Draft the article
- Run QA
- Revise to final
- Run final checks
The operator should only need to approve or redirect decisions, not run commands.
If shell access is available, the agent should run the helper scripts itself. Do not ask the operator to run npm run ... commands unless the environment blocks command execution or requires manual approval.
Trigger Conditions
Use this skill when the user request matches any of these conditions:
- Explicitly mentions one of the invocation names above.
- Mentions
Knowhere API and asks for product marketing, SEO content, article ideas, blog posts, campaign content, or long-form educational content.
- Mentions
Semrush, keyword research, long-tail keywords, low-competition keywords, competitor traffic, content opportunities, or organic search analysis.
- Asks to analyze competitors such as Unstructured, MinerU, document parsing tools, OCR tools, RAG ingestion tools, or chunking tools.
- Asks to generate an article brief, editorial brief, draft pack, markdown article, QA report, or final publish-ready article.
- Asks for content around RAG ingestion, document parsing, document chunking, structured parsing, PDF parsing APIs, SDK integration, knowledge ingestion, or retrieval quality.
- Asks to use workspace docs, product docs, historical articles, campaign notes, or approved notes as context for Knowhere content.
Do not use this skill for unrelated generic writing tasks, non-Knowhere content, or publishing-site implementation work such as Next.js metadata, sitemap, schema, canonical URLs, or deployment.
If a request only says "write an article" but does not mention Knowhere API, Semrush, RAG, document parsing, document chunking, or a related product theme, ask one short clarification before using the workflow.
Common Operator Requests
Examples that should trigger this skill:
Create a publish-ready article for Knowhere API about how to chunk documents for RAG.
Use Semrush to find low-competition long-tail keywords for Knowhere API.
Analyze Unstructured and MinerU content opportunities, then recommend article topics for Knowhere API.
Generate an editorial brief for a document parsing API article. Do not write the full article yet.
Run QA on this draft and check factual consistency, keyword stuffing, and product claim risk.
Use the workspace docs and bundled Knowhere references to write a technical marketing article.
Workflow
Follow this sequence behind the scenes unless the user explicitly asks for a subset:
- Read the bundled Knowhere references in
references/
- Check whether
seo-content-skill.config.json exists in the workspace root
- Discover approved runtime context from the workspace
- If Semrush research is requested, verify
SEMRUSH_API_KEY
- Run the relevant TypeScript scripts for deterministic work
- Present a shortlist or brief before writing a full article
- Run QA on the resulting markdown draft
Confirmation Policy
Default behavior:
- Ask for confirmation after keyword cluster recommendation if the user did not specify a target topic tightly enough.
- Ask for confirmation after the brief if the user explicitly requested control or review.
- If the user asks for a full publish-ready article in one request, proceed through the full workflow and summarize decisions after completion.
- Always write intermediate artifacts to
seo-content-output/ so the operator can audit the work.
Do not force the operator to remember script names or the internal sequence.
Context Priority
Use sources in this order:
- Bundled Knowhere references in this skill
- Approved workspace sources declared in
seo-content-skill.config.json
- Published articles and release notes in the workspace
- Lower-priority workspace notes and code artifacts
Do not let lower-priority sources override bundled product facts without explicit user confirmation.
Setup
If the skill dependencies are not installed, run npm install in this skill directory. Bun is not required. If the team has explicitly standardized on another package manager, the agent may use it, but the portable default is npm.
For Semrush-powered research, the workspace should provide:
.env.local or environment injection with SEMRUSH_API_KEY
- optional
SEMRUSH_DATABASE
- optional
seo-content-skill.config.json
Local development example from this repository:
cd skills/seo-content-writer
cp assets/example.env.local ../../.env.local
npm install
npm run semrush:check -- --workspace ../..
npm run context:inspect -- --workspace ../..
In production usage, put .env.local in the operator workspace root, not inside the installed skill folder.
If the agent environment has a different installation path, first locate the installed skill directory, then run the script commands from that directory while passing the operator workspace root with --workspace.
Script Entry Points
Inspect workspace context:
npm run context:inspect -- --workspace /path/to/workspace
Check Semrush configuration:
npm run semrush:check -- --workspace /path/to/workspace
Discover keywords:
npm run keywords:discover -- --workspace /path/to/workspace --seed "knowhere api" --seed "rag document parsing"
Analyze competitors:
npm run competitors:analyze -- --workspace /path/to/workspace --domain knowhereto.ai --competitor unstructured.io --competitor mineru.net
Generate a brief from a shortlist:
npm run brief:generate -- --workspace /path/to/workspace --cluster-file /path/to/opportunity-clusters.json --cluster-id cluster-1
Generate a draft instruction pack from a brief:
npm run draft:pack -- --workspace /path/to/workspace --brief /path/to/brief.md
Run QA on a markdown draft:
npm run article:qa -- --workspace /path/to/workspace --article /path/to/draft.md --brief /path/to/brief.md
Run a final publishing readiness check:
npm run final:check -- --workspace /path/to/workspace --article /path/to/final.md
Output Convention
Write outputs into:
./seo-content-output/
Recommended subfolders:
reports/
briefs/
drafts/
final/
qa/
Guardrails
- Do not claim capabilities that are not supported by the bundled references.
- Do not write keyword-stuffed articles.
- Do not skip the brief step for non-trivial content requests.
- Do not store Semrush API keys in code or JSON config.
- Keep code, comments, file names, and config keys in English.