core/core/capability
Shay a8c12670ec fix(capability): correct discourse_planner flag catalog + commit-independent public_demo pin
Two pre-existing latent issues fixed:

1. discourse_planner flag catalog drift (test_flag_report failure)

   On 2026-05-21 the discourse_planner default was flipped to True
   after byte-equality verification (per inline comment in
   core/config.py:130-138), but the capability flag catalog at
   core/capability/reporting.py was not updated — it still claimed
   "flag_shipped_default_off". The test
   test_flag_report_tracks_default_off_flags_without_enabling_them
   correctly caught the inconsistency; it had been failing across
   every commit since ADR-0092 first ran the suite.

   Fix:
   - New "flag_shipped_default_on" state in _FLAG_CATALOG, added
     to flag_report() grouped output
   - discourse_planner moved from default_off → default_on
   - Test renamed to test_flag_report_classification_matches_actual_defaults,
     enforces BOTH directions of the contract (catalog claim must
     match DEFAULT_CONFIG value)
   - New test test_flag_catalog_state_is_consistent_with_default_config
     cross-checks every catalog entry against DEFAULT_CONFIG;
     catches future drift before it lands

2. public_demo lane SHA shifted every commit

   Each commit advances the showcase's generated_at_revision field
   (git HEAD SHA). _strip_volatile in the lane runner was stripping
   wall-clock and per-run paths but NOT generated_at_revision, so
   the byte-equality case's details.sha256 changed with every commit
   even when underlying demos produced identical content. That made
   the pin a "did this run today" check rather than a "did the code
   produce the right artifact" check — exactly the failure mode
   the verifier was supposed to prevent.

   Fix:
   - Add generated_at_revision to _VOLATILE_KEYS in the public_demo
     runner. Lane's invariant is "same code → same SHA," not
     "same HEAD → same SHA"; HEAD belongs in the showcase output
     (operators need it) but not in the lane's equality projection.
   - Pin refreshed once to capture the now-commit-independent SHA;
     subsequent commits won't shift it unless underlying demo content
     actually changes.

After fix:
- Capability tests: 6/6 passing (was 4/5 with discourse_planner failing)
- Lane SHAs: 6/6 match pinned values; public_demo pin will now survive
  routine code changes
- Smoke 67/67, cognition eval byte-identical 100/100/100/100

This is the single known pre-existing test failure cleaned up.
2026-05-21 20:53:15 -07:00
..
__init__.py feat(capability): implement ADR-0093 — Domain Pack Contract v1 wired in 2026-05-21 18:33:23 -07:00
domain_contract_predicates.py feat(packs): implement ADR-0097 — Mathematics-Logic Reasoning-Capable 2026-05-21 18:51:58 -07:00
domains.py Add chain-first capability ledger and domain seeds (#97) 2026-05-20 21:33:24 -07:00
README.md Add chain-first capability ledger and domain seeds (#97) 2026-05-20 21:33:24 -07:00
reporting.py fix(capability): correct discourse_planner flag catalog + commit-independent public_demo pin 2026-05-21 20:53:15 -07:00
reviewers.py feat(capability): implement ADR-0092 — Reviewer Registry v1 2026-05-21 18:01:24 -07:00
sources.py Add chain-first capability ledger and domain seeds (#97) 2026-05-20 21:33:24 -07:00

Capability Reports

Phase A-C adds read-only capability reports. These commands do not mutate packs, execute dynamic validators, or flip dormant runtime flags.

Available commands:

  • core capability chains --json
  • core capability flags --json
  • core capability ledger --json
  • core capability artifact --lane cognition --split public --version v1 --json
  • core capability domain-contract --pack-id en_core_cognition_v1 --json
  • core capability evidence-plan --json

Day-1 output is expected to be low-status:

Domain Expected status Primary blocker
systems_software reasoning-capable expert-demo still gated by domain eval thresholds and replay/provenance evidence
mathematics_logic reasoning-capable expert-demo still gated by domain eval thresholds and replay/provenance evidence
physics reasoning-capable expert-demo still gated by domain eval thresholds and replay/provenance evidence
hebrew_greek_textual_reasoning reasoning-capable expert-demo still gated by eval thresholds and replay/provenance evidence
philosophy_theology reasoning-capable expert-demo still gated by eval thresholds and replay/provenance evidence

Status is generated from predicates. A blocked row lifts only when the named gap is closed and the next status predicate passes.