core/docs/3lang-depth-pr-plan.md
Shay 0188af46c0
Some checks failed
lane-shas / verify pinned lane SHAs (pull_request) Failing after 2m29s
smoke / smoke (-m "not quarantine") (pull_request) Failing after 4h41m33s
fix(3lang-depth): remove is_fully_grounded gate from depth enrichment so result always gets node_depths/gau for 3-lang; fix fixture to use combined packs + explicit skip docs; add runtime docstrings for contract; update draft md evidence
- Fixes skeptic gaps on empty fields in some smokes and fixture mismatch.
- Targeted tests green post-fix.
- Fresh captures have required non-empty data + documented skips.
2026-07-08 08:02:01 -07:00

5 KiB

PR Draft + Test Plan: 3-lang (he/grc) Depth PropositionGraph Unification

Branch

feat/3lang-depth-proposition-graph-unification

Summary of full commit history on branch (since integration)

  • c1e723f1 feat: integrate 3-core-language depth into PropositionGraph spine for bidirectional unification
  • 29284fae feat: implement phases 1-5 3-lang depth unification (antiunif root, default depth, contemplation prop, graph helper)
  • 0dbcd63d feat: 3lang depth PropGraph unification - phase refinements, wiring, tests + session pickup cleanups/governance
  • c57defdb chore: re-pin demo_* SHAs and regenerate CLAIMS.md for intentional 3lang depth spine changes
  • 73bca055 chore: refresh canonical demo lane reports after 3lang depth re-pin
  • c5dad6ac docs: update plan with 2026-07-08 pickup status + re-pin; archive Jul6 compact
  • 3d08e103 chore: archive pickup seeds ...
  • 05348e5a refactor: consolidate duplicate depth extraction — graph_planner.get_node_depths now delegates to build_node_depths
  • 0e6dada0 chore(cleanup): complete post-pickup hygiene, consolidation, and review fixes for 3lang depth unification

(See git log --oneline c1e723f1..HEAD and full git log for details.)

Key files changed (from git diff HEAD~6..HEAD and overall feature)

Core:

  • recognition/depth_canonical.py (new pure canonicalize/build/enrich)
  • recognition/anti_unifier.py
  • core/cognition/pipeline.py (node_depths, graph_anti, attrs, result wiring, propagation)
  • chat/pack_resolver.py (DEPTH_PACK_IDS)
  • chat/runtime.py (depth reads + explicit attr)
  • generate/graph_planner.py (GraphNode depth + get_node_depths delegation)
  • generate/contemplation/pass_manager.py
  • generate/problem_frame_contracts.py
  • teaching/contemplation.py
  • core/cognition/result.py (new node_depths, graph_anti_unify fields)
  • tests/test_oov_pipeline.py (many depth tests + marker + new result fields test)
  • tests/conftest.py (new, for requires_depth_packs fixture)
  • pyproject.toml (marker registration)
  • plan.md , docs/..., CLAIMS.md, scripts/verify_lane_shas.py, evals/demo_* reports (re-pin + docs)

Full feature touched ~15-20 files; see git diff --name-only c1e723f1..HEAD.

Intentional demo SHA drifts story

  • The two demo lanes (demo_composition, public_demo) intentionally drifted because we touched the spine: pipeline oov_geometric_context emission, runtime contemplate depth=, realizer-adjacent paths, GraphNode/PropositionGraph depth, anti-unif.
  • All other 7/9 lanes remained stable (including post-CGA substrate).
  • Re-pinned with python scripts/verify_lane_shas.py --update + generate_claims.py + refreshed reports (see commits c57defdb, 73bca055).
  • Current: verify_lane_shas reports 9/9 match.
  • This is expected/allowed per plan and compact: "only expected demo drifts".

3-lang evidence (Hebrew roots, depths, gau)

  • "define אמת" produces on CognitiveTurnResult: node_depths={'p0': {'language': 'he', 'root': 'א-מ-נ', ...}}, graph_anti_unify={'matched_roots': [('p0', 'א-מ-נ')], ...} (also in oov_geometric_context)
  • anti-unifier canonicalizes to root for he/grc agent slots (nid-keyed)
  • contemplate depth= framing findings contain root
  • teaching contemplation attaches depth_roots immutably
  • Direct tests (all under @pytest.mark.requires_depth_packs): the five 3-lang + result fields test
  • Captured fresh in scratch: spine_evidence_contemplate.log and _teaching.log contain non-empty node_depths, matched_roots, roots from real pl.run + teach_contemplate; result_fields.log shows the fields on shipped CognitiveTurnResult.
  • All via real shipped entry points (ChatRuntime + CognitiveTurnPipeline + contemplate fns), not synth.
  • Marker fixture produces explicit documented skips naming the combined DEFAULT+DEPTH list when absent.

Test plan

  • New/updated: marker @pytest.mark.requires_depth_packs + autouse fixture that does explicit skip (documenting DEPTH_PACK_IDS) if not resolvable. No silent no-depth branches for marked tests.
  • New fields on CognitiveTurnResult proven by committed test + direct runs.
  • Broader: verify_lane_shas 9/9; -k broad cognition/oov/anti/... pass.
  • Smokes: multiple "define אמת" + teaching contemplate with depth produce consistent roots/matched.
  • All changes preserve: frozen/immutable where appropriate, no trace_hash impact, exact recall, versor <1e-6.
  • Run after edits: targeted depth tests + full verification plan steps.

How to verify locally

python3 scripts/verify_lane_shas.py python -m pytest -q -m "requires_depth_packs" -k "depth_canonical or graph_anti or contemplate_depth" tests/test_oov_pipeline.py python -m pytest -q --tb=no -k "cognition or oov or anti or construction or depth_canonical or graph_anti" tests/ (plus direct python -c smokes as in plan)

Deviations / notes

None for this slice. Work followed plan acceptance + checklist.

References

  • plan.md (full phases + pickup + cleanup sections)
  • code review notes (MEDIUMs addressed: marker for tests, top-level fields on result, cleaned coupling + enrich)
  • AGENTS.md invariants upheld.

This is the draft for PR description + test plan.