Claude/setup project structure 3 yei t#1
Merged
Conversation
Hatchling build, src layout, mypy --strict, ruff, pytest, hypothesis, nox sessions, py.typed marker. Single smoke test pins __version__ at 0.1.0a0 so the package installs and imports clean.
Six-member StrEnum (READ, WRITE, NETWORK, EXECUTE, SPAWN, DESTRUCTIVE) with canonical precedence ordering and most_restrictive() collapse. Pure module — no I/O, no clocks. Twenty unit tests including hypothesis invariants for determinism, dominance, and idempotency. Mirrors mostRestrictive in the TS reference exactly; see docs/porting-notes.md for naming differences.
SpineLiteError as the catch-all base, with ManifestError, ClassificationError, PostureError, and HookError as the specific subclasses each Phase 2/3 module will raise. Public surface in __all__ now also exposes Effect, PRECEDENCE, and most_restrictive — anything not listed is private by convention.
Empty-but-typed scaffolds for the five Phase 2/3 modules with module docstrings that pin the implementation phase and the purity contract. Working CLI shipping a single `version` subcommand wired into the `spine-lite` console script. Smoke test imports each scaffold so coverage stays at 100%.
…hitecture Mac-voice prose throughout. README makes the install path explicit (source only until Phase 3 sign-off). CLAUDE.md is the repo-level operating manual capped at 91 lines, well under the 150-line invariant. mkdocs-material site with mkdocstrings auto-API. Docs build with --strict clean.
Five-job CI: lint, typecheck, 9-cell test matrix (3.11/3.12/3.13 × ubuntu/macos/windows), and a docs build in --strict mode that runs on every push so we know the site stays publishable. Docs deploy is split into a separate workflow gated on main and workflow_dispatch — keeps Pages enablement off the critical path of the first dev-branch push.
Local verification gate clean across lint, format, mypy --strict, pytest (35/35), coverage (100%), and mkdocs --strict. Three exit-gate items remain on the operator's side: CI verification on GitHub, repo visibility flip, and Pages enablement. Halt for Mac.
setup-uv@v3 with enable-cache=true matches its cache key against the default uv.lock glob; without a lockfile every CI job dies at the setup step. Track the lockfile, give CI a deterministic install, and flip the design-rationale entry to match.
Pinned resolution of 68 packages across the runtime, docs extra, and dev dependency-group. Refresh with `uv lock --upgrade` and commit the result so CI cache and dev environments stay aligned.
MacFall7
pushed a commit
that referenced
this pull request
May 8, 2026
CI confirmed green on all 9 matrix cells; PR #1 merged to main; repo public; Pages live. Docs site restructured into Diátaxis quadrants with twelve new pages, iron-clad README, SECURITY.md, and a CONTRIBUTING quick-start pointing at the long-form guide. All ten Phase 1 exit-gate items clear; Phase 1 closed pending operator go for Phase 2.
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.
Pushed. Branch now at
9e65986with two new commits (444cc5brationale flip +.gitignorechange,9e65986lockfile).Context:
the default uv.lock glob; my prior shortlist missed it.
444cc5b chore: track uv.lock for CI cache reproducibility
(.gitignore line removed + design-rationale entry inverted)
9e65986 chore: add uv.lock for CI determinism
(1,396 lines, 68 packages resolved across runtime + docs + dev)
reported "Resolved 68 packages in 3ms" — the lock matches the resolution
uv.sync produced during my earlier local install, no drift.