record H-34: cz_onboard hides the project's real docs #185
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
| name: Tests | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| jobs: | |
| test: | |
| # B2 (D-012): the suite must be green on all three OSes, and the win32 | |
| # cells EXECUTE the native cmd wrapper for real (D3) — not a | |
| # platform-monkeypatched simulation. | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| python: ["3.11", "3.12", "3.13"] | |
| steps: | |
| - uses: actions/checkout@v5 | |
| # Provision uv from PyPI via setup-python, not astral-sh/setup-uv: setup-uv | |
| # resolves its version through the GitHub API, which returned intermittent | |
| # 503s and failed every matrix cell; pip has no such dependency. | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| - run: python -m pip install uv | |
| - run: uv venv --python ${{ matrix.python }} | |
| - run: uv pip install -e ".[mcp,dev]" | |
| - run: uv run pytest -q | |
| fresh-clone: | |
| # L-23 / D-064 rule 3: telemetry.jsonl is gitignored into every repo while | |
| # docs/LESSONS.md is committed, so a fresh clone has ZERO surfacing events. | |
| # The curator used to read that absence as evidence and propose obsoleting | |
| # 100% of the corpus (measured 25 of 25). This cell is the ONLY place that | |
| # shape is exercised — the in-process suite always has the author's repo. | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - run: python -m pip install uv | |
| - run: uv venv --python 3.12 | |
| - run: uv pip install -e ".[mcp,dev]" | |
| - name: A clone carries only tracked files — assert no telemetry | |
| run: | | |
| test ! -f .clauderizer/telemetry.jsonl \ | |
| || (echo "telemetry.jsonl is TRACKED — it must be gitignored" && exit 1) | |
| - name: The curator must propose zero deletions with zero evidence | |
| run: | | |
| uv run python - <<'PY' | |
| from clauderizer import ops | |
| curate = ops.cz_curate() | |
| obsolete = [p for p in curate["proposals"] if p["action"] == "obsolete"] | |
| assert not obsolete, f"fresh-clone corpus wipe is back: {obsolete}" | |
| loop = ops.cz_loop_step() | |
| assert loop["has_telemetry"] is False, loop | |
| assert "no telemetry" in loop["summary"], loop["summary"] | |
| health = ops.cz_corpus_health() | |
| assert health["active_project_lessons"] > 0, health | |
| print(f"OK: {health['active_project_lessons']} lessons intact, " | |
| f"0 obsoletion proposals, converged={loop['converged']}") | |
| PY |