Skip to content

docs(specs): add functional specs for ten roadmap initiatives - #1293

Merged
KaelSensei merged 1 commit into
devfrom
chore/docs/functional-specs-20261108
Nov 8, 2026
Merged

KaelSensei merged 1 commit into
devfrom
chore/docs/functional-specs-20261108

Conversation

@KaelSensei

Copy link
Copy Markdown
Owner

Why

The roadmap states what each initiative must achieve. Nothing stated what it does, so an agent picking one up had to invent the product decisions — and three scheduled agents now pick work from it every day.

These ten specs close that gap. Each follows the house format already used by commander-power-meter.md, and each carries a dated market sweep of the whole category plus a verified account of what the code does today.

What the sweep found

Broad, not limited to the named incumbents. Three findings shaped every spec:

Generation is commoditised; verification is not. Six products sell conversational Commander building (ManaTap, Farseek, DeckCheck, MTG Master, ManaForge, CommanderSalt), several free. DeckCheck's own support page documents that its AI results vary between runs. None publishes which claims were checked against card data and which are model reasoning. That is I-02's opening, and it is a presentation change over a validator that already passes its tests.

Collection-to-deck is crowded; the ownership detail is not. SuperBrew ($6/mo), DeckFinder, ManaBuilder, MTG Agents and ManaForge all rank decks by collection coverage. None states that a copy already committed to another of your decks is excluded, and none separates Oracle identity (legality) from printing identity (price).

Reproducibility is absent category-wide. ManaTap, ScrollVault (50 000 hands in WASM), MyDeckStats, KrakenTheMeta and Archidekt all simulate thousands of hands. Not one publishes a seed, an interval or a sample size. For a product positioning on checkable output, that is the widest opening found.

Two corrections to earlier assumptions

Both came from reading the sources rather than trusting the roadmap's framing:

  • I-14. "Show the Scryfall query before it runs" is already shipped by OffMeta, which also lets the player edit it. What remains unoccupied is deck context surviving an edited query, and French — every tool found is English-only. The spec scopes to those two.
  • I-20. Archidekt collaborators, the roadmap's reference, grants direct real-time write access: a collaborator adds, removes and edits cards exactly as the owner does. That is shared write, not review. Propose-and-accept exists nowhere in the category, so the risk here is overbuilding a permission system for an unvalidated workflow, not falling behind.

The specs

Spec Initiative Why it exists
Checkable AI copilot I-02 Competitors validate or explain; doing both visibly
Visual direction I-13 The UI audit, measured, and the register chosen
Verifiable natural-language search I-14 Deck context and French, not the translation
Rule 0 sheets and pod profiles I-15 Everyone classifies a deck; nobody records a pod's agreement
Decks buildable from a collection I-16 Free copies, printing-level cost, candidate provenance
Precon path and tiered upgrades I-17 The market publishes articles; none is a reversible operation
Per-deck radar of new cards I-18 Spoiler coverage is universal and entirely set-centric
Offline game-night viewing I-19 One deck at the table, not an 80 000-card database
Collaborative review I-20 Propose-and-accept exists nowhere
Reproducible probability bench I-21 A seed, an interval, and a two-snapshot verdict

I-13 records the UI audit

Measured on a local dev server at 1440×900 and 390×844, contrast computed from src/styles/globals.css:

  • No card art anywhere. The hero preview is four empty rectangles; on mobile it is hidden entirely.
  • design-system.md describes tokens the code does not have — grep --gold src/ returns 0 results.
  • A dead 3D stack: three, gsap, @react-three/*, @types/three, all with 0 imports; the README still advertises a 3D landing.
  • Borders fail WCAG 1.4.11: 1.51:1 dark and 1.33:1 light against a 3:1 requirement; --accent as text is 3.09:1 against 4.5:1, used at MoxfieldProfileResults.tsx:102 on text-xs.
  • What works and must survive: text contrast at 16.09:1 and 8.06:1, and a light theme better balanced than the dark one.

Built for the automations

Every spec ends with a delivery-slices table carrying dependencies. That is the part the three daily agents need: each slice is independently reviewable, and the dependency column says which cannot start yet. Without it, two agents can pick overlapping slices on the same day — which already happened once this week.

Scope discipline

Documentation only. Per CLAUDE.md this is a chore/docs PR because docs/product/roadmap.md is touched (ten one-line spec links plus a pointer to the new directory). No initiative status changed and no scope box was ticked — a spec is a plan, not a record.

docs/project/changelog.md and docs/project/progress.md are untouched.

Verification

  • npx tsc --noEmit — clean
  • pnpm lint — zero warnings
  • TZ=UTC pnpm test — 344 files, 3509 tests passing
  • prettier --write on all eleven new files
  • Every relative link in docs/product/specs/ resolves to an existing file (checked programmatically)

SKIP_E2E=1 on the push: Docker is unavailable in this environment and the diff is Markdown only.

For review

Competitor rows are claims read from each product's public pages on 2026-11-08, not evidence. Each spec says so, and each should be revalidated before a row justifies implementation.

🤖 Generated with Claude Code

The roadmap says what each initiative must achieve. Nothing said what it
does in detail, so an agent picking up an initiative had to invent the
product decisions. These ten specs close that gap, each in the house
format already used by commander-power-meter.md.

Every spec carries a dated market sweep of the whole category, not only
the named incumbents, and a verified account of what the code does today.

Three findings from the sweep shaped the specs:

- Generation is commoditised, verification is not. Six products sell
  conversational Commander building; one documents that its own results
  vary between runs. None publishes which claims were checked against
  card data and which are model reasoning.
- Collection-to-deck is crowded. SuperBrew, DeckFinder, ManaBuilder,
  MTG Agents and ManaForge all rank by coverage. None excludes copies
  already committed to another of the player's decks, and none separates
  Oracle identity for legality from printing identity for price.
- Reproducibility is absent category-wide. Five hand simulators report
  numbers without a seed, an interval or a sample size.

Two corrections to earlier assumptions, both from reading the sources:

- I-14's "show the query before it runs" is already shipped by OffMeta.
  What is unoccupied is deck context surviving an edited query, and
  French. The spec scopes to those.
- I-20's reference, Archidekt collaborators, grants direct real-time
  write access, not review. Propose-and-accept exists nowhere in the
  category, so the risk is overbuilding, not falling behind.

I-13's spec records the UI audit: no card art anywhere, a design system
document describing tokens the code does not have, a dead 3D stack with
zero imports, and borders at 1.51:1 and 1.33:1 against a 3:1 requirement.

Each spec ends with delivery slices and their dependencies, so the three
scheduled agents can take work without colliding.

Verified: tsc clean, lint clean, 3509 tests passing, every relative link
in the new directory resolves.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Nov 8, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
magic-ai-builder Ready Ready Preview Nov 8, 2026 3:20pm UTC

@chatgpt-codex-connector

Copy link
Copy Markdown
Codex Review Summary: ❌ Failed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ❌ Failed 2026-11-08T15:18:22.368291Z
We couldn’t complete this review. Comment @codex review to try again.
da1f084 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Nov 8, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 30f77d2e-4710-44a9-8078-b41b41b3804e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@sonarqubecloud

sonarqubecloud Bot commented Nov 8, 2026

Copy link
Copy Markdown

@KaelSensei
KaelSensei merged commit b7585fd into dev Nov 8, 2026
7 checks passed
KaelSensei added a commit that referenced this pull request Nov 8, 2026
…ives (#1294)

Follows #1293, which landed the ten specs for the committed initiatives.
That PR was merged before this work was pushed, so it ships separately.

The roadmap ended at I-21. Three agents take work from it every day, so
the pipeline needed depth, and depth is only useful if it is grounded.
Six initiatives, each from a verified gap in a second market sweep
covering angles the first pass missed - Discord, accessibility, cEDH
meta sources, offline apps, collection apps and localisation:

- I-22 Verification as a public surface. Six products generate decks and
  none publishes a verification contract. The validator is already
  deterministic and /api/v1 already exists.
- I-23 The pod's own surface. Otterly MTG, Mana Grove and an open-source
  Commander bot already answer bracket questions in Discord. None carries
  a pod's declared Rule 0 agreement, which is I-15's artifact.
- I-24 Decks a screen reader can play from. Blind players adapt cards
  with NFC tags read by a phone; braille fails because marked cards risk
  disqualification. No deckbuilder emits output shaped to be heard.
- I-25 A third locale, chosen on evidence. Every AI deckbuilder found is
  English-only. Nine catalogues sit dormant here, and the spec refuses to
  pick from catalogue convenience.
- I-26 Collections arriving from elsewhere. Scanning is already a
  non-goal, so import is the only honest way a collection is populated.
- I-27 Learning while building. Tools assume the vocabulary and teaching
  lives in video. Nobody explains a rule at the moment it fires, and the
  repo already carries mtg-rules and mtg-learn skills.

Four things the sweep ruled out are recorded so the next pass does not
re-derive them. The most useful: tournament win rates stay blocked.
EDHTop16, the best candidate, publishes commander meta share and entry
counts but no win rates, no match-level results and no public API;
MagicMeta and LucidPuzzle derive their tiers from it.

The 2027 specs are deliberately less detailed than the Next-horizon ones.
Committing to interface detail eighteen months early produces precision
that ages rather than guides.

Six and not twenty, stated in the roadmap: beyond these the sweep stopped
producing gaps this product is positioned to fill, and inventing more
would fill a roadmap without filling a pipeline.

Verified on current dev: tsc clean, lint clean, 3510 tests passing,
prettier clean, every relative link resolves.

Co-authored-by: Codex <agent-local@users.noreply.github.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

This branch was successfully deployed

1 active deployment
Preview — da1f0848 Deployed Nov 8, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant