Wiki log

Append-only timeline. One greppable line per event: ## [YYYY-MM-DD] <op> | <description>.
Tip: rg "^## \[" log.md | tail -5 shows the last five events.

[2026-06-20] ingest | exemplar pages breve_controller + uncertainty_model — paired with a concise “what”-docstring pass on both source files (5 baselines reproduce byte-identical: max_abs_diff = 0.000e+00; AST-minus-docstrings identical)

[2026-06-20] ingest | pass 2 — docstring pass + wiki pages for the 11 remaining GNC files (com/base controllers + full guidance chain) via an 11-agent parallel Workflow; all status: draft. Verified: 5 baselines byte-identical (max_abs_diff = 0.000e+00), AST-minus-docstrings identical on all 11. Flags surfaced into pages: target_finder MAJOR-ISSUE marker (no stable no-target score leaf), quintic_pose + detour_planner are dormant (validation/legacy only).

[2026-06-20] ingest | utils/ (16) + analysis/ (14) — docstring pass + wiki pages via a 30-agent parallel Workflow; all status: draft; index Map-of-Content gains Utils + Analysis sections (wiki now covers GNC + utils + analysis = 43 pages). Verified: AST-minus-docstrings identical on all 30, 5 baselines byte-identical (utils is in the control path), 108 analysis tests pass. Flags surfaced into pages: dormant code (curvature.segment_samples, mesh_manipulation envelope half, mj.FFSim, plotter3d.Plotter3D, quaternions.quat_from_vector/to_rotvec), DRY duplication (printing + data_class_helpers vs infra), deferred-retirement shim (log_schema_compat / convert_flat_log = Phase D), sampling/star_reporter staticmethods missing the PYTHON.md justification comment.

[2026-06-20] ingest | YAMLs_by_domain (4) — config pages (parameters, metrics, scoreboard, assets) via a 4-agent PAGE-ONLY Workflow (no YAML or code edited; all 4 YAMLs byte-untouched + still parse). Added the config tag (metrics + scoreboard also measurement). Wiki now spans GNC + utils + analysis + config = 47 pages.

[2026-06-20] ingest | incremental run 1 — prune 0 (every INSIGHTS file’s earliest commit ≥ Jun 19, so no entry is >7d old). Migrated 1 settled footgun → pages/breve_controller.md (gamma_regularization onset regime-dependence; from CLAIMS Jun 19 / validation compare_dk_vs_gold). validation/ scrape (22-agent read-only Workflow): reusable idioms already catalogued in validation/INSIGHTS.md §“Hand-roll census” — nothing new to promote. 3 hygiene cards → ONGOING (run_scoreboard ze chord-vs-versine, validation wiki-scope, DRY backlog). CLAIMS copy-only: radius_scale footgun already on parameter_loader.md (no dup, migrate-verified).

[2026-06-21] setup | wiki made self-healing — WIKI.md gains the current filesystem + bulletin-board + vocabulary policy; GNC.md slimmed to wiki pointers (per-file summaries → pages); wiki-lint Check 8 drains #done + auto-retired hygiene cards from ONGOING → logs/DONE.md; ast-grep skill cut to a lean verified Python cheat-sheet (324→70 lines) + CLAUDE.md ast-grep fixed; all 47 pages flipped status draft→reviewed.

[2026-06-21] promote | data-analysis facade consolidation — diff_norm promoted to analysis/data_analyzer.py (facade diff_norm/step_norm); duplicate hand-rolls retired onto the facade at call sites (run_scoreboard dnu, dwell_episodes runs/merge/stall, validate_ee_tracking pkpk, omega_b_diagnostic corrcoef/jumps), all proven byte-identical (scoreboard + omega_b output unchanged, tracking baseline 0.000e+00). New page pages/signal_measurement.md (the log-to-number facade); INSIGHTS Hand-roll census updated + closed domain-specific not-promoted ledger; data_tricks.md retired to a pointer. ONGOING Promote drained. Commits ad8d8d8, 7f465c0.

[2026-06-22] update | new page pages/breve_core_controller.md (BreveCoreController — the shared base both controllers now extend, Template Method) + index Controllers MoC. Written from the Jun22 twin extraction (5 baselines max_abs_diff=0.000e+00; report generated_reports/GNC/controller_twin_extraction.md). DRIFT FLAGGED (not yet fixed): base_controller.md + breve_controller.md Role-line says “extends com_controller” and their Key-methods lists name the 13 methods that moved into the shared base — both stale, need a wiki-lint pass / Toni re-review.

[2026-06-22] ingest | incremental run 2 — migrated Jun21–22 settled work onto 8 pages. Headline: IMEX implicit-damping integrator footgun → breve_controller (the omega_b-ripple cure — forward-Euler period-2 instability when dt·μ>2; controller.base.implicit_damping default ON, baselines+gold re-pinned, OFF byte-identical). RESOLVES the Jun22 drift flag above: reparented base_controller + breve_controller onto breve_core_controller (Role lines, moved-method membership, shifted line numbers all refreshed against the live files). formatted_dict DRY now shown RESOLVED on printing + infra (single source since Jun22; the [!info] near-duplicate note → [!note] consolidated). sampling.sigma_min/sigma_min_and_cond + star_reporter.latex_command staticmethod→module promotions noted. analytic_feedforward: default-ON adoption note (Jun21, pe_median −28%) + fixed a stray authoring-corruption at EOF (vault-wide sweep clean otherwise). Prune 0 (every INSIGHTS file created Jun19–20, <7d — age-MAX guard, migrate-verified not reached). validation/ scrape: detector already carded, no new idiom. CLAIMS copy-only (C2/C3/C7/C8 + Jun21 IMEX/analytic_ff cited; nothing removed).

[2026-06-22] lint | weekly health-check. Drift 0 new (extraction/promotion drift was resolved at ingest; verified clean — breve_core_controller defines exactly the 13 listed methods) but CAUGHT + fixed 2 consumer-page contradictions the ingest missed: robot.md Sampling.sigma_min_and_cond→module-level, com_controller.md “FLAT chain / both extend this class”→CC_Controller → breve_core_controller → {Base, Breve} (both updated: bumped). Dead-path 0; coverage 0 (YAMLs_by_domain = 4, all paged; every changed .py paged; metric_titles/metrics_future deleted post-Jun20, not gaps); orphan 0 (index MoC links all); INSIGHTS-overdue 0 (every INSIGHTS file <7d). Check 8: ARCHIVED 11 ## DONE items → new tracked logs/DONE.md (## [2026-06-22] archived), ONGOING ## DONE cleared to a pointer; no resolved #wiki cards to retire (detector-residuals + deferred-staticmethod batch both still open). 1 card filed: Check 3 (Stale) is defeated by the launchd 15-min auto-snapshot (every code_path last-commit reads “today”) — re-spec or drop.

[2026-06-22] promote | @staticmethod round 1 — 9 generic/pure staticmethods → module-level functions across analysis/{logger,orchestrator,plotter,data_analyzer}.py (copy_sample, has_uniform_sample_shape, axis_loc, flat_figure_paths, figure_size, merged_fields, has_legend_items, marker_kwargs, trim_plot_series). Vetted by a survey + adversarial-purity Workflow (23 agents); 2 REJECTED (table_frame collides with star_reporter.table_frame; shade_window getattr-overlap). Byte-identical: base baseline 0.000e+00 (logger=sim-path), 24 smokes, 6 functional checks, 0 stale call forms repo-wide. Flagged: the RUN_REPORT_GATE PDF render is dead (test imports archived regen_flat_report). No wiki page drift (these are unlisted internal helpers).

[2026-06-23] promote | @staticmethod round 2 — 6 more → module-level (data_analyzer plot_use_norm/panel_field/quiver_vectors/mode_value, orchestrator.output_run_stamp, plotter.reduction_comparison_path) + retired the variant_label 3-way DRY (inlined Orchestrator’s, kept plotter.variant_label canonical + star_reporter.display_name; mode_value kept separate from enum_from_value). Report-path only → verified via 24 smokes + RUN_REPORT_GATE PDF render + 12 functional checks + base baseline 0.000e+00 + 0 stale call forms. Also fixed the dead RUN_REPORT_GATE (regen_flat_report → validation/legacy/).

[2026-06-23] setup | originality gate LIVE — validation/tests/test_originality.py (fast, in pytest -m "not slow"): whole-GNC scan FAILS on any function pair J≥0.90 not on the ALLOWLIST (live max 0.827; 5 deliberate forks seeded + 2 anti-rot guard tests). Dev tool validation/check_originality.py (ranked table + PASS/FAIL). Write-ups generated_reports/analysis/ast_duplication_detector.md (method) + originality_gate.md (policy + living allowlist log); validation/INSIGHTS.md ast_duplication entry linked. Reuses the detector, no detector change.

[2026-06-23] update | hygiene round 3 (3 threads, ultracode investigation workflow). (1) Orchestrator.table_frame RETIRED → routes to canonical star_reporter.table_frame (try/except preserves None-on-miss skip). (2) plotter.shade_window getattr footgun KILLED — explicit isinstance(style, GuidanceMode) dispatch + promoted module-level. (3) Legacy log-compat DELETED: analysis/log_schema_compat.py removed (mis-named — relocated its LIVE raw_log_payload/RAW_LOG_EXCLUDED_KEYS into logger.py first), dropped apply_saved_log_schema_compatibility/convert_flat_log/test_legacy_flat_log_loads+M7_LOGS + the dead log_schema_compat page (index + logger.md + ANALYSIS.md + analysis/README.md de-referenced). Byte-identical: base+EE-tracking+EE-initial baselines 0.000e+00, 24 smokes, RUN_REPORT_GATE PDF, originality gate. New card: GuidanceMode.shade_window matplotlib-in-GNC smell.

[2026-06-23] setup | TOPICS branch scaffolded — new wiki/topics/ (cross-file concept pages) + _templates/topic-page.md (code_paths LIST frontmatter, topic + topic/ nested tags). index gains a Topics MoC + a 2nd Dataview block FROM “topics”; new wiki/tags.md taxonomy (the wiki’s first nested tags) + wiki/wiki.base (first Obsidian Base — 3 views: All / Needs review / Topics). First committed wiki binaries: wiki/assets/{overlay_p_c,overlay_v_c,overlay_diagnostics.conditioning.s_min_G}.png (placed by validation/place_wiki_evidence.py from the Jun21 checkin run_PM0314). Schema added to .claude/rules/WIKI.md + the wiki-docs skill. No code touched.

[2026-06-24] lint | weekly health-check (58 pages: 48 + 10 topics). Drift 1 (logger.md lists deleted LogStore.convert_flat_log from the log_schema_compat removal) + ~5 LOW stale-:line refs (logger ×3, breve_controller footgun ×2 — symbols exist). Dead-path 0; Orphan 0; Coverage 1 (analysis/ast_duplication.py has no page — and the open “residual hits” card mis-paths it as validation/); Contradiction 0 (controller parent-chain + sync-flag claims verified live); INSIGHTS-overdue 0 (the pre-Jun17 grep hits are run-IDs not entry dates). Stale (Check 3) NOT run — but the launchd wip-autocommit timer that defeated it was just deleted, so filed a revival card. 4 new #wiki cards filed. DEDUP: removed the duplicate ### Dormant code: stub under ## Retire (superseded by the ### Purge worklist, whose every file:line I verified). Check 8: ARCHIVED 14 ## DONE items → logs/DONE.md ## [2026-06-24] archived (block cleared); 0 resolved wiki cards to retire.

[2026-06-25] update | mirrored KEY equations onto 21 pages (11 per-file: breve_controller/base_controller/breve_core_controller/com_controller/robot/com_guidance/base_guidance/ee_guidance/analytic_feedforward/target_finder/guidance_rollout + 10 topics) into each ## Equations & references — copied VERBATIM from current_sota, captioned (concept name + code tag), each anchored to its §/eq; current_sota stays sole source of truth, existing ref bullets kept under References:. SKIPPED quintic_pose/mesh/detour_planner/guidance_classes (their math — quintic interp, triangle geometry, enums — is not canonical in current_sota; no source-of-truth home). FLAG: slides write p_ed = p_c − r_cam·r̂ but current_sota (5.7) writes +; mirrored the source — needs reconciliation. Also: added qmd semantic search over research_wiki (.qmd/ + .firecrawl/ gitignored).

[2026-06-25] update | CoM-decouple refactor reflected in docs: chain text now ControlLoop (renamed from CC_Controller) composing COMController (has-a). Updated .claude/rules/GNC.md (chain + run_all entry), com_controller.md (title/aliases/Role/Key-methods repointed moved force-law methods to com_guidance.py:287-348, fixed shifted :line refs after the −107-line strip), com_guidance.md (now a 2-class file: added COMController section + orbit-end brake footgun/eq, aliases+controller tag). terminology.md: +hierarchical Γ reconstruction, +orbit-end brake, +COMController. Pipeline pitch report at generated_reports/GNC/com_decouple_pitch/index.html (figures referenced, no base64). Commits e14ee16 (extract, byte-identical) + 4ef96e4 (numerics) + e5ea4b9 (dead-code cut) + baec07c (report).

[2026-06-25] lint | scoped re-check of com_controller.md + com_guidance.md after the CoM-decouple doc sync. Drift 0: all ControlLoop Key-methods (run_all/run_control_loop/all_control_terms/reconstruct_generalized_velocity/compute_tau_b_oplus/compute_omega_e_oplus) resolve in GNC/com_controller.py; all COMController methods (compute_f_c_terms:328/feedforward_accel:318/f_c_fb:312/x_c_tilde:295/x_c_tilde_dot:303/clamp_com_integral:287/_update_com_integral_state:348) + both classes (COMGuidance:26, COMController:269) resolve in GNC/com_guidance.py; the moved force-law methods correctly no longer claimed on com_controller.py. Dead code_path 0; Contradiction 0 (composition + chain verified live). LOW (pre-existing, not this edit): com_guidance.md COMGuidance Key-methods off-by-one — desired_at_window :170→171, build_com_desired_for_step :89→90 (fix on next touch).

[2026-06-25] update | board tidy + drain (Toni-directed; acting as Toni’s hand, not a lint run). COMMITTED the previously-uncommitted drain-only fix (20d56da: .claude/rules/WIKI.md + wiki-lint + wiki-ingest — findings → log.md ledger, never ONGOING cards; gnc-com-decouple carried NONE of it). Closed 2 #wiki cards: authored wiki/pages/ast_duplication.md (coverage gap) + repointed the lone broken mission_1_success.md citation (target_finding_coverage.md:68 → the Jun10_26/ dated path, move-free — every other ref already resolved). Removed the empty ## HITL → ### uh stub. Drained ## DONE (4 items) → logs/DONE.md ## [2026-06-25] archived. Board 98→78 lines; check_ongoing 0/0.