Why
The anti-drift conformance tests validate that every source code-ref in platform schema files (e.g. crates/openab-gateway/src/adapters/line.rs#dispatch_line_reply) still points at a real file + symbol in the tree. This is the core value proposition of the platform schema system — docs that break the build when they go stale.
However, the CI workflow currently only triggers when schema files themselves change. If someone renames dispatch_line_reply to send_line_message in an adapter PR, the conformance workflow never runs. The dead code-ref silently lands on main, and the next unrelated schema PR fails with a confusing "symbol not found" error (action at a distance).
Without this fix, the anti-drift mechanism is blind to the most common drift scenario: code refactoring.
Benefits
- Anti-drift actually works end-to-end — symbol renames/deletes in adapter code are caught at PR time, not weeks later
- No more "test poisoning" — unrelated schema PRs won't randomly fail due to accumulated dead refs from other PRs
- Confidence in schema accuracy — if CI is green, the code-refs are valid (currently green CI only means "nobody touched schema files")
- Negligible cost — the conformance job runs in ~21 seconds (only serde + toml deps), far cheaper than a flaky test
Proposed Fix
Expand path triggers in .github/workflows/platform-schema-conformance.yml:
paths:
- "docs/platforms/schema/**"
- "docs/platforms/_template.toml"
- "crates/platform-schema/**"
- "crates/openab-gateway/src/**" # code-refs point here
- "crates/openab-core/src/**" # code-refs point here
- "src/main.rs" # cron_adapters ref
Or remove the path filter entirely — the job is fast enough to run on all PRs.
Additionally, add a weekly scheduled run as safety net:
schedule:
- cron: "0 6 * * 1"
Context
Identified during group review of #1295 (8/8 reviewers flagged this independently). Ref: #1294.
Why
The anti-drift conformance tests validate that every
sourcecode-ref in platform schema files (e.g.crates/openab-gateway/src/adapters/line.rs#dispatch_line_reply) still points at a real file + symbol in the tree. This is the core value proposition of the platform schema system — docs that break the build when they go stale.However, the CI workflow currently only triggers when schema files themselves change. If someone renames
dispatch_line_replytosend_line_messagein an adapter PR, the conformance workflow never runs. The dead code-ref silently lands on main, and the next unrelated schema PR fails with a confusing "symbol not found" error (action at a distance).Without this fix, the anti-drift mechanism is blind to the most common drift scenario: code refactoring.
Benefits
Proposed Fix
Expand path triggers in
.github/workflows/platform-schema-conformance.yml:Or remove the path filter entirely — the job is fast enough to run on all PRs.
Additionally, add a weekly scheduled run as safety net:
Context
Identified during group review of #1295 (8/8 reviewers flagged this independently). Ref: #1294.