# Esports Theorycrafting Meta Analysis

> Esports Meta-Game Analysis & Theorycrafting Optimization - evidence-backed analysis harness with quality-gated, risk-disclosed output. Use this skill whenever the user asks about esports meta analysis, theorycrafting, hero tier lists, build optimization, counter-strategies, patch analysis, competitive gaming strategies, or wants authoritative esports analytics with academic backing.

- **Type:** Skill
- **Install:** `agentstack add skill-dungnotnull-esports-theorycrafting-meta-analysis-agent-skill-esports-theorycrafting-meta-analysis-agent-skill`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [dungnotnull](https://agentstack.voostack.com/s/dungnotnull)
- **Installs:** 0
- **Category:** [Data & Analytics](https://agentstack.voostack.com/c/data-and-analytics)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [dungnotnull](https://github.com/dungnotnull)
- **Source:** https://github.com/dungnotnull/esports-theorycrafting-meta-analysis-agent-skill

## Install

```sh
agentstack add skill-dungnotnull-esports-theorycrafting-meta-analysis-agent-skill-esports-theorycrafting-meta-analysis-agent-skill
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# SKILL Registry - esports-theorycrafting-meta-analysis

## Overview

This document defines the complete skill registry, resolution protocol, execution flow, and validation standards for the `esports-theorycrafting-meta-analysis` harness skill. It serves as the canonical reference for how the skill system operates, how skills are registered, resolved, executed, and validated.

## Skill Identity

```yaml
name: esports-theorycrafting-meta-analysis
version: 1.1.0
domain: Esports Competitive Analysis & Theorycrafting
status: PRODUCTION_READY
architecture: Harness (orchestrator + sub-skills)
```

## Skill Registration Protocol

### Registration Schema

Skills are registered via YAML frontmatter in each `.md` file:

```yaml
---
name: {skill-identifier}
description: {one-line trigger description}
---
```

**Required fields:**
- `name`: Unique skill identifier (kebab-case)
- `description`: When to trigger, what it does (primary triggering mechanism)

**Optional metadata (added to skill card via comments):**
- `version`: Skill version
- `domain`: Domain category
- `compatibility`: Required tools/dependencies
- `author`: Author attribution

### Skill Registry Structure

```
skills/
├── main.md                      # Main orchestrator (entry point)
├── sub-gather-requirements.md   # Sub-skill 1: Requirements parsing
├── sub-evidence-collector.md    # Sub-skill 2: Evidence collection
├── sub-core-analysis.md         # Sub-skill 3: Core analysis
├── sub-knowledge-updater.md     # Sub-skill 4: Knowledge base query
└── sub-advisor.md               # Sub-skill 5: Advisory synthesis
```

### Skill Resolution Protocol

1. **Trigger Detection**: Claude analyzes user input against skill `description` fields
2. **Skill Selection**: Matching skill(s) are loaded into context
3. **Sub-skill Resolution**: Main skill invokes sub-skills via `Skill()` tool calls
4. **Execution Order**: Sequential execution following harness protocol

**Resolution Logic:**
```
user_query → skill.description_match → skill.load()
main_skill → sub_skill_invocation → sequential_execution
```

## Input/Output JSON Schemas

### Main Harness Input Schema

```json
{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Free-form analysis query from user",
      "example": "Analyze LoL patch 14.10 jungle meta"
    },
    "audience": {
      "type": "string",
      "enum": ["analyst", "coach", "player", "broadcaster", "researcher", "learner"],
      "default": "analyst",
      "description": "Target audience for the report"
    },
    "language": {
      "type": "string",
      "enum": ["en", "vi"],
      "description": "Output language (auto-detected if not specified)"
    },
    "inputs": {
      "type": "object",
      "properties": {
        "heroes_json": {"type": "string", "description": "Path to heroes data JSON"},
        "matchups_json": {"type": "string", "description": "Path to matchups data JSON"},
        "builds_json": {"type": "string", "description": "Path to builds data JSON"},
        "before_stats_json": {"type": "string", "description": "Path to previous patch stats JSON"}
      }
    }
  },
  "required": ["query"]
}
```

### Requirements Output Schema (Step 1)

```json
{
  "type": "object",
  "properties": {
    "object_of_analysis": {"type": "string"},
    "scope": {"type": "string", "enum": ["meta", "hero", "build", "counter", "patch", "combined"]},
    "timeframe": {"type": "string"},
    "target_audience": {"type": "string"},
    "language": {"type": "string", "enum": ["en", "vi"]},
    "analysis_type": {"type": "string"},
    "keywords": {"type": "array", "items": {"type": "string"}},
    "inputs": {"type": "object"},
    "assumptions": {"type": "array", "items": {"type": "string"}},
    "open_questions": {"type": "array", "items": {"type": "string"}}
  },
  "required": ["object_of_analysis", "language"]
}
```

### Evidence Bundle Output Schema (Step 2)

```json
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "source": {"type": "string"},
          "url": {"type": "string", "format": "uri"},
          "tier": {"type": "integer", "enum": [1, 2, 3, 4]},
          "snippet": {"type": "string"},
          "access_date": {"type": "string", "format": "date-time"},
          "relevance_score": {"type": "number", "minimum": 0, "maximum": 10}
        }
      }
    },
    "tier_counts": {"type": "object", "patternProperties": {"^[1-4]$": {"type": "integer"}}},
    "coverage_rating": {"type": "string", "enum": ["Strong", "Moderate", "Weak"]},
    "degradation_level": {"type": "integer", "minimum": 0, "maximum": 4},
    "limitations": {"type": "array", "items": {"type": "string"}},
    "collected_at": {"type": "string", "format": "date-time"}
  },
  "required": ["items", "degradation_level", "coverage_rating"]
}
```

### Core Analysis Output Schema (Step 3)

```json
{
  "type": "object",
  "properties": {
    "hero_stats": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {"type": "string"},
          "win_rate": {"type": "number", "minimum": 0, "maximum": 1},
          "pick_rate": {"type": "number", "minimum": 0, "maximum": 1},
          "ban_rate": {"type": "number", "minimum": 0, "maximum": 1},
          "games": {"type": "integer", "minimum": 0},
          "tier": {"type": "string", "pattern": "^[SABC?]$"},
          "ci": {
            "type": "object",
            "properties": {
              "lower": {"type": "number"},
              "upper": {"type": "number"},
              "center": {"type": "number"},
              "confidence": {"type": "number"}
            }
          }
        }
      }
    },
    "build_rankings": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "rank": {"type": "integer"},
          "name": {"type": "string"},
          "effective_dps": {"type": "number"},
          "effective_ehp": {"type": "number"},
          "ttk_vs_reference": {"type": "number"},
          "composite_score": {"type": "number"},
          "synergy": {"type": "number"}
        }
      }
    },
    "counters": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "target": {"type": "string"},
          "counter": {"type": "string"},
          "advantage": {"type": "number"},
          "evidence_games": {"type": "integer", "minimum": 0}
        }
      }
    },
    "patch_deltas": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {"type": "string"},
          "win_rate_before": {"type": "number"},
          "win_rate_after": {"type": "number"},
          "win_rate_delta": {"type": "number"},
          "pick_rate_delta": {"type": "number"},
          "direction": {"type": "string", "enum": ["buff", "nerf", "neutral"]}
        }
      }
    },
    "scenarios": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {"type": "string"},
          "confidence": {"type": "number", "minimum": 0, "maximum": 1},
          "description": {"type": "string"},
          "expected_top_builds": {"type": "array", "items": {"type": "string"}},
          "expected_tier_movements": {"type": "array", "items": {"type": "string"}}
        }
      }
    }
  }
}
```

### Knowledge Query Output Schema (Step 4)

```json
{
  "type": "object",
  "properties": {
    "citations": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {"type": "string"},
          "authors": {"type": "string"},
          "year": {"type": "integer"},
          "venue": {"type": "string"},
          "doi_or_url": {"type": "string"},
          "tier": {"type": "integer", "enum": [1, 2, 3, 4]},
          "relevance": {"type": "string", "enum": ["H", "M", "L"]},
          "key_finding": {"type": "string"}
        }
      }
    },
    "gaps": {"type": "array", "items": {"type": "string"}},
    "coverage": {"type": "string", "enum": ["Strong", "Moderate", "Weak"]}
  }
}
```

### Final Report Output Schema (Step 5-6)

```json
{
  "type": "object",
  "properties": {
    "requirements": {"type": "object"},
    "evidence": {"$ref": "#/definitions/EvidenceBundle"},
    "hero_stats": {"type": "array"},
    "build_rankings": {"type": "array"},
    "counters": {"type": "array"},
    "patch_deltas": {"type": "array"},
    "scenarios": {"type": "array"},
    "knowledge_citations": {"type": "array"},
    "knowledge_gaps": {"type": "array"},
    "coverage_rating": {"type": "string"},
    "degradation_level": {"type": "integer"},
    "limitations": {"type": "array"},
    "risks": {"type": "array"},
    "remediation": {"type": "array"},
    "verdict": {"type": "string", "enum": ["Strong Meta Plan", "Conditional (meta shifting)", "Insufficient Data", "Inconclusive"]},
    "gates": {"type": "array"},
    "language": {"type": "string"},
    "generated_at": {"type": "string", "format": "date-time"}
  },
  "required": ["verdict", "gates", "language", "generated_at"]
}
```

## Skill Execution Protocol

### Harness Execution Flow

```
┌─────────────────────────────────────────────────────────────────┐
│ USER INPUT                                                       │
│ /esports-theorycrafting-meta-analysis "Analyze LoL jungle meta"  │
└────────────────────────────┬────────────────────────────────────┘
                             │
                             v
┌─────────────────────────────────────────────────────────────────┐
│ PRE-FLIGHT: Language Detection                                   │
│ Detect en/vi from diacritics + keywords → LANG                  │
└────────────────────────────┬────────────────────────────────────┘
                             │
                             v
┌─────────────────────────────────────────────────────────────────┐
│ STEP 1: sub-gather-requirements                                  │
│ Input: user query                                                │
│ Internal Gate: At least one object of analysis confirmed         │
│ Output: Requirements object                                      │
│ Auto-fix: Ask up to 2 clarifying questions                      │
└────────────────────────────┬────────────────────────────────────┘
                             │
                             v
┌─────────────────────────────────────────────────────────────────┐
│ STEP 2: sub-evidence-collector                                  │
│ Input: Requirements object                                      │
│ Tool: evidence_collector.py (EvidenceCollector)                 │
│ Internal Gate: Current data + 1 authoritative doc OR flag       │
│ Output: EvidenceBundle (tier-labeled)                           │
│ Auto-fix: Fallback to SECOND-KNOWLEDGE-BRAIN.md, escalate degr.  │
└────────────────────────────┬────────────────────────────────────┘
                             │
                             v
┌─────────────────────────────────────────────────────────────────┐
│ STEP 3: sub-core-analysis                                       │
│ Input: Requirements, EvidenceBundle, optional JSON inputs       │
│ Tool: theorycraft_engine.py                                     │
│ Internal Gates: G1 (formulas+match data), G2 (counters->top5),  │
│                G3 (sources dated + deltas), G4 (Tier =1 academic/authoritative source                │
│ Output: KnowledgeQuery (citations + gaps + coverage)             │
│ Auto-fix: WebSearch gap-fill (max 2 queries)                    │
└────────────────────────────┬────────────────────────────────────┘
                             │
                             v
┌─────────────────────────────────────────────────────────────────┐
│ STEP 5: sub-advisor                                             │
│ Input: All prior outputs                                        │
│ Tool: harness_runner.py: derive_verdict/risks/remediation       │
│ Internal Gate: Verdict ∈ {4 declared categories}, disclosure pre │
│ Output: verdict, scenarios, risks, remediation, evidence chain  │
│ Auto-fix: Force to "Inconclusive" if invalid verdict           │
└────────────────────────────┬────────────────────────────────────┘
                             │
                             v
┌─────────────────────────────────────────────────────────────────┐
│ STEP 6: Quality Gate Review (Main Harness)                      │
│ Input: All outputs, Requirements, EvidenceBundle                │
│ Tool: harness_runner.py:evaluate_gates()                        │
│ Gates: U1-U6 (universal) + G1-G4 (domain) = 10 total           │
│ Output: GateResult[] with pass/fail + limitation notes          │
│ Auto-fix: 2 retry attempts per gate; emit limitation if fail   │
└────────────────────────────┬────────────────────────────────────┘
                             │
                             v
┌─────────────────────────────────────────────────────────────────┐
│ FINAL REPORT                                                     │
│ JSON: logs/harness_report.json                                  │
│ Markdown: logs/harness_report.md                                │
│ Includes: Post-Execution Gate Checklist (U1-U6 + G1-G4)        │
└─────────────────────────────────────────────────────────────────┘
```

### Skill Invocation Patterns

**Pattern 1: Main Skill (Entry Point)**
```
User: /esports-theorycrafting-meta-analysis "Analyze LoL patch 14.10"
↓
Claude: Loads skills/main.md
↓
main.md orchestrates Steps 1-6 sequentially
```

**Pattern 2: Sub-Skill Invocation (from main.md)**
```
main.md Step 1:
↓
Skill("sub-gather-requirements")
↓
sub-gather-requirements.md executes
↓
Returns Requirements object
```

**Pattern 3: CLI Execution (bypassing Claude)**
```bash
python tools/harness_runner.py \
  --query "Analyze LoL patch 14.10 jungle meta" \
  --heroes-json inputs/heroes.json \
  --output-md logs/report.md
```

## Skill Validation Protocol

### Validation Levels

1. **Structural Validation** (`tools/validate_project.py`)
   - 8-File Contract compliance
   - Directory structure
   - YAML frontmatter validity
   - UTF-8 encoding (no BOM)
   - Cross-reference consistency

2. **Functional Validation** (`tests/test_*.py`)
   - Unit tests for each module
   - Integration tests for harness
   - End-to-end scenario tests

3. **Quality Gate Validation** (runtime)
   - U1-U6 universal gates
   - G1-G4 domain gates
   - Auto-fix attempts
   - Limitation emission

### Validation Checklist

**Pre-Flight Validation (before skill execution):**
- [ ] All skill files exist (main.md + 5 sub-*.md)
- [ ] YAML frontmatter valid in all files
- [ ] SECOND-KNOWLEDGE-BRAIN.md accessible
- [ ] Python modules compile without syntax errors

**Runtime Validation (during skill execution):**
- [ ] Each step completes before next begins
- [ ] Internal gates pass or auto-fix attempted
- [ ] Degradation level tracked accurately
- [ ] Language detection consistent

**Post-Execution Validation (after skill execution):**
- [ ] All 10 gates evaluated
- [ ] Verdict is one of 4 declared categories
- [ ] Disclosure present before verdict
- [ ] JSON and Markdown outputs generated
- [ ] Post-Execution Gate Checklist complete

### Validation Error Handling

| Error Type | Detection | Recovery |
|------------|-----------|----------|
| Missing skill file | File not found | Log error, skip sub-skill, escalate degradation |
| Invalid frontmatter | YAML parse error | Use default metadata, log warning |
| Internal gate failure | Gate check returns False | Auto-fix (2 retries), then emit limitation |
| Verdict invalid | Verdict ∉ {4 categories} | Force to "Inconclusive", flag |
| Output write failure | IO error | Log error, return exit code 2 |

## Skill Extension Protocol

### Adding New Sub-Skills

1. Create `skills/sub-{name}.md` with proper frontmatter
2. Implement correspon

…

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [dungnotnull](https://github.com/dungnotnull)
- **Source:** [dungnotnull/esports-theorycrafting-meta-analysis-agent-skill](https://github.com/dungnotnull/esports-theorycrafting-meta-analysis-agent-skill)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-dungnotnull-esports-theorycrafting-meta-analysis-agent-skill-esports-theorycrafting-meta-analysis-agent-skill
- Seller: https://agentstack.voostack.com/s/dungnotnull
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
