/mkt-quality-gate
Score, evaluate, and iteratively improve any content or strategy using an auto-assembled panel of domain experts. Handles copy, sequences, landing pages, strategy docs, titles, charts, recruiting evaluations, or anything else that needs a quality gate. Recursively iterates until
$ npx -y skills add evolution-foundation/evo-nexus --skill mkt-quality-gate --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/mkt-quality-gate
Context preview
The summary Claude sees to decide when to auto-load this skill.
Score, evaluate, and iteratively improve any content or strategy using an auto-assembled panel of domain experts. Handles copy, sequences, landing pages, strategy docs, titles, charts, recruiting evaluations, or anything else that needs a quality gate. Recursively iterates until
SKILL.md
mkt-quality-gate.SKILL.mdname: mkt-quality-gate
description: >-
Score, evaluate, and iteratively improve any content or strategy using an
auto-assembled panel of domain experts. Handles copy, sequences, landing pages,
strategy docs, titles, charts, recruiting evaluations, or anything else that
needs a quality gate. Recursively iterates until all scores hit 90+ (max 3
rounds). Use when asked to: "expert panel this", "score this", "rate these
variants", "quality check this", "panel review", "which version is better",
"expert score", "evaluate this copy/strategy/page", or when another skill
needs a quality gate on its output. Also triggers on: "score this landing page",
"expert panel these email variants", "rate this headline", "panel these charts".
Expert Panel
General-purpose scoring and iterative improvement engine. Auto-assembles the right experts for whatever is being evaluated, scores it, and loops until 90+.
---
Step 1: Intake — Understand What's Being Scored
Collect or infer from context:
1. **Content/artifact** — The thing(s) to score (paste, file path, or URL) 2. **Content type** — Copy, sequence, landing page, strategy, title, chart, candidate eval, etc. 3. **Offer context** — What's being sold/promoted? To whom? What domain/industry? 4. **Variants** — Are there multiple versions to compare? (A/B/C) 5. **Source skill** — Is this output from another skill? (e.g., cold-outbound-optimizer) If yes, note the source for feedback-to-source routing in Step 6.
If context is obvious from the conversation, don't ask — just proceed.
---
Step 2: Auto-Assemble the Expert Panel
Build a panel of **7–10 experts** tailored to the content type and domain.
Assembly rules
1. **Start with content-type experts.** Read `experts/` directory for pre-built panels matching the content type. If an exact match exists (e.g., `experts/linkedin.md` for a LinkedIn post), use it as the base.
2. **Add domain/offer experts.** Based on the offer context, add 1–3 experts who understand the specific industry or domain. Examples:
- Scoring bakery marketing → add Food & Beverage Marketing Expert
- Scoring SaaS landing page → add SaaS Conversion Expert
- Scoring recruiting outreach → add Agency Recruiter + Talent Market Expert
- Scoring medical device copy → add Healthcare Compliance Expert
3. **Always include these two:**
- **AI Writing Detector** — See `experts/humanizer.md`. Weight: 1.5x. Non-negotiable.
- **Brand Voice Match** — Checks alignment with the configured brand voice and
known rejection patterns from `references/patterns.md` (if present).
4. **Check learned patterns.** If `references/patterns.md` exists, read it. If any patterns apply to this content type, brief the panel on them. Dock points for known-bad patterns.
5. **Cap at 10 experts.** If you have more than 10, merge overlapping roles.
Panel output format
List each expert with: Name, lens/focus, what they check.
---
Step 3: Select Scoring Rubric
Choose the appropriate rubric from `scoring-rubrics/`:
| Content type | Rubric file | |---|---| | Blog, social, email, newsletter, scripts | `scoring-rubrics/content-quality.md` | | Strategy, recommendations, analysis | `scoring-rubrics/strategic-quality.md` | | Landing pages, ads, CTAs | `scoring-rubrics/conversion-quality.md` | | Charts, data viz, infographics | `scoring-rubrics/visual-quality.md` | | Candidate evaluations | `scoring-rubrics/evaluation-quality.md` | | Other | Synthesize a rubric from the two closest matches |
Read the selected rubric file for detailed criteria and point allocation.
---
Step 4: Score — Recursive Loop Until 90+
**Target: 90/100 across all experts. Non-negotiable. Max 3 rounds.**
Each round produces:
## Round [N] — Score: [AVG]/100
| Expert | Score | Key Feedback |
|--------|-------|--------------|
| [Name] | [0-100] | [One-line rationale] |
| ... | ... | ... |
**Aggregate:** [weighted average — humanizer at 1.5x]
**Top 3 weaknesses:** [ranked]
**Changes made:** [specific edits addressing each weakness]
Then the revised content/artifact.
Rules
- Scores must be brutally honest. No padding to 90.
- Humanizer score weighted 1.5x in the aggregate.
- If aggregate < 90: identify top 3 weaknesses → revise → next round.
- If aggregate ≥ 90: finalize and proceed to output.
- After 3 rounds, if still < 90: return best version with honest score + note on what's
holding it back.
- Show ALL rounds in output — the iteration trail is part of the value.
Variant comparison mode
When scoring multiple variants (A/B/C):
- Score each variant independently through the full panel.
- After scoring, rank variants by aggregate score.
- If top variant is < 90, iterate on the best one (don't iterate all of them).
---
Step 5: Output Format
Winner + Score (always at top)
## 🏆 Result: [SCORE]/100 — [PASS ✅ | NEEDS WORK ⚠️]
[Final content/artifact here]
**Iterations:** [N] rounds
**Panel:** [Expert names, comma-separated]
If variants: show winner first, then runner-up scores.
## 🏆 Winner: Variant [X] — [SCORE]/100
[Winning content]
### Runner-up scores
- Variant A: 87/100
- Variant B: 82/100
- Variant C: 91/100 ← Winner
Feedback History (below the result)
Show full scoring rounds.
---
<details>
<summary>📊 Scoring History (N rounds)</summary>
[All round tables from Step 4]
</details>
---
Step 6: Feedback-to-Source (When Scoring Another Skill's Output)
When the scored content came from another skill, generate a **Source Improvement Brief**:
## 🔁 Feedback for [Source Skill]
### What scored low
- [Pattern]: [Specific example from this content]
### Suggested skill improvements
- [Concrete change to the source skill's process/rubric/prompt]
### Patterns to add to source skill
- [Any recurring weakness that should become a rule]
This brief can be used to update the source skill's SKILL.md or rubrics.
---
Step 7: Memory — Lear
Read more
name: mkt-quality-gate description: >- Score, evaluate, and iteratively improve any content or strategy using an auto-assembled panel of domain experts. Handles copy, sequences, landing pages, strategy docs, titles, charts, recruiting evaluations, or anything else that needs a quality gate. Recursively iterates until all scores hit 90+ (max 3 rounds). Use when asked to: "expert panel this", "score this", "rate these variants", "quality check this", "panel review", "which version is better", "expert score", "evaluate this copy/strategy/page", or when another skill needs a quality gate on its output. Also triggers on: "score this landing page", "expert panel these email variants", "rate this headline", "panel these charts".
Expert Panel
General-purpose scoring and iterative improvement engine. Auto-assembles the right experts for whatever is being evaluated, scores it, and loops until 90+.
---
Step 1: Intake — Understand What's Being Scored
Collect or infer from context:
1. **Content/artifact** — The thing(s) to score (paste, file path, or URL) 2. **Content type** — Copy, sequence, landing page, strategy, title, chart, candidate eval, etc. 3. **Offer context** — What's being sold/promoted? To whom? What domain/industry? 4. **Variants** — Are there multiple versions to compare? (A/B/C) 5. **Source skill** — Is this output from another skill? (e.g., cold-outbound-optimizer) If yes, note the source for feedback-to-source routing in Step 6.
If context is obvious from the conversation, don't ask — just proceed.
---
Step 2: Auto-Assemble the Expert Panel
Build a panel of **7–10 experts** tailored to the content type and domain.
Assembly rules
1. **Start with content-type experts.** Read `experts/` directory for pre-built panels matching the content type. If an exact match exists (e.g., `experts/linkedin.md` for a LinkedIn post), use it as the base.
2. **Add domain/offer experts.** Based on the offer context, add 1–3 experts who understand the specific industry or domain. Examples:
- Scoring bakery marketing → add Food & Beverage Marketing Expert
- Scoring SaaS landing page → add SaaS Conversion Expert
- Scoring recruiting outreach → add Agency Recruiter + Talent Market Expert
- Scoring medical device copy → add Healthcare Compliance Expert
3. **Always include these two:**
- **AI Writing Detector** — See `experts/humanizer.md`. Weight: 1.5x. Non-negotiable.
- **Brand Voice Match** — Checks alignment with the configured brand voice and
known rejection patterns from `references/patterns.md` (if present).
4. **Check learned patterns.** If `references/patterns.md` exists, read it. If any patterns apply to this content type, brief the panel on them. Dock points for known-bad patterns.
5. **Cap at 10 experts.** If you have more than 10, merge overlapping roles.
Panel output format
List each expert with: Name, lens/focus, what they check.
---
Step 3: Select Scoring Rubric
Choose the appropriate rubric from `scoring-rubrics/`:
| Content type | Rubric file | |---|---| | Blog, social, email, newsletter, scripts | `scoring-rubrics/content-quality.md` | | Strategy, recommendations, analysis | `scoring-rubrics/strategic-quality.md` | | Landing pages, ads, CTAs | `scoring-rubrics/conversion-quality.md` | | Charts, data viz, infographics | `scoring-rubrics/visual-quality.md` | | Candidate evaluations | `scoring-rubrics/evaluation-quality.md` | | Other | Synthesize a rubric from the two closest matches |
Read the selected rubric file for detailed criteria and point allocation.
---
Step 4: Score — Recursive Loop Until 90+
**Target: 90/100 across all experts. Non-negotiable. Max 3 rounds.**
Each round produces:
## Round [N] — Score: [AVG]/100 | Expert | Score | Key Feedback | |--------|-------|--------------| | [Name] | [0-100] | [One-line rationale] | | ... | ... | ... | **Aggregate:** [weighted average — humanizer at 1.5x] **Top 3 weaknesses:** [ranked] **Changes made:** [specific edits addressing each weakness]
Then the revised content/artifact.
Rules
- Scores must be brutally honest. No padding to 90.
- Humanizer score weighted 1.5x in the aggregate.
- If aggregate < 90: identify top 3 weaknesses → revise → next round.
- If aggregate ≥ 90: finalize and proceed to output.
- After 3 rounds, if still < 90: return best version with honest score + note on what's
holding it back.
- Show ALL rounds in output — the iteration trail is part of the value.
Variant comparison mode
When scoring multiple variants (A/B/C):
- Score each variant independently through the full panel.
- After scoring, rank variants by aggregate score.
- If top variant is < 90, iterate on the best one (don't iterate all of them).
---
Step 5: Output Format
Winner + Score (always at top)
## 🏆 Result: [SCORE]/100 — [PASS ✅ | NEEDS WORK ⚠️] [Final content/artifact here] **Iterations:** [N] rounds **Panel:** [Expert names, comma-separated]
If variants: show winner first, then runner-up scores.
## 🏆 Winner: Variant [X] — [SCORE]/100 [Winning content] ### Runner-up scores - Variant A: 87/100 - Variant B: 82/100 - Variant C: 91/100 ← Winner
Feedback History (below the result)
Show full scoring rounds.
--- <details> <summary>📊 Scoring History (N rounds)</summary> [All round tables from Step 4] </details>
---
Step 6: Feedback-to-Source (When Scoring Another Skill's Output)
When the scored content came from another skill, generate a **Source Improvement Brief**:
## 🔁 Feedback for [Source Skill] ### What scored low - [Pattern]: [Specific example from this content] ### Suggested skill improvements - [Concrete change to the source skill's process/rubric/prompt] ### Patterns to add to source skill - [Any recurring weakness that should become a rule]
This brief can be used to update the source skill's SKILL.md or rubrics.
---
Step 7: Memory — Lear
Other skills on evo-nexus.
- /ai-image-creator
Generate PNG images using AI (multiple models via OpenRouter including Gemini, FLUX.2, Riverflow, SeedDream, GPT-5 Image, proxied through Cloudflare AI Gateway BYOK). Also analyze/describe existing images using multimodal AI vision. Use when user asks to "generate an image",
Open skill - /create-agent
Create a new custom agent for the workspace. Guides the user through defining agent name, domain, personality, skills, model, and memory folder. Use when the user says 'create an agent', 'new agent', 'add an agent', 'I need a custom agent', or wants to create a specialized agent
Open skill - /create-command
Create a new slash command for Claude Code. Guides the user through defining the command name, what it does, and generates the markdown file in .claude/commands/. Use when the user says 'create a command', 'new command', 'add a slash command', 'I want a shortcut for', or wants
Open skill - /create-goal
Create a Mission, Project, or Goal (Mission → Project → Goal → Task hierarchy) in EvoNexus. Guides the user through picking a mission, choosing or creating a project, defining a measurable goal with metric_type and target_value. Writes to the SQLite goals tables via POST
Open skill - /create-heartbeat
Create a new heartbeat (proactive agent scheduled with a decision prompt) for EvoNexus. Guides the user through picking an agent, setting interval, wake triggers, and the decision prompt that governs when the agent acts. Writes to config/heartbeats.yaml with pydantic validation.
Open skill - /create-integration
Create a new custom integration (API/service wrapper) for the workspace. Guides the user through defining the integration's slug, display name, description, category, and required env keys. Writes .claude/skills/custom-int-{slug}/SKILL.md via POST /api/integrations/custom. Use
Open skill

