docs: trim ls-derivable content from CLAUDE.md files - #995
Draft
Antovigo wants to merge 61 commits into
Draft
Conversation
Scores how cleanly each alive subcomponent's CI pattern isolates a single operand period (band_purity pools harmonics; flat/always-on excluded), from the find_alive_subcomponents per-position JSON. Moves the JSON->grid helpers (parse_ab_prompts, build_ci_grids, PerPosition, OP_LABEL) from plot_ab_heatmaps into common.py. notes/period_separation/ tracks the period-separation recipe search. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… + wave-2 design Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…min roles) + wave-3 launch Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…-4 launch Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ed-5x is the recipe Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…e-ai#858) The HF Xet CDN (us.aws.cdn.hf.co/xet-bridge-us) intermittently returns non-retryable 408 Request-Timeouts on dataset-shard GETs, killing long DDP streaming runs — both at the simultaneous 8-rank startup resolve and on mid-stream re-fetches (observed killing runs at step 0 and step ~60k). - hf_http.py: add 408 to the retry status_forcelist (it was the one transient class not retried) and bump total_retries 5->8 for the startup thundering-herd. - ddp_launch.py: set HF_HUB_DISABLE_XET=1 so resolves fall back to the classic LFS path; the fallback GET can still 408, hence the retry above. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ai#882) Silico provisions this repo as an ecosystem library by running uv sync with --extra flags, which installs only the root param_decomp package and omits the param_decomp_lab workspace member -- so pd-lm and the other pd-* CLIs (and deps like fire) are missing from the provisioned venv. This post-sync hook runs uv sync --all-packages --no-dev (matching make install-lab) so the CLIs land on PATH.
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v6...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/cache](https://github.com/actions/cache) from 5 to 6. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](actions/cache@v5...v6) --- updated-dependencies: - dependency-name: actions/cache dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…dfire-ai#561) Job 703812 died at dataloader setup when a ranged parquet read got a 408 (Request Time-out) from the HF CDN. The goodfire-ai#557 retry backend was active but its status_forcelist only covered 429/5xx, so urllib3 returned the 408 unretried and hf_raise_for_status raised, tearing down all 16 ranks. 408 is the same transient-timeout class that backend exists for, and only idempotent methods are retried, so adding it is safe. Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ality loss Add SmoothL0ImportanceMinimalityLoss, an alternative CI-sparsity penalty φ(c)=c²/(c²+γ²) to the L_p ImportanceMinimalityLoss: flat gradient at 0, bounded (~0.65/γ near c≈γ), so no gradient cliff as the threshold tightens (L_p's p·c^(p-1) blows up as c→0 for p<1). γ anneals like p. Self-contained (no edits to importance_minimality.py). Register it loss-side (configs.py, dispatch.py) and both imp-min metrics eval-side (eval_metrics) so a run driven by one logs the other's sparsity proxy at eval. Add unit tests, two cross-logging comparison configs (L_p control + smooth-L0), and a short docs/ note with run commands. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…d full-length plan Probe series invalidated (schedule compression) and cleaned up; report rewritten around the recon ≻ separation ≻ parsimony objective and the P0/P1/P2 phase model. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…4 (smoothl0-b) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Scores CI-gated (mean CI > 0.1) subcomponents by the canonical-period-class decomposition of their answer-position inner activations x·V/‖V‖ over the a+b grid. mixed_frac / excess_periods count components carrying >=2 period classes at theta, over periodic components only; aperiodic components are not penalized. Logs side-theta variants + a theta-free secondary_share (the theta cut proved rank-unstable on baselines), a per-period census, and an AB-heatmap-style inner-activation figure (top-20 per matrix by mean CI). period_orbits.py holds the shared numpy spectral math; the offline scorer imports from it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…e, S1 sweep launch Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…eriodSeparation metric Rewritten to the validation-script conventions: checkpoint positional, --slurm self-resubmission, canonical analysis/ outputs (per-subcomponent TSV, per-matrix summary TSV, inner_acts_period_panel.png). Reuses the eval metric's now-public scored_components/plot_panel; the superseded CI-JSON orbit scorer and its unused orbit machinery in period_orbits.py are deleted. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…spectral floor or share Share-relative detection missed small genuine periods behind a dominant one; floor-relative SNR fired on every class because the module input is itself periodic. Presence is now class-bin power >= snr_thr x the median power of the same class over 256 fixed random unit directions through the same input — 'above what a random direction would read'. Validated: hid_sched-5x gate_proj 110's period-2 (snr 116) is detected next to its dominant T=50; synthetic noise fires nothing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ge for the roadmap sweep
Mixing (n_periods/mixed_frac/excess) now counts the canonical periods {2,5,10,
20,50} only; T=4/25/100 detections are reported as diagnostics (extra_periods
column, per-matrix census keys). New coverage_frac (canonical periods present
per matrix) and components_per_period (redundancy) implement the roadmap's
Objective-1 criteria. Adds notes/period_separation/roadmap.md.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…neage Surgical port of pd.weight_init (kaiming/coupled) + init_coupled_ + tests (61ca40b net content, minus that branch's unrelated removals — SmoothL0 stays). Needed for the roadmap's Objective-2 init comparison. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Port of the jax branch's HiddenActsReconAux (SPEC S31) to torch: coeff * MSE(masked site output, frozen x@W+b) riding the host's masked forwards, with targets recomputed from the step's cached clean input acts — no extra forward, unlike the standalone StochasticHiddenActsReconLoss. MSE covers the sites masked per draw at component-routed positions; logged separately at eval. Parity test against the standalone computation included. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…eriod component A component is pure-T when T is its only detected non-trend period (T=100 ignored; T=4/25 extras disqualify). Logged as n_pure_periods + pure_census; offline TSV gains a per-component column. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…; winner 3e-5 confirmed Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…_periods Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… mixing metric) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…anel.png) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Coupled with the coupling broken: V_c ∝ W^T g_c, U_c ∝ W h_c with independent Gaussians — per-side marginals match init_coupled_ (S²-weighted in-span directions, unit-norm narrow side, W-image-scale wide side) but the sides are statistically independent. Third weight_init literal; roadmap Objective 2 (period_separation) extended with the within_span arm. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1RjvPNwD1ZD4rRrEbxv1y
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1RjvPNwD1ZD4rRrEbxv1y
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1RjvPNwD1ZD4rRrEbxv1y
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1RjvPNwD1ZD4rRrEbxv1y
…g confirmed Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1RjvPNwD1ZD4rRrEbxv1y
…efit, permutation-null gate collect_resid_stream captures L14-20 block outputs for a+b= and a-b= grids; fit_ridge_cv_probes selects lambda by rotating contiguous-value-block CV, refits on the full range, and gates each (layer, variable, period) cell against a value-permutation null; plot_ridge_cv_probes renders the ops x variables heatmap grid + summary TSV. submit_self_to_slurm gains dependency chaining. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q86777GYLMDELSWkQpdh61
…ick 0.5 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1RjvPNwD1ZD4rRrEbxv1y
…ed winner Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1RjvPNwD1ZD4rRrEbxv1y
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q86777GYLMDELSWkQpdh61
…ap, caveats Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q86777GYLMDELSWkQpdh61
…for ridge-CV probes Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q86777GYLMDELSWkQpdh61
… the probe report Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q86777GYLMDELSWkQpdh61
…t representations Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q86777GYLMDELSWkQpdh61
…riod scatter figures in the report Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q86777GYLMDELSWkQpdh61
…layer grids Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q86777GYLMDELSWkQpdh61
…jections Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q86777GYLMDELSWkQpdh61
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1RjvPNwD1ZD4rRrEbxv1y
… on the L20 probes Position slider/play shows the final state being constructed; color by value mod T or by per-point movement under a chosen block (in-plane or full-resid norm), with displacement arrows and hover tooltips. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q86777GYLMDELSWkQpdh61
…elta always vs previous layer Panels for all stream positions replace the slider; value and delta colors both use viridis (non-cyclic, zero identifiable); delta modes are always relative to the previous position on one shared scale across panels. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q86777GYLMDELSWkQpdh61
… result @ L20), crisp DPR panels Rows 1-3 project each position on that layer's own probes (the data blocks work with); row 4 keeps the fixed-L20 result plane (the state being constructed). In-plane deltas compare against the previous state projected into the same plane (new 'prev' arrays in data.js); panels shrink to 158px so 7 positions fit one display row, rendered at devicePixelRatio for sharpness. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q86777GYLMDELSWkQpdh61
…rough the pipeline Collector captures the post_attention_layernorm input alongside block outputs; the fitter and all consumers switch from integer layers to string positions, so probes/panels exist at L14, L15att, L15, ..., L20 and consecutive deltas isolate each attention write vs each MLP write. Applet grid scrolls horizontally. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q86777GYLMDELSWkQpdh61
…ous point on every panel Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q86777GYLMDELSWkQpdh61
…Obj-6 candidates Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1RjvPNwD1ZD4rRrEbxv1y
A resume YAML can now carry a full replacement PDConfig, enabling branched fine-tunes that extend steps and switch on schedules (Objective 6 gamma anneal) without mutating the parent run's artifacts. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1RjvPNwD1ZD4rRrEbxv1y
…s, doesn't separate Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1RjvPNwD1ZD4rRrEbxv1y
…sformer CI fn Ported from experiment/combine_layers. Unanchored logits saturate the hard sigmoid and freeze strays at CI=1; final_rms_norm anchors the head's input scale and zero_init_readout starts every logit mid-window. Both required — synergistic (see notes/ci_net/report.md on experiment/combine_layers). final_rms_norm defaults to false, so existing configs reload unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FTw67kyXczJ2Bt3bX3xwQb
Port normalize_at_one from the combine_layers worktree: rescale phi by (1 + gamma^2) so a fully-active component always contributes exactly 1, removing the implicit ~2x coefficient ramp across the gamma anneal. Extend build_nontarget_loss_configs so impmin_coeff_ratio also scales SmoothL0ImportanceMinimalityLoss, not just the L_p variant. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1RjvPNwD1ZD4rRrEbxv1y
…rer applet Slow eval metric for a<op>b= prompt pools: each slow eval forwards the pool (input-cache only, sharded across DDP ranks) and writes per-subcomponent CI (u8) and normalized inner-activation (f16) grids over (op, a, b) to <run>/ab_grids/step_<n>.js, next to a self-contained file:// applet with step/op/position selectors and a log-scale mean-CI threshold slider. Grids are saved only for subcomponents above mean_ci_floor; the full mean-CI vector is always stored so the cut stays visible. Delivery via run_artifacts.RunDirArtifact: raw files the local sink writes under the run dir (regenerating manifest.js); excluded from wandb and metrics.jsonl. Lives in its own module to keep eval_metrics free of the sink's wandb/infra import chain. CI is computed with sampling="continuous" (matching collect_ablation_kl) so archived grids carry no binomial-sampling noise. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q1RjvPNwD1ZD4rRrEbxv1y
…x/square Frees up space for bigger heatmap tiles in the gallery view; the mean-CI value is still used for sort/threshold, just no longer duplicated in the card label. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MgysNYD2xxiVE56j2YMZfH
Cut directory/file trees and bare type-name listings that a session can reconstruct in a couple of tool calls (find, ls, reading the source) — root CLAUDE.md's "Where things live" and "CLI entry points" plus dev-command table, and per-file listings/type tables in 8 nested CLAUDE.md files. Kept everything carrying real invariants, gotchas, or non-standard conventions. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CGVN5w8ADy4PtjUrfHEPyv
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
CLAUDE.mdand 8 nested CLAUDE.md files — content a session can reconstruct in a couple of tool calls (find,ls, opening the source)./doctorpass; full findings (unused MCP connectors, version/hooks/permissions checks) reported in chat, not part of this diff.Test plan
git diff --statshows only deletions (291 lines across 9 files).pytouched)🤖 Generated with Claude Code
https://claude.ai/code/session_01CGVN5w8ADy4PtjUrfHEPyv