v10.0.0 — clean-slate methodology rebuild
What changed
A clean-slate rebuild of the methodology layer, with five dogfood fixes that tighten the staged-contract pipeline, a test-driven narrative reset, and a release workflow with trusted PyPI publishing.
Pipeline fixes (dogfood)
model-data-schemastate (plan entry) — the Data Architect authorsdata-model.mdas a binding input to every downstream plan state. Workload is classified OLTP / OLAP / hybrid; every field is traced to a stakeholder need. No more "we built the contract surface, then discovered the schema was wrong."simulate-contractsis now a compiler, not a ceremony. It walks the contract surface hop-by-hop, journals one observation per hop, runs a spec-diff (catches what two implementations could both satisfy), and surfaces build-implied gaps (effect-without-mechanism, side-effect-not-observed, model-disagreement) before any source.pyexists.review-test-stubsgate adds a vacuous-assertion sweep (five named smells: hasattr-only, no-op helper, lower-bound-only, constant-satisfiable, tautology) and an inverted-traceability (scope-minimal) check — every test maps to a finding, or it goes.- Simplicity is a traced requirement. Each interview funnel level asks a simplicity question (smallest surface, speculative vs grounded, load-bearing vs collapsible);
consolidate-interviewdrops speculative items before they become contracts. - Replay is unambiguous. HTTP adapters replay through
vcr.use_cassette(); CLI subprocess tests usepytester; library-boundary adapters (ddgs, primp) usemonkeypatch. The skill layer names the kind and the fixture. - Journal template at
.templates/cache/journal.md.template— first-pass emptiness is expected; three sections match the three writer triggers.
Template & narrative
- Test-driven narrative. README, About, and
pyproject.tomldescription reframed from spec-driven to test-driven ("Tests are the contract"). conftest.pymoved totests/— the pending-marker hook is test-only; root placement was a template-portability holdover.- Branding assets (
docs/assets/{banner,logo}.svg) pulled back into the template. - Explicit
[build-system](setuptools≥68) per PEP 517;[tool.setuptools] packages = [](template ships no package; wheel is metadata-only for PyPI discoverability). release.ymlworkflow — on release published,uv build+ trusted-publishing to PyPI (OIDC, no token) + upload wheel/sdist to the release assets.
Internal
- Plan flow v1.6.0 (new
model-data-schemaentry state). - New skill:
model-data-schema. New knowledge:architecture/data-modeling.md,methodology/simplicity-discipline.md. - Gate evidence keys:
vacuous-assertion-free,scope-minimal,spec-diff-clean.
Full diff: v9.4.0...v10.0.0