Private
Public Access
0
0
Files
manual_slop/conductor/tracks/nagent_review_20260608/state.toml
T
conductor-tier2 9cc51ca9af conductor(track): nagent review - deep-dive + 6 pitfalls + 10 actionable takeaways
Reference/analysis track. Produces 0 code changes.

Artifacts (conductor/tracks/nagent_review_20260608/):
- spec.md (240 lines) - track wrapper with Application/Meta-Tooling framing
- report.md (571 lines) - 14-section deep-dive; primary deliverable
- comparison_table.md (79 lines) - flat side-by-side reference
- decisions.md (286 lines) - 10 future-track candidates with priority matrix
- nagent_takeaways_20260608.md (363 lines) - 10 actionable patterns grounded
  in code (file:line refs into nagent source and Manual Slop source)
- metadata.json (132 lines) - structured metadata + verification criteria
- state.toml (113 lines) - per-task tracking + user-corrections log (7 entries)

14 nagent principles covered in report.md (durable work, text-in/text-out,
editable state, visible protocol, the loop, per-file memory, repo history,
neighborhoods, sub-conversations, controlled writes, large files, tool
discovery, framework differences, build your own).

6 pitfalls (revised from 8 after user-corrections):
1. No structured output protocol in Application AI (opaque function calling)
2. Provider-specific history in process globals (ai_client._anthropic_history
   + _deepseek_history + _minimax_history)
3. RAG is not 'history as data' (fuzzy, not auditable)
4. AI client is a stateful singleton (2,685-line ai_client.py)
5. No non-MMA disposable sub-conversations (1:1 gap; user-flagged want)
6. Hard-coded tool discovery (45-tool if/elif in mcp_client.py)

User-corrections applied (3 rounds, 7 total corrections recorded):
- Editable discussions: PARTIAL -> PARITY (DIFFERENT FOCUS) with full A1-A7
  per-entry + B1-B11 discussion-level + C1-C5 undo/redo operation matrix
- Per-file memory: DOMAIN MISMATCH -> MANUAL SLOP IS STRONGER IN
  CURATION DIMENSION (FileItem + ContextPreset vs nagent's inode-keyed
  conversation log; complementary, not equivalent)
- Sub-conversations: MMA has it; 1:1 does not -> 'PARITY for MMA; GAP for
  1:1 discussions' (user wants this)
- RAG: opt-in, not gap; user wants pre-staging via sub-conversation
- Personas: config bundling (can opt out via AI settings)
- Tool discovery: deferred (user has 'intent based DSL' idea but 'no where
  near that ideation yet')

10 actionable takeaways (separate from the 6 pitfalls - those are
diagnosis, these are prescription):
1. State visibility (UI inspector for in-process state)
2. Readable conversation log (text-greppable, not just JSON-L)
3. Sub-agents for 1:1 (HIGH priority - user-flagged)
4. File-identity over file-path (st_dev:st_ino rename-safe)
5. One loop shape visible in diagnostics
6. Visible retry on protocol failure
7. Meta-Tooling DSL (intent-based, deferred)
8. Self-describing tools (subsumed by mcp_architecture_refactor_20260606)
9. Single source of truth for disc_entries + provider history
10. Sub-agent return type constraint (bake into candidate #1 spec)

Domain classification: every recommendation tagged Application / Meta-Tooling
/ Both per docs/guide_meta_boundary.md. nagent lives in the Meta-Tooling
domain; Manual Slop's Application AI is a different kind of thing.

No code modified by this track (reference/analysis only). All 7 files
parse cleanly (JSON, TOML, Markdown). All internal cross-links resolve.
Track is 'active' awaiting human review; future-track candidates live in
decisions.md and nagent_takeaways_20260608.md.
2026-06-08 18:44:35 -04:00

114 lines
8.7 KiB
TOML

# Track state for nagent_review_20260608
# Reference/analysis track — no implementation phases
# Updated by Tier 2 Tech Lead as track progresses (currently: complete)
[meta]
track_id = "nagent_review_20260608"
name = "nagent Review (Mike Acton's data-oriented LLM agent reference)"
status = "active"
current_phase = 0 # 0 = pre-completion; this track produces no code phases
last_updated = "2026-06-08"
[user_corrections_log]
# Corrections applied to the first draft based on direct user feedback during review
# Format: 2026-06-08_NN = "correction" (NN is sequence number to ensure TOML key uniqueness)
2026-06-08_1 = "Editable discussions: PARTIAL -> PARITY (DIFFERENT FOCUS). User pointed at HistoryManager, project_manager.branch_discussion, UISnapshot — Manual Slop has editable UI state, not editable raw transcripts."
2026-06-08_2 = "Per-file memory: DOMAIN MISMATCH -> MANUAL SLOP IS STRONGER IN CURATION DIMENSION. User pointed at FileItem (path + view_mode + ast_mask + custom_slices), ContextPreset, aggregate.py. Manual Slop's per-file memory is the curation kind, not the conversation-log kind."
2026-06-08_3 = "Sub-conversations: removed 'PARITY stronger' claim. User clarified MMA has it but 1:1 discussions do not. Added 'GAP for 1:1 discussions' + user-flagged 'want' for future sub-conversation track."
2026-06-08_4 = "RAG: clarified as opt-in, not gap. User wants pre-staging via sub-conversation ('Would be cool to have a sub agent maybe prepare a rag chunks before I use them in a run')."
2026-06-08_5 = "Personas: reframed as config bundling, not gap. User noted personas can be completely opted out by using AI settings directly. They 'just bundle preparatory cruft.'"
2026-06-08_6 = "Tool discovery: downgraded to 'intentional, low priority'. User has 'intent based DSL' idea but 'no where near that ideation yet.'"
2026-06-08_7 = "Editable discussions: REVISED AGAIN. User pointed out the report's §3 verdict (PARITY/DIFFERENT FOCUS) didn't enumerate the per-entry operations. After re-reading gui_2.py:3770-3853 (render_discussion_entry) and gui_2.py:4239-4260 (render_discussion_entry_controls) and history.py (UISnapshot/HistoryManager), the report's §3 now lists the full A1-A7 per-entry + B1-B11 discussion-level + C1-C5 undo/redo operations. The verdict remains PARITY (DIFFERENT FOCUS) but the gap is more precisely scoped: Manual Slop's editing is more granular at the typed-entry layer; nagent's is deeper at the raw-transcript layer. The 'raw transcript is in process globals' framing in the previous draft is still correct as a *layer* description, but the report now correctly characterizes Manual Slop's editing as comprehensive at the user-visible layer."
[tasks]
# Reference track; no implementation tasks. Future-track candidates live in decisions.md.
# Listing for accountability:
t_reference_01 = { status = "completed", commit_sha = "", description = "Read nagent README + bin/nagent in full" }
t_reference_02 = { status = "completed", commit_sha = "", description = "Read all 6 nagent helper files in full (cli, llm, file_edit, file_split, file_patch, file_summarize)" }
t_reference_03 = { status = "completed", commit_sha = "", description = "Read all 4 nagent executable scripts in full (nagent-file-edit, nagent-file-split, nagent-file-patch, nagent-file-summarize)" }
t_reference_04 = { status = "completed", commit_sha = "", description = "Read Manual Slop docs/ in full (12 guides + Readme)" }
t_reference_05 = { status = "completed", commit_sha = "", description = "Read Manual Slop src/ files selectively for user-corrections (models.py FileItem + ContextPreset, context_presets.py, project_manager.py, aggregate.py, history.py)" }
t_write_01 = { status = "completed", commit_sha = "", description = "Draft spec.md (track wrapper)" }
t_write_02 = { status = "completed", commit_sha = "", description = "Draft report.md (14-section deep-dive analysis; primary deliverable)" }
t_write_03 = { status = "completed", commit_sha = "", description = "Draft comparison_table.md (flat side-by-side reference)" }
t_write_04 = { status = "completed", commit_sha = "", description = "Draft decisions.md (10 future-track candidates)" }
t_write_05 = { status = "completed", commit_sha = "", description = "Create metadata.json + state.toml" }
t_write_06 = { status = "completed", commit_sha = "", description = "Draft nagent_takeaways_20260608.md (10 actionable patterns; companion to report.md)" }
t_write_07 = { status = "pending", commit_sha = "", description = "Add entry to conductor/tracks.md (post-commit)" }
t_write_08 = { status = "pending", commit_sha = "", description = "Human review of report.md + nagent_takeaways_20260608.md (final)" }
t_archive = { status = "pending", commit_sha = "", description = "Move track to conductor/tracks/archive/ when follow-up tracks are specced (or sooner if no value remains)" }
[user_wants_recorded]
# User explicitly wants these in priority order (see decisions.md for full detail)
want_1_sub_conversation_runner = "EXPLICIT: 'I probably want to add that for just 1:1 discussions where I use a sub-agent manually for specific points'"
want_2_rag_pre_staging = "EXPLICIT: 'Would be cool to have a sub agent maybe prepare a rag chunks before I use them in a run'"
deferred_intent_dsl = "EXPLICIT but deferred: 'I want to add an intent based dsl to help with discovery or combinatorics but no where near that ideation yet'"
[verification]
# Reference/analysis track; verification is artifact presence + user-correction application
report_md_exists = true
comparison_table_md_exists = true
decisions_md_exists = true
spec_md_exists = true
metadata_json_exists = true
state_toml_exists = true
nagent_takeaways_md_exists = true
# All 14 nagent principles have a corresponding section in report.md
all_14_principles_covered = true
# All user-corrections applied to first draft
all_user_corrections_applied = true
# All pitfalls are domain-tagged (Application / Meta-Tooling / Both)
all_pitfalls_domain_tagged = true
# Track produces no code (it's a reference/analysis track)
no_code_modified = true
# No links broken in comparison_table.md, decisions.md, report.md, spec.md, nagent_takeaways_20260608.md
all_internal_links_valid = true # verified by post-edit grep
# 10 actionable takeaways grounded in actual code (file:line refs)
takeaways_grounded_in_code = true
[nagent_principles_covered]
# 14 of 14 — full coverage
durable_work = "covered in report §1"
text_in_text_out = "covered in report §2"
editable_state = "covered in report §3"
visible_protocol = "covered in report §4"
the_loop = "covered in report §5"
per_file_memory = "covered in report §6"
repo_history = "covered in report §7"
neighborhoods = "covered in report §8"
sub_conversations = "covered in report §9"
controlled_writes = "covered in report §10"
large_files = "covered in report §11"
tool_discovery = "covered in report §12"
differences_from_frameworks = "covered in report §13"
build_your_own = "covered in report §14"
[future_track_candidates]
# See decisions.md for full detail. 10 candidates.
candidate_01_sub_conversation_runner = { priority = "HIGH", user_flag = "explicit want", domain = "App + MT", effort = "Medium" }
candidate_02_rag_pre_staging = { priority = "HIGH", user_flag = "explicit want", domain = "App", effort = "Small (depends on #1)" }
candidate_03_stateless_llm_client = { priority = "MEDIUM", user_flag = "none", domain = "App", effort = "Large" }
candidate_04_intent_dsl = { priority = "LOW", user_flag = "explicit but deferred", domain = "MT", effort = "Research" }
candidate_05_self_describing_tools = { priority = "LOW", user_flag = "implicit", domain = "BOTH", effort = "Medium (subsumed by mcp_architecture_refactor)" }
candidate_06_git_history_injection = { priority = "MEDIUM", user_flag = "none", domain = "App", effort = "Medium" }
candidate_07_per_file_conversation_log = { priority = "LOW", user_flag = "none", domain = "App", effort = "Small" }
candidate_08_coedited_files_tools = { priority = "LOW", user_flag = "none", domain = "App", effort = "Small (bundle with #6)" }
candidate_09_split_patch_lib = { priority = "DEFER", user_flag = "none", domain = "App", effort = "Medium (defer until need)" }
candidate_10_raw_transcript_persistence = { priority = "LOW", user_flag = "none", domain = "App", effort = "Small" }
[status]
# Track is a reference/analysis track; "active" means the artifacts are ready for review
# The track will move to "completed" and be archived when:
# (a) At least one of the follow-up tracks (candidates 1-2) is specced, OR
# (b) The user explicitly says the analysis is no longer needed
status = "active (reference artifacts ready; awaiting human review + follow-up track scoping)"