bjschafer / bjschafer/ledgermain
deliberately-not-covered content (reference)
- Dominant language
- TypeScript
- Stars
- 1
- Forks
- 2
- Avg merge
- 5h 39m
- Merged PRs (30d)
- 8
Description
# Deliberately-not-covered content (reference)
What Ledgermain does not cover today, so gaps are known rather than surprising. Nothing here blocks play. 12 player-facing gaps below, plus 6 pipeline notes.
Every entry is something a future version could close. Where the sheet stops because only the GM knows the answer, that's the product's boundary rather than a gap, and it isn't listed.
Generated from `apps/web/src/model/coverageNotes.ts` (the "What's Not Covered" panel in Settings). To update: edit that file, then run `bun run coverage:issue --write`.
## Browsable, not modeled
In the picker with its full rules text, but no live number moves. Pickers badge the modeled entries with an "M".
### Prestige classes
108 vendored splatbook prestige classes carry prereqText only, with no structured prereqs. Two print their own spells-per-day table rather than advancing an existing class, a shape Class.castingAdvancement cannot represent.
In the app
All of them are in the class picker, showing their full rules text. Outside the core rulebook ones, a class's entry requirements read as advice rather than something the sheet enforces. The Prophet of Kalistrade and the Red Mantis Assassin cast from a short spell list of their own, which the sheet does not give them.
### Class picker lists (rage powers, hexes, arcana, talents, exploits, tricks, discoveries, ki powers, style strikes, bold stares, phrenic amplifications, revelations, spirits, disciplines, implements, orders, patrons, aspects, wild talents)
Every list, the class-subsystem tables included, sits at full vendored parity (rage powers 243, rogue talents 234, alchemist discoveries 168, witch hexes 104, down to monk style strikes 15), so the gap is promotion rather than coverage: only 32 rage powers and a scattering of talents and discoveries carry live changes[]. Candidates blocked on a missing mechanism are recorded inline in their table files.
In the app
Every published entry in these lists is browsable, searchable, and written up with its level requirement flagged. Entries that move numbers on your sheet automatically are marked with an "M". Most entries are not: they show their rules text for you to apply at the table.
### Archetypes
1,425 vendored archetypes; 396 carry at least one structured feature effect. The remaining features are structural or prose-only, so the gap is promotion rather than coverage.
In the app
Every published archetype is in the picker, and picking one swaps your class features and strikes through what it trades away. Only some archetype features move numbers on your sheet automatically: the rest show their rules text for you to apply at the table.
### Familiars
47 species and 4 templates modeled. The published expanded Improved Familiar table exceeds 90 rows; the remainder lack authored stat blocks, the kami familiars the ninja's spiritual companion trick names among them. Familiar archetypes are a separate absent subsystem.
In the app
The improved familiar catalog covers the common picks, not the whole published list: a species missing from the picker has no stat block to track, and a familiar archetype (a sage, a mascot, an emissary) is not modeled at all.
### Eidolon evolutions
81 evolutions are pickable against the pool; 21 move numbers in the eidolon derivation. The other 60 are display kind: event- and action-shaped effects (Poison, Grab, Trample, the spell-like Magic chain), per-attack riders (Improved Damage), and effects with no field on the eidolon block (Fast Healing, Spell Resistance, Skilled's per-skill bonus).
In the app
Every evolution is pickable and point-costed on your eidolon, but only the structured kinds (extra attacks, armor, ability increases, size, speed, energy resistance and immunity, damage reduction) change its derived stat block. The rest, like Grab, Poison, or Fast Healing, show as picked abilities with rules text for you to apply at the table.
### Witch patrons
52 of 61 patrons carry a parsed 9-spell progression. The 9 unique patrons are templates over a chosen theme, and the doc has no field for that sub-choice, so their granted hex, drawback, theme restriction and per-level spell overrides stay display-only.
In the app
The published patrons are all in the picker with their bonus spells. The nine "unique" patrons are shown but not applied: the hex one grants, the theme you pick under it, and the spells it swaps in are all yours to apply by hand.
### Magic items
1,090 entries carry structured changes[]; the imported catalog adds 3,832 whose effects exist only as prose. The gap is promotion rather than coverage, and the weapon and armor special ability catalog sits on the same axis: keen is the only entry that moves numbers.
In the app
The full published catalog is in the gear picker: wondrous items, rings, rods, staves, artifacts, and named magic weapons and armor. Entries whose effect the sheet applies while equipped are marked with an "M". Most are not: they carry their rules text for you to apply at the table, and equipping one moves no numbers.
### Special material prices
5 special materials in the picker, none priced: the vendored armor and weapon entries carry a single base price and the real surcharges are per weight class or per pound, so they would have to be hand-authored alongside the material table.
In the app
Mithral, adamantine, cold iron, darkwood, and alchemical silver carry no price in the published data the sheet reads, so a picker quotes a suit or weapon made of one at its ordinary price. The surcharge is yours to take off your coin by hand.
### Metamagic
20 of the 84 vendored metamagic feats carry a structured spell-line transform; the rest turn on a component, action type, or target eligibility the spell data does not express.
In the app
Most metamagic feats change something the sheet has no number for: a bouncing spell's redirect, an elemental spell's swapped damage type, a quickened spell's action. Those stay rules text on the feat.
### Monk flurry weapon lists
The flurry line keys off the vendored monk weapon group plus the synthesized unarmed strike, so an archetype that swaps the list, or a non-monk class granted flurry as a monk of its own level, has no way to say so.
In the app
An archetype that trades what a flurry may be swung with is not reflected in the flurry line: a zen archer's bow, a far strike monk's thrown weapons, and a sacred fist warpriest's fists carry no flurry sequence of their own.
### Combat stance feats
89 vendored feats tagged Combat and Style surface as stance toggles; 78 carry no structured changes, being scoped to one weapon, gated on a pool that must hold points, or shaped as an event. Crane Riposte and Crane Wing are tagged Combat without Style, so they do not surface as toggles at all, and their riders have no entry.
In the app
Most Style feats toggle as a reminder without moving numbers: only a stance whose whole benefit is a flat bonus is applied. Crane Riposte's smaller attack penalty and Crane Wing's dodge bonus against melee stay rules text while Fighting Defensively is on.
### Character traits
1,981 vendored and searchable; 628 apply live effects, 71 more once their choose-one pick is made, plus the 28 hand-authored core entries. The remaining ~1,280 are situational prose; 58 hold an unconditional number blocked on an axis the sheet lacks (multi-select or any-skill picks, caster-level and per-day-pool numbers), inventoried in the engine's trait table.
In the app
The full published trait catalog is searchable in the picker, and a trait whose benefit carries structured numbers or a class-skill grant applies to your sheet automatically; a trait that asks you to choose a skill offers that choice on the trait itself. The rest show their benefit as text to apply at the table. Anything still missing can be added as a homebrew trait.
## Pipeline notes
No player-facing surface, so these aren't in the Settings panel.
### Timed conditions
No condition in the catalog except the rage/bloodrage fatigue aftermath states its duration in rounds structurally, so every other countdown starts from a number typed at the table rather than from data.
### Immunity grants
Features and traits that grant an immunity have no display target: the derived sheet carries no immunities block, so every immunity grant stays prose.
### Skill substitutions
Rules letting one skill or ability score stand in for another on specific checks have no engine route, so the substituted check keeps its default basis.
### Precision and nonlethal damage kinds
Damage lines carry no precision or lethality axis, so effects keyed to those kinds (precision riders, precision-immunity interactions, lethal-to-nonlethal conversions) have no target.
### Casting-time metamagic waivers
Abilities whose whole benefit is removing the full-round action a spontaneous caster pays for metamagic have no target: a cast carries no action-economy line to move.
### Virtual feat prerequisites
Abilities that count as a feat or as another class's levels for prerequisite purposes never reach the prerequisite checker, which reads only feats actually owned or granted.
---
When something on this list comes up at a real table, file an issue for that item and reference this one. This issue stays open as a reference.
Contributor guide
Research direction
This is a generated reference issue rather than a standalone change request. If a specific gap needs updating, edit apps/web/src/model/coverageNotes.ts and run bun run coverage:issue --write. Done means the regenerated issue reflects the source; do not hand-edit this issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- bun, typescript
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 1/5
- Estimated time
- Under an hour
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100