Hard cutover policy: the repository contains no active fallback dispatch behavior, shim execution path, old language mode, stale support claim, or milestone-as-behavior source text. A source hygiene gate enforces this policy on every validation run.
Current status after checkpoint f4b6e455d:
npm run objc3c -- lint runs the hard-cutover source hygiene gate.
python -m scripts.source_hygiene produces JSON/text reports under tmp/reports/source_hygiene/hard-cutover/ and currently reports source_hygiene_ok: true, active_findings: 0.
- Gate tests live in
tests/tooling/source_hygiene/test_hard_cutover_gate.py and currently pass (20 passed).
- The gate now covers runtime strict-cutover patterns including
ComputeDispatchResult, retired objc3_msgsend_i32, compatibility dispatch metadata, unresolved dispatch pseudo-success wording, fallback-only wording, deterministic runtime arithmetic claims, and existing old-mode/compatibility patterns.
Implemented gate tree:
scripts/source_hygiene/
__main__.py
patterns.py
roots.py
report.py
scanner.py
tests/tooling/source_hygiene/
test_hard_cutover_gate.py
Required forbidden active-surface patterns:
ComputeDispatchResult
runtime_shim
compatibility_mode
--objc3-compat-mode
OBJC3C_FRONTEND_COMPATIBILITY_MODE
Backward-compatible aliases
legacy spec redirects
migration-assist
deterministic fallback
deterministic arithmetic
fallback-only
compatibility shim
old mode
planned steady-state
monolithic src/main.cpp
unresolved dispatch pseudo-success wording
- retired msgsend and compatibility dispatch symbol metadata
- milestone-as-behavior phrases in public headers and compiler implementation files
Required scanned roots:
README.md
.github/
docs/
spec/
schemas/
native/objc3c/
scripts/
tests/
stdlib/
site/
Remaining work:
- Keep expanding patterns as later hard-cutover issues remove additional retired surfaces.
- Add schema-backed source-hygiene report validation if/when the report schema is introduced.
- Close this only after HC-001 through HC-017 land and the gate remains zero-violation across the final branch state.
Acceptance criteria:
npm run objc3c -- lint runs the hard-cutover gate.
- The gate reports zero violations after HC-001 through HC-017 land.
- CI blocks every forbidden active-surface pattern above.
- Gate tests cover all active patterns and required roots.
Hard cutover policy: the repository contains no active fallback dispatch behavior, shim execution path, old language mode, stale support claim, or milestone-as-behavior source text. A source hygiene gate enforces this policy on every validation run.
Current status after checkpoint
f4b6e455d:npm run objc3c -- lintruns the hard-cutover source hygiene gate.python -m scripts.source_hygieneproduces JSON/text reports undertmp/reports/source_hygiene/hard-cutover/and currently reportssource_hygiene_ok: true,active_findings: 0.tests/tooling/source_hygiene/test_hard_cutover_gate.pyand currently pass (20 passed).ComputeDispatchResult, retiredobjc3_msgsend_i32, compatibility dispatch metadata, unresolved dispatch pseudo-success wording, fallback-only wording, deterministic runtime arithmetic claims, and existing old-mode/compatibility patterns.Implemented gate tree:
scripts/source_hygiene/__main__.pypatterns.pyroots.pyreport.pyscanner.pytests/tooling/source_hygiene/test_hard_cutover_gate.pyRequired forbidden active-surface patterns:
ComputeDispatchResultruntime_shimcompatibility_mode--objc3-compat-modeOBJC3C_FRONTEND_COMPATIBILITY_MODEBackward-compatible aliaseslegacy spec redirectsmigration-assistdeterministic fallbackdeterministic arithmeticfallback-onlycompatibility shimold modeplanned steady-statemonolithic src/main.cppunresolveddispatch pseudo-success wordingRequired scanned roots:
README.md.github/docs/spec/schemas/native/objc3c/scripts/tests/stdlib/site/Remaining work:
Acceptance criteria:
npm run objc3c -- lintruns the hard-cutover gate.