Skip to content

Commit 8085847

Browse files
NickSeagullclaude
andcommitted
test(007): red proving tests for the devShell overlay/hix rewiring
Writes the criteria-table-to-test mapping for docs/changes/007-bd-via-hix-shell-extension-point.md before any implementation lands (formula B, step B1b): - scripts/devshell-check (new): --self-test (no nix, seconds) proves C1 (flake.nix composes no mkShell/inputsFrom/devShells override), C2 (overlay injects exactly one namespaced neohaskellTools attribute; bare `bd` shadowing and beads.overlays.default/nixpkgs.follows rejected), C3 (nix/hix.nix reaches bd via shell.buildInputs, not shell.tools, with every pre-existing shell declaration still present), C8 (README AC3 recipe checked against the real attribute name, so a rename breaks the doc check). Default in-shell mode proves C4 (bd store-path identity + >=1.1.0 floor), C5 (every declared tool resolves under /nix/store; hoogle is nixpkgs', not haskell.nix's wrapper), C6 (toolchain-fp determinism + NEOHASKELL_SHELL_FP/PATH witnesses). - dev: registers the `devshell-check` verb. - scripts/workflow-check: C7 fixtures (check_devshell_check_in_shell, check_devshell_check_selftest) wired into run() for test.yml `build`, test-macos.yml `tests-macos`, and checks.yml `doctor`; 9 new --self-test cases proving the checker logic itself. - .github/workflows/{test,test-macos}.yml: nix-develop devshell-check step after the cabal build. - .github/workflows/checks.yml: --self-test step in the nix-free doctor job. No production code touched (flake.nix, nix/hix.nix, README.md are the implementer's edit set) — this change has zero Haskell surface per the spec's Primitives section, so no Main.hs/cabal registration applies. Verified red for the right reason: `./dev devshell-check --self-test` fails C1/C2/C3/C8 because the overlay/buildInputs wiring doesn't exist yet; C5/C6 already hold under the pre-change inputsFrom wiring (expected, not a gap). `./dev workflow-check` (17 workflows) and its --self-test (incl. the 9 new fixtures) pass; `./dev doctor` OK; `spec-check --criteria-tests` resolves all 8 criteria's named tests. Bead: nh-mol-go3 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
1 parent 9c6f98e commit 8085847

6 files changed

Lines changed: 624 additions & 0 deletions

File tree

.github/workflows/checks.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ jobs:
3737
# Static workflow wiring: hidden-artifact upload opt-in + retrospect
3838
# loop stays deterministic/report-only (pure stdlib, no toolchain).
3939
- run: ./dev workflow-check
40+
# Change 007 static proving tests (C1-C3, C8) — no nix needed.
41+
- run: ./dev devshell-check --self-test
4042

4143
codemap:
4244
name: codemap check (localization ontology)

.github/workflows/test-macos.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,5 +76,8 @@ jobs:
7676
- name: Build the project with cabal
7777
run: nix develop --command cabal build all --disable-documentation
7878

79+
- name: devShell proving tests (change 007 — C4-C6)
80+
run: nix develop --command ./dev devshell-check
81+
7982
- name: Run ${{ matrix.test-suite }}
8083
run: nix develop --command cabal test ${{ matrix.test-suite }}

.github/workflows/test.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,8 @@ jobs:
101101
${{ runner.os }}-cabal-
102102
- name: Build the project with cabal
103103
run: nix develop --command cabal build all --disable-documentation
104+
- name: devShell proving tests (change 007 — C4-C6)
105+
run: nix develop --command ./dev devshell-check
104106
- uses: actions/upload-artifact@v7
105107
with:
106108
name: dist-newstyle

dev

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@ usage: ./dev <verb> [args]
7070
doctrine (see telemetry/SCHEMA.md); never for ad-hoc runs
7171
workflow-check static wiring checks for .github/workflows (hidden
7272
artifacts, retrospect loop; CI-enforced)
73+
devshell-check proving tests for change 007 (bd via hix's shell
74+
extension point): flake.nix/nix/hix.nix wiring +
75+
README doc-coherence (--self-test, no nix); bd
76+
store-path identity, tool inventory, fingerprint
77+
witness (default, run inside nix develop)
7378
neo-skills-check validate the Rust `neo/**` agent-guidance layer:
7479
neo-cli-* skills, neo/** routing, no stale state/plan
7580
refs, one source of truth (via ./dev doctor + CI)
@@ -135,6 +140,7 @@ case "${VERB}" in
135140
retrospect) exec scripts/retrospect "$@" ;;
136141
telemetry) exec scripts/telemetry.py "$@" ;;
137142
workflow-check) exec scripts/workflow-check "$@" ;;
143+
devshell-check) exec scripts/devshell-check "$@" ;;
138144
neo-skills-check) exec scripts/neo-skills-check "$@" ;;
139145
neo-dist-check) exec scripts/neo-dist-check "$@" ;;
140146
neo-consumer-contract) exec scripts/neo-consumer-contract "$@" ;;

0 commit comments

Comments
 (0)