Repository navigation
PCEA BT rearing vs bcfishpass: segmentation, annotated (#324) - #325
Merged
NewGraphEnvironment merged 18 commits intoOct 11, 2026
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJE2szSCkeV9R3qKhuSwyx
Interval-overlap join of link's rearing flag against fresh.streams_vw_bcfp per blue_line_key, since the two segmentations differ (PCEA 106,079 vs 37,957). Reconciles coverage and the flag-total difference before writing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJE2szSCkeV9R3qKhuSwyx
The diff now takes a flag (rearing | spawning) and is renamed habitat_diff_segments.R. mechanism.R attributes each disagreeing piece and breaks.R censuses segment breaks: link breaks at every 15 / 20 % gradient position, which bcfishpass does not in BT-only groups, and the finer segments flip gradient tests and cluster connectivity both ways. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJE2szSCkeV9R3qKhuSwyx
New taxonomy class SEGMENTATION (bt-gradient-segmentation-over / -under) for PCEA, FINA and PARS, and research/bcfp_segmentation_parity.md with the measurement, the upstream rules it rests on and the two smaller mechanisms (bcfishpass's order-1 width exception, an access residual). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJE2szSCkeV9R3qKhuSwyx
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJE2szSCkeV9R3qKhuSwyx
Annotate PCEA's rearing_lake_connection row (bcfishpass's order-1 width exception); the diff script always loads the source tree and sorts its pieces on a unique key; the break census labels FWA base-segment starts; four wording corrections in the write-up. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJE2szSCkeV9R3qKhuSwyx
Drop sub-centimetre overlap slivers, which paired the reach above a shared break with the one below and counted as gradient splits; mechanism.R writes the net table the docs quote; every quantitative claim re-checked against the regenerated artifacts (planning/active/review-enumeration.md). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJE2szSCkeV9R3qKhuSwyx
Correct the sliver cause (within-side measure overshoot from FWA, not a shared-break mismatch); attribute spawning's width rule (bcfishpass > 2.0 m, fresh >= 2.0 m); cite accessible km, not mapping-code parity, for access agreement; qualify 'superset'; deterministic sort in breaks.R; causal claims added to the ledger. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJE2szSCkeV9R3qKhuSwyx
Segmentation-only net and gross written by mechanism.R and quoted instead of the all-mechanism gross; PARS rearing re-tagged to bcfishpass's width exception, which drives its sign; spawning gets its own entry (NEEDS_INVESTIGATION, the width rule is open); the width exception never admits a NULL width; the split test counts only gradient spawning flips. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJE2szSCkeV9R3qKhuSwyx
mechanism.R writes the net table for three scopes (flag, the rollup's rearing row, its stream slice); the rearing scope reconciles to the parity cross-section and the research doc quotes it. Connectivity not tied to a split is kept out of segmentation; taxonomy mechanisms carry no figures; the fresh width test is cited where it runs (.frs_rules_to_sql). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJE2szSCkeV9R3qKhuSwyx
Define 'BT-only' as no species with a 15 / 20 % access model present (bcfishpass's ct_dv_rb model has no presence filter but is 25 / 30 %), and state the connection-line row as -8.37 km of width exception offset by +0.17 km of link-only rearing (-8.21 km). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJE2szSCkeV9R3qKhuSwyx
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJE2szSCkeV9R3qKhuSwyx
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJE2szSCkeV9R3qKhuSwyx
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJE2szSCkeV9R3qKhuSwyx
Both configs will filter the break set by species presence; the bcfishpass config spawns on width > min, default keeps the tie (an intentional departure, default_vs_bcfishpass.md section 6). #223's "matches bcfishpass" break set was asserted, not measured: habitat byte-identity was LKEL only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJE2szSCkeV9R3qKhuSwyx
…s; order-1 exception in bcfishpass config #223's over-credit came from reducing the pre-override barrier set, not from reducing as such; bcfishpass reduces after overrides. In practice bcfishpass's order-1 exception admits measured widths only (fwapg models none on order 1). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJE2szSCkeV9R3qKhuSwyx
Lines up bcfishpass's five access scripts (groups, lifts, reduction after lifts) against link's break set, with the history: link never filtered by presence (#45 chose not to), and #223 dropped the reduction instead of moving it after the lifts. Records why exact-key parity numbers could not see it, and corrects ct_dv_rb: a fixed list of 14 groups, not every group. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJE2szSCkeV9R3qKhuSwyx
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WJE2szSCkeV9R3qKhuSwyx
NewGraphEnvironment
deleted the
324-pcea-link-bcfishpass-config-flags-differ
branch
October 11, 2026 23:12
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
PCEA's +1.87 % BT rearing against bcfishpass (bcfishpass config, after #319) is explained and annotated. No package code changes.
rear_stream_order_bypass = no.data-raw/habitat_diff_segments.R: a segment-level diff joined on measure overlap. It asserts that it reconciles.data-raw/logs/rearing_diff_324/: attribution (mechanism.R, with net tables for the flag, therearingrow and therearing_streamslice) and a break census (breaks.R).SEGMENTATIONplus two class-B entries.research/bcfp_segmentation_parity.md, and a CLAUDE.md status entry.rearingrow, link − bcfp kmRelated Issues
default's order-1 position).research/bcfp_segmentation_parity.mdnow lines up bcfishpass's five access scripts against link's break set, with the history.Test plan
R/,tests/orinst/change.test-lnk_parity_annotate.Rpasses 55 / 0 against the edited taxonomy, and the YAML parses.lnk_parity_annotate()tags the PCEA / FINA / PARS rearing, spawning and connection-line rows with the new entries. LKEL comes outWITHIN_TOLERANCE.pcea_bt_pieces.csv. Coverage and flag-total gaps are 0.0 m on all four groups.rearingandrearing_streamscopes were recomputed from the DB (lnk_rollup_wsg()against.lnk_sql_lake_connection()on the view) and match the CSVs to 0.01 km./code-check branch: six rounds. Rounds 2–5 each found a defect inside the previous fix. The loop ended by enumeration: every claim is inplanning/archive/2026-10-issue-324-pcea-bt-segmentation/review-enumeration.md, and round 6 swept all of them.Notes
smnorris/bcfishpass@620dbe4. The cited access and habitat files changed on or before 2026-04-16, before the localfresh.streams_vw_bcfpsnapshot.frs_order_child()has no width test, so as written it would also admit NULL-width lines that bcfishpass leaves out.hors-class-stream-order-bypassstill readsINTENTIONAL_FRESH_DEFERRED. fresh#158 is closed and the bundle declines the bypass. Its status is left for that follow-up.🤖 Generated with Claude Code
https://claude.ai/code/session_01WJE2szSCkeV9R3qKhuSwyx