feat(ci): add make pre-pr target and fixture staleness check

Implements make pre-pr chain: lint -> build -> test -> content
validation -> fixture staleness. Branch-specific variants:
pre-pr-server, pre-pr-client, pre-pr-content.

Fixture staleness is a blocker (exit 1) — stale fixtures cause
false positive client tests. Spec from hoshe-round3.md Section 5.

Tickets: #460, #465

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-17 22:43:40 +01:00
co-authored by Claude Opus 4.6
parent c0f6afa082
commit f06c8be313
2 changed files with 84 additions and 1 deletions
+28
View File
@@ -89,6 +89,34 @@ make ci-client # lint-client → build-client → test-client
CI targets chain lint → build → test sequentially. A failure in any stage stops the pipeline.
### Pre-PR Checks
Before pushing a PR, run:
```bash
make pre-pr
```
This runs all checks in order: lint → build → test → content validation → fixture staleness. Total runtime ~2.5 minutes (incremental build), under 3 minutes clean.
For branch-specific checks:
```bash
make pre-pr-server # Server changes: lint, build, test, fixture staleness
make pre-pr-client # Client changes: lint, build, test
make pre-pr-content # Content changes: schema + cross-reference validation
```
If `pre-pr-fixtures` fails, your protocol changes require fixture regeneration:
```bash
make fixtures
git add client/tests/fixtures/
git commit -m "chore(fixtures): regenerate for protocol vN"
```
The fixture staleness check is a **blocker** (exit 1) — stale fixtures cause false positive client tests.
### Clean
```bash