Repository navigation
refactor: make the repository legible and its contracts durable - #3
Merged
Merged
Conversation
Add the module map, platform boundary, validation convention, and current verification commands for contributors and coding agents.
Describe the optional local harness accurately and link Japanese readers to the harness and architecture documentation.
Put the copy-paste entrypoint first and link the repository's public documentation and harness sample from the README.
Move the frozen build record into the documentation tree and label it as historical rather than user-facing implementation notes.
Use one private kind and decision shape check at both evidence validation call sites while preserving the existing error precedence and output.
Expose package documentation and links, and provide a concise contributor entrypoint without changing the harness behavior.
Run the existing unit and JSON checks on supported Python versions for pushes and pull requests.
Add golden CLI contracts and focused checks for documentation navigation and skill inventory drift.
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.
Summary
Makes the repository easier for both humans and AI agents to understand and
change, without changing what it does. Every runtime behaviour is preserved
byte-for-byte; the one executable change is a de-duplication inside
evidence_graph.py.The package is ~1,440 lines of source and ~1,400 of tests. It did not have a
structural problem — it had a legibility problem and a decay problem. The work
is deliberately documentation-heavy and code-light.
What changed
feb8ef0docs/architecture.md(module map, entrypoints, platform limits, validation conventions, boundary coverage) andCLAUDE.md;AGENTS.mdupgraded to a real steering document; module docstrings across the package5f01f1ddocs/project-notes.md, which claimed "No CLI is included in the initial release" while the repo ships two console scripts; added a harness pointer todocs/ja.mdf79d71e## Documentationindex. No heading text changed — anchors are a public contractd518f03docs/implementation-record.md. The nameimplementation-notes.mdpreviously meant three different things at once4ffe814evidence_graph.py— once in_validate_event, once inappend_event. Extracted to one private helper75e2ffdpyproject.tomlmetadata (readme,dependencies,urls,classifiers) and aCONTRIBUTING.mda0609740817a80Behaviour preservation
origin/main:typed-rejection→b0da9e30e75a49216df2c3f3b00f756647255d580e34353d83cc9de2cbf5cba0, exit 2adjudication→506913d4b6e2af907488719fe9d889466e75069d1d5af802d5155c2969f7774d, exit 0codes; JSON keys or key ordering; error strings; the eight skills; the six
templates; either plugin manifest; or any README heading.
Phase 8.
pyproject.tomlchanges are additive only.What was deliberately not done
evidence_graph.pywas not split despite being 401 lines across fiveconcerns — no demonstrated maintenance failure, and the diff would land in the
most safety-relevant file for zero behaviour change. The seam is documented in
docs/architecture.mdinstead, with the condition that should trigger it.serializers. It was cut on review: it bans three key names while appearing to
prove absence of authority, and it is machinery built to prove an existing
boundary.
docs/architecture.mdnow states honestly what is and is notmechanically checked.
Test plan
python3 -m unittest discover -s tests -q— 66 tests, OKgit diff --checkdocs/*.mdreachable fromREADME (2 of 6 → 8 of 8)
error-code or precedence mismatches
execution
Reviewed independently before this PR was opened; the reviewer's priority was
Phase 5's behavioural equivalence and Phase 4's rename purity.
🤖 Generated with Claude Code