-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathverity.json
More file actions
1 lines (1 loc) · 9.91 KB
/
Copy pathverity.json
File metadata and controls
1 lines (1 loc) · 9.91 KB
1
{"claims":[{"feature_id":"feat:engine.core","id":"clm:engine.core.deterministic","status":"open","tier":"T1","title":"Same seed always produces same game"},{"feature_id":"feat:engine.core","id":"clm:engine.core.formations","status":"open","tier":"T1","title":"All 6 formations initialise 11 players with no overlapping positions"},{"feature_id":"feat:engine.moves","id":"clm:engine.moves.tackle","status":"open","tier":"T1","title":"Tackle success is role-weighted (def 70%, mid 50%, fwd 20%)"},{"feature_id":"feat:engine.moves","id":"clm:engine.moves.intercept","status":"open","tier":"T1","title":"Pass interception uses geometric radius check, not RNG"},{"feature_id":"feat:engine.moves","id":"clm:engine.moves.cooldown","status":"open","tier":"T1","title":"Tackle cooldown prevents re-engagement for 2 turns"},{"feature_id":"feat:engine.moves","id":"clm:engine.moves.followup","status":"open","tier":"T1","title":"Interceptor gets a free follow-up action"},{"feature_id":"feat:engine.tactics","id":"clm:engine.tactics.setable","status":"open","tier":"T1","title":"Tactics shape and movement mode can be changed mid-game"},{"feature_id":"feat:engine.auto-tick","id":"clm:engine.auto-tick.repositions","status":"open","tier":"T1","title":"Players auto-reposition after every non-goal action"},{"feature_id":"feat:engine.replay","id":"clm:engine.replay.roundtrip","status":"open","tier":"T1","title":"Event log can replay a full match to the same final state"},{"feature_id":"feat:gameplay.modes","id":"clm:gameplay.modes.local","status":"open","tier":"T1","title":"Two humans can play on the same screen"},{"feature_id":"feat:gameplay.modes","id":"clm:gameplay.modes.ai","status":"open","tier":"T1","title":"Human can play against aggressiveStrategy AI"},{"feature_id":"feat:engine.auto-tick","id":"clm:engine.auto-tick.defender-shape","status":"open","tier":"T1","title":"Defenders respect tactical shape caps: attack/balanced hold at midfield, defend/ultra-defend hold their line"},{"feature_id":"feat:tick.no-overlap","id":"clm:tick.no-overlap.t1","status":"verified","tier":"T1","title":"No two players share a cell after any auto-tick"},{"feature_id":"feat:engine.deadlock-valve","id":"clm:engine.deadlock-valve.t1","status":"verified","tier":"T1","title":"Ball carrier always has a legal action or auto-turnover fires — game never freezes"},{"feature_id":"feat:web.ui.football-polish","id":"clm:web.ui.ball-animation","status":"open","tier":"T1","title":"Ball travels smoothly on pass/shot every time without teleporting"},{"feature_id":"feat:web.ui.football-polish","id":"clm:web.ui.pitch-markings","status":"open","tier":"T1","title":"Pitch renders corner arcs, goal frames, net crosshatch, and grass stripes"},{"feature_id":"feat:web.ui.football-polish","id":"clm:web.ui.event-fx","status":"open","tier":"T1","title":"Goal, tackle, and save events each trigger distinct visual feedback animations"},{"feature_id":"feat:engine.halftime-swap","id":"clm:engine.halftime-swap.t1","status":"open","tier":"T1","title":"At half-time resumeFromHalfTime mirrors all player positions, flips goal columns and attack directions, clears cooldowns, and gives kickoff to away team"},{"feature_id":"feat:engine.offside","id":"clm:engine.offside.t1","status":"open","tier":"T1","title":"A forward pass to a receiver in the opponent's half with fewer than 2 non-GK defenders between them and the goal line results in offside — possession to opponent GK"},{"feature_id":"feat:engine.interception-probability","id":"clm:engine.interception-probability.t1","status":"open","tier":"T1","title":"Defenders closer to the pass line intercept at higher probability; defenders at the edge rarely intercept"},{"feature_id":"feat:engine.onside-movement","id":"clm:engine.onside-movement.t1","status":"open","tier":"T1","title":"Forwards never auto-advance past the 2nd-last non-GK defender's column when ONSIDE mode is active"}],"context":[],"evidence":[{"artifact_path":"artifacts/engine-tests.txt","id":"evd:engine.core","kind":"test_run","status":"passed","test_id":"tst:engine.core"},{"artifact_path":"artifacts/engine-tests.txt","id":"evd:engine.auto-tick.shapes","kind":"test_run","status":"passed","test_id":"tst:engine.auto-tick.shapes"},{"artifact_path":"artifacts/engine-tests.txt","id":"evd:engine.auto-tick.cb-behind-mids","kind":"test_run","status":"passed","test_id":"tst:engine.auto-tick.shapes"},{"artifact_path":"artifacts/engine-tests.txt","id":"evd:engine.auto-tick.shape-differentiation","kind":"test_run","status":"passed","test_id":"tst:engine.auto-tick.shapes"},{"artifact_path":"matchup/engine/test.ts","id":"evd:tick.no-overlap.200trials","kind":"test_run","status":"passed","test_id":"tst:tick.no-overlap.trials"},{"artifact_path":"matchup/engine/test.ts","id":"evd:engine.deadlock-valve.314pass","kind":"test_run","status":"passed","test_id":"tst:engine.deadlock-valve.suite"},{"artifact_path":"matchup/web/src/components/game/BallToken.tsx","id":"evd:web.ui.ball-animation.review","kind":"test_run","status":"collected","test_id":"tst:web.ui.ball-animation.visual"},{"artifact_path":"matchup/web/src/components/game/PitchMarkings.tsx","id":"evd:web.ui.pitch-markings.review","kind":"test_run","status":"collected","test_id":"tst:web.ui.pitch-markings.visual"},{"artifact_path":"matchup/web/src/components/game/GoalCelebration.tsx","id":"evd:web.ui.event-fx.review","kind":"test_run","status":"collected","test_id":"tst:web.ui.event-fx.visual"},{"artifact_path":"matchup/engine/index.ts","id":"evd:engine.halftime-swap.code","kind":"test_run","status":"collected","test_id":"tst:engine.halftime-swap.unit"},{"artifact_path":"matchup/engine/moves.ts","id":"evd:engine.offside.code","kind":"test_run","status":"collected","test_id":"tst:engine.offside.unit"},{"artifact_path":"matchup/web/dist/assets/index-BQ5di0Qk.js","id":"evd:engine.interception-probability.build","kind":"test_run","status":"collected","test_id":"tst:engine.interception-probability.unit"},{"artifact_path":"matchup/web/dist/assets/index-BW23e0Pi.js","id":"evd:engine.onside-movement.build","kind":"test_run","status":"collected","test_id":"tst:engine.onside-movement.unit"}],"features":[{"id":"feat:engine.core","status":"active","title":"Deterministic game engine with injectable RNG"},{"id":"feat:engine.moves","status":"active","title":"Move system — move, pass, shoot, tackle with role-weighted outcomes"},{"id":"feat:engine.tactics","status":"active","title":"Tactics system — shape (5 options) and movement mode (3 options) per team"},{"id":"feat:engine.auto-tick","status":"active","title":"Auto-tick player repositioning after every action"},{"id":"feat:engine.replay","status":"active","title":"Match replay — record and replay full game event logs"},{"id":"feat:gameplay.modes","status":"active","title":"Game modes — 1v1 local co-op and vs AI"},{"id":"feat:web.ui","status":"active","title":"Web frontend — React 19, Vite, shadcn/ui, PWA"},{"id":"feat:tick.no-overlap","status":"active","title":"Auto-tick chain-block overlap prevention"},{"id":"feat:engine.deadlock-valve","status":"active","title":"Deadlock safety valve — forced turnover when carrier has no valid actions"},{"id":"feat:web.ui.football-polish","status":"active","title":"Football UI visual polish — pitch markings, player tokens, ball animation, event effects"},{"id":"feat:engine.halftime-swap","status":"active","title":"Half-time end swap — teams mirror positions and flip attack direction for second half"},{"id":"feat:engine.offside","status":"active","title":"Simplified offside rule — forward passes to receivers with fewer than 2 non-GK defenders between them and the goal line are called offside"},{"id":"feat:engine.interception-probability","status":"active","title":"Distance-tiered interception probability"},{"id":"feat:engine.onside-movement","status":"active","title":"ONSIDE movement mode — forwards auto-capped at the offside line"}],"pushes":[],"releases":[],"repo_id":"repo:matchday","schema_version":"0.1.0","tests":[{"claim_id":"clm:engine.auto-tick.repositions","id":"tst:engine.core","kind":"unit","path":"matchup/engine/test.ts","status":"pending"},{"claim_id":"clm:gameplay.modes.ai","id":"tst:simulation.ai","kind":"unit","path":"matchup/simulation/run.ts","status":"pending"},{"claim_id":"clm:gameplay.modes.local","id":"tst:gameplay.modes.local","kind":"unit","path":"matchup/web/src/components/game/GameScreen.tsx","status":"pending"},{"claim_id":"clm:engine.replay.roundtrip","id":"tst:engine.replay","kind":"unit","path":"matchup/web/src/lib/replay.ts","status":"pending"},{"claim_id":"clm:engine.auto-tick.defender-shape","id":"tst:engine.auto-tick.shapes","kind":"unit","path":"matchup/engine/tick.ts","status":"pending"},{"claim_id":"clm:tick.no-overlap.t1","id":"tst:tick.no-overlap.trials","kind":"unit","path":"matchup/engine/test.ts","status":"passing"},{"claim_id":"clm:engine.deadlock-valve.t1","id":"tst:engine.deadlock-valve.suite","kind":"integration","path":"matchup/engine/test.ts","status":"passing"},{"claim_id":"clm:web.ui.ball-animation","id":"tst:web.ui.ball-animation.visual","kind":"integration","path":"matchup/web/src/components/game/Pitch.tsx","status":"pending"},{"claim_id":"clm:web.ui.pitch-markings","id":"tst:web.ui.pitch-markings.visual","kind":"integration","path":"matchup/web/src/components/game/PitchMarkings.tsx","status":"pending"},{"claim_id":"clm:web.ui.event-fx","id":"tst:web.ui.event-fx.visual","kind":"integration","path":"matchup/web/src/components/game/GoalCelebration.tsx","status":"pending"},{"claim_id":"clm:engine.halftime-swap.t1","id":"tst:engine.halftime-swap.unit","kind":"unit","path":"matchup/engine/index.ts","status":"pending"},{"claim_id":"clm:engine.offside.t1","id":"tst:engine.offside.unit","kind":"unit","path":"matchup/engine/moves.ts","status":"pending"},{"claim_id":"clm:engine.interception-probability.t1","id":"tst:engine.interception-probability.unit","kind":"unit","path":"matchup/engine/test.ts","status":"pending"},{"claim_id":"clm:engine.onside-movement.t1","id":"tst:engine.onside-movement.unit","kind":"unit","path":"matchup/engine/test.ts","status":"pending"}]}