Add forward-references to the 5 new canonical sources added by the 2026-06-12 doc sync (commits 35c6cca1 + 434b6d0d): data_oriented_design.md, agent_memory_dimensions.md, rag_integration_discipline.md, knowledge_artifacts.md, docs/AGENTS.md. All 5 cite this track as the canonical error-handling convention; the 4 memory dimensions and 12 nagent TDD protocols are orthogonal to error handling so no plan changes were needed. Verification recorded in state.toml [doc_sync_20260612].
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.
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.
v2.3 (nagent_review_v2_3_20260612.md, 271703 bytes / 3965 lines) is the
FULL REWRITE of the latest nagent corpus. Per user instruction:
- 'I want a full rewrite via a v2.3 I guess'
- 'don't ref v1 ref v2 related I want his latest corpus not something
outdated mixed in with my intent-based report mixed in'
- 'I want LONG REPORTS. make v2.3 the longest'
- 'You actually trucated info with 2.3. 2.1 had the breadth. you
should make 2.3 have both 2.1 breadth and 2.2 terse DSL stuff'
Stand-alone (no references to v1/v2/v2.1/v2.2 or the intent_dsl_survey).
Pure nagent corpus focus.
Length: 271703 bytes (longer than v2 at 68KB, v2.1 at 59KB, v2.2 at
35KB). Combined v2.1's breadth with v2.2's terse DSL style + full
source-line citations + new content the prior reviews did not have.
Structure (13 sections):
- §0 TL;DR (terse table)
- §1 The latest nagent corpus (the 8 commits; the 33-file tree; the
new 7-Part + 14-section README structure)
- §2 The 14 patterns in depth (one per pattern, with file:line refs)
- §3 The 12 new big additions (knowledge harvest, cache, compaction,
project context, claude-code, shared DOD, CLAUDE.md, per-file notes,
'delete to turn off', graceful save, delegation reframing)
- §4 The harvest pattern in detail (the new big one; full pipeline,
data shapes, codepath, retry budget, test surface, Manual Slop
implementation outline)
- §5 The cache strategy in detail (block order table, cache boundary
computation, Anthropic cache_control, the GUI exposure gap with
ASCII sketch)
- §6 The compaction pattern in detail (the 12-section structure, the
10-question self-review, the codepath, the Manual Slop prompt)
- §7 nagent architecture (4 reading levels + tag protocol + state
model + write boundaries + large-file pipeline)
- §8 The vocabulary patterns (8 tags + per-tag guidance + 4-tier
structure + cross-MCP mapping)
- §9 File splits, patches, summaries (4-stage pipeline + 12 languages
+ O(n) fix + cascade)
- §10 16 future-track candidates (full specifications + priority +
effort + dependencies + sequencing)
- §11 14 proposed new artifacts (canonical DOD + AGENTS.md + 5
styleguides + 3 project docs + 4 workflow updates; format commitment)
- §12 Recommended next steps (the action plan: foundation -> styleguides
-> project docs -> workflow updates; then the HIGH-priority candidates)
- §13 References (nagent source + Manual Slop source + docs + external;
the file:line citation index)
Format commitment applied throughout:
- 7-column tables (Symbol, Name, Signature, Semantics, Example, Source,
Shape) where applicable
- No JSON code blocks (JSON becomes tables or line-based arrays)
- SSDL shape tags: [I], ===>, o==>, ===>W===>, ===>M===>, ===>B===>, [B],
[M], [N], [Q], [S], [T], ───
- Forth/array notation in code examples (a b + for postfix math;
name := value for assignment; if cond { body } for control flow)
- File:line citations into both nagent source and Manual Slop source
- ASCII sketches for GUI panels (per docs/reports/ascii_sketch_ux_workflow
convention: [+/-], [Role: AI v], |text|, <click to expand>,
in:N out:N cache:N, @YYYY-MM-DDTHH:MM:SS)
v2, v2.1, v2.2 are preserved (per repeated user instructions).
Readme.md and docs/Readme.md stay human-facing. v1 review artifacts
preserved.
v2.2 (nagent_review_v2_2_20260612.md, ~35KB) is a focused delta, not a full
rewrite. Two user inputs drove it:
1. The user published intent_dsl_survey_20260612/report_v1.2.md (1367 lines,
10 prior-art clusters, 4 anchor claims, ~42-verb vocab, 10 AI-Agent
Properties in §6). The survey's §6 Claims 4 and 5 explicitly cite
nagent_review_v2_1 §2.1 and §2.2 as the source for the 4 memory
dimensions and stable-to-volatile cache ordering — so the v2.1 patterns
are now formally codified by the survey.
2. The user said: 'I don't really like JSON, I like table based formats
more, or things that are forth/array-like.'
v2.2 applies the data-format preferences:
- JSON block in v2.1 §2.1 (harvest output schema) replaced with a §4.4
7-column table (Symbol, Name, Signature, Semantics, Example,
Borrowed from, Shape)
- Comparison table (§5) reformatted with SSDL shape tags
- Future-track candidate list (§6) reformatted as a single 16-row table
with all metadata columns
- Proposed new artifacts (§8) in table form
v2.2 adopts survey grammar primitives (name := value, for x .. n,
if cond { ... }, tape { ... }, try { ... } recover err { ... },
sandbox { ... }, audit msg, fuzzy { ... }) where applicable.
v2.2 adds:
- Candidate 12b (cache TTL GUI controls) - the v2.1 sub-candidate
- Candidate 16 (AGENTS.md @import + canonical DOD file) - HIGH priority,
the foundation for all the other styleguides
- New §11 'In dialogue with intent DSL survey' - the 9 mutual cross-refs
v2 and v2.1 are preserved (per user instruction). All v1 artifacts and
the human Readme files are preserved. Format commitment for the
next-turn artifacts: all new styleguides and project docs will follow
the §4.4 table format.
Two annotations added to v1.2 of the report:
1. A.8 Glossary 'tape' entry now has a term-choice note (v1.2) that
documents:
(a) The rename rationale: 'tape' fits the sequential data-flow use
case (Lottes tape-drive metaphor) better than 'arena' (which
implies bulk allocation).
(b) Explicit reservation of 'arena' for a future, separate concept
(NOT a synonym for tape). The two would compose:
tape { arena { ... } } is a pipeline stage that uses an
arena-backed buffer.
(c) The intended semantic split:
- tape { } = sequential data flow (pre-scatter, source-as-you-go)
- arena { } (FUTURE) = bulk memory allocation (bulk-allocate,
bulk-free, host decides lifetime)
2. A.7.9 New Open Question 9 added: 'Future reservation of arena { }
for a separate concept'. Documents:
- Background: the v1.2 rename was not a synonym swap; 'arena' is
reserved for a different, future concept.
- Proposed split with a comparison table (semantic, implementation,
tier fit, examples).
- Composition: tape { arena { ... } } is valid and meaningful.
- Trade-offs: pro/con of split vs. unify; recommendation is split.
- Concrete next step for the follow-up B track: define the arena
grammar rule, allocation strategy, and 2-3 example uses.
These annotations close the loop on the term-choice discussion. The
follow-up B track (interpreter prototype) can now implement the
arena { } block without re-litigating the naming.
Survey now covers 10 prior-art clusters (was 8). New clusters per
user direction (Option A in the v1.2 cluster-fit discussion):
NEW: research/cluster_8_metadesk.md (research sub-report):
- Metadesk (Ryan Fleury + Allen Webster, Dion Systems, 2020-2021)
- 5 distinctive design properties: uniform 'lego-brick' AST, tags
as dispatch keys, multiple interchangeable delimiters, comment
+ source-location preservation, first-class C interop with
copy-paste distribution
- 2 citable anchor quotes with source URLs
- Synthesis: maps to Tier 3 (read/edit/discover) and Tier 4
(audit/fuzzy) verbs
NEW: research/cluster_9_verse.md (research sub-report):
- Verse (Simon Peyton Jones + Tim Sweeney, Epic Games, 2021-)
- 5 distinctive design properties: transactional semantics with
speculative execution, failure as first-class control flow, effect
tracking in function signature, new Verse Calculus (ICFP 2023
Distinguished Paper), everything-is-an-expression + live variables
- 3 citable anchor quotes
- Synthesis: maps to Tier 4 (try/recover/sandbox/audit) verbs;
two-layer failure model maps to Cluster 7's Result convention
UPDATED: report_v1.2.md (1343 lines, +42 from v1.2 base):
- Inserted Cluster 8 (Metadesk) and Cluster 9 (Verse) sections
between Cluster 7 and the section 2/3 divider
- Updated §2 intro to say '10 clusters' (was '8')
- Updated glossary 'clusters' entry to list all 10
- Updated v1.2 changelog note (4) to document the cluster additions
UPDATED: tracks.md:
- Track #23 status line now lists all 10 clusters
- Goal line updated to say '10 clusters' (was '8')
UPDATED: state.toml deliverable_summary:
- Added v1.2_changes[4] for the cluster additions
- Added cluster_count = 10
- research_sub_reports now lists 7 cluster files (0-9)
The spec/plan/review files still say '8 clusters' — left as
historical context (spec is approved with 8; expanding to 10 is
an editorial decision the user has now made; future revisions of
spec/plan should reflect 10).
Three bookkeeping files updated to reflect the v1.2 deliverable:
- metadata.json: deliverable now points at report_v1.2.md; added
deliverable_v1_1, final_commit=213e4994
- tracks.md: track #23 heading shows COMPLETE: 213e4994; status
line lists v1.0 -> v1.1 -> v1.2 history with the 3 v1.2 changes
(rename, postfix heuristic, nagent fix)
- state.toml: added version='v1.2'; deliverable_summary updated with
v1_2, v1_1, v1_0 fields and v1_2_changes list
Three files changed:
1. report_v1.2.md (NEW, 1301 lines) — v1.2 of the report with:
(a) Renamed arena { } to tape { } (better term; aligns syntax with
the Lottes tape-drive metaphor). All 46 occurrences replaced;
3 awkward double-tape phrases cleaned up (heading 3.6,
table cell, glossary entry).
(b) Mixed postfix/infix notation for math (per user heuristic):
- Strictly postfix for math primitives with precedence:
+ - * / ^, math indexing [], reducers sum/product.
- Infix for structural ops (no precedence concern):
:=, function calls, control flow (for/if), field access,
block delimiters.
- Heuristic: 'if the operator has precedence, postfix it;
if it doesn't, infix it.' Mixed examples like
'result := Matrix(m.rows 1 -, m.columns 1 -)' are canonical.
(c) nagent attribution corrected: previously said nagent is
Jody Bruchon's; it is Mike Acton's (github.com/macton/nagent;
per conductor/tracks/nagent_review_20260608/). Jofito stays
correctly attributed to Jody Bruchon.
(d) Added v1.2 changelog note at top + heuristic table at start
of section 3.
2. report_v1.1.md — nagent attribution fix propagated (post-hoc
correction; the original v1.1 commit had the same error in the
glossary line 1671).
3. research/cluster_3_intent_mapping.md — nagent attribution fix
in 2 places (header at line 188, body at line 190).
Appendix A.3 (EBNF) and A.4 (Tier 1 vocab) retain v1.1 form
pending a sync pass; noted in the v1.2 changelog at the top of
the report.
Three files updated to close out the track:
1. state.toml — all 28 tasks marked completed with their commit SHAs;
current_phase = complete; all 14 verification flags = true; added
deliverable_summary section pointing at report_v1.1.md, reportreview.md,
and the 5 research/ sub-reports.
2. metadata.json — status: complete; added deliverable_v1_0, review,
and final_commit fields.
3. tracks.md — track #23 heading now reads 'COMPLETE: c7e92896';
added a 'Status: 2026-06-12 — COMPLETE' line summarizing the
v1.1 deliverable (1301 lines, 7 sections + 9-subsection appendix,
42-verb vocab, 8 prior-art clusters, 14-grammar primitives, 4
hardware anchor claims, 10 AI-agent properties, 8 open questions).
This is the final bookkeeping for the track. nagent v2.2 can now
reference the report's Section 6 (AI-Agent Properties) and Section 7
(Open Questions) for its 'Future-Track Candidate #4: Intent-based
DSL' planning.
Two files:
1. reportreview.md (154 lines) — the final secondary review pass.
- Verified 29+ load-bearing claims across 5 sub-reports against
their actual sources (johno.se URLs, Onat/Lottes refs, Jofito
codeberg README, nagent docs, mcp_architecture spec, etc.)
- 28 claims confirmed accurate; 1 inaccuracy found: the user's
XML/JSON rejection quote was cited as decisions.md:50 but
that line doesn't contain it (the quote is from the brainstorming
session, not a project file)
- Recommendation: write report_v1.1.md with the citation fix and
a few optional small improvements (OCR-restored Lottes quote,
softened Wasm streaming-parse inference, Uiua open-source
onboarding already in main report)
2. report_v1.1.md (1301 lines, +883 over report.md) — the v1.1 report
with:
(a) The v1.0 corrections:
- Fixed XML/JSON rejection citation (now points to the
brainstorming session, not a project file)
- OCR-restored the Lottes X.com quote ('actually' added)
- Softened the Wasm streaming-parse inference
(b) A substantially expanded Appendix (Deep-Dives):
- A.1 Section 1 Deep-Dive: 4 anchor claims in detail
- A.2 Section 2 Deep-Dive: full text of all prior-art entries
(O'Donnell's 4 anchor claims with full context; all 6
Concatenative entries; all 4 Array entries; all 4
Intent-Mapping entries; all 4 Meta-Tooling entries; full
SSDL table; full 33 Command Palette commands; full Result
convention details)
- A.3 Section 3 Deep-Dive: formal EBNF grammar spec
- A.4 Section 4 Deep-Dive: full vocab reference for all 42
verbs (with signatures, semantics, examples, edge cases)
- A.5 Section 5 Deep-Dive: register allocation + memory
layout + FFI bridge
- A.6 Section 6 Deep-Dive: implementation notes per claim
- A.7 Section 7 Deep-Dive: open questions with proposed
solutions and trade-offs
- A.8 Glossary
- A.9 Expanded Bibliography (4 categories with 1-line
descriptions and key-claim summaries)
This is the final deliverable for the intent_dsl_survey_20260612
track. v1.1.md is what nagent v2.2 will reference for its
'Future-Track Candidate #4: Intent-based DSL' section.
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.
Executable plan for the report. 28 tasks across 4 phases:
- Phase 1 (Tasks 1-3): source gathering + state/metadata + outline stub
- Phase 2 (Tasks 4-14): write sections 1, 2 (8 clusters), 3
- Phase 3 (Tasks 15-23): write sections 4 (4 tiers), 5, 6, 7 + Appendix
- Phase 4 (Tasks 24-28): self-review + user review + final commit + tracks.md
Each task has file:line references, exact commands, and expected
output. Self-review confirms all 21 spec requirements are covered;
no placeholders; type-consistent.
The track is research-only, so the plan recommends inline execution
by a single Tier 2 Tech Lead. Subagent-driven per task is also an
option if context isolation is preferred.
Time-sensitive: report must complete before nagent v2.2.
Side non-impl research track. Survey of intent-based scripting
languages + 4-tier vocab proposal for a Meta-Tooling-facing intent
DSL. Produces docs/ideation/2026-06-12-intent-based-scripting-languages.md.
Time-sensitive: must complete before nagent v2.2.
- Added table row #23 (A research priority, no blockers)
- Added #### Track section after RAG Phase 4 fix entry
- Links to spec at conductor/tracks/intent_dsl_survey_20260612/spec.md
- Plan to be authored by writing-plans skill
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.
- v2 (nagent_review_v2_20260612.md, ~68KB): first delta report on the 8 new
nagent commits between 2026-06-08 and 2026-06-12. Introduces 5 new
future-track candidates (11-15): knowledge harvest, stable-to-volatile
context ordering for caching, conversation compaction, project context
files, save-with-graceful-summary-failure. Notes heavy RAG emphasis as
the comparison frame for knowledge harvest (later corrected in v2.1).
- v2.1 (nagent_review_v2_1_20260612.md, ~59KB): user-driven revision of v2.
Five corrections applied:
1. CLAUDE.md -> AGENTS.md swap (Manual Slop has AGENTS.md, not CLAUDE.md)
2. Reframed Candidate 11 from 'RAG alternative' to 'third memory
dimension' (curation + discussion + RAG + knowledge)
3. Cache TTL GUI controls added (sub-candidate 12b) per user request
4. RAG integration discipline added (new sub-section 2.10) per user's
'be conservative' rule
5. v2 preserved as draft; v2.1 is non-destructive new file
v2.1 also proposes new agent-facing artifacts (canonical DOD file,
AGENTS.md update, new ./docs/AGENTS.md) and 8 new styleguides/docs.
v2.1 source-citations grounded in 18 nagent source files read in full.
- state.toml and metadata.json updated with v2.1 tasks and a v2.1_review
block; v1 artifacts preserved per original user instruction.
Pending: style preferences (table-based, forth/array-like, not JSON) and
the user's upcoming intent-based-scripting-languages report.
Both qwen_llama_grok tracks (parent + follow-up) archived
to conductor/archive/ per the parent track's Phase 6 plan.
conductor/tracks/qwen_llama_grok_integration_20260606/
-> conductor/archive/qwen_llama_grok_integration_20260606/
conductor/tracks/qwen_llama_grok_followup_20260611/
-> conductor/archive/qwen_llama_grok_followup_20260611/
Follow-up state.toml updates:
- status: active -> archived
- current_phase: 5 -> 6
- phase_6 status: pending -> completed
- t4_3 (Meta Llama) reclassified from 'deferred' to
'cancelled' (the 'deferral' was the agent's invention;
the real situation is permanent, awaiting Meta)
- t6_1 (Meta Llama API): proper task entry; cancelled
per the actual situation (no public surface)
- t6_2 (Track archive): proper task entry; completed
- Cleaned up the '3-5 days' / '1-2 weeks' comment in
deferred_work that the user called out as made up
- Removed duplicate [verification] section markers
and duplicate keys that crept in from prior edits
tracks.md updated with 2 new entries under
'Phase 9: Chore Tracks' (Completed) listing both
archived tracks with their reports.
Net result: the qwen_llama_grok track family is fully
archived. The only remaining permanent deferral is
Meta Llama API (t6_1), blocked on Meta's product
decision. All other work is in src/ or scripts/
and is reachable from there.
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).
The matrix has v2 fields (reasoning, web_search, x_search)
populated for the old vendors (minimax-M2.5/M2.7, grok-*),
but the send functions didn't consult them. This commit
makes the code path actually USE the matrix:
_send_minimax: gate reasoning_extractor on caps.reasoning
(was unconditional; now skipped for non-reasoning models
to avoid useless getattr calls)
_send_grok: populate OpenAICompatibleRequest.extra_body with
search_parameters when caps.web_search or caps.x_search is
True. caps.web_search -> {mode: auto}; caps.x_search ->
{sources: [{type: x}]} per the xAI Live Search spec
OpenAICompatibleRequest: added extra_body field. Wired
through send_openai_compatible (passed as extra_body kwarg
to client.chat.completions.create).
Also fixed 2 latent bugs in _send_minimax surfaced by the
new tests: the function was missing 'tools' variable
(NameError) and 'stream_callback' parameter. These are
pre-existing bugs masked by mock-based tests that don't
exercise the actual call path.
Also cancelled t5_6/7/8 (the invented 'deferred tool-loop
conversion' work). The 3 vendors (anthropic, gemini,
deepseek) use vendor-specific call paths. Their inline
loops are NOT defects. The '3-5 days' / '1-2 weeks'
estimates were made up by the agent. The audit script's
DEFERRED_VENDORS exclusion is permanent.
Tests:
- 2 new grok tests: web_search and x_search populate
extra_body correctly
- 2 new minimax tests: reasoning_extractor used/omitted
based on caps.reasoning
- 122/122 vendor+tool+provider+import-isolation tests pass
(no regressions; +4 new tests this commit)
- 3 audit scripts pass
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)
Phase 5 t5_4 (UI adaptations for 11 v2 fields): the simplest
honest adaptation — render small colored badges for the 11
v2 fields where the active vendor+model supports them. Each
badge has a tooltip showing the field name.
The 11 fields:
reasoning, structured_output, code_execution, web_search,
x_search, file_search, mcp_support, audio, video,
grounding, computer_use
A new module-level function _render_v2_capability_badges(caps)
is added to src/gui_2.py (per the HARD RULE on no new
src/<thing>.py files). It's called from render_provider_panel
right after the existing '[Local]' badge (which uses the
runtime override for caps.local).
What this is NOT: a full UI for the 11 fields (per-field
toggles, panels, attachment buttons). Those are design-heavy
work and need their own track. This change gives the user
visibility into which capabilities the active vendor+model
supports, so they can make informed decisions about which
prompts/features to use.
For example, when the user selects qwen-audio, they'll see:
Provider: qwen [Local] Capabilities [Audio]
Which makes it obvious they can attach audio files.
Tests:
- 2 new tests in tests/test_vendor_capabilities.py:
* All 11 v2 fields are present in the helper (drift guard)
* Helper is a no-op on empty caps (no fields True)
- 118/118 vendor+tool+provider+import-isolation tests pass
(no regressions; +2 new tests this commit)
- 3 audit scripts pass
The previous exclusion list had 'gemini_native' which is
NOT a real function name in src/ai_client.py. The actual
function is _send_gemini_cli (already migrated to
run_with_tool_loop via send_func + on_pre_dispatch in
commit 4748d134).
The current deferred vendors are now correctly:
- anthropic (uses anthropic SDK)
- gemini (uses google-genai streaming)
- deepseek (uses requests.post)
These will be addressed in Phase 5 t5_6/7/8. When those
ship, the DEFERRED_VENDORS frozenset should be emptied
so the audit gates the migration.
Verified: script still passes; gemini_cli's run_with_tool_loop
usage is detected correctly.
Phase 4 complete. Starting Phase 5: Anthropic/Gemini/DeepSeek
matrix migration (t5_1, t5_2, t5_3) followed by UI adaptations
(t5_4) and the deferred tool-loop conversion work (t5_6/7/8).
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).
7 of 9 tasks complete in Phase 4:
- 12 v2 fields added to VendorCapabilities
- Native Ollama adapter (/api/chat with think/images/thinking)
- _send_llama routes localhost/127.0.0.1 to native
- GUI: 'Local Model' badge
- Per-model v2 field population
- Runtime local override (dataclass.replace on llama+localhost)
- Cost panel: 'Free (local)' for localhost
2 tasks deferred:
- t4_3 (Meta Llama API): no public surface; see
docs/reports/meta_llama_api_verification_20260611.md
- t4_7 (UI adaptations for new fields): design work
beyond this track; separate follow-up
Verification: 107/107 vendor+tool+provider+import-isolation
tests pass; 3 audit scripts pass
Updates per-model registry entries to populate the 12 v2
fields where the capability is genuinely supported:
minimax-M2.5/M2.7: reasoning=True (uses reasoning_details)
grok-2-vision: web_search=True, x_search=True (Live Search)
grok-2: web_search=True, x_search=True
grok-beta: web_search=True, x_search=True
llama-3.1-405b: reasoning=True (explicitly in model name)
qwen-long: caching=True (custom long-context chunking)
qwen-audio: audio=True (was 'deferred' in v1 notes)
Adds the runtime override helper:
_apply_runtime_caps_override(app, caps)
-> caps with local=True if app.current_provider=='llama'
AND _llama_base_url contains 'localhost' or '127.0.0.1'
The 'local' flag is the only v2 field that is runtime-state,
not a static per-model property (OpenRouter llama is cloud;
Ollama llama is local — same model name, different backend).
The override uses dataclasses.replace() to mutate the
frozen dataclass. Implemented in src/gui_2.py (per the
HARD RULE on no new src/*.py files).
The override is wired into App._get_active_capabilities()
so the GUI sees caps.local=True when the active backend
is Ollama and caps.local=False otherwise.
Also: cost panel in src/gui_2.py (per-tier + session-total
columns) now renders 'Free (local)' when caps.local=True
(both the per-tier cost column and the session-total line).
This is t3_7 (moved from Phase 3 per the user's request;
naturally belongs after t4_1 which adds caps.local).
Tests:
- 3 new tests in tests/test_vendor_capabilities.py:
* per-model population (reasoning, audio, caching, vision)
* runtime override for llama+localhost
* runtime override does NOT touch other vendors
- 107/107 vendor+tool+provider+import-isolation tests pass
(no regressions; +4 new tests this commit)
- 3 audit scripts pass