Found while reviewing astra-theme rendering against the DESI DR1 BAO prototype (LightconeResearch/astra-theme#2).
For a placed decision (:::{astra} <scope>.decisions.<id>) the plugin emits:
- a
heading carrier (class: astra-decision, identifier: decision-<id>), and
- the neutral fallback as sibling nodes — a stock
details/summary dropdown (" — selected: ").
A rich theme overrides the carrier and renders the full decision panel from the store — but the fallback siblings still render, so readers see the decision twice (rich panel + gray dropdown right under it). Findings have the same shape: the carrier heading is followed by sibling notes/scope paragraphs and an evidence dropdown, all of which repeat what the rich finding card already shows.
The theme can hide .astra-decision + details.myst-dropdown with CSS as a stopgap, but the finding fallback siblings are unclassed paragraphs and can't be safely suppressed.
Proposal: nest the neutral fallback inside the carrier node (as its children), so a rich theme replacing the carrier automatically replaces the fallback, and neutral themes render the children as today. Same pattern the output/insight carriers already follow — those don't double-render.
Found while reviewing astra-theme rendering against the DESI DR1 BAO prototype (LightconeResearch/astra-theme#2).
For a placed decision (
:::{astra} <scope>.decisions.<id>) the plugin emits:headingcarrier (class: astra-decision,identifier: decision-<id>), anddetails/summarydropdown (" — selected: ").A rich theme overrides the carrier and renders the full decision panel from the store — but the fallback siblings still render, so readers see the decision twice (rich panel + gray dropdown right under it). Findings have the same shape: the carrier heading is followed by sibling notes/scope paragraphs and an evidence dropdown, all of which repeat what the rich finding card already shows.
The theme can hide
.astra-decision + details.myst-dropdownwith CSS as a stopgap, but the finding fallback siblings are unclassed paragraphs and can't be safely suppressed.Proposal: nest the neutral fallback inside the carrier node (as its children), so a rich theme replacing the carrier automatically replaces the fallback, and neutral themes render the children as today. Same pattern the output/insight carriers already follow — those don't double-render.