docs/SCRYFALL-GAP.md plans work against files #107 deleted, and work already done
- Lenguaje dominante
- TypeScript
- Estrellas
- 1
- Forks
- 0
- Merge medio
- 12 h 8 min
- PR fusionados (30 d)
- 276
Descripción
`docs/SCRYFALL-GAP.md` presents itself as a description of `main` and a plan of work to do. It is neither, since #107 — and unlike a stale sentence in a reference doc, a stale *plan* actively sends the next person somewhere.
## The document's own claim
> This document is a comparative analysis of Optfall as it stands on `main` against Scryfall, and a remove/update/extend plan to close the distance.
It is read as a to-do list. That is the problem.
## The work item that is both impossible and already finished
`docs/SCRYFALL-GAP.md:165-168` still lists, as work to close the gap:
> - **One of the two search islands.** `RulesSearch.svelte` (593 lines) and `CardSearch.svelte` (551) are near-duplicates, and both carry a comment naming the same two missing primitives: `SearchField` and `ResultRow`. Extract them into `optfall-components` and the duplication goes with them.
Both halves of that are now false, in opposite directions:
- **The source files do not exist.** PR #107 (*Phase 6 layer 5b: delete Astro and Svelte*) deleted `apps/site/src/components/RulesSearch.svelte` and `apps/site/src/components/CardSearch.svelte`.
- **The work it proposes is done.** `SearchField` and `ResultRow` are not "missing primitives" — both are in `PRIMITIVES` (`packages/components/src/index.ts:50-51, 65-66`) and both are exported from `packages/components/src/react/index.ts:34-35`. They are also demonstrated in the `design-system/` workbench as of #154.
So a contributor picking this up goes looking for two deleted files in order to perform an extraction that has already happened. The failure is not that the document is untidy — it is that it costs someone a session before they work out that it is describing a repository that no longer exists.
## The rest of it
Three more references to files #107 deleted, on `main`:
| Line | Reference | Status |
|---|---|---|
| `19` | "`apps/site/src/pages/index.astro` mounts `RulesSearch`" | Deleted |
| `165-166` | `RulesSearch.svelte` / `CardSearch.svelte` | Deleted — **the plan item above** |
| `395` | "that principle is already written into `index.astro`'s own header comment" | Deleted |
Not problems, listed so nobody re-reports them: `592` and `607` sit inside a retrospective blockquote and a struck-through withdrawn claim respectively. Both are correctly historical and should stay exactly as they are.
**PR #157 has already fixed `:19`** as part of an adjacent sweep. The plan item at `165-168` and the reference at `395` are untouched, and the plan item is the one that matters.
## Why an issue and not a doc edit
This is the same failure that produced #131, one document over.
#131 was filed against a Storybook/Svelte setup that #107 had deleted ten hours earlier, because the analysis behind it read a pre-#107 view of the repo. #154 then had to open by explaining why it was not doing what its own issue asked for. `SCRYFALL-GAP.md` is the *same class of artefact* — an analysis-plus-plan written against a snapshot — and it has been carrying the same kind of error for longer, unnoticed, in a document whose entire purpose is to tell people what to build next.
The general shape, worth naming because it will happen again: **a framework removal invalidates every planning document that referenced the framework's files, and nothing fails when it does.** Tests do not cover prose. `#107` was a careful, well-executed deletion — it corrected `check-tokens.ts`, `check-dev-server.ts`, `parity.test.ts` and the tsconfigs, all of which had mechanisms that would break. Prose had no mechanism to break, so it was not corrected, and it is the artefact people read *first*.
## What closing this looks like
Not a find-and-replace. The document needs a pass by someone deciding, per section, which of three things it is:
1. **Still true** — leave it.
2. **Superseded** — the gap it names has been closed (the `SearchField`/`ResultRow` item is the clear case). Mark it done rather than deleting it, so the record shows the plan worked.
3. **Invalidated** — the analysis rested on Astro/Svelte specifics that no longer apply, so the *question* may still be live even though the described mechanism is gone. Re-ask it against the current stack rather than silently dropping it.
Worth considering alongside it: a note in the document's own header recording which commit it was written against, so the next framework-scale change has an obvious trigger to re-read it. `PHASE-0-STATUS.md` and `PHASE-2-STATUS.md` already do this by opening with "Written 2026-08-08" / "Written 2026-08-10" and are self-marking as a result; `SCRYFALL-GAP.md` claims the present tense instead, which is what makes it misleading rather than merely old.
## Related
- #107 — deleted the files this document still plans against
- #131 — the same stale-snapshot failure, which produced an issue for tooling that did not exist
- #154 — added `SearchField`/`ResultRow` workbench cards; its body documents the #131 premise problem
- #156 — a third artefact invalidated by #107 (the custom-element export), found the same way
- #157 — fixed `:19` here as part of an adjacent doc sweep
---
Found while completing the documentation sweep for #154.
Guía de contribución
Línea de trabajo
Start with docs/SCRYFALL-GAP.md and compare its claims with the changes in PR #107, especially the deleted Astro/Svelte files and the current SearchField and ResultRow exports in packages/components/src/index.ts and packages/components/src/react/index.ts. Review the affected sections and decide whether each is still true, superseded, or invalidated. Done means the stale plan and references are corrected, completed work is marked, and the document records its source snapshot.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- typescript
- Área
- documentation
- Tipo de issue
- Documentación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Tranquilo
- Claridad
- Bien especificado
- Aptitud para principiantes
- 70/100