Skip to content

docs: epythet WP6 sweep — repair, coverage, README, docsrc cleanup - #32

Merged
thorwhalen merged 5 commits into
masterfrom
docs/epythet-sweep
Sep 15, 2026
Merged

thorwhalen merged 5 commits into
masterfrom
docs/epythet-sweep

Conversation

@thorwhalen

Copy link
Copy Markdown
Member

WP6 documentation sweep for front (i2mint/epythet#16). A prior high-effort session left partial, unreviewed work on this branch (see the epic's "Course correction" comment); this session reviewed that work line by line against the behaviour-claim policy and the known epythet repair defect classes (i2mint/epythet#27/#28), then continued the sweep to completion.

Review of the prior partial work

All 15 files of the prior commit (043b4bd) were docstring coverage/correctness/completeness additions, not mechanical repair output, so the #27 defect classes (box-drawing lines, Google-section-body rewrites, bare # headings, etc.) didn't apply. Verified instead by:

  • Running every doctest added or touched (pytest --doctest-modules): all pass.
  • Spot-checking every :raises: claim against an actual raise in the source.
  • Running an independent Opus adversarial-review pass over the diff, which flagged one real issue (see below) and several concerns that verified as unfounded once checked against the full source (e.g. an apparent RuntimeError/KeyError mismatch between two different functions — both are correct for their own implementation).

Nothing was reverted; the prior work was sound.

What this session did

  • Coverage: added docstrings to the three __call__ methods Ruff flagged as D102 (Crudifier.__call__, FrontElementBase.__call__, IsInstanceOf.__call__); removed a stray D202 blank line in state.py. D105/D107 (other dunders) are left undocumented per the docstring-style skill — they aren't gated.
  • Correctness fix from the adversarial review: mk_mall_of_dill_stores's docstring claimed rootdir defaults to "a fresh temporary directory" — verified by running it that mk_tmp_dol_dir("crude") actually returns the same stable path on every call. Fixed the claim.
  • README: rewritten. The old README described a class hierarchy (AppMakerBase, ElementTreeMakerBase, NamedContainerBase) that no longer exists anywhere in the package — replaced with a runnable example against the current API (AppMaker, SpecMakerBase, ElementTreeMaker, FrontContainerBase/FrontComponentBase), verified by executing it. Added the "For AI agents" section via epythet ai-readme-check --write per local policy (add, humour on, agents first).
  • docsrc/: was a committed, stale legacy epythet template (no hand-written pages) — deleted and added to .gitignore; CI regenerates it on every build via the existing wads reusable-workflow Pages job.
  • docs/: a stale, tracked, pre-built HTML output directory (from an old Sphinx workflow) — deleted; already gitignored (docs/*) and superseded by the standard gh-pages job in .github/workflows/ci.yml.
  • Skill/agent inventory: front ships no skills or subagents (skills_location: "none"), recorded to the local fleet-sweep inventory for thorwhalen/priv#155.

Before / after

Before (baseline, this session) After
pytest -q 1 passed 1 passed
pytest --doctest-modules (front, excl. examples/scrap — optional-dep-only scripts, pre-existing) 62 passed 62 passed
epythet validate -i tests/ scrap/ examples/ -- front 0 error, 33 warning, 2 info, 0 Level 0.5 errors, 0 undocumented objects 0 error, 30 warning, 1 info, 0 Level 0.5 errors, 0 undocumented objects
epythet validate --level 2 (Sphinx build, same ignores) not run by prior session 0 warnings
epythet ai-readme-check . warn: agent_docs, section undocumented ok: every agentic aspect documented

Remaining warnings are all D105/D107 (undocumented dunders — not gated by the docstring-style policy) plus one DQ002 info: FrontComponentBase (a pass-only marker base class) has no standalone doctest — declined; its behaviour is only meaningful through concrete subclasses, all of which already carry runnable examples (InputBase, TextSectionBase, OutputBase, etc.).

Claims declined

  • FrontComponentBase: no doctest added (see above) — a marker class with no behaviour of its own to demonstrate.
  • Several docstring claims in the prior commit describe internal defaults/argument-passing behaviour by direct code reading rather than by an additional doctest (e.g. simple_namer's default suffix, MultiSourceInputBase's shared child spec, TextInputBase's default view value) — all re-verified against source during this session's review; no changes needed.

Theme

Left at the fleet default (theme = "auto", no [tool.epythet] needed) — front is a small utility library, not brand/landing-page, data/ML, or notebook-heavy.

Closes nothing new; tracked under i2mint/epythet#16 (WP6).

Blank lines before nested list items, RST literal blocks for the pseudo-dict
examples in SpecMakerBase, a valid code-block directive for the ASCII dag in
front.dag, double backticks for inline code, bullet-list continuation indent
in simple_mall_dispatch_core_func, and a summary line for mk_binder.
…p stray blank line

Closes the last coverage gate (D102) the sweep left open; D105/D107 (other
dunders) are not gated by the docstring-style policy.

See i2mint/epythet#16 WP6.
…For-AI-agents section

The README described a class hierarchy (AppMakerBase, ElementTreeMakerBase,
NamedContainerBase) that no longer exists — replaced with a verified,
runnable example against the current API (AppMaker, SpecMakerBase,
ElementTreeMaker, FrontContainerBase/FrontComponentBase). docsrc/ is
regenerated by CI on every build (epythet quickstart), so it is gitignored
rather than committed; added the "For AI agents" section via
`epythet ai-readme-check --write` per local policy.

See i2mint/epythet#16 WP6.
…dill_stores

mk_tmp_dol_dir("crude") returns the same stable path on every call, not a
fresh one per call. Caught by the adversarial review pass (i2mint/epythet#16
WP6) and verified by running it.
@thorwhalen
thorwhalen merged commit 4ad3b6f into master Sep 15, 2026
12 checks passed
@thorwhalen
thorwhalen deleted the docs/epythet-sweep branch September 15, 2026 11:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant