feat(probe): P-COMMUNITY-BASIN-AGREE (S1) — empirical community≡basin agreement via jc#720
feat(probe): P-COMMUNITY-BASIN-AGREE (S1) — empirical community≡basin agreement via jc#720AdaWorldAPI wants to merge 1 commit into
Conversation
… agreement via jc The S1 gate the D-TRI-1 classid-half mint waits on (#719 handoff). An EMPIRICAL probe (not scientific — it consumes jc, never extends it): measures whether the operator's identity ruling holds — is_a category ≡ Leiden community ≡ episodic basin (plan §3b.1). - crates/lance-graph/examples/p_community_basin_agree.rs — two partitions of one entity set: Leiden communities() over all edges vs basin = connected components under only is_a/part_of edges; agreement = phi = jc::pearson of their pairwise co-membership vectors (phi=1 iff identical up to relabeling). Names the bridges (a community that crosses a basin = revision candidate). - jc added as a dev-dependency (light: contract + optional sigker) so the empirical example consumes the certified scientific statistic. Lib untouched (dev-only). Result (synthetic mechanism): aligned -> phi=1.0000 (identity); one cross-basin entity (robot is_a pet, structurally in the tree cluster) -> phi=0.5500, robot named as the single bridge. Mechanism proven; the S1 VERDICT needs a real is_a-annotated corpus (identity => community-id collapses into the is_a rail, no mint; distinct => community-id earns the batched D-TRI-1 mint). Layer boundary (operator): jc is the scientific crate, consumed not extended; a missing partition metric (Rand/ARI/NMI) is an observation for the scientific track, not a bolt-on. fmt + clippy clean. Board: EPIPHANIES E-EMPIRICAL-VS-SCIENTIFIC-JC-1; STATUS_BOARD S1 row. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016b33swuXE23hKtqxsHu9p1
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_e84473ec-eaa3-4e9b-9a12-ef2c6800b270) |
What
The S1 gate the #719 D-TRI-1 classid-half mint explicitly hands off ("the other session runs S1; the council mints"). An empirical probe that measures whether the operator's identity ruling holds —
is_acategory ≡ Leiden community ≡ episodic-witness basin (plan §3b.1).The layer boundary (operator, this session)
jcis the certified scientific surface (reliability::{pearson, spearman, cronbach_alpha, icc},weyl,jirak, …) — this probe consumes it, never extends it. The empirical construction (two partitions → pairwise co-membership vectors) is the probe's; the statistic is jc's. A partition metric jc lacks (Rand/ARI/NMI) is an observation reported to the scientific track, not a bolt-on from the empirical side. So the probe lives on the empirical side (lance-graph/examples/) and dev-depends jc (lib untouched).The probe
crates/lance-graph/examples/p_community_basin_agree.rs:TripletGraph::communities()(Louvain + Leiden refinement) over the whole relational field.is_a/part_ofedges (the plan's basin rail), via a deterministic union-find.jc::reliability::pearsonof the two partitions' pairwise co-membership vectors (φ=1 iff identical up to relabeling); names the bridges (a community that crosses a basin = revision candidate).Result (synthetic mechanism)
robotis_a pet, structurally in the tree cluster)robotnamed as the single bridgeMechanism proven; the S1 verdict needs a real
is_a-annotated corpus (like G0's KILL/PASS). That verdict decides the mint: identity (φ→1) ⇒ community-id collapses into theis_arail, no tenant minted; distinct (φ<1) ⇒ community-id earns the batched D-TRI-1 mint.Verification
cargo run -p lance-graph --example p_community_basin_agreeruns clean (output above).cargo fmtclean;cargo clippyclean on the example.lance-graph-contract+ optionalsigker); the lance-graph lib and its 945 tests are untouched. Cargo.lock updated for the dev-dep.Board
EPIPHANIES
E-EMPIRICAL-VS-SCIENTIFIC-JC-1(the boundary + the S1 result); STATUS_BOARD graphrag §6 S1 row; stale(this PR)labels on the merged D-GR rows corrected to#716.Not in this PR
is_acorpus) — and therefore the community-id mint decision — stay open, as designed.🤖 Generated with Claude Code
https://claude.ai/code/session_016b33swuXE23hKtqxsHu9p1
Generated by Claude Code