{ "track_id": "nagent_review_20260608", "name": "nagent Review (Mike Acton's data-oriented LLM agent reference)", "initialized": "2026-06-08", "owner": "tier2-tech-lead", "priority": "medium", "status": "active", "type": "reference + analysis + future-track scoping", "scope": { "new_files": [ "conductor/tracks/nagent_review_20260608/spec.md", "conductor/tracks/nagent_review_20260608/report.md", "conductor/tracks/nagent_review_20260608/comparison_table.md", "conductor/tracks/nagent_review_20260608/decisions.md", "conductor/tracks/nagent_review_20260608/nagent_takeaways_20260608.md" ], "modified_files": [], "external_resources": [ "nagent README: https://github.com/macton/nagent/blob/main/README.md", "nagent source: https://github.com/macton/nagent (all 11 source files read in full)" ] }, "blocked_by": [], "blocks": [ "sub_conversation_runner_app_1to1_20260608_PLACEHOLDER", "rag_pre_staging_sub_convo_20260608_PLACEHOLDER", "llm_client_stateless_class_20260608_PLACEHOLDER", "intent_dsl_for_meta_tooling_20260608_PLACEHOLDER", "git_history_injection_20260608_PLACEHOLDER", "per_file_conversation_log_20260608_PLACEHOLDER", "py_coedited_files_tool_20260608_PLACEHOLDER", "ts_c_coedited_files_tool_20260608_PLACEHOLDER", "split_patch_lib_20260608_PLACEHOLDER", "raw_transcript_persistence_per_take_20260608_PLACEHOLDER" ], "estimated_phases": 0, "spec": "spec.md", "plan": null, "nagent_principles_covered": [ "Durable work, disposable workers", "Text in, text out", "Conversations are editable state", "Visible output protocol", "The loop", "Per-file memory", "Repository history as data", "Historical coupling & artifact neighborhoods", "Disposable sub-conversations", "Controlled writes", "Large files as explicit artifacts", "Tool discovery", "Differences from frameworks", "Build your own" ], "manual_slop_features_audited": [ "Context composition (FileItem + ContextPreset + custom_slices + ast_mask)", "Discussion Takes + branching (project_manager.branch_discussion + promote_take)", "UI Snapshot history (HistoryManager + UISnapshot)", "Personas (Persona + PersonaManager)", "RAG (RAGEngine + ChromaDB + summarization)", "Multi-provider AI client (ai_client + 5 providers)", "MMA conductor (mma_exec.py + ConductorEngine + WorkerPool)", "MCP tools (45 tools + 3-layer security)", "Hook API (api_hooks + api_hook_client)", "GUI App/Controller state delegation" ], "user_corrections_applied": [ "Editable discussions: PARTIAL -> PARITY (DIFFERENT FOCUS)", "Per-file memory: DOMAIN MISMATCH -> MANUAL SLOP IS STRONGER IN CURATION DIMENSION", "Sub-conversations: removed 'PARITY stronger' claim; added 'GAP for 1:1 discussions'", "RAG: clarified as opt-in, not gap; user wants pre-staging via sub-conversation", "Personas: reframed as config bundling (not gap; can opt out via AI settings)", "Tool discovery: downgraded to 'intentional, low priority'; user has deferred DSL idea", "Editable discussions (second pass): report §3 now enumerates the full per-entry (A1-A7) + discussion-level (B1-B11) + undo/redo (C1-C5) operation matrix. 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." ], "domain_classification": { "Application_domain_pitfalls": [ "Provider-specific history in process globals", "AI client is a stateful singleton with module-level globals", "No non-MMA disposable sub-conversations (1:1 gap)", "RAG is not 'history as data' (fuzzy vs exact)", "Optional raw-transcript persistence (niche)" ], "Meta_Tooling_domain_pitfalls": [ "No structured output protocol (opaque function calling)", "Hard-coded tool discovery" ], "Application_features": [ "Context composition with FileItem-level curation memory", "Discussion Takes + branching (project_manager.branch_discussion + promote_take)", "UI Snapshot history (HistoryManager + UISnapshot)", "Personas as config bundling", "RAG as opt-in semantic search", "3-layer MCP security model + Execution Clutch" ], "Meta_Tooling_features_to_borrow": [ "nagent-style --description self-describing executables", "Intent-based DSL for compact tool calls" ] }, "verification_criteria": [ "spec.md exists and covers the 14 nagent principles", "report.md exists and is the primary deliverable", "comparison_table.md exists as flat side-by-side reference", "decisions.md exists with 10 future-track candidates", "nagent_takeaways_20260608.md exists with 10 actionable patterns (companion to report.md)", "Every pitfall is tagged with Application / Meta-Tooling / Both", "Pitfall #3 (conversations are editable) verdict is corrected to PARITY (DIFFERENT FOCUS) per user feedback", "Pitfall #6 (per-file memory) verdict is corrected to 'Manual Slop is stronger in curation dimension' per user feedback", "Pitfall #9 (sub-conversations) verdict notes MMA vs 1:1 distinction per user feedback", "Report §3 enumerates the per-entry (A1-A7) + discussion-level (B1-B11) + undo/redo (C1-C5) operation matrix for Manual Slop's editable-discussion system, with file:line citations into gui_2.py and history.py", "nagent_takeaways_20260608.md grounds each pattern in actual code with file:line references into both nagent source and Manual Slop source", "No code was modified by this track (reference/analysis only)" ], "links": { "report": "report.md", "comparison_table": "comparison_table.md", "decisions": "decisions.md", "takeaways": "nagent_takeaways_20260608.md", "user_signal_recorded": "User explicitly flagged SubConversationRunner + RAG pre-staging as wants during review", "related_tracks": [ "data_oriented_error_handling_20260606 (Fleury/Acton alignment)", "qwen_llama_grok_integration_20260606 (OpenAI-compatible helper)", "mcp_architecture_refactor_20260606 (sub-MCP extraction)", "data_structure_strengthening_20260606 (type aliases)" ], "external": [ "https://github.com/macton/nagent (nagent source code)", "https://github.com/macton/nagent/blob/main/README.md (nagent README)" ] } }