# Indie Game Match History Database

> Historical Match Database Architecture & Engine for Indie Games - Comprehensive evidence-backed analysis harness for indie game match-history data engineering. Use when designing storage architectures, selecting rating systems (ELO/Glicko-2), implementing tiered storage, addressing GDPR/COPPA privacy requirements, or building leaderboards. Grounded in a production-tested Python engine implementin…

- **Type:** Skill
- **Install:** `agentstack add skill-dungnotnull-indie-game-match-history-database-agent-skill-indie-game-match-history-database-agent-skill`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [dungnotnull](https://agentstack.voostack.com/s/dungnotnull)
- **Installs:** 0
- **Category:** [Databases](https://agentstack.voostack.com/c/databases)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [dungnotnull](https://github.com/dungnotnull)
- **Source:** https://github.com/dungnotnull/indie-game-match-history-database-agent-skill

## Install

```sh
agentstack add skill-dungnotnull-indie-game-match-history-database-agent-skill-indie-game-match-history-database-agent-skill
```

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

## About

# Indie Game Match-History Database Skill Registry

## Overview

This skill provides a comprehensive, evidence-backed analytical workflow for **Indie Game Match-History Data Engineering**. It combines real-time data aggregation, recognized domain methods, academic research, and a production-tested engine into a single orchestrated harness that delivers risk-disclosed, fully-evidenced recommendations.

## Architecture Pattern

```
┌─────────────────────────────────────────────────────────────────────┐
│                         MAIN HARNESS                                │
│                    (skills/main.md)                                 │
│  ┌──────────────────────────────────────────────────────────────┐  │
│  │  Pre-Flight: Language Detection (vi/en)                     │  │
│  └──────────────────────────────────────────────────────────────┘  │
│                                  │                                 │
│                                  ▼                                 │
│  ┌──────────────────────────────────────────────────────────────┐  │
│  │  Step 1: sub-gather-requirements                            │  │
│  │  → Object, scope, timeframe, inputs, audience, language     │  │
│  └──────────────────────────────────────────────────────────────┘  │
│                                  │                                 │
│                                  ▼                                 │
│  ┌──────────────────────────────────────────────────────────────┐  │
│  │  Step 2: sub-evidence-collector                             │  │
│  │  → Current data, authoritative docs, recent news            │  │
│  └──────────────────────────────────────────────────────────────┘  │
│                                  │                                 │
│                                  ▼                                 │
│  ┌──────────────────────────────────────────────────────────────┐  │
│  │  Step 3: sub-core-analysis                                  │  │
│  │  → Data model, tiering, queries, scalability, privacy       │  │
│  └──────────────────────────────────────────────────────────────┘  │
│                                  │                                 │
│                                  ▼                                 │
│  ┌──────────────────────────────────────────────────────────────┐  │
│  │  Step 4: sub-knowledge-updater                              │  │
│  │  → Academic evidence, tiered citations, gap flags           │  │
│  └──────────────────────────────────────────────────────────────┘  │
│                                  │                                 │
│                                  ▼                                 │
│  ┌──────────────────────────────────────────────────────────────┐  │
│  │  Step 5: sub-advisor                                        │  │
│  │  → Risk-disclosed conclusion, evidence chain, actions        │  │
│  └──────────────────────────────────────────────────────────────┘  │
│                                  │                                 │
│                                  ▼                                 │
│  ┌──────────────────────────────────────────────────────────────┐  │
│  │  Step 6: Quality Gate Review                                │  │
│  │  → 10 gates (U1-U6 + G1-G4) with auto-fix                   │  │
│  └──────────────────────────────────────────────────────────────┘  │
│                                  │                                 │
│                                  ▼                                 │
│                      Deliver Output                               │
└─────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────┐
│                    ENGINE GROUNDING LAYER                            │
│                    (indie_match_history/)                            │
│  ┌─────────────┬──────────────┬──────────────┬─────────────────┐   │
│  │  models.py  │  ratings.py  │  storage/    │  leaderboard.py │   │
│  │  (Player,   │  (ELO,       │  (tiered,    │  (ZSET,         │   │
│  │   Match,    │   Glicko-2)  │   sqlite,    │   bisect)       │   │
│  │   Rating)   │              │   memory)    │                 │   │
│  └─────────────┴──────────────┴──────────────┴─────────────────┘   │
│  ┌──────────────┬──────────────┬──────────────┬───────────────┐   │
│  │  replay.py   │  privacy.py  │  engine.py   │  schema.py    │   │
│  │  (gzip,      │  (GDPR,      │  (facade)    │  (migrations) │   │
│  │   SHA-256)   │   COPPA)     │              │               │   │
│  └──────────────┴──────────────┴──────────────┴───────────────┘   │
└─────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────┐
│                      KNOWLEDGE BASE                                  │
│                   (SECOND-KNOWLEDGE-BRAIN.md)                        │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │  Academic papers (Tier 1) - ArXiv, Semantic Scholar         │   │
│  │  Industry standards (Tier 2) - GDPR, COPPA, rating docs      │   │
│  │  Implementation guides (Tier 3) - Blogs, tutorials            │   │
│  │  Update log - Crawl pipeline entries with timestamps          │   │
│  └─────────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────────┘
```

## Skill Registration

### Main Skill

**File:** `skills/main.md`

**Registration:**
```yaml
name: indie-game-match-history-database
description: Historical Match Database Architecture & Engine for Indie Games
```

**Trigger Phrases:**
- "Design match-history storage"
- "Which rating system for my game"
- "GDPR compliance for player data"
- "Tiered storage architecture"
- "Leaderboard design patterns"
- "Match data scalability"

**Input Schema:**
```json
{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "User's analysis request"
    },
    "context": {
      "type": "object",
      "properties": {
        "game_type": {"type": "string"},
        "player_count": {"type": "integer"},
        "match_volume": {"type": "string"},
        "region": {"type": "string"}
      }
    }
  },
  "required": ["query"]
}
```

**Output Schema:**
```json
{
  "type": "object",
  "properties": {
    "language": {"type": "string", "enum": ["en", "vi"]},
    "inputs_and_scope": {
      "type": "object",
      "properties": {
        "object_of_analysis": {"type": "string"},
        "scope": {"type": "string"},
        "timeframe": {"type": "string"},
        "available_inputs": {"type": "array"},
        "target_audience": {"type": "string"}
      }
    },
    "evidence_collected": {
      "type": "object",
      "properties": {
        "current_data": {"type": "object"},
        "authoritative_docs": {"type": "array"},
        "recent_news": {"type": "array"}
      }
    },
    "analysis": {
      "type": "object",
      "properties": {
        "data_model": {"type": "object"},
        "tiering": {"type": "object"},
        "queries_and_indexes": {"type": "object"},
        "scalability": {"type": "object"},
        "privacy_and_retention": {"type": "object"}
      }
    },
    "academic_evidence": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {"type": "string"},
          "authors": {"type": "array"},
          "year": {"type": "integer"},
          "tier": {"type": "string", "enum": ["1", "2", "3", "4"]},
          "doi": {"type": "string"},
          "relevance": {"type": "string"}
        }
      }
    },
    "verdict": {
      "type": "string",
      "enum": [
        "Scalable Schema",
        "Conditional (scale)",
        "Unscalable/Non-private",
        "Inconclusive"
      ]
    },
    "key_risks": {"type": "array"},
    "evidence_chain": {"type": "object"},
    "recommended_actions": {"type": "array"},
    "disclosure": {"type": "string"}
  },
  "required": ["language", "verdict", "disclosure"]
}
```

### Sub-Skills

#### 1. sub-gather-requirements

**File:** `skills/sub-gather-requirements.md`

**Purpose:** Clarify object of analysis, constraints, timeframe, inputs, audience, language

**Input Schema:**
```json
{
  "type": "object",
  "properties": {
    "raw_user_message": {"type": "string"},
    "provided_materials": {"type": "array"}
  }
}
```

**Output Schema:**
```json
{
  "type": "object",
  "properties": {
    "object": {"type": "string"},
    "scope": {"type": "string"},
    "timeframe": {"type": "string"},
    "available_inputs": {"type": "array"},
    "target_audience": {"type": "string"},
    "language": {"type": "string", "enum": ["en", "vi"]},
    "analysis_type": {"type": "string"}
  },
  "required": ["object", "language"]
}
```

#### 2. sub-evidence-collector

**File:** `skills/sub-evidence-collector.md`

**Purpose:** Fetch authoritative real-time and reference data

**Input Schema:**
```json
{
  "type": "object",
  "properties": {
    "object": {"type": "string"},
    "scope": {"type": "string"},
    "timeframe": {"type": "string"},
    "language": {"type": "string"}
  }
}
```

**Output Schema:**
```json
{
  "type": "object",
  "properties": {
    "current_data": {
      "type": "object",
      "properties": {
        "source": {"type": "string"},
        "date_fetched": {"type": "string"},
        "data": {},
        "confidence": {"type": "string"}
      }
    },
    "authoritative_docs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {"type": "string"},
          "source": {"type": "string"},
          "type": {"type": "string"},
          "tier": {"type": "string"},
          "key_points": {"type": "array"},
          "date_accessed": {"type": "string"}
        }
      }
    },
    "recent_news": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {"type": "string"},
          "source": {"type": "string"},
          "date": {"type": "string"},
          "relevance": {"type": "string"}
        }
      }
    },
    "knowledge_base_entries": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {"type": "string"},
          "authors": {"type": "array"},
          "year": {"type": "integer"},
          "tier": {"type": "string"},
          "doi": {"type": "string"},
          "relevance_to_analysis": {"type": "string"}
        }
      }
    }
  }
}
```

#### 3. sub-core-analysis

**File:** `skills/sub-core-analysis.md`

**Purpose:** Design storage architecture grounded in engine implementation

**Input Schema:**
```json
{
  "type": "object",
  "properties": {
    "game": {"type": "string"},
    "expected_player_volume": {"type": "integer"},
    "expected_match_volume": {"type": "string"},
    "leaderboards": {"type": "boolean"},
    "replays": {"type": "boolean"},
    "language": {"type": "string"}
  }
}
```

**Output Schema:**
```json
{
  "type": "object",
  "properties": {
    "data_model": {
      "type": "object",
      "properties": {
        "core_entities": {"type": "array"},
        "relationships": {"type": "array"},
        "constraints": {"type": "array"},
        "engine_implementation": {"type": "string"}
      }
    },
    "tiering": {
      "type": "object",
      "properties": {
        "hot_retention_days": {"type": "integer"},
        "warm_retention_days": {"type": "integer"},
        "cold_retention_days": {"type": "integer"},
        "migration_strategy": {"type": "string"},
        "cost_estimate": {"type": "string"}
      }
    },
    "queries_and_indexes": {
      "type": "object",
      "properties": {
        "primary_queries": {"type": "array"},
        "secondary_indexes": {"type": "array"},
        "optimization_patterns": {"type": "array"}
      }
    },
    "scalability": {
      "type": "object",
      "properties": {
        "horizontal_scaling": {"type": "string"},
        "vertical_scaling": {"type": "string"},
        "bottleneck_analysis": {"type": "array"},
        "recommended_architecture": {"type": "string"}
      }
    },
    "privacy_and_retention": {
      "type": "object",
      "properties": {
        "gdpr_compliance": {"type": "boolean"},
        "coppa_compliance": {"type": "boolean"},
        "retention_aging": {"type": "boolean"},
        "right_to_erasure": {"type": "string"},
        "engine_implementation": {"type": "string"}
      }
    }
  }
}
```

#### 4. sub-knowledge-updater

**File:** `skills/sub-knowledge-updater.md`

**Purpose:** Query knowledge base for academic evidence, surface citations, flag gaps

**Input Schema:**
```json
{
  "type": "object",
  "properties": {
    "topic_keywords": {"type": "array"},
    "analysis_type": {"type": "string"}
  }
}
```

**Output Schema:**
```json
{
  "type": "object",
  "properties": {
    "citations": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {"type": "string"},
          "authors": {"type": "array"},
          "year": {"type": "integer"},
          "tier": {"type": "string"},
          "doi": {"type": "string"},
          "relevance": {"type": "string"},
          "key_findings": {"type": "array"}
        }
      }
    },
    "coverage_rating": {"type": "string"},
    "gaps_flagged": {"type": "array"},
    "recommended_search_terms": {"type": "array"}
  }
}
```

#### 5. sub-advisor

**File:** `skills/sub-advisor.md`

**Purpose:** Synthesize risk-disclosed conclusion with evidence chain

**Input Schema:**
```json
{
  "type": "object",
  "properties": {
    "core_analysis": {"type": "object"},
    "evidence_bundle": {"type": "object"},
    "knowledge_evidence": {"type": "array"},
    "language": {"type": "string"}
  }
}
```

**Output Schema:**
```json
{
  "type": "object",
  "properties": {
    "verdict": {
      "type": "string",
      "enum": [
        "Scalable Schema",
        "Conditional (scale)",
        "Unscalable/Non-private",
        "Inconclusive"
      ]
    },
    "confidence": {"type": "string"},
    "scenarios": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "scenario": {"type": "string"},
          "outcome": {"type": "string"},
          "probability": {"type": "string"}
        }
      }
    },
    "key_risks": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "risk": {"type": "string"},
          "severity": {"type": "string"},
          "mitigation": {"type": "string"}
        }
      }
    },
    "evidence_chain": {
      "type": "object",
      "properties": {
        "primary_sources": {"type": "array"},
        "secondary_sources": {"type": "array"},
        "traceability": {"type": "boolean"}
      }
    },
    "recommended_actions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "action": {"type": "string"},
          "priority": {"type": "string"},
            "engine_reference": {"type": "string"}
        }
      }
    },
    "disclosure": {
      "type": "string",
      "description": "Must appear BEFORE the verdict"
    }
  },
  "required": ["verdict", "disclosure"]
}
```

## Skill Resolution

### Resolution Order

When `/indie-game-match-history-database` is invoked:

1. **Main skill loads** → `skills/main.md`
2. **Pre-flight executes** → Language detection (vi/en)
3. **Sub-skills resolve** → Each sub-skill loads on-demand
4. **Engine loads** → `indie_match_history/` modules imported
5. **Knowledge base loads** → `SECOND-KNOWLEDGE-BRAIN.md` read

### Resolution Failures

| Failure Mode | Action | Degradation Level |
|--------------|--------|-------------------|
| Sub-skill not found | Abort with error | 4 (Harness failed) |
| Engine module import failed | Abort

…

## 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/indie-game-match-history-database-agent-skill](https://github.com/dungnotnull/indie-game-match-history-database-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-indie-game-match-history-database-agent-skill-indie-game-match-history-database-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%.
