andreagrandi / andreagrandi/draftomen
Card capability schema v2 with structured mechanism parameters
- Dominant language
- Python
- Stars
- 0
- Forks
- 0
- Avg merge
- 1h 18m
- Merged PRs (30d)
- 197
Description
## Problem
Card-capability extraction stores only a coarse role label per capability, so pair compatibility cannot be judged without a model call per pair. This forces ~1117 validation calls per set (HOB), the dominant enrichment cost.
## Proposed change
Extend the capability record with structured fields - action (what the card does), zone (battlefield/graveyard/hand/exile), qualifier (restrictions like nontoken, creature type, mana value) - with prompt, response schema v2, and strict parser validation. Bump the card-capability contract version (invalidates stored card responses; accepted re-pay).
## Acceptance Criteria
- [ ] AC1: Every extracted capability carries non-empty action and zone; parser rejects v2 responses missing them
- [ ] AC2: HOB card re-analysis reproduces the benchmark's card-derived capability set (gate: test_benchmark.py unchanged)
- [ ] AC3: Contract version bump invalidates old stored card work (resume re-pays cards, reuses guide)
- [ ] AC4: Response schema id/name/prompt id versioned as v2 with pinned constants
## Dependencies
None
## Implementation classification
- **Estimated size:** M
- **Orchestration risk:** High
- **Reason:** Public response-contract change across prompt, parser, and store decode.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with test_benchmark.py and trace the prompt, response schema, strict parser validation, and store-decode paths described in the issue. Verify that v2 records require action and zone, the contract constants invalidate stored card work while reusing the guide, and the unchanged benchmark reproduces the expected capability set.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100