Commit 95cf238
committed
notes(plans[astro]): Strengthen Phase 0 spike (§2) and OQ closures (§13)
why: Pass-1 review surfaced silent regressions and missing evidence
in the two highest-leverage sections of the plan: Phase 0's spike
exit criteria and §13's open-question dispositions. Three line
citations were wrong, the Spike A case set sampled only gp-sphinx
packages (missing the libtmux target consumer), Q9 framed MyST/MDX
as a binary user choice when Astro's MDX integration supports
both formats day-1, and Q21-23 (Vitest, pnpm, Zod 4) were inherited
from tony.sh without recorded rationale. A reproducibility blocker
in the spike command itself was uncovered.
what:
- Correct ObjectEntry citation to sphinx/domains/python/__init__.py:60-65
as a 4-field NamedTuple (was unverified); document that .fjson body
must come from HTML rendering for any field beyond ObjectEntry's
routing metadata
- Correct libtmux Server.__init__ citation to server.py:134-144
(was :144-153)
- Correct FixtureMeta to 16 fields at _models.py:35-90 (was 17)
- Correct _InventoryItem to sphinx/util/inventory.py:245-264 (was
pointing at usage site and parent class)
- Add reproducibility gate to Phase 0: detect the
sphinx_gp_opengraph context["pagename"] vs serializinghtml
current_page_name mismatch before scoring; document that
sphinx_gp_sitemap is unaffected (uses app.env.found_docs)
- Expand Spike A case set: 6 gp-sphinx + 4 libtmux (8/10 bar, with
libtmux must-pass) so the original target consumer's
classes/dataclasses/enums/fixtures are evidence on day 1
- Split Spike A into A1 (-b json body export) + A2 (doctree walk)
to disambiguate where structured data actually lives
- Split Spike B Q-Sem-3 into 3a (rg-able body grep) + 3b (argparse
+ entry-point load) so the gate is mechanical, not judgment-
dependent
- Replace 4-cell decision matrix with 5-cell including Deferred-H,
bound by an explicit dated Phase-4 re-score; "missing date
invalidates verdict" guard
- Dissolve Q9 binary: both .md and .mdx first-class day-1 via
extendMarkdownConfig: true (mdx/src/index.ts:114). Residual
user decision narrowed to single-format-enforcement vs
both-first-class, default both
- Replace "5-min flip" framing with honest reversibility cost:
CommonMark = 5 min, MyST colon_fence/role pages = 15 min - hours
per page
- Complete the MDX flip recipe with addContentEntryType requirement
(mdx/src/index.ts:59-78) and the missing pnpm add @astrojs/mdx
step
- Harden Q11 (mirror AWS) reasoning: drop the appeal-to-consensus
sentence, add a verified second leg (tony.sh deploy.yml uses
S3+CloudFront+Cloudflare for an Astro build)
- Close Q21 (Vitest), Q22 (pnpm via Corepack), Q23 (Zod 4 via
Astro's exported boundary) with both load-bearing AND rejection
rationales to defeat the cargo-cult failure mode
- Discard fabrications surfaced and rejected during synthesis:
no t.Self fluent chains in libtmux beyond window.py:116; zero
NamedTuples; zero async functions1 parent 5b750aa commit 95cf238
1 file changed
Lines changed: 1158 additions & 242 deletions
0 commit comments