[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M75DXS8DMFWNCASHPKASBAQA":3,"skill-same:01M75DXS8DMFWNCASHPKASBAQA":47},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":29,"ownerHtmlUrl":30,"ownerBlogUrl":31,"ownerDescription":6,"updatedAt":32,"install":33,"resources":46},"01M75DXS8DMFWNCASHPKASBAQA","eval-suite",null,"Batch evaluate multiple content pieces. Use when: scoring a content library, campaign assets, or deliverable set.","LongLeo287\u002FSEOSONA-OS","LongLeo287","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F141803367?v=4","01M6JK75C62VCNZKR5BRZ386YV","LongLeo","01M75CK60XQGYJY3YDGGFJQDYT",2,"MIT","https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FSEOSONA-OS\u002Fblob\u002Fmain\u002F2_KNOWLEDGE\u002Fframeworks\u002Fdigital-marketing-pro\u002Fskills\u002Feval-suite\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"---\nname: eval-suite\ndescription: \"Batch evaluate multiple content pieces. Use when: scoring a content library, campaign assets, or deliverable set.\"\n---\n\n# \u002Fdigital-marketing-pro:eval-suite\n\n## Purpose\n\nBatch evaluation across multiple content pieces to produce a portfolio-level quality assessment. Evaluate an entire content library, all assets in a campaign, or a set of deliverables in one run. Instead of evaluating content one piece at a time, this command processes everything together and delivers a holistic view of content quality.\n\nThe output includes content rankings, per-dimension analysis, overall quality distribution, common issues across the set, and a prioritized revision list. This is the command to use before a campaign launch (to catch weak assets before they go live), during a content audit (to assess library health), or after a production sprint (to quality-check all deliverables at once). Every evaluation is logged to the quality tracker for longitudinal trend analysis.\n\n## Input Required\n\nThe user must provide (or will be prompted for):\n\n- **Content sources**: One or more of the following:\n  - A list of file paths (e.g., \"evaluate these 5 files: email-v1.txt, email-v2.txt, landing-page.html, ad-copy-fb.txt, ad-copy-google.txt\")\n  - A directory path (e.g., \"evaluate everything in \u002Fcampaign-q1-assets\u002F\") — all text-based files in the directory will be included\n  - Multiple inline content blocks with labels (e.g., \"Evaluate these: [Label: Homepage Hero] content... [Label: Email Subject] content...\")\n- **Content type**: Optional — applied globally (e.g., \"these are all email subject lines\") or specified per item. If omitted, the evaluator will infer type from content characteristics\n- **Evidence file**: Optional — shared context document (brief, strategy doc, audience research) applied across all evaluations for more relevant scoring\n- **Evaluation depth**: Optional — `quick` (default, faster per-item evaluation) or `full` (comprehensive evaluation with detailed per-dimension commentary per item). Quick is recommended for sets larger than 10 items; full for critical campaign assets\n- **Auto-reject threshold**: Optional — composite score below which content is flagged as needing mandatory revision (default: 60)\n- **Comparison baseline**: Optional — a previous eval-suite run ID to compare against, showing improvement or regression per piece\n\n## Process\n\n1. **Load brand context**: Read `~\u002F.claude-marketing\u002Fbrands\u002F_active-brand.json` for the active slug, then load `~\u002F.claude-marketing\u002Fbrands\u002F{slug}\u002Fprofile.json`. Apply brand voice, compliance rules for target markets (`skills\u002Fcontext-engine\u002Fcompliance-rules.md`), and industry context. Check for guidelines at `~\u002F.claude-marketing\u002Fbrands\u002F{slug}\u002Fguidelines\u002F_manifest.json` — if present, load restrictions and relevant category files (voice-and-tone, messaging, channel styles). Check for custom templates at `~\u002F.claude-marketing\u002Fbrands\u002F{slug}\u002Ftemplates\u002F`. Check for agency SOPs at `~\u002F.claude-marketing\u002Fsops\u002F`. If no brand exists, ask: \"Set up a brand first (\u002Fdigital-marketing-pro:brand-setup)?\" — or proceed with defaults.\n2. **Enumerate all content items**: Resolve the provided sources into a flat list of content items. For directory paths, scan for text-based files (.txt, .md, .html, .csv rows). For inline content, parse labels and content blocks. Assign a label to each item (filename, provided label, or auto-generated index). Report the total item count to the user before proceeding and confirm if the set is larger than 25 items (to set expectations on processing time).\n3. **Evaluate each content item**: For each item in the set, run `python \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Feval-runner.py\" --brand {slug} --action run-quick --file \"{path}\" --content-type \"{type}\"` for file items (use `--text \"{content}\"` instead of `--file` for inline content blocks; use `--action run-full` if the user requested comprehensive depth). Pass `--evidence \"{evidence_path}\"` if an evidence file was provided. Collect the per-dimension scores (content_quality, brand_voice, hallucination_risk, claim_verification, output_structure, readability) and composite score for each item.\n4. **Log each evaluation**: For every evaluated item, run `python \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fquality-tracker.py\" --brand {slug} --action log-eval --content-type \"{type}\" --data '{\"label\": \"{label}\", \"scores\": {scores_json}, \"suite_id\": \"{suite_run_id}\"}'` to persist results for longitudinal tracking. The suite-id groups all items from this batch together.\n5. **Aggregate results**: Compute portfolio-level statistics:\n   - Average composite score across all items\n   - Score distribution — count of items in each grade band (90+: Excellent, 80-89: Strong, 70-79: Good, 60-69: Needs Work, \u003C60: Auto-reject)\n   - Per-dimension portfolio averages — identify which quality dimensions are consistently strong or weak across the entire set\n   - Standard deviation to assess consistency (high deviation means uneven quality)\n6. **Rank all content pieces**: Sort items from highest to lowest composite score. Present the full ranked list with scores, grades, and content type labels.\n7. **Identify common issues**: Analyze the per-dimension scores across all items to find patterns — e.g., \"7 of 12 items score below 70 on claim_verification\" or \"hallucination_risk scores are consistently 15+ points below content_quality scores.\" These systemic patterns indicate process or template issues rather than individual content problems.\n8. **Generate prioritized revision list**: Sort items that need revision by potential impact. Prioritize items that are (a) below the auto-reject threshold, (b) high-visibility content types (landing pages, ads) with below-average scores, or (c) items where a single dimension drags down an otherwise strong composite. For each item on the revision list, specify which dimension(s) to focus on and what kind of improvement is needed.\n9. **Compare against baseline** (if provided): If the user provided a previous suite run ID, retrieve both the current and baseline suite scores from the quality tracker using `python \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fquality-tracker.py\" --brand {slug} --action get-summary` for each suite period. Then compute per-item and portfolio-level deltas yourself by matching items across the two runs by label\u002Fcontent-type and calculating score differences. Present results as improved, regressed, or unchanged per item and overall.\n\n## Output\n\nA structured portfolio quality assessment containing:\n\n- **Portfolio summary**: Total piece count, average composite score, grade distribution (Excellent\u002FStrong\u002FGood\u002FNeeds Work\u002FAuto-reject counts), overall portfolio grade, consistency score (based on standard deviation)\n- **Ranked content list**: All items sorted best to worst — each with label, content type, composite score, grade, and a one-line quality summary\n- **Top performers**: The 3 highest-scoring items with specific notes on what makes them strong — useful as internal benchmarks or templates\n- **Per-dimension portfolio analysis**: Average score per dimension across the full set (content_quality, brand_voice, hallucination_risk, claim_verification, output_structure, readability), identifying the strongest and weakest dimensions with specific observations (e.g., \"brand_voice averages 88 across the set — voice guidelines are being followed well. claim_verification averages 62 — sources and supporting evidence are frequently missing.\")\n- **Common issues report**: Systemic patterns found across multiple items — these indicate process-level problems worth fixing at the template or brief stage rather than per-item revision\n- **Prioritized revision list**: Items most in need of revision, sorted by impact, with specific guidance on which dimensions to improve and what kind of changes are needed\n- **Auto-reject list**: Items scoring below the threshold with specific reasons and mandatory revision flags\n- **Baseline comparison** (if applicable): Per-item deltas and portfolio-level improvement\u002Fregression metrics\n- **Recommendations**: Actionable next steps — which items to revise first, which process improvements would lift the entire portfolio, and whether any content types consistently underperform (suggesting brief or template issues)\n\n## Agents Used\n\n- **quality-assurance** -- Evaluates each content piece across all quality dimensions, maintains scoring consistency across the batch, identifies systemic quality patterns, generates portfolio-level insights, and produces the prioritized revision recommendations\n","# \u002Fdigital-marketing-pro:eval-suite\n\n## Purpose\n\nBatch evaluation across multiple content pieces to produce a portfolio-level quality assessment. Evaluate an entire content library, all assets in a campaign, or a set of deliverables in one run. Instead of evaluating content one piece at a time, this command processes everything together and delivers a holistic view of content quality.\n\nThe output includes content rankings, per-dimension analysis, overall quality distribution, common issues across the set, and a prioritized revision list. This is the command to use before a campaign launch (to catch weak assets before they go live), during a content audit (to assess library health), or after a production sprint (to quality-check all deliverables at once). Every evaluation is logged to the quality tracker for longitudinal trend analysis.\n\n## Input Required\n\nThe user must provide (or will be prompted for):\n\n- **Content sources**: One or more of the following:\n  - A list of file paths (e.g., \"evaluate these 5 files: email-v1.txt, email-v2.txt, landing-page.html, ad-copy-fb.txt, ad-copy-google.txt\")\n  - A directory path (e.g., \"evaluate everything in \u002Fcampaign-q1-assets\u002F\") — all text-based files in the directory will be included\n  - Multiple inline content blocks with labels (e.g., \"Evaluate these: [Label: Homepage Hero] content... [Label: Email Subject] content...\")\n- **Content type**: Optional — applied globally (e.g., \"these are all email subject lines\") or specified per item. If omitted, the evaluator will infer type from content characteristics\n- **Evidence file**: Optional — shared context document (brief, strategy doc, audience research) applied across all evaluations for more relevant scoring\n- **Evaluation depth**: Optional — `quick` (default, faster per-item evaluation) or `full` (comprehensive evaluation with detailed per-dimension commentary per item). Quick is recommended for sets larger than 10 items; full for critical campaign assets\n- **Auto-reject threshold**: Optional — composite score below which content is flagged as needing mandatory revision (default: 60)\n- **Comparison baseline**: Optional — a previous eval-suite run ID to compare against, showing improvement or regression per piece\n\n## Process\n\n1. **Load brand context**: Read `~\u002F.claude-marketing\u002Fbrands\u002F_active-brand.json` for the active slug, then load `~\u002F.claude-marketing\u002Fbrands\u002F{slug}\u002Fprofile.json`. Apply brand voice, compliance rules for target markets (`skills\u002Fcontext-engine\u002Fcompliance-rules.md`), and industry context. Check for guidelines at `~\u002F.claude-marketing\u002Fbrands\u002F{slug}\u002Fguidelines\u002F_manifest.json` — if present, load restrictions and relevant category files (voice-and-tone, messaging, channel styles). Check for custom templates at `~\u002F.claude-marketing\u002Fbrands\u002F{slug}\u002Ftemplates\u002F`. Check for agency SOPs at `~\u002F.claude-marketing\u002Fsops\u002F`. If no brand exists, ask: \"Set up a brand first (\u002Fdigital-marketing-pro:brand-setup)?\" — or proceed with defaults.\n2. **Enumerate all content items**: Resolve the provided sources into a flat list of content items. For directory paths, scan for text-based files (.txt, .md, .html, .csv rows). For inline content, parse labels and content blocks. Assign a label to each item (filename, provided label, or auto-generated index). Report the total item count to the user before proceeding and confirm if the set is larger than 25 items (to set expectations on processing time).\n3. **Evaluate each content item**: For each item in the set, run `python \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Feval-runner.py\" --brand {slug} --action run-quick --file \"{path}\" --content-type \"{type}\"` for file items (use `--text \"{content}\"` instead of `--file` for inline content blocks; use `--action run-full` if the user requested comprehensive depth). Pass `--evidence \"{evidence_path}\"` if an evidence file was provided. Collect the per-dimension scores (content_quality, brand_voice, hallucination_risk, claim_verification, output_structure, readability) and composite score for each item.\n4. **Log each evaluation**: For every evaluated item, run `python \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fquality-tracker.py\" --brand {slug} --action log-eval --content-type \"{type}\" --data '{\"label\": \"{label}\", \"scores\": {scores_json}, \"suite_id\": \"{suite_run_id}\"}'` to persist results for longitudinal tracking. The suite-id groups all items from this batch together.\n5. **Aggregate results**: Compute portfolio-level statistics:\n   - Average composite score across all items\n   - Score distribution — count of items in each grade band (90+: Excellent, 80-89: Strong, 70-79: Good, 60-69: Needs Work, \u003C60: Auto-reject)\n   - Per-dimension portfolio averages — identify which quality dimensions are consistently strong or weak across the entire set\n   - Standard deviation to assess consistency (high deviation means uneven quality)\n6. **Rank all content pieces**: Sort items from highest to lowest composite score. Present the full ranked list with scores, grades, and content type labels.\n7. **Identify common issues**: Analyze the per-dimension scores across all items to find patterns — e.g., \"7 of 12 items score below 70 on claim_verification\" or \"hallucination_risk scores are consistently 15+ points below content_quality scores.\" These systemic patterns indicate process or template issues rather than individual content problems.\n8. **Generate prioritized revision list**: Sort items that need revision by potential impact. Prioritize items that are (a) below the auto-reject threshold, (b) high-visibility content types (landing pages, ads) with below-average scores, or (c) items where a single dimension drags down an otherwise strong composite. For each item on the revision list, specify which dimension(s) to focus on and what kind of improvement is needed.\n9. **Compare against baseline** (if provided): If the user provided a previous suite run ID, retrieve both the current and baseline suite scores from the quality tracker using `python \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fquality-tracker.py\" --brand {slug} --action get-summary` for each suite period. Then compute per-item and portfolio-level deltas yourself by matching items across the two runs by label\u002Fcontent-type and calculating score differences. Present results as improved, regressed, or unchanged per item and overall.\n\n## Output\n\nA structured portfolio quality assessment containing:\n\n- **Portfolio summary**: Total piece count, average composite score, grade distribution (Excellent\u002FStrong\u002FGood\u002FNeeds Work\u002FAuto-reject counts), overall portfolio grade, consistency score (based on standard deviation)\n- **Ranked content list**: All items sorted best to worst — each with label, content type, composite score, grade, and a one-line quality summary\n- **Top performers**: The 3 highest-scoring items with specific notes on what makes them strong — useful as internal benchmarks or templates\n- **Per-dimension portfolio analysis**: Average score per dimension across the full set (content_quality, brand_voice, hallucination_risk, claim_verification, output_structure, readability), identifying the strongest and weakest dimensions with specific observations (e.g., \"brand_voice averages 88 across the set — voice guidelines are being followed well. claim_verification averages 62 — sources and supporting evidence are frequently missing.\")\n- **Common issues report**: Systemic patterns found across multiple items — these indicate process-level problems worth fixing at the template or brief stage rather than per-item revision\n- **Prioritized revision list**: Items most in need of revision, sorted by impact, with specific guidance on which dimensions to improve and what kind of changes are needed\n- **Auto-reject list**: Items scoring below the threshold with specific reasons and mandatory revision flags\n- **Baseline comparison** (if applicable): Per-item deltas and portfolio-level improvement\u002Fregression metrics\n- **Recommendations**: Actionable next steps — which items to revise first, which process improvements would lift the entire portfolio, and whether any content types consistently underperform (suggesting brief or template issues)\n\n## Agents Used\n\n- **quality-assurance** -- Evaluates each content piece across all quality dimensions, maintains scoring consistency across the batch, identifies systemic quality patterns, generates portfolio-level insights, and produces the prioritized revision recommendations\n",{"name":5,"description":7},"main","4fd50b1281e8cd978866b6b4556242605cabf708","2_KNOWLEDGE\u002Fframeworks\u002Fdigital-marketing-pro\u002Fskills\u002Feval-suite",1,"https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FSEOSONA-OS","https:\u002F\u002Fseosona-os.vercel.app","https:\u002F\u002Fgithub.com\u002FLongLeo287","https:\u002F\u002Fwww.facebook.com\u002FResourceRookie2023","2026-10-09 15:14:13",{"source":8,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add LongLeo287\u002FSEOSONA-OS --skill eval-suite",{"tool":39,"command":40},"bunx","bunx skills add LongLeo287\u002FSEOSONA-OS --skill eval-suite",{"tool":42,"command":43},"pnpm","pnpm dlx skills add LongLeo287\u002FSEOSONA-OS --skill eval-suite","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FSEOSONA-OS\u002Fblob\u002Fmain\u002F2_KNOWLEDGE\u002Fframeworks\u002Fdigital-marketing-pro\u002Fskills\u002Feval-suite\u002FSKILL.md",true,[],[48,55,62,69,76,83],{"skillNo":49,"name":50,"nameZh":6,"description":51,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":52,"categories":53,"keywords":54,"publishedAt":19},"01M75F0T3V3W7JQQ05X26NNN2T","web_crawler_katana","High-speed web crawling using Katana patterns for deep site mapping, URL discovery, and content extraction.","https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FSEOSONA-OS\u002Fblob\u002Fmain\u002F2_KNOWLEDGE\u002Fskills\u002Fseo_technical\u002Fweb_crawler_katana\u002FSKILL.md",[],[],{"skillNo":56,"name":57,"nameZh":6,"description":58,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":59,"categories":60,"keywords":61,"publishedAt":19},"01M75F0Q2QJXDGAFKC7D84GT88","server_log_analyzer","Analyzes Nginx\u002FApache server logs to identify Googlebot crawl patterns, errors, and performance bottlenecks.","https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FSEOSONA-OS\u002Fblob\u002Fmain\u002F2_KNOWLEDGE\u002Fskills\u002Fseo_technical\u002Fserver_log_analyzer\u002FSKILL.md",[],[],{"skillNo":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":68,"publishedAt":19},"01M75F0KZP6D8R8XPN2YT35BAJ","schema_markup_generator","Auto-generates JSON-LD structured data for any page type (Article, Product, FAQ, LocalBusiness, etc.).","https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FSEOSONA-OS\u002Fblob\u002Fmain\u002F2_KNOWLEDGE\u002Fskills\u002Fseo_technical\u002Fschema_markup_generator\u002FSKILL.md",[],[],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":19},"01M75F0G3KX4Y86AXJXTKXVEVA","internal_linking_optimizer","Analyzes and optimizes the internal link graph of a website for SEO authority distribution.","https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FSEOSONA-OS\u002Fblob\u002Fmain\u002F2_KNOWLEDGE\u002Fskills\u002Fseo_technical\u002Finternal_linking_optimizer\u002FSKILL.md",[],[],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":19},"01M75F0CS1RYX4YPJC7N6RAAQJ","google_trends_analyzer","Detects trending topics and seasonal patterns using Google Trends data for content planning and keyword strategy.","https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FSEOSONA-OS\u002Fblob\u002Fmain\u002F2_KNOWLEDGE\u002Fskills\u002Fseo_technical\u002Fgoogle_trends_analyzer\u002FSKILL.md",[],[],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":19},"01M75F0ASMQ1GKPFX82D19SRTN","brand_context_analyzer","Tracks brand mentions, sentiment, and online reputation across web sources.","https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FSEOSONA-OS\u002Fblob\u002Fmain\u002F2_KNOWLEDGE\u002Fskills\u002Fseo_technical\u002Fbrand_context_analyzer\u002FSKILL.md",[],[]]