Milestone 18: Bootstrap doctor/audit contract test expansion#15
Milestone 18: Bootstrap doctor/audit contract test expansion#15incredincomp merged 3 commits intomainfrom
Conversation
…cker Co-authored-by: incredincomp <43874843+incredincomp@users.noreply.github.com>
…d-and-healthy test self-contained Co-authored-by: incredincomp <43874843+incredincomp@users.noreply.github.com>
|
@copilot the tests are asserting semantic meaning, not overfitting to phrasing or incidental implementation details; the summary suggests that is already the intent. CI/checks actually run cleanly once GitHub finishes loading them; the page showed some GitHub “Uh oh!” load errors in the conversation view, so I could read the Copilot summary but not rely on the page for a perfect end-to-end check-status view. |
... Verified both items: CI: clean. The CI run on the latest commit ( Tests: semantic meaning, not phrasing. A few specifics:
No tests are coupled to output formatting or incidental implementation details. |
Adds explicit contract tests for all key target-repo diagnosis semantics in
bootstrap_doctor.py, which were previously untested despite being stable operator-facing contracts (Milestone 16). Proves classification stability and anti-drift for the doctor layer.New:
tests/test_bootstrap_doctor.py(77 tests across 12 test classes)classify_health()— including priority ordering (stale-version beats profile-mismatch), patch-only version differences not triggering stale state, and low-confidence suggestions not triggering profile mismatch_semver_tuple()and_is_materially_behind()unit-tested directlymarker_status(),required_files_status(),placeholder_status(),profile_alignment()(all 4 alignment states)recommend_actions()for every health state — including an explicit assertion that--forcenever appears in any recommendationbootstrap_doctor.classify_era()always agrees withbootstrap_core.classify_marker_era()audit()integration tests using real temporary directories for 5 key states; includes a read-only proof thataudit()does not mutate the target directoryHEALTH_LABELSandHEALTH_DESCRIPTIONScover exactly the six documented statesIntegration tests use a self-contained fake source root with a pinned VERSION file (
_TEST_MARKER_VERSION = "0.14.0") so tests are version-independent and don't break on future version bumps.Infrastructure updates
tests/test_bootstrap_doctor.pyadded toBOOTSTRAP_REPO_REQUIRED_FILESinvalidate_bootstrap.pyandbootstrap-manifest.yamlAGENTS.md— expanded "Bootstrap doctor" rules section with anti-drift contract: diagnostic semantics are test-backed, output phrasing can vary but semantic meaning must not, shared helpers (classify_era,parse_marker) require updates to both test files when changedREADME.md— updated layout tree and Contract tests section to document doctor test coverage and the conservative-behavior guarantees the tests proveVERSIONbumped0.14.0 → 0.15.0;CHANGELOG.mdupdated💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.