optcg-play — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited optcg-play (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Analyze game situations and recommend the best plays with strategic reasoning.
When the user provides a board state, parse these fields:
If information is incomplete, ask for the minimum critical info before proceeding:
Do NOT ask for everything -- ask only for what is truly needed for an accurate recommendation.
Players may use compact shorthand to describe their board state. Parse this notation:
L:IMU(4L) vs BB(5L3H) [T5, D:8/8]| Token | Meaning | Example |
|---|---|---|
L:NAME | Your leader | L:IMU = Imu (OP13-079) |
(NL) | Life count | (4L) = 4 life remaining |
(NLNH) | Life + hand size | (5L3H) = 5 life, 3 cards in hand |
[TN] | Turn number | [T5] = turn 5 |
[D:A/T] | DON!! active/total | [D:8/8] = 8 active of 8 total |
TR:N | Trash count | TR:12 = 12 cards in trash |
Saturn(4k,A) | Character (power, Active/Rested) | 4000 power, active |
Kuzan5(5k,R,+2D) | Character with DON!! attached | 5000 power, rested, 2 DON!! attached |
[B] after character | Blocker keyword | Warcury(4k,A)[B] |
[DA] after character | Double Attack keyword | Devon(6k,A)[DA] |
STG:EmptyThrone | Active stage | Stage = Empty Throne |
Full example:
L:IMU(3L5H) vs BB(4L4H) [T5, D:7/8, TR:9]
Board: Saturn(4k,A), Mars(6k,A)[B], Nusjuro(6k,R)
Opp: Burgess(7k,A), Kuzan6(6k,A)[B]
STG:EmptyThrone
Hand: Five Elders 10, Ju Peter, Warcury, Never Existed, ShalriaIf the user writes in this shorthand, parse it into the full board state fields above before analysis.
Load these resources when available:
data/matchups/ for a cached report on this leader matchup. If one exists, reference its win conditions, key turns, and strategic priorities.data/meta/decklists/ for known decklists for either leader. Use these to understand what cards are in each deck and anticipate opponent plays..claude/skills/optcg-assistant/references/strategy.md for general strategic principles, color-specific strategies, and meta context.references/evaluation.md (relative to this skill) for the ten evaluation algorithms: DON!! Allocation (1), Attack Sequencing (2), Counter Decisions (3), Lethal Math (4), Board Development Priority (5), Position Scoring Framework (6), Mulligan Decision Framework (7), Nonlinear Life Valuation (8), Combo Readiness Tracker (9), Turn-Phase Priority Order (10)..claude/skills/optcg-assistant/references/deck-imu-op13.md or deck-blackbeard-op09.md if the relevant leader is in play.data/sim/ for simulation results when available (Sprint 3 feature; may be empty).references/leader-imu-piloting.md or references/leader-bb-piloting.md if the user's leader matches. These contain turn-by-turn plans, ability timing, combo tracking, and matchup adjustments extracted from the simulator's AI pilot.Follow this sequence for every board state analysis:
Extract all provided information into structured fields. Note what is missing and whether you need to ask for it.
If both leaders are identified, check data/matchups/ for a matchup report. If found, note the recommended strategy, key turns, and win conditions for the user's side.
If the user's leader has a piloting guide (references/leader-imu-piloting.md or references/leader-bb-piloting.md), load it. Use the turn-by-turn plan, combo tracking, ability timing, and matchup adjustments to inform all subsequent analysis. This overrides generic advice with leader-specific logic.
Load references/evaluation.md and apply:
Based on hand, board, and available DON!!, enumerate the reasonable play options. Consider:
Evaluate each play option against the heuristics and matchup context. Consider:
Apply the Lethal Math Calculator from evaluation.md. Count attacks, estimate opponent counters, determine if lethal is available. If yes, present the lethal line as the top recommendation.
Use the output format below.
## Assessment
[1-2 sentence summary: who's ahead, game phase, key dynamics]
[If matchup report loaded: "Based on the [Leader A] vs [Leader B] matchup analysis..."]
## Lethal Check
[Always check first. If lethal exists, show the math. If not, state "No lethal available this turn."]
## Recommended Plays (Ranked)
### Play 1: [Name] (Recommended)
**DON!! Allocation:** [Specific allocation, e.g., "Play Saturn (4 DON!!), attach 2 DON!! to Nusjuro, hold 2"]
**Action Sequence:**
1. [Step 1]
2. [Step 2]
3. [Attack sequence with targets and reasoning]
**Expected Outcome:** [What the board looks like after]
**Why:** [Strategic reasoning referencing evaluation heuristics]
### Play 2: [Name] (Alternative)
[Same structure]
## Attack Sequencing
[Detailed attack order with reasoning from the evaluation heuristics]
[Apply: characters attack first to bait counters, leader attacks last]
[Calculate power breakpoints using the 2000-Power Rule]
## Counter Guide
[For the OPPONENT's upcoming turn: which attacks to counter, which to take as life]
[Apply life management zones: comfortable (4-5 life), safe (3 life), 2-life comfort zone, danger (1 life), dead zone (0 life)]
## Watch Out For
[Opponent's likely responses, cards they might have, counterplays to prepare for]
## The Lesson
[General strategic principle this situation illustrates -- something the user can apply in future games]Adjust depth based on user request or inferred need:
| Mode | Trigger | Content |
|---|---|---|
| Quick Tip | User asks "should I X?" or a simple yes/no question | 2-3 sentences: direct answer + key reasoning. Skip the full output format. |
| Standard | Default for board state analysis | Full output format (Assessment → Lethal → Plays → Attacks → Counter → Watch Out → Lesson). |
| Deep Analysis | User asks for detailed analysis, mentions they're in a tournament, or the board is complex | Standard format PLUS: 7-axis position scoring (Section 6), EV-based counter tables (Section 8), multi-turn planning (next 2-3 turns), combo readiness tracking (Section 9). |
When in doubt, use Standard. Escalate to Deep Analysis if the user provides a very detailed board state or asks "why" follow-up questions.
Track these categories throughout the conversation to maintain game state context:
When the user provides information across multiple turns, maintain this tracker and reference it in recommendations.
Estimate what the opponent can do based on observable information:
counter_ceiling = opponent_hand_size × 2000This is the pessimistic upper bound (assumes every card is a +2000 counter). For realistic estimates:
When opponent holds cards for multiple turns without playing them, they are likely:
Note: "Opponent is holding 6 cards with 8 DON!! available -- they either have no playable cards (unlikely at this stage) or are saving counters/events for a defensive turn."
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.