Skip to content

docs: trim ls-derivable content from CLAUDE.md files - #995

Draft
Antovigo wants to merge 61 commits into
goodfire-ai:experiment/8B_targetedfrom
Antovigo:worktree-doctor-claude-md-trim-2
Draft

docs: trim ls-derivable content from CLAUDE.md files#995
Antovigo wants to merge 61 commits into
goodfire-ai:experiment/8B_targetedfrom
Antovigo:worktree-doctor-claude-md-trim-2

Conversation

@Antovigo

Copy link
Copy Markdown
Collaborator

Summary

  • Cuts directory/file-tree listings and bare type-name tables from the root CLAUDE.md and 8 nested CLAUDE.md files — content a session can reconstruct in a couple of tool calls (find, ls, opening the source).
  • Kept everything carrying real invariants, gotchas, or non-standard conventions (per-file diffs are pure deletions, no rewording).
  • From a /doctor pass; full findings (unused MCP connectors, version/hooks/permissions checks) reported in chat, not part of this diff.

Test plan

  • git diff --stat shows only deletions (291 lines across 9 files)
  • Pre-commit hooks skip (Python-only matchers, no .py touched)
  • Skim the diff to confirm nothing load-bearing got cut

🤖 Generated with Claude Code

https://claude.ai/code/session_01CGVN5w8ADy4PtjUrfHEPyv

Antovigo and others added 30 commits July 17, 2026 12:57
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
Antovigo and others added 30 commits July 21, 2026 21:50
…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
…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
… 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants