Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,11 @@ on:
pull_request:

jobs:
# m/v waterline G1 gate (engine-free) — m-stdlib is layer m; the gate
# scans src/*.m for any ^VSL* (v-layer) reference.
arch:
uses: vista-cloud-dev/.github/.github/workflows/arch-waterline.yml@main

m-stdlib:
runs-on: ubuntu-latest
container:
Expand Down
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ docs:
todo: docs/tracking/TODO.md # resume-here pointer
discoveries: docs/tracking/discoveries.md # discoveries register: in-project pivots + external toolchain findings (renamed from TOOLCHAIN-FINDINGS.md 2026-05-10)
tracking_readme: docs/tracking/README.md # the four-bucket doc model that everything under docs/tracking/ follows
implementation_plan: docs/plans/m-stdlib-implementation-plan.md
tdd_orchestration: docs/plans/tdd-orchestration-plan.md # m-stdlib ↔ m-cli joint milestones
implementation_plan: docs/plans/completed/m-stdlib-implementation-plan.md
tdd_orchestration: docs/plans/completed/tdd-orchestration-plan.md # m-stdlib ↔ m-cli joint milestones
---

# m-stdlib — Claude Project Context
Expand Down
34 changes: 33 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,13 @@ M ?= m
# Override if you cloned it elsewhere.
M_TEST_ENGINE ?= $(HOME)/projects/m-test-engine

.PHONY: all fmt fmt-check lint test test-optional safe-test coverage check ci clean print-env seed unseed manifest manifest-check check-manifest frontmatter skill skill-check skill-install doctest doctest-check doctest-run engine-up engine-down engine-status check-docs-prose
# v-pkg — the host tool that builds the MSL KIDS base from
# kids/std.build.json (VSL T0b.2). Defaults to the sibling checkout's
# built binary under ~/vista-cloud-dev/ (one-session-one-repo layout);
# override with `make kids VPKG=/path/to/v-pkg`.
VPKG ?= $(HOME)/vista-cloud-dev/v-pkg/dist/v-pkg

.PHONY: all fmt fmt-check lint test test-optional safe-test coverage check ci clean print-env seed unseed manifest manifest-check check-manifest frontmatter skill skill-check skill-install doctest doctest-check doctest-run engine-up engine-down engine-status check-docs-prose kids check-kids

# vista-meta connection contract — silently included if present.
# Preserves the maintainer's existing workflow but no longer hard-errors
Expand Down Expand Up @@ -228,6 +234,32 @@ doctest-run:
clean:
rm -rf coverage.lcov test-results.tap coverage.json

# ── MSL KIDS base (VSL T0b.2) ───────────────────────────────────────
# kids/std.build.json declares the STD* base that m-stdlib ships as a
# KIDS package (the ≤8-char pure modules — routine-only, no FileMan
# components). `make kids` builds the deterministic, normalized .KID via
# v-pkg; `make check-kids` re-gates it: a fresh rebuild must be
# byte-identical (the deterministic-build invariant) AND match the
# committed dist/kids/MSL.kids (drift gate, same discipline as
# check-manifest). Engine-free — needs only the v-pkg binary, no engine.
kids:
$(VPKG) build kids/std.build.json --src src --out dist/kids/MSL.kids

check-kids:
@if [ ! -x "$(VPKG)" ]; then \
echo "check-kids: v-pkg not found at $(VPKG) — build it (make build in v-pkg) or set VPKG=…" >&2; \
exit 1; \
fi
@tmp=$$(mktemp); \
$(VPKG) build kids/std.build.json --src src --out $$tmp >/dev/null; \
if diff -q $$tmp dist/kids/MSL.kids >/dev/null 2>&1; then \
echo "check-kids: dist/kids/MSL.kids matches a fresh deterministic build ✓"; \
rm -f $$tmp; \
else \
echo "ERROR: dist/kids/MSL.kids drifted from kids/std.build.json + src/ — run 'make kids' and commit" >&2; \
rm -f $$tmp; exit 1; \
fi

# Guardrail: docs/ holds only human-readable prose. Non-prose artifacts
# (generated data, JSON/TSV output, copy-paste examples, scaffolding
# templates) belong under dist/, examples/, templates/, or a top-level
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -293,9 +293,9 @@ The changelog has moved into `docs/tracking/` alongside the other live work boar

### `docs/plans/` — forward-looking specs + roadmaps

- [`docs/plans/m-stdlib-implementation-plan.md`](docs/plans/m-stdlib-implementation-plan.md) — per-module specs (§8) and §9 acceptance gate.
- [`docs/plans/tdd-orchestration-plan.md`](docs/plans/tdd-orchestration-plan.md) — historical cross-project TDD-orchestration plan (M0 → M5). Now fully realised; [`docs/guides/m-tdd-guide.md`](docs/guides/m-tdd-guide.md) is the operational follow-up.
- [`docs/plans/m-libraries-remediation.md`](docs/plans/m-libraries-remediation.md) — original survey of which gaps exist in M's stdlib and the remediation path that produced m-stdlib.
- [`docs/plans/completed/m-stdlib-implementation-plan.md`](docs/plans/completed/m-stdlib-implementation-plan.md) — per-module specs (§8) and §9 acceptance gate.
- [`docs/plans/completed/tdd-orchestration-plan.md`](docs/plans/completed/tdd-orchestration-plan.md) — historical cross-project TDD-orchestration plan (M0 → M5). Now fully realised; [`docs/guides/m-tdd-guide.md`](docs/guides/m-tdd-guide.md) is the operational follow-up.
- [`docs/plans/historical/m-libraries-remediation.md`](docs/plans/historical/m-libraries-remediation.md) — original survey of which gaps exist in M's stdlib and the remediation path that produced m-stdlib.

### `docs/testing/` — corpus validation reports

Expand Down
Loading