with one click
compareelite-editor-v3
// CompareElite v3 — Writes one article JSON. Verifies ASINs, validates schema, reports evidence block.
// CompareElite v3 — Writes one article JSON. Verifies ASINs, validates schema, reports evidence block.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | compareelite-editor-v3 |
| description | CompareElite v3 — Writes one article JSON. Verifies ASINs, validates schema, reports evidence block. |
| allowed-tools | Read, Write, Edit, WebFetch, Bash(node scripts/*:*), Bash(ls:*), Bash(cat:*) |
Write ONE article JSON file for a given slug + category.
Nothing else. Do not push to GitHub. Do not add related_articles.
WebFetch: ONLY amazon.com/dp/*, m.media-amazon.com/*, images-na.ssl-images-amazon.com/*Read, Write, Edit: articles/ folder onlyBash: node scripts/validate-article.js, node scripts/validate-amazon-links.js, ls, catgit/gh commands or any mcp__github__* toolWebFetchrelated_articles field — Publisher's jobslug: the article filenamecategory: Tech | Home Office | Smart Home | Home FitnessBefore writing, read data/articles-index.md. If the topic already exists → stop and report to Director with a DUPLICATE_TOPIC: <slug> comment. Do not start writing.
For every product:
https://www.amazon.com/dp/<ASIN>.CAPTCHA_BLOCK: <slug> (or INSUFFICIENT_PRODUCTS: <slug> if non-CAPTCHA reason).data/broken-amazon-links.json with state: "DEAD".thumbnail MUST equal products[0].image exactly. Always. No exceptions.
Use this exact JSON structure:
{
"title": "Best [X] 2026: Tested & Ranked",
"slug": "[slug]",
"category": "Tech",
"date": "[today, YYYY-MM-DD]",
"read_time": "[X] min read",
"thumbnail": "[products[0].image]",
"excerpt": "[140–170 chars, mentions top product]",
"author": "CompareElite Team",
"stats": { "readers": 0 },
"intro": "[3 paragraphs separated by \\n\\n, 200–250 words total]",
"products": [
{
"rank": 1,
"name": "Brand Model Name",
"price": "$XX",
"rating": "9.X/10",
"best_for": "Best Overall",
"image": "https://m.media-amazon.com/images/I/<ID>._SL500_.jpg",
"link": "https://www.amazon.com/dp/<ASIN>?tag=compareelite-20",
"pros": [
"Specific detail with numbers (e.g. 'Charges 0–80% in 45 minutes')",
"Specific detail with numbers",
"Specific detail with numbers"
],
"cons": [
"Specific limitation with numbers (e.g. 'No fast-charge support above 27W')"
]
}
],
"buying_guide": [
{
"title": "Section title (specific, keyword-rich)",
"body": "140+ words, plain text, no markdown, contains numbers / specs / product names"
}
],
"faq": [
{
"q": "Question someone would actually search?",
"a": "140+ words, names a product, includes a concrete number"
}
],
"verdict": "100–130 words; names the Best Overall + price + a runner-up for a different use case",
"related_articles": []
}
pros / cons entry: a complete sentence with a measurable number or spec. Reject your own draft if you used vague phrases like "great value", "works well", "easy to use", "good quality", "highly recommend".buying_guide.body: ≥ 140 words.**bold**, no #headers, no *italic*. Plain text only.Run all three commands and paste the literal output into your reply:
ls -la articles/<slug>.json
node scripts/validate-article.js articles/<slug>.json
node scripts/validate-amazon-links.js --slug <slug> --no-md --no-json
Expected:
PASS.DEAD 0.If any of these fails: fix before reporting. A "done" claim without all three outputs is auto-rejected by the orchestrator as REJECTED — evidence missing.
Comment on the Director issue:
READY FOR REVIEW
Slug: <slug>
Products: <count>
Validation: PASS
Dead links: 0
Evidence:
$ ls -la articles/<slug>.json
<output>
$ node scripts/validate-article.js articles/<slug>.json
<output>
$ node scripts/validate-amazon-links.js --slug <slug> --no-md --no-json
<output>
Then stop. Do not commit, do not push, do not invoke other skills. The Reviewer takes it from here.