docs: each page keeps only what its reader needs, and a fact stated twice keeps one home - #686
Merged
Merged
Conversation
…s, and the notation page moves to development The glossary keeps only the words no reference page owns, and the words with two senses (1588 to 616 words). The tutorial shows each new block once, and the whole file once, folded (1419 to 767 words); every output on it is what the command prints. The notation page renders the typesetting test model, so it moves to the Development tab. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A89tReSh8rTBG9ocy7688y
…how-tos lose what another page already says README drops the "Why" section, the symbols paragraph, the shell block and the Spec and Program section, and links the pages that own them. limits.md drops "Solver capability", which what-counts-as-language owns, the composition section and the history in its table. file-and-program keeps only the why. reading.md keeps the API and drops the engine recipe and the instructions. typeset shows the symbol table once. The how-tos drop rationale; installation gives the one install command. Words, these files: 12310 to 9797. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A89tReSh8rTBG9ocy7688y
…rogress) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A89tReSh8rTBG9ocy7688y
…e, which moved to development Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A89tReSh8rTBG9ocy7688y
FBumann
added this pull request to stack #684
September 24, 2026 14:03
# Conflicts: # mkdocs.yml
…python api page, and reading.md keeps only which program an engine reads The Spec.expand docstring, which the Python API page in Reference renders, is now the one home for the call: the kinds and their order, the ValueError, a different model that takes the same data, itself where there is nothing to write out, and no caching. It no longer says "the same math". reading.md's section says which program an engine reads. Five links point at the API entry. The three claims reading.md checked move to tests/test_expand.py, and the page's claim count drops from 22 to 19. Schema regenerated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A89tReSh8rTBG9ocy7688y
main's #689 makes an open bound null and a bound never infinite. The variables section keeps that rule and drops the warning box, as this branch's cut did. The quoted advice message on errors.md and check.md now says "bounds.lower is open", which is what advice prints since #689, and reading.md no longer names an infinite bound among what to_yaml leaves out. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A89tReSh8rTBG9ocy7688y
…riter's python api page, and reading.md keeps only which program an engine reads" This reverts commit 853b9b7. The change moves to its own PR at the top of the stack, so this PR keeps only the cut. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A89tReSh8rTBG9ocy7688y
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
The following content was generated by AI.
The user's follow-up was "Yes. As one big PR stacked ontop".
What this changes
The sections for model writers (Tutorials, How-to guides, Reference, About) go from 35,678 to about 24,200 words. Rationale, history, repeated rules and engine instructions are cut. Where a fact sat on two pages, the page that owns it keeps it and the other links to it. No rule of the language changes.
Method, gate output, alternatives
Rule for every cut: a page answers one question for the reader of its section. Cuts move or delete text; none rewrites a rule.
Words per top-level section, before → after this PR: Tutorials 1,438 → 779. How-to guides 3,181 → 2,771. Reference 25,260 → 15,400. About 5,799 → 5,256, most of which is the changelog. Development 30,504 → 35,909, because it now holds the notation page.
Which page owns a fact stated twice:
limits.md#deliberate-non-primitives.expressions.md. Reported expressions anddual:named.md.assumptions.md.by=,within=):relations.md.Spec,Programandexpand():reading.md. docs: what spec.expand() returns is documented on the model writer's python api page, and reading.md keeps only which program an engine reads #696, higher in the stack, moves theexpand()call to its docstring on the model-writer API page.what-counts-as-language.md.typeset.md.Per area:
reference/notation.mdmoves to Development › Proofs of concept, because it renders the typesetting test model. The typeset and operators pages link the operator table instead.errors.md: the refusal table becomes a link tolimits.md. The error-class table now shows the real hierarchy.piecewise.mdandassumptions.md: the derived assumptions have one table, checked againstsrc/math_spec/piecewise.py. It fixes a wrong claim: the decreasing-breakpoints check applies toconvexandlponly.operators.md: two sentences about a null relation value contradicted the data contract, and are cut.reading.md, typeset and how-tos: 12,310 → 9,797 words.limits.md#solver-capability(its one inbound link was repointed),limits.md#composition-component-librariesandtypeset.md#printing-what-a-formulation-states.main(feat(language): a bound is null where it is open, never infinite, in the file and in the program #689):errors.mdandcheck.mdnow says "bounds.lower is open", which is what advice prints since feat(language): a bound is null where it is open, never infinite, in the file and in the program #689.reading.mdno longer names an infinite bound among whatto_yamlleaves out.expand()docs was made here and then reverted (eb3c60c). It now lands as docs: what spec.expand() returns is documented on the model writer's python api page, and reading.md keeps only which program an engine reads #696, at the user's request that it be its own PR in the stack.Gates (pixi is not installable in this session; a Python 3.12 venv stood in):
pytest -q:1630 passed, 7 skipped.mkdocs build --strict, with the blockeddocs.python.orginventory removed: built, no warnings.ruff,reuse lint,typos,prettier --check: clean.pixi run ci,compile-tex.Not done:
src/math_spec/exclusivity.pystill says the case rule is stated inexpressions.md; it is now innamed.md.Why
Much of the text was not needed by the reader of its page, or it repeated another page. The stack added more than it removed.
🤖 Generated with Claude Code
https://claude.ai/code/session_01A89tReSh8rTBG9ocy7688y