Repository navigation
docs: adopt the agent-docs contract, CI and the issue/PR loop - #71
Merged
Merged
Conversation
AGENTS.md replaces CLAUDE.md. DESIGN.md describes the 4.0 architecture top-down and routes to the dated specs; the 2.0 design moves to docs/design/ as history. CLAUDE.md's per-module tour moves into module docstrings where the code lacked the fact, correcting two on the way (layout adds aud-layout-mode rather than removing justify-center; the exporter no longer offers PDF). Procedures become know-how docs. make test/lint/docs/know-how are the gates; .rift.yaml carries the agent-docs rules, each mutation-tested. Refs #68 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A bare TestClient runs each websocket_connect on its own event-loop thread, so a presenter relaying to an audience socket crossed loops and the audience's receive_json() hung in up to 2 runs in 5. Entering every client with 'with' gives the tests uvicorn's single loop: 0 hangs in 40. Fixes #69 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Installs ffmpeg and the examples extra and checks for them first, since the encode, audio and tesserax tests skip rather than fail without them. Refs #68 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
This pull request does not currently match the merge queue conditions, so it cannot be queued from here. The box comes back if it matches again. |
Rich colours typer's help when it detects CI, and the escape codes split '--fps' into '-' and '-fps', so the first CI run failed a check that passed in every local terminal. Reproduced with GITHUB_ACTIONS=true. Refs #68 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Owner
Author
|
The first CI run failed |
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.
Fixes #68. Fixes #69.
What changed
AGENTS.mdreplacesCLAUDE.md: what auditorium is, who it is for, what done means, where things live, the gates, the know-how menu, and how work lands.DESIGN.mdat the root describes the 4.0 architecture top-down (compile → timeline →seek(t)→ surfaces). It keeps the scene-engine spec's D1–D9 labels because code comments cite them, adds the rules decided after the spec, and routes todocs/design/for the measurements. The 2.0design.mdmoves todocs/design/2026-04-17-auditorium-2-rewrite.mdas history.CLAUDE.md's module tour: most of it was already in docstrings and file-head comments with its reasons. Facts the code lacked became module docstrings inserver.py,deck.py,slide.py,layout.pyandcli.py. Two were wrong and are corrected: a top-level layout addsaud-layout-mode(it does not removejustify-center), and the exporter docstring still offered PDF.know-how/: releasing, adding an animation primitive, running the tests.Makefile:test,lint,docs(rift, pinned from GitHub because the PyPI package namedriftis unrelated),know-how..rift.yaml: the workspace agent-docs block. All four rules were mutation-tested on a scratch copy, withcmpconfirming each mutation changed the file, and each named rule fired. The path rule caught two real broken paths in the first draft ofDESIGN.md..github/workflows/tests.yml: lint, docs gate and the suite on every PR, 15-minute cap. It installs ffmpeg and theexamplesextra and checks for them before testing, because the 12 encode/audio tests and the tesserax deck skip rather than fail without them.The test hang (#69)
Before the fix the full suite hung in 2 of 3 runs on the VPS.
tests/test_server.pyalone hung in 8 of 20 runs on this branch and 2 of 12 on a cleanorigin/main. Every bareTestClientran each socket on its own event loop. Entered withwith, it hung 0 times in 40.Measured locally
make lint0,make docs0 (4 rules pass),make test190 passed and 13 skipped in 73 s. The skips are ffmpeg and tesserax, which the VPS lacks and CI installs. One full run failedtest_a_late_audience_tab_catches_up_to_the_presenter, which is filed as #70 with a hypothesis. It failed 1 in 10 here and 0 in 10 onmain, which is within noise, and nothing on its path changed.Left out on purpose
🤖 Generated with Claude Code