Private
Public Access
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.
This commit is contained in:
@@ -0,0 +1,132 @@
|
||||
{
|
||||
"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)"
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user