Private
Public Access
0
0
Commit Graph

187 Commits

Author SHA1 Message Date
ed 434b6d0d54 docs: reduce redundant content across files; map references to canonical sources
Per user 'a bunch of docs just committed had redundant content across
files. Can we do a reduction of that and instead map references to
other files?'

This commit reduces content duplication across 9 files. The
canonical sources are kept as detailed references; the other
files now point to them.

Reductions (table replaced with 'see canonical' reference):

1. data_oriented_design.md §9: the 4-dim memory table
   (canonical: conductor/code_styleguides/agent_memory_dimensions.md §0)

2. guide_agent_memory_dimensions.md §0: the 4-dim memory table
   (canonical: conductor/code_styleguides/agent_memory_dimensions.md §0)

3. guide_caching_strategy.md §1: the 12-layer model
   (canonical: conductor/code_styleguides/cache_friendly_context.md §1)

4. guide_ai_client.md 'Cache strategy' section: the 12-layer model recap
   (canonical: conductor/code_styleguides/cache_friendly_context.md §1)

5. guide_knowledge_curation.md §1: the 5 category file details
   (canonical: conductor/code_styleguides/knowledge_artifacts.md §1)

6. product-guidelines.md 'Memory Dimensions' section: the 4-dim table
   (canonical: conductor/code_styleguides/agent_memory_dimensions.md §0)

7. guide_mma.md '4 memory dimensions' section: the MMA scope table
   (canonical: conductor/code_styleguides/agent_memory_dimensions.md §0)

8. docs/AGENTS.md §0 + §5-§8: 4-dim table + caching/knowledge/RAG/
   feature flag tables (canonical: the per-topic styleguides in
   conductor/code_styleguides/)

9. AGENTS.md 'Code Styleguides' section: the 6-styleguide list
   (canonical: docs/AGENTS.md §2)

The principle: each piece of content has ONE source of truth; other
places point to it. The data-oriented way. Files retain their
narrative flow and the 'what this is' intros, but the detailed
tables are now in their canonical home.

Net effect: -2100 bytes across 9 files (without losing any
information - the canonical sources are unchanged). The
'cross-references' sections are kept; the duplicated content
is removed.
2026-06-12 14:10:30 -04:00
ed 35c6cca134 docs: agent workflow docs + regular docs (v2.3 surfacing)
Per user request 'use your remaining context to update agent workflow
docs and then regular docs based on what was discussed in this report',
this commit creates/updates 15 files derived from the v2.3 nagent
review (the 12 new nagent additions + the 4 memory dimensions
reframing + the cache strategy + the RAG discipline + the knowledge
harvest pattern).

Agent workflow docs (4 files):
- AGENTS.md (UPDATE): add @import line to canonical DOD + 'Code
  Styleguides' section pointing to the 6 new styleguides + new
  'Human-Facing Documentation' section pointing to ./docs/AGENTS.md
- conductor/workflow.md (UPDATE): new section 'Additions (2026-06-12)
  - the 12 patterns from the latest nagent corpus' with TDD
  protocols for knowledge harvest, cache ordering, compaction, RAG
  discipline
- conductor/product-guidelines.md (UPDATE): new sections 'Memory
  Dimensions (added 2026-06-12)' + 'See Also - Updated' with the
  6-styleguide catalog
- docs/AGENTS.md (NEW): the agent-facing mirror of docs/Readme.md
  (per the nagent CLAUDE.md pattern). 10 sections + the per-tier
  reading path + the 4 memory dimensions + the caching strategy +
  the knowledge harvest + the RAG discipline + the feature flags

Regular docs (11 files):
- 6 new styleguides (the convention catalog):
  * data_oriented_design.md: the canonical DOD reference (Tier
    0/1/2; 3 defaults to reject; 8 core defaults; 7-question
    simplification pass; 10-question self-check; 4 memory
    dimensions in Manual Slop context)
  * agent_memory_dimensions.md: the 4 memory dims (curation /
    discussion / RAG / knowledge) + when to use each + the
    boundaries
  * rag_integration_discipline.md: the conservative-RAG rule
    (opt-in, complement, provenance, no mutation, feature-gated,
    graceful failure)
  * cache_friendly_context.md: stable-to-volatile context
    ordering + the cache TTL GUI contract + the byte-comparison
    test
  * knowledge_artifacts.md: the knowledge harvest pattern
    (category files, provenance, sha256 ledger, digest
    regeneration, 'delete to turn off')
  * feature_flags.md: file presence vs config flags vs CLI flags
- 3 new project docs (the cross-cutting guides):
  * guide_agent_memory_dimensions.md: the cross-cutting guide on
    the 4 dims + the decision tree
  * guide_caching_strategy.md: caching across providers +
    stable-to-volatile ordering + cache TTL GUI + the byte-
    comparison test + the 5th provider (claude-code)
  * guide_knowledge_curation.md: the knowledge memory guide (4th
    dim) + the 5 category files + per-file notes + the digest +
    the ledger + the harvest workflow
- 2 existing doc updates:
  * guide_mma.md: new sections 'Delegation as context management'
    + 'The 4 memory dimensions (the MMA scope)'
  * guide_ai_client.md: new section 'Cache strategy and the 12-
    layer model' + the 5th provider (claude-code)

All files use the same style as the v2.3 review (the user's preferred
format): 7-column tables, no JSON, SSDL shape tags, forth/array
notation, file:line citations, ASCII sketches where useful. The
human Readme files (Readme.md, docs/Readme.md) are NOT modified
(per repeated user instruction).

The 5th provider (claude-code) is documented in guide_ai_client.md
+ the data_oriented_design.md references the nagent pattern as the
source of the canonical rules.

The cross-references are bidirectional: the 6 styleguides reference
the 3 project docs; the 3 project docs reference the 6 styleguides;
the 2 doc updates reference both; AGENTS.md + ./docs/AGENTS.md
provide the entry points.
2026-06-12 13:50:40 -04:00
ed d604a63e1f docs(reports): nagent review session retrospective (2026-06-12)
Session report covering the 5-round dialectic that produced 4 nagent
review files (v2, v2.1, v2.2, v2.3; 434KB total) on the latest nagent
corpus (commit eb6be32a).

5 rounds, 5 user-corrections:
1. Round 1 -> v2 (68KB, first delta on the 8 new commits, heavy
   RAG emphasis)
2. Round 2 -> v2.1 (59KB, user-revised: CLAUDE.md -> AGENTS.md swap;
   RAG reframed as 3rd memory dimension; cache TTL GUI controls;
   don't restructure human Readmes)
3. Round 3 -> v2.2 (35KB, focused delta with intent DSL survey
   cross-refs; user said 'truncated')
4. Round 4 -> v2.3 (272KB, full rewrite, longest, pure nagent
   corpus, no intent DSL cross-refs, breadth + DSL style)
5. Round 5 -> this report (the retrospective)

Report contents:
- §0 TL;DR (terse table; 4 review files + 5 corrections + 3 commits)
- §1 The 5-round timeline (chronological)
- §2 What was produced (4 review files + state files + 14 proposed
  artifacts)
- §3 The 12 new nagent additions since 2026-06-08 (the actual content)
- §4 The 16 future-track candidates (the catalog)
- §5 The 14 proposed new artifacts (the next-turn scope)
- §6 The state of the world (this commit)
- §7 What's open / unresolved (5 open questions + the gaps)
- §8 References (nagent source + Manual Slop source + docs +
  file:line citation indexes)

Style: 7-column tables, no JSON, SSDL tags ([I] / ===> / o==>
/ ===>W===> / ===>M===> / ===>B===> / [B] / [M] / [N] / [Q] / [S] /
[T] / ---), forth/array notation in code examples, file:line
citations into both nagent source and Manual Slop source, ASCII
sketches where useful. 53KB / 713 lines.
2026-06-12 13:29:51 -04:00
ed c4085319ff docs(ssdl): rename SSDL shape symbols to concise form (o->, o=>)
Final vocabulary:
- ===>        -> ->        (codepath)
- ===>W===>  -> =>        (wide codepath)
- o==>       -> o->       (codecycle)
- oo==>oo    -> o=>       (wide codecycle)
- ===>B===>  -> ->B->     (codepath with branch)
- ===>M===>  -> ->M->     (codepath with merge)

Composites ===>B===> and ===>M===> preserved as ->B->/->M-> so the
branch/merge markers stay visible (vs. dropping them entirely).

Scope: 3 reports files (computational_shapes_ssdl_digest,
proposed_new_tracks, session_synthesis), 4 intent_dsl_survey files
(plan, report, report_v1.1, report_v1.2), 3 nagent_review files
(state.toml description, v2_2, v2_3). All old symbols verified gone
via grep; all new symbols verified present at expected locations.
2026-06-12 12:52:20 -04:00
ed 72e9a63c86 docs(ideation→track): Move report into intent_dsl_survey_20260612 folder
Per user instruction: the report is too closely related to the track
to live in the general docs/ideation/ folder. It's the track's main
deliverable, not a general ideation doc. The existing convention for
track reports is the track folder (e.g., nagent_review_20260608/report.md).

This commit is the phase 2+3 work:
  - Adds the integrated report (417 lines, 8 ## headings, 40 ###)
    to conductor/tracks/intent_dsl_survey_20260612/report.md
  - Adds 5 Tier 2 sub-reports (1319 lines combined) to
    conductor/tracks/intent_dsl_survey_20260612/research/
  - Removes the old docs/ideation/ location (moved, not duplicated)
  - Updates spec.md, plan.md, metadata.json, tracks.md to point at
    the new location

Report structure:
  Section 1: 4 anchor claims (O'Donnell, Onat/Lottes, CoSy, Jofito)
  Section 2: 8 prior-art clusters (with sub-report references)
  Section 3: 14-primitive grammar + ambiguity flags
  Section 4: 4-tier vocab (12+12+10+8 = 42 verbs)
  Section 5: 4 hardware-mapping anchor claims
  Section 6: 10 AI-agent properties
  Section 7: 8 open questions for follow-up B
  Appendix: bibliography (external, project, sub-reports)

The sub-reports contain the deep analysis with citations; the main
report is the ejecutiva summary. Tier 2 sub-agents handled the heavy
research (5 cluster sub-reports in research/); Tier 1 focused on
integration and writing the simpler sections inline.

Time-sensitive: report must complete before nagent v2.2.
2026-06-12 09:28:06 -04:00
ed dfbb03ba06 docs(ideation): Add intent_dsl_survey_20260612 phase 1 outline + state
Phase 1 of 4. Adds:
- conductor/tracks/intent_dsl_survey_20260612/state.toml (28 tasks,
  4 phases, 14 verification flags)
- conductor/tracks/intent_dsl_survey_20260612/metadata.json
  (research-only, no blockers, time-sensitive)
- conductor/tracks/intent_dsl_survey_20260612/research/ (subfolder
  for Tier 2 sub-agent sub-reports)
- docs/ideation/2026-06-12-intent-based-scripting-languages.md
  (outline stub: header + 7 sections + Appendix, all stubbed with
  1-paragraph descriptions; actual content to be written in
  phases 2-3, with Tier 2 sub-agents handling the research-heavy
  prior-art clusters 0-4)
2026-06-12 08:47:42 -04:00
ed b389f1be98 conductor(track): Add intent_dsl_survey_20260612 spec
Foundation research track. Produces a single markdown report at
docs/ideation/2026-06-12-intent-based-scripting-languages.md surveying
intent-based scripting languages and proposing a 4-tier vocab (~40
verbs) for a Meta-Tooling-facing intent DSL.

The report's 7 sections:
1. The 'intent-based' design philosophy (O'Donnell immediate-mode,
   Onat/Lottes hardware, CoSy open-vocab, Jofito intent-mapping)
2. Prior art across 8 clusters (0: IMGUI, 1: Concatenative,
   2: Array, 3: Intent-mapping, 4: Meta-Tooling, 5: SSDL shapes,
   6: Command Palette, 7: Result error handling)
3. The grammar (14 primitives formalized from user's pseudocode)
4. The 4-tier vocab (math, data pipeline, shell, AI-fuzzing tolerance)
5. Hardware mapping (4 anchor claims to Onat/Lottes/O'Donnell/APL-K)
6. AI-agent properties (10 claims tying to existing project
   architecture: Meta-Tooling domain, 3-layer security, 4 memory
   dimensions, stable-to-volatile cache, Result envelope,
   Command Palette 33 commands, Hook API, IEventTarget/sandbox,
   'reads are free')
7. Open questions for follow-up interpreter prototype + connection
   to intent_dsl_for_meta_tooling_20260608_PLACEHOLDER

Time-sensitive: report must complete before user's nagent v2.2.

No new src/ code, no new tests, no pyproject.toml changes.
Pure research deliverable.
2026-06-12 08:19:02 -04:00
ed c9b085ff65 docs(rag): document new Result return types + NilRAGState sentinel 2026-06-11 23:39:24 -04:00
ed bd35da11b6 docs(mcp_client): document new Result return types + nil-sentinel pattern 2026-06-11 23:37:32 -04:00
ed ef476c1058 docs(ai_client): document Result API + deprecation 2026-06-11 23:35:27 -04:00
ed b503371820 docs(reports): replace Phase 5 partial report with final; correct t5_6/7/8 lie
The previous 'partial' report cited 3-5 day / 1-2 week
estimates for t5_6/7/8 (anthropic/gemini/deepseek tool-loop
conversion). Those estimates were made up. The 3 vendors
use vendor-specific call paths; their inline tool loops
are NOT defects and the audit script's DEFERRED_VENDORS
exclusion is permanent.

The new report reflects the actual final state:

  - Phase 5 is COMPLETE (6 of 6 in-scope tasks done)
  - The invented t5_6/7/8 work is CANCELLED, not deferred
  - A new real t5_6 shipped: old-vendor matrix wiring
    (minimax reasoning_extractor gated on caps.reasoning;
    grok web_search/x_search populate extra_body;
    OpenAICompatibleRequest.extra_body added and wired
    through send_openai_compatible). Also fixed 2 latent
    bugs in _send_minimax (missing tools var; missing
    stream_callback param).
  - 122/122 tests pass (was 107 at start; +15 new)
  - 8 of 8 vendors have matrix entries (was 5 of 8)

The report title is now 'Phase 5 Final' and explicitly
supersedes the partial one.

Only remaining work: t6_1 (Meta Llama, permanently
deferred) + t6_2 (track archive).
2026-06-11 22:33:19 -04:00
ed 740762b3a7 docs(reports): add Phase 5 partial session-end report
5 of 8 Phase 5 tasks done in this session:
- t5_1/2/3: matrix entries for the 3 remaining vendors
  (anthropic, gemini, deepseek) - 21 new entries
- t5_4: visibility-only v2 capability badges in GUI
- t5_5: docs updated (guide_ai_client.md + guide_models.md)

Remaining 3 tasks (t5_6/7/8: tool-loop conversion for
anthropic/gemini/deepseek) are multi-day refactors
deferred to a follow-up track.

11 new tests (118 total, was 107); 3 audit scripts pass.
2026-06-11 21:55:54 -04:00
ed 88aea3199c docs(guides): document run_with_tool_loop, native Ollama, v2 matrix, PROVIDERS
Updates docs/guide_ai_client.md and docs/guide_models.md
to document the follow-up track's Phase 1-4 work:

guide_ai_client.md (added 3 sections + 1 inline note):
  - run_with_tool_loop shared helper (signature, the
    2 extensions for vendored call paths, the
    4 applied + 3 deferred vendors, audit script)
  - Native Ollama adapter (the dispatcher check in
    _send_llama, the think/images/thinking fields,
    the /api/chat endpoint difference)
  - V2 Capability Matrix (12 fields, GUI rendering,
    static vs runtime caps.local)
  - PROVIDERS Location (Phase 2 move, PEP 562 re-export)

guide_models.md (added 2 sections):
  - PROVIDERS Constant (location change + circular
    import rationale + audit)
  - V2 Capability Matrix (v2 field list, how to add
    a new v2 field per the HARD RULE on no new
    src/<thing>.py files)

These docs were previously stale; they still described the
v1 matrix only and the old 'inline tool loop' pattern.
Phase 5 t5_5 is the docs step that brings them in sync
with the current code.

Verification: 118/118 vendor+tool+provider+import-isolation
tests pass (no regressions; docs changes do not affect code)
2026-06-11 21:51:55 -04:00
ed 58c4370142 conductor(plan): resolve deferred work into proper task entries
The track had 3 categories of deferred work. Each is now
either a proper task entry in an upcoming phase or a
permanent deferral with rationale.

Resolution:

1. Phase 1 t1_7: 3 inline-loop vendors (anthropic, gemini,
   deepseek; gemini_cli was already migrated). Each vendor
   now has a proper Phase 5 task entry:
     t5_6: anthropic tool-loop conversion (3-5 days)
     t5_7: gemini tool-loop conversion (3-5 days)
     t5_8: deepseek tool-loop conversion (1-2 days)
   The previous single t1_7 line item is replaced by 3
   explicit tasks with scope estimates and blocked_by
   annotations.

2. Phase 4 t4_3: Meta Llama API. PERMANENT DEFERRED to
   Phase 6 t6_1. Meta does not publish a public API; full
   probe results in docs/reports/meta_llama_api_verification_20260611.md.

3. Phase 4 t4_7: UI adaptations for new v2 fields.
   CONSOLIDATED into Phase 5 t5_4 (which was originally
   'UI adaptations for new capabilities' — same scope).
   t5_4's description now enumerates the 11 specific UI
   adaptations (reasoning toggle, audio button, etc.).
   t4_7 is cancelled to avoid duplicate task entries.

Phase 5 expanded scope: 8 tasks total (was 5). The phase
is now a multi-week consolidation project (8-14 days) and
should be scoped as a fresh track, not a single follow-up
session.

Phase 6 placeholder added (not scheduled for execution):
  t6_1: Meta Llama API (deferred)
  t6_2: Track archive + final docs refresh

[deferred_work] section in state.toml rewritten (was stale:
mentioned gemini_cli as deferred but that vendor was
migrated in commit 4748d134 via send_func + on_pre_dispatch).

Verification flags added:
  all_8_vendors_on_tool_loop = false  (gates t5_6/7/8)
  v2_matrix_fully_populated = false   (gates t5_1/2/3)
  v2_ui_adaptations_shipped = false   (gates t5_4)
  phase_4_local_first_and_matrix_v2 = true  (Phase 4 done)

State file: 41 tasks, 6 phases, 12 verification fields,
parses cleanly.

Report: docs/reports/qwen_llama_grok_followup_deferred_work_20260611.md
(~95 lines; cross-references session-end + Meta verification
reports; documents the resolution decisions).
2026-06-11 21:20:44 -04:00
ed 6b28d15575 docs(meta_llama): verify API access; defer t4_3 to follow-up track
The Meta Llama developer docs URL (https://llama.developer.meta.com/docs/overview)
IS now reachable (200 OK; was 400 in the parent session). However,
the actual API endpoints are not publicly accessible:

  - https://api.meta.ai/v1/chat/completions -> 404 (no public surface)
  - https://llama-api.meta.com -> (no response)
  - https://api.llama.com -> 403 (auth-required)

Decision: defer t4_3 (Meta Llama API adapter) to a separate
follow-up track. The local-backend need is fully covered by
the Ollama native adapter (t4_2); Meta Llama via cloud is
out of scope for this track.

The follow-up track would require:
1. A public Meta OpenAI-compat API URL (not yet available)
2. Test target with a real key
3. A new PROVIDERS entry

See docs/reports/meta_llama_api_verification_20260611.md
for the full probe results and reasoning.
2026-06-11 20:56:16 -04:00
ed 84b2f145a5 docs(reports): add session-end report for qwen_llama_grok_followup_20260611
End-of-session report for the follow-up track. Phases 1, 2,
and 3 are complete. Phase 4 is unblocked and ready to start.

Highlights:
- Phase 1: run_with_tool_loop shared helper, applied to 3
  OpenAI-compat vendors (minimax, grok, llama) + 1 vendored
  (gemini_cli) via send_func + on_pre_dispatch
- Phase 2: PROVIDERS moved to src/ai_client.py (HARD RULE);
  PEP 562 __getattr__ re-export breaks the circular import
- Phase 3: 7 of 8 UX capability-matrix adaptations shipped;
  t3_7 (Free local) moved to Phase 4 per user request
- Side-track: namespace_cleanup_20260611 documented in a
  separate report; NOT executed
- 65 vendor + tool + provider + import-isolation tests pass;
  5 audit scripts pass

Includes:
- Phase-by-phase summary with checkpoint SHAs
- Key design decisions and deviations
- Lessons learned (the git checkout violation, the
  blocked_by re-classification, the set_file_slice stale-offset
  trap)
- Detailed Phase 4 plan with day-by-day breakdown
- Audit trail (git notes) cross-reference
2026-06-11 19:46:09 -04:00
ed 94aeecd2d3 docs(reports): add namespace_cleanup_sidetrack_report_20260611.md
Documents the side-track surfaced during Phase 2 of
qwen_llama_grok_followup_20260611: src/models.py is bloated
with ~10 non-MMA types (Tool, ToolPreset, BiasProfile,
MCPConfiguration, ContextPreset, RAGConfig, Persona,
ExternalEditorConfig, FileItem, ThinkingSegment) that
should live in their parent modules per the HARD RULE.

The report captures:
- Evidence: which types, lines, target modules
- Why it matters: PROVIDERS move had to use __getattr__
  to break a circular import that wouldn't have existed
  if ToolPreset lived in src/ai_client.py
- Proposed move map (10 types)
- Prerequisites (1-6)
- Estimated scope: 3-5 days
- Open questions for the user
- Linkage to the follow-up track and the broader
  deferred_work list

NOT EXECUTED. User decision: proceed to Phase 3 of the
follow-up. This report is the next agent's reference
when the namespace cleanup track is eventually picked up.
2026-06-11 17:50:11 -04:00
ed 691dc584eb docs(phase-6): update ai_client+models guides; report + follow-up track setup
Phase 6 t6.1 + t6.2 (no archive per user directive):
- docs/guide_ai_client.md: update Overview to mention 8 providers (was 5);
  add 'Shared OpenAI-Compatible Helper' section explaining
  src/openai_compatible.py (NormalizedResponse, OpenAICompatibleRequest,
  send_openai_compatible, usage pattern); document the Qwen adapter
  and Llama multi-backend.
- docs/guide_models.md: update PROVIDERS list to 8 entries (was 5).
- conductor/tracks.md: update the Qwen track entry to reflect
  '50/79 tasks done; Phase 6 in progress; NOT archiving - has follow-up';
  add detailed status note pointing to the follow-up track + audit
  report.
- docs/reports/qwen_llama_grok_followup_audit_20260611.md: NEW report
  explaining why a follow-up is needed (7 categories of gaps; the
  Tech Lead's 'footnote for now' failure mode; the lessons learned).
- conductor/tracks/qwen_llama_grok_followup_20260611/: NEW follow-up
  track setup (spec.md, state.toml, metadata.json, TODO.md).
  5 phases: tool loop lift, PROVIDERS move, UX adaptations 2-9,
  local-first + matrix v2, Anthropic/Gemini/DeepSeek migration.

Phase 6 t6.3 (git mv to archive) and t6.4 (mark Recently Completed)
are NOT applied per user directive: 'we can then doc this we're not
archiving yet, if we have a follow up track I need this one to stay
up because there is still alot todo'.
2026-06-11 09:33:18 -04:00
ed 2fa5a14620 docs(report): append Final Report section to docs_sync closing report
Final report for the continuation session that started after the original 25-commit run closed. Covers:

Stats:
- 17 atomic continuation commits (db5ab0d9 -> 7d6dbbd3) plus 03056a4f for the closure summary itself
- 14 unique doc files modified
- 0 source files modified (continuation was docs-only)
- 11 source files read in full; ~20 outlined
- ~250 + lines, ~190 - lines across the doc edits

What was done (14 drift clusters with detailed before/after):
- guide_hot_reload.md: example registration + trigger_key claim
- guide_app_controller.md: filename typo + fictional hot_reload() method
- guide_gui_2.md: line 155 -> 285; reload() -> reload_all()
- guide_nerv_theme.md: 5 wrong hex values; render_nerv_fx fiction; [nerv] config fiction; 0.5 Hz -> 3.18 Hz; 1.5s pulse -> no decay
- guide_shaders_and_window.md: 3 fictional [nerv] config refs
- guide_command_palette.md: 11 -> 33 commands
- guide_mma.md: 5 algorithm drift points (has_cycle iterative, topological_sort Kahn's, tick no-promote, ConductorEngine.__init__ signature)
- guide_beads.md: dispatch line range
- guide_multi_agent_conductor.md: wholesale rewrite of pre-refactor architecture
- guide_tools.md: run_powershell signature (add patch_callback)
- guide_context_curation.md: FuzzyAnchor docstring (replace 'anchor_lines' with real field names)
- guide_simulations.md: CodeOutliner doc (add [ImGui Scope], return-type suffix, count guard)
- Readme.md: 3 line-level drift (45->46 MCP, 32->33 commands, shell_runner patch_callback)
- docs/Readme.md: file tree (24->27 guides with full alphabetical list)
- conductor/index.md: 23 -> 27 guides count

Drift patterns (6, refined from the 4 in the original handoff):
1. Thread counts
2. Line numbers
3. Removed-class claims
4. Schema fields
5. NEW: Architecture rotations (the most common in this continuation)
6. NEW: Hard-coded constants described as config keys

Bucket coverage status (final):
- A (theme) DONE
- B (logging) Partial - cost_tracker and log_pruner audited; no specific doc drift
- C (commands/palette) DONE
- D (file utilities) DONE - run_powershell + CodeOutliner + FuzzyAnchor
- E (runtime/imgui) DONE
- F (MMA orchestrator) DONE
- G (beads/vendor) Partial - beads_client read, vendor_state read, dispatch line ref fixed
- H/I done in original 25-commit run

Mixed-in user files caveat (49ac008a):
- 2 user-authored files swept in from the prior_session_sepia_20260610 track
- User aware and chose to leave the commit as-is
- Theme-track agent should treat those files as owned by that track

Verbiage lesson:
- 'fictional' is a value judgment, not a technical description
- Use 'predates the refactor' / 'stale' / 'no longer matches the source' instead
- Applied in 2 user-facing doc cleanups (guide_app_controller.md:59, guide_rag.md:322)

Recommendations for the theme-track agent:
- Read guide_themes.md:87 before touching the theme system
- Do NOT touch the guide_nerv_theme.md and guide_shaders_and_window.md updates from this session (re-verified against source)
- The theme_2.py:111 comment confirms the per-frame create-and-discard FX pattern
- Run all 4 audit scripts before committing any source code change
- The markdown_table.py spec is older than the source - check both
- The _lang_map reference in the older spec is a pre-refactor claim

Open follow-ups (none blocking):
- B/G finalization
- markdown_helper.py and markdown_table.py source verification (left for theme track)
- Test count verification (322 may drift)
- Doc freshness signal
2026-06-11 00:02:34 -04:00
ed d0dec98a18 docs(readme): refresh file tree + summary table (27 guides with full alphabetical list, 45+1=46 MCP tools, 33 commands, shell_runner with patch_callback, 322 test files) 2026-06-10 23:57:47 -04:00
ed 824f5e9bae docs(simulations): expand CodeOutliner doc (add get_outline dispatcher, [ImGui Scope] case, return-type suffix, count overflow guard) 2026-06-10 23:47:28 -04:00
ed de9107db4f docs(readme): fix tool count in guide_tools summary (26->46 with breakdown) + add patch_callback to shell runner description 2026-06-10 23:46:26 -04:00
ed 99eb434f60 docs(curation): correct FuzzyAnchor docstring (add get_context helper, replace 'anchor_lines' with actual field names) 2026-06-10 23:45:37 -04:00
ed aa4ec2ed08 docs(tools): fix run_powershell signature (add patch_callback + correct Popen kwargs + qa_callback also fires on stderr-only) 2026-06-10 23:45:02 -04:00
ed 03056a4f4c docs(report): append continuation summary to docs_sync closing report
12 atomic commits added after the original 25-commit run closed:

  6 small drift fixes (db5ab0d9..28172135)
    - guide_hot_reload.md: example registration + trigger_key claim
    - guide_app_controller.md: src/hot_reload.py -> src/hot_reloader.py + hot_reload() method
    - guide_gui_2.md: line 155 -> 285; reload() -> reload_all()
    - guide_nerv_theme.md: 5 wrong hex values, stale apply_nerv body, stale
      render_nerv_fx example, [nerv] config that was never wired, 0.5 Hz vs
      actual 3.18 Hz flicker
    - guide_shaders_and_window.md: 3 fictional [nerv] config refs
    - guide_app_controller.md:68: self-referential io_pool docstring claim

  1 mid-size fix (81e88241)
    - guide_command_palette.md: command count 11 -> 33 (full source-derived
      Action column for every @registry.register decorator in src/commands.py)

  2 MMA rewrites (57143b7a, 394987f8, a49e5ffb, e0368174)
    - guide_mma.md: has_cycle recursive -> iterative; topological_sort DFS ->
      Kahn's; tick auto-promotion claim; ConductorEngine.__init__ missing
      max_workers param
    - guide_beads.md: bd_ tool dispatch line range
    - guide_multi_agent_conductor.md: rewrote the TrackDAG and
      ExecutionEngine/ConductorEngine/WorkerPool/mma_exec sections; the prior
      doc predated the conductor_engine refactor and described a different
      architecture (MultiAgentConductor class that doesn't exist, ExecutionMode
      enum that doesn't exist, _dispatch_loop background thread that doesn't
      exist, ThreadPoolExecutor-backed WorkerPool that is actually a
      dict[str, Thread] + lock + semaphore)

  2 verbiage cleanups
    - replaced 'fictional' with neutral phrasing ('predates the refactor' /
      'stale') in 2 places where the prior session had used it in user-facing
      doc text. Going forward doc-drift commits use neutral language;
      'fictional' was a value judgment on the doc and its author, not a
      technical description.

Bucket coverage after continuation: A (theme), C (commands/palette), E
(runtime/imgui), F (MMA orchestrator) fully covered. B (logging) and G
(beads/vendor) partial. H/I (mcp_client/ai_client deep) done in original
25-commit run. Still untouched: D (8 file utilities), shaders.py / bg
shader.py, summary_cache.py.

Caveat for next agent (theme track): commit 49ac008a accidentally swept in
2 user-authored files from the parallel prior_session_sepia_20260610 work
(conductor/tracks/prior_session_sepia_20260610/plan.md and
docs/superpowers/plans/2026-06-10-prior-session-sepia.md). The user is
aware and chose to leave them in that commit. The next agent should treat
those files as owned by the prior_session_sepia_20260610 track and not
modify them from the theme-track context.
2026-06-10 23:41:32 -04:00
ed 49ac008a87 docs: replace 2 'fictional' usages with neutral phrasing (predates the refactor / was stale) 2026-06-10 23:34:33 -04:00
ed e03681741a docs(mma-conductor): rewrite ExecutionEngine/ConductorEngine/WorkerPool/mma_exec sections to match current src/multi_agent_conductor.py (predates the conductor_engine refactor) 2026-06-10 23:31:43 -04:00
ed a49e5ffb16 docs(mma-conductor): replace fictional TrackDAG section with actual src/dag_engine.py API 2026-06-10 23:30:04 -04:00
ed 394987f8b3 docs(beads): fix dispatch line ref (1474-1494 -> 1453-1473; add tool-schema block 2224-2268) 2026-06-10 23:29:18 -04:00
ed 57143b7ab2 docs(mma): fix 5 drift points (has_cycle iterative/DFS->iterative, topological_sort DFS->Kahn, tick auto-promotion, ConductorEngine.__init__ signature+max_workers) 2026-06-10 23:27:46 -04:00
ed 81e8824170 docs(command_palette): fix command count (11->33) and expand table with actual source-derived actions 2026-06-10 23:22:06 -04:00
ed 28172135f2 docs(app_controller): remove stale io_pool docstring claim (fixed in 2972d235) 2026-06-10 23:19:11 -04:00
ed 8d0eb917d9 docs(shaders): fix 3 [nerv] config refs (fx_enabled, scanline_alpha) 2026-06-10 23:18:38 -04:00
ed 7aa484649f docs(nerv_theme): fix 4 drift clusters (color table, render_nerv_fx fiction, [nerv] config, apply_nerv body) 2026-06-10 23:14:21 -04:00
ed e1287a4cf4 conductor(plan): prior_session_sepia_20260610 spec + design + metadata
New track for prior-session sepia tint:
- 3 new theme slots (prior_session_bg, prior_session_tint, prior_session_amount)
- per-palette state dict mirroring _brightness/_contrast/_gamma
- apply_prior_tint helper (float-only math per user requirement)
- 6 prior-session render sites wrapped (2 bubble_vendor swaps + 4 tint wraps)
- Theme Settings panel slider with persistence

Code-block tonemap fix is OUT OF SCOPE (upstream imgui_bundle 1.92.5
API only exposes 4-value PaletteId enum, no per-instance struct).
See spec §1.1.1 and design doc 'Honest constraint' section.
2026-06-10 23:00:29 -04:00
ed 498c3478fa docs(gui_2): fix 3 hot_reload refs (line 155->285, reload->reload_all, _render_* wrappers) 2026-06-10 22:56:47 -04:00
ed 1c104abde2 docs(app_controller): fix 3 hot_reload refs (filename + fictional method) 2026-06-10 22:56:05 -04:00
ed db5ab0d906 docs(hot_reload): fix 2 stale claims (example registration + trigger_key) 2026-06-10 22:54:58 -04:00
ed f1f0e553f8 docs(report): append handoff section to docs_sync closing report
Adds a 'Handoff: Remaining Drifted Docs' section listing:
- 4 already-fixed stale refs found proactively outside the original
  4-commits scope (Readme, 2 reports, guide_tools, 2 source docstrings)
- 9 categories of remaining work (A through I) with file lists, LOC,
  and which docs reference each bucket
- A recommended 3-track decomposition that fits each category in
  one agent context frame
- The 4 most-common drift patterns I encountered (thread counts,
  line numbers, removed-class claims, schema fields)

The next agent can pick up directly from this section without
re-doing the audit I already completed.
2026-06-10 22:32:22 -04:00
ed ea4d3781a6 docs: fix 4 stale refs (4-thread->8, dispatch line 1341->1322, 7->11 locks)
Caught these when re-verifying the 4 commits from docs_sync_test_era_20260610.
Not in my track originally (per the prior 'no track boundary' correction),
but they're stale data and easy to fix in one commit:

- docs/Readme.md:41: '4-thread ... 7 lock-protected regions' -> '8-thread
  io_pool ... 11 lock-protected regions' (bumped 4->8 in 4a338486
  on 2026-06-06; 11 locks counted in __init__ at app_controller.py:778-1212)

- docs/reports/session_synthesis_20260608.md:121: same fix, plus a
  note that this report predates the bump

- docs/reports/workflow_markdown_audit_20260608.md:40: same fix
  (the audit report was correct AT TIME OF WRITE but is now stale)

- docs/guide_tools.md:57: 'mcp_client.py:1341' -> 'mcp_client.py:1322'
  (the dispatch function's actual line)

Left unchanged:
- docs/reports/COMPACTION_DIGEST_20260607.md:45 mentions '4 workers are
  stuck' in a specific historical context (2026-06-07 hang investigation
  pre-bump). That '4' was true at the time and is part of the historical
  record; flagging in commit message not text.
2026-06-10 21:25:56 -04:00
ed c730ff8298 docs(mcp_client): correct tool count (45 MCP + 1 shell = 46 total)
The previous header said 'MCP Tools (46 tools)' which was technically
correct only if counting the full AGENT_TOOL_NAMES list. But this
module actually defines only 45 tools in MCP_TOOL_SPECS. The 46th
is run_powershell, which is handled by src/shell_runner.py.

Updated the header to be honest about the split: 45 MCP tools in
this module + 1 shell tool in shell_runner.py = 46 total. Added
a forward reference to guide_tools.md for run_powershell.
2026-06-10 21:04:23 -04:00
ed bb1aa3e03c docs: fix 3 more unverified claims (4-thread->8, 12 locks->11, _search_mcp real)
Re-audit after reading the actual full file contents:

1. guide_app_controller.md (the __init__ walkthrough):
   - '4-thread ThreadPoolExecutor' -> '8-thread' per IO_POOL_MAX_WORKERS = 8
     in src/io_pool.py:20 (bumped from 4 in commit 4a338486; the io_pool.py
     module docstring is also stale and says '4 worker threads' - flagged
     for a separate fix).
   - '12 locks' -> '11 locks + 5 non-lock state fields' (re-counted the
     threading.Lock() and the _rag_sync_*/_project_switch_* fields).

2. guide_app_controller.md (the closing line):
   - '12 locks' -> removed; explained the 434-line __init__ body
     composition (locks + state fields + settable_fields + gui_task_handlers).

3. guide_rag.md (Future Work section):
   - 'The _search_mcp method is a placeholder for this' -> WRONG.
     _search_mcp (src/rag_engine.py:322) IS a real implementation that
     calls mcp_client.async_dispatch when vector_store.provider == 'mcp'.
     Rewrote the future-work item to describe the actual mechanism.

4. docs/reports/docs_sync_test_era_20260610.md (the closing report):
   - Same 4-thread->8 and 12-locks->11 corrections propagated.

The structural facts (WorkspaceProfile/RAGConfig/VectorStoreConfig field
lists, method existence, _init_actions/_load_active_project line
numbers, _LiveGuiHandle existence, etc.) were all correct. The
counting/threading-pool claims I cited from memory were the ones
that needed re-verification.
2026-06-10 20:49:20 -04:00
ed 3e0c7702ad docs(workspace_profiles+app_controller): fix 3 unverified claims surfaced by re-audit
Honest report: when re-verifying the 4 commits the user asked about
(d82153c0, f973fb27, 5aa19e59, 237f5725), I found 3 docs claims I
made WITHOUT actually reading the code:

1. f973fb27 guide_workspace_profiles.md activation step 4:
   Claimed 'App._apply_panel_states'. This method does not exist.
   Actual: App._apply_workspace_profile(profile) iterates
   profile.panel_states.items() and setattr on App. See
   src/gui_2.py:844-848.

2. 237f5725 guide_app_controller.md Manager objects paragraph:
   Claimed 'App._post_init at src/gui_2.py:3995'. Actual line: 492
   (off by ~3500 lines; the file was refactored during
   startup_speedup and many earlier-line methods were deleted).

3. 237f5725 guide_app_controller.md closing paragraph:
   Claimed 'AppController.__init__ at src/app_controller.py:778-836'.
   Actual range: 778-1212 (the method body is much longer than I
   assumed; the trailing 800-1212 is locks/io_pool/warmup/manager
   wiring). Note added to explain the long range.

Fixes the wrong claims with line numbers I re-verified via AST.

The structural claims (data structure fields, line numbers of
_validate_collection_dim, _init_vector_store, _LiveGuiHandle,
etc.) WERE all verified and are correct.
2026-06-10 20:40:14 -04:00
ed 886df61051 docs(rag): correct the 'Removed fields' note (claim ChunkingConfig was wrong)
The previous note in guide_rag.md §RAGConfig Schema said:
  'ast_chunking_enabled lives in ChunkingConfig (not in RAGConfig)'

This was a documentation lie. Verified by grep:
- 'class ChunkingConfig' returns 0 matches in src/
- 'ast_chunking_enabled' returns 0 matches anywhere in src/
- The 5 fields (ast_chunking_enabled, auto_index_on_load,
  auto_sync_interval_seconds, vector_store_backend, vector_store_path)
  were never in the real RAGConfig. They were fictional.

Rewrite the note to be honest: 'the old doc was fictional; the
real RAGConfig has 5 fields; the other 5 fields never existed'.
Clarify that top_k is a real runtime parameter (on
RAGEngine.search()) not a config field.
2026-06-10 20:32:11 -04:00
ed aa7cdce844 docs(report): docs_sync_test_era_20260610 — closing report
17-commit summary of the test-era docs sync track. Covers:
- Phase 1: 11 doc drift fixes (10 atomic commits)
- Phase 2: 4-track end-state cleanup (archive, state.toml, metadata.json)
- Phase 3: 4 lessons placed in durable locations
- Verification: 4 audit scripts, path checks, cross-link spot-check
- Out of scope items deferred to next agent

Result: the next Tier 2 engaging qwen_llama_grok has pristine
context to read. Closing the docs_sync_test_era_20260610 track.
2026-06-10 20:23:00 -04:00
ed 237f572592 docs(app_controller): replace fictional __init__ + register_hooks with real flow
The previous doc showed:
- A fictional AppState dataclass (does not exist)
- A fictional __init__ that creates manager objects in __init__
  (managers are lazy via __getattr__, created in _load_active_project)
- A fictional register_hooks(app) method (real flow is _init_actions
  called from init_state populates _predefined_callbacks)
- A fictional enable_test_hooks parameter (real signature is
  defer_warmup: bool = False, log_to_stderr: Optional[bool] = None;
  --enable-test-hooks is parsed by sloppy.py for HookServer, not here)

The new doc describes the real init flow (timeline anchors, 12 locks,
GUI health state, io_pool, warmup manager, flags) and points to the
actual line numbers in src/app_controller.py.
2026-06-10 20:07:08 -04:00
ed 5fa8a10ebf docs(testing): critical live_gui_workspace path fix + 8 new sections
CRITICAL fix:
- live_gui_workspace path: tmp_path_factory (banned) ->
  tests/artifacts/live_gui_workspace_<timestamp> (per-run timestamp)
  (per conductor/code_styleguides/workspace_paths.md)

8 new sections under 'Per-test Subprocess Resilience':
1. _reset_clean_baseline autouse fixture (mma_tier_usage +
   rag_config=default RAGConfig(), not None)
2. Watchdog and Hang Bounding (signal-based, 900s smart + 900s
   unconditional, replaces removed 30s daemon-thread)
3. Chroma Cache Path (tests/artifacts/.slop_cache/, parent-trailing-slash
   bug, pre-cleanup pattern in test_rag_phase4_final_verify)
4. xdist Worker Coordination (O_EXCL file lock, PYTEST_XDIST_WORKER,
   owner/client roles, stale lock demotion)
5. Required Test Dependencies Gate (sentence-transformers,
   uv sync --extra local-rag fix)
6. MMA and RAG State in reset_session() (5 buckets: mma_tier_usage
   pre-populated, rag_config fresh RAGConfig() not None)
7. _LiveGuiHandle __getitem__ (handle[0] / handle[1])

Expand 'Audit Script' -> 'Audit Scripts' (4 scripts total):
- check_test_toml_paths.py (existing)
- audit_main_thread_imports.py (startup_speedup)
- audit_weak_types.py (data_structure_strengthening)
- audit_no_models_config_io.py (config_state_owner styleguide)
2026-06-10 20:05:16 -04:00
ed 2e12b266e4 docs(mcp_client+ai_client): correct tool counts (15->18, 45->46)
- Total tool count: 45 -> 46 (per src/models.py:AGENT_TOOL_NAMES)
- Python AST tools: 15 -> 18 (3 structural mutators added:
  py_remove_def, py_add_def, py_move_def, py_region_wrap)
- py_get_symbol_info is fictional; replaced with the 4 actual
  structural mutator tools
- Cross-link from guide_ai_client.md updated
2026-06-10 20:02:01 -04:00
ed 07c1ed4928 docs(ai_client+api_hooks): lazy-loading + warmup endpoints (startup_speedup)
guide_ai_client.md:
- Add 'Module-Level Imports' section explaining that the 5 provider SDKs
  are NOT imported at module level; they're obtained via
  src.module_loader._require_warmed() after the WarmupManager loads them
  in the background. (Per startup_speedup_20260606: import src.ai_client
  went from ~1800ms to ~161ms.)

guide_api_hooks.md:
- Add 4 warmup endpoints to the endpoints table:
  /api/warmup_status, /api/warmup_wait?timeout=N,
  /api/warmup_canaries, /api/startup_timeline
- Add 'Warmup API' section with client methods + external script pattern
  (use get_warmup_wait() instead of time.sleep() race)
2026-06-10 20:00:37 -04:00
ed ca48d33d16 docs(simulations): update live_gui fixture signature to _LiveGuiHandle
The live_gui fixture in tests/conftest.py:467 now yields a _LiveGuiHandle
object (not a tuple). The handle exposes:
- .process, .gui_script, .workspace (Path to per-run workspace)
- .is_alive(), .ensure_alive(), .respawn_count
- __iter__ and __getitem__ for backward-compatible tuple unpacking

Also document the xdist O_EXCL file-lock coordination pattern and the
PYTEST_XDIST_WORKER env var owner/client role split.
2026-06-10 19:53:44 -04:00