linkedin-studio/scripts
Kjell Tore Guttormsen 88356b8a83 feat(linkedin-studio): SB-S2 brain consolidate CLI — gather/propose/apply [skip-docs]
Operator-invoked, operator-gated loop:
- --gather reads published bodies directly (parsePublishedRecord, filtered by
  published_date > last_run) + current profile, for the session to extract candidates.
- --propose validates candidates (shape + single-line key/value, else non-zero/no-write),
  proposeDiff, writes brain/pending-diff.{json,md}; never touches profile.md.
- --apply --diff <json> --confirm is the ONLY path that writes profile.md (refuses
  without --confirm), then records brain/consolidation-state.json last_run.
init/ingest/published preserved. 7 subprocess CLI tests (SC5). brain 75→82, tsc clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RigJBiRFNtFZKCz21qNbQ4
2026-06-23 17:03:34 +02:00
..
analytics refactor(linkedin-studio): M0-2 — storage.ts getDataRoot + external default (ANALYTICS_ROOT alias kept) 2026-06-18 11:12:11 +02:00
brain feat(linkedin-studio): SB-S2 brain consolidate CLI — gather/propose/apply [skip-docs] 2026-06-23 17:03:34 +02:00
contract-gate feat(linkedin-studio): accumulation binding — ratify + §E foldIns (fix #1 slice 2) 2026-06-20 17:48:20 +02:00
specifics-bank feat(linkedin-studio): per-edition lived-specifics binding + kilder artifact (fix #2 slice 2) 2026-06-20 21:33:44 +02:00
trends feat(linkedin-studio): trend-store staleness nudge — SessionStart B-S3 [skip-docs] 2026-06-23 12:23:53 +02:00
check-model-consistency.mjs fix(linkedin-studio): S11 — model-name declaration drift + model-consistency lint guard 2026-05-30 15:05:37 +02:00
check-replace-safety.mjs fix(linkedin-studio): S13 — close S12 WARN ($-scalar + false-green test) + $-safety lint guard 2026-05-30 19:12:45 +02:00
test-runner.sh feat(linkedin-studio): SB-S1 wire voice-trainer to published-only + gate-enforce it [skip-docs] 2026-06-23 15:02:32 +02:00