# 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)"