Skip to content

Claude/setup project structure 3 yei t#1

Merged
MacFall7 merged 9 commits into
mainfrom
claude/setup-project-structure-3YeiT
May 8, 2026
Merged

Claude/setup project structure 3 yei t#1
MacFall7 merged 9 commits into
mainfrom
claude/setup-project-structure-3YeiT

Conversation

@MacFall7
Copy link
Copy Markdown
Owner

@MacFall7 MacFall7 commented May 8, 2026

Pushed. Branch now at 9e65986 with two new commits (444cc5b rationale flip + .gitignore change, 9e65986 lockfile).
Context:

  • Root cause acknowledged: setup-uv@v3 with enable-cache=true keys against
    the default uv.lock glob; my prior shortlist missed it.
  • Fix landed in two logical commits per your instruction:
    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)
  • Local re-verification: mkdocs --strict still builds clean. uv lock
    reported "Resolved 68 packages in 3ms" — the lock matches the resolution
    uv.sync produced during my earlier local install, no drift.

claude added 9 commits May 8, 2026 22:04
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 MacFall7 merged commit d90e72c into main May 8, 2026
24 checks passed
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.
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.

2 participants