Private
Public Access
0
0
Files
manual_slop/docs/AGENTS.md
T
ed 35c6cca134 docs: agent workflow docs + regular docs (v2.3 surfacing)
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.
2026-06-12 13:50:40 -04:00

15 KiB

./docs/AGENTS.md (the agent-facing mirror)

Status: Agent-facing mirror of docs/Readme.md (the human-facing docs index, which is preserved as-is). For agents (any tier), this is the recommended first read for understanding the project's docs structure. Date: 2026-06-12 Cross-refs: docs/Readme.md (human-facing); AGENTS.md (project root); the 6 styleguides in conductor/code_styleguides/.

What this is. docs/Readme.md is the human-facing docs index. This file is the agent-facing equivalent: it organizes the 14 deep-dive guides under docs/ by MMA tier, and it cross-references the canonical styleguides. The 2 files cover the same docs but with different audiences and different reading paths.

The reading path. If you're an agent scoping a feature, read this file first; then read the 1-2 guide_*.md files for the layers your feature touches; then read the 1-2 styleguides for the patterns the feature uses. The expected reading time for a typical feature: 10-15 minutes.


0. The 4 memory dimensions (the cross-cutting lens)

The conversation data has 4 distinct memory dimensions. Most features touch 1-2; some touch 3. Use this lens to identify which dimension(s) your feature needs.

# Dim Where it lives Use when Styleguide
1 Curation FileItem + ContextPreset + Fuzzy Anchors "How to render a file" (the curation is per docs/guide_context_curation.md)
2 Discussion app.disc_entries + branching + UISnapshot "What was said in this chat" (the discussion is per docs/guide_architecture.md §"Threading model")
3 RAG src/rag_engine.py (ChromaDB) "What similar content exists" (opt-in) conductor/code_styleguides/rag_integration_discipline.md
4 Knowledge ~/.manual_slop/knowledge/*.md + per-file + digest "What we learned from past sessions" conductor/code_styleguides/knowledge_artifacts.md

See docs/guide_agent_memory_dimensions.md for the full cross-cutting guide.


1. The 14 deep-dive guides (organized by MMA tier)

Tier Guide What it covers When to read
T1 docs/guide_architecture.md Threading model; cross-thread state sync When scoping any cross-cutting feature
T1 docs/guide_meta_boundary.md The Application vs Meta-Tooling split When scoping a Meta-Tooling-side feature
T2 docs/guide_app_controller.md The headless controller; AppState dataclass When implementing controller-side logic
T2 docs/guide_ai_client.md The multi-provider LLM client When implementing LLM-side logic
T2 docs/guide_mma.md The 4-tier MMA orchestration When implementing MMA-side logic
T2 docs/guide_tools.md The MCP tool inventory + Hook API When implementing MCP tools or Hook endpoints
T2 docs/guide_mcp_client.md The 45 tools + 3-layer security When implementing new MCP tools or sub-MCPs
T3 docs/guide_context_curation.md Granular AST Control + Fuzzy Anchors + Structural File Editor When implementing curation-side features
T3 docs/guide_personas.md The unified agent profile model When implementing persona-side features
T3 docs/guide_rag.md The RAG subsystem When implementing RAG-side features (rare; opt-in)
T3 docs/guide_gui_2.md The ImGui application When implementing GUI-side features
All docs/guide_testing.md The test suite architecture (251 test files; 7 conftest fixtures) When writing any test
All docs/guide_command_palette.md The 33 commands + "Everything" mode When implementing command-palette features
NEW docs/guide_knowledge_curation.md The knowledge memory guide (4th dim) When implementing knowledge-side features
NEW docs/guide_caching_strategy.md Caching across providers; stable-to-volatile ordering; cache TTL GUI When implementing cache-side features
NEW docs/guide_agent_memory_dimensions.md Cross-cutting: the 4 memory dimensions When scoping any feature that touches memory

2. The 6 canonical styleguides (the convention catalog)

Styleguide What it codifies When to read
conductor/code_styleguides/data_oriented_design.md The canonical DOD reference (Tier 0/1/2; 3 defaults to reject; 7-question simplification pass; 10-question self-check) Before any non-trivial work
conductor/code_styleguides/agent_memory_dimensions.md The 4 memory dimensions and when to use each When the feature touches memory
conductor/code_styleguides/rag_integration_discipline.md The conservative-RAG rule (opt-in; complements; provenance; no mutation; feature-gated; graceful failure) When the feature uses RAG
conductor/code_styleguides/cache_friendly_context.md Stable-to-volatile context ordering; the cache TTL GUI contract; the byte-comparison test When the feature builds context or caches
conductor/code_styleguides/knowledge_artifacts.md The knowledge harvest pattern (category files, provenance, sha256 ledger, digest regeneration) When the feature uses the knowledge dim
conductor/code_styleguides/feature_flags.md File presence ("delete to turn off") vs config flags vs CLI flags; when to use each When adding a new feature toggle

3. The per-tier reading path

Tier 1 (Orchestrator) — what to read

For scoping a feature, understanding the architecture, and planning:

Read Why
docs/guide_architecture.md The threading model; the cross-thread data flow
docs/guide_meta_boundary.md The Application vs Meta-Tooling split (load-bearing)
docs/guide_agent_memory_dimensions.md The 4 memory dimensions (which dim does my feature touch?)
conductor/code_styleguides/data_oriented_design.md The 3 defaults to reject; the simplification pass; the final self-check
AGENTS.md (project root) The project-root agent-facing rules
This file (.docs/AGENTS.md) The docs structure

Tier 1 does NOT typically read: guide_*.md for the specific subsystems (T2 reads those).

Tier 2 (Tech Lead) — what to read

For track design, ticket generation, and architecture:

Read Why
All of Tier 1's reads (foundational)
docs/guide_app_controller.md The headless controller; the _predefined_callbacks and _gettable_fields registries
docs/guide_ai_client.md The LLM client; the providers; the cache strategy
docs/guide_mma.md The 4-tier MMA; the DAG engine; the worker pool
docs/guide_tools.md The MCP tool inventory; the Hook API; the 3-layer security
conductor/code_styleguides/agent_memory_dimensions.md (for memory-touching tracks)
conductor/code_styleguides/cache_friendly_context.md (for context-building tracks)

Tier 2 does NOT typically read: guide_context_curation.md, guide_personas.md, guide_rag.md, guide_gui_2.md (T3 reads those).

Tier 3 (Worker) — what to read

For surgical implementation:

Read Why
All of Tier 2's reads (selectively) (the system context)
The 1-2 guide_*.md files for the specific layers the ticket touches (the implementation surface)
The 1-2 code_styleguides/...md files for the patterns the ticket uses (the convention)
The ticket itself (conductor/tracks/<id>/plan.md) (the specific task)

Tier 3 reads in depth, not in breadth. A typical T3 worker reads 2-4 docs total.

Tier 4 (QA) — what to read

For error analysis and bug reproduction:

Read Why
All of Tier 2's reads (selectively) (the system context)
The 1-2 guide_*.md files for the failing layer (the reproduction surface)
The test file (if any) (the verification surface)
The audit scripts (scripts/audit_*.py) (the static analysis surface)

Tier 4 reads narrowly. The bug is in 1-2 files; the read is in 1-2 docs.


4. The 4 memory dimensions (the cross-cutting lens, in detail)

Most features touch 1-2 dimensions. Use this decision tree:

Q: What is the *data* the feature needs?
   │
   ├── "How to render a file"          ──► Curation (FileItem)
   ├── "What was said in this chat"     ──► Discussion (disc_entries)
   ├── "What similar content exists"    ──► RAG (RAGEngine.search)  [opt-in]
   └── "What we learned from past runs" ──► Knowledge (knowledge/digest.md)

Pick the matching dimension. If the feature needs 2+, use 2+ — but be explicit about which is primary and which is secondary.

The wrong shape for the right question is a common mistake:

  • "Where does X happen?" → RAG (semantic search)
  • "How do I configure how file Y is rendered?" → Curation (FileItem)
  • "What was the user asking about 3 turns ago?" → Discussion (disc_entries)
  • "What did we decide last time about Z?" → Knowledge (digest)

See docs/guide_agent_memory_dimensions.md for the full cross-cutting guide.


5. The caching strategy (the cross-cutting concern)

If the feature builds the initial context (in aggregate.py:run) or calls the LLM (in ai_client.py:send), the cache strategy matters.

The 12-layer model:

# Layer Stable across turns? Where the cache hits
1-7 Role instructions, function-calling schema, tool descriptions, system prompt, persona, project context, knowledge digest YES (cacheable) Anthropic cache_control, Gemini cachedContent, OpenAI implicit
8-12 Discussion metadata, active preset, per-file details, prior tool results, user message NO (per turn) NOT cached

The byte-comparison test (the design contract for the stable prefix):

def test_aggregate_stable_to_volatile_ordering():
    """The first N characters of the context should be identical across turns
    of the same conversation, when no stable-layer inputs change."""
    ...

The provider-specific TTLs:

Provider Default TTL Configurable?
Anthropic ephemeral 5 min yes (per-provider control surface)
Gemini explicit 1 h yes (per-discussion override)
OpenAI implicit 5-10 min (provider-managed) no

The GUI exposure is a "Caching" Operations Hub sub-panel (per the v2.3 §5.3 sketch). See docs/guide_caching_strategy.md for the full guide and conductor/code_styleguides/cache_friendly_context.md for the styleguide.


6. The knowledge harvest (the durable layer)

The 4th memory dimension (knowledge) is opt-in but encouraged — it's the durable, user-editable, provenance-aware store of facts / decisions / questions / playbooks / per-file notes.

The directory layout (per the user's ~/.manual_slop/knowledge/):

knowledge/
├── facts.md           # - {statement} {provenance}
├── decisions.md       # - {statement, reason} {provenance}
├── questions.md       # - {question} {provenance}
├── playbooks.md       # - **{name}**: {steps} {provenance}
├── tasks.md           # ## Open / ## Done
├── files/{file_id}.md # per-file notes (keyed by inode)
├── digest.md          # bounded 4KB; the projection; "delete to turn off"
├── ledger.json        # sha256-of-content audit log
└── prompts/harvest-conversation.md  # user-editable

The harvest CLI: python -m src.knowledge_harvest [--apply] [--no-harvest] [--max-harvest-bytes N]. Default: dry-run.

The LLM output is strict JSON (no prose, no markdown fence) with 7 categories. The retry budget is 2 attempts.

The "delete to turn off" pattern: rm ~/.manual_slop/knowledge/digest.md → no {knowledge} block injected. Re-enable by running the harvest.

See docs/guide_knowledge_curation.md for the full guide and conductor/code_styleguides/knowledge_artifacts.md for the styleguide.


7. The RAG discipline (the opt-in fuzzy dimension)

RAG is the fuzzy semantic search dimension. It's opt-in (default-off in new projects). The 6 rules:

  1. Opt-in. Default-off in new projects
  2. Complements; never replaces. RAG is one of 4 dimensions, not a substitute
  3. Provenance required. Every result shows file + chunk
  4. No mutation. RAG results never write to disc_entries, FileItem, or disk
  5. Feature-gated. A feature must explicitly request RAG in its scope
  6. Graceful failure. Failed search returns empty; the request continues

See docs/guide_rag.md for the full RAG guide and conductor/code_styleguides/rag_integration_discipline.md for the styleguide.


8. The feature flag patterns (when to use what)

When adding a new feature with an "on/off" toggle, choose the right pattern:

Pattern When to use Example
File presence ("delete to turn off") The feature produces a side artifact; the user might want to clean up by rm-ing it ~/.manual_slop/knowledge/digest.md
Config flag The feature is always on; the flag is a persistent preference [ai_settings.toml] rag.enabled
CLI flag The feature is invoked from the CLI; the flag is a one-shot override python -m src.knowledge_harvest --apply
Track metadata flag The track's implementation uses a feature; this is static documentation metadata.json: {"uses_rag": true}

See conductor/code_styleguides/feature_flags.md for the full guide.


9. The cross-cutting principles (the data-oriented foundation)

All 14 docs and 6 styleguides share the same foundation (per data_oriented_design.md):

  • The data is the thing. The conversation, the file items, the knowledge digest — these are the source of truth
  • Behavior is transformation over data. Not object graphs; not hidden state; not opaque handles
  • Avoid hidden mutable state. Errors are data, not exceptions. State is on disk, not in memory
  • Separate durable artifacts from temporary execution. Workers are disposable; artifacts are durable
  • Optimize the shape, availability, and maintenance of the data. Editable, provenance-aware, user-editable

When in doubt, read conductor/code_styleguides/data_oriented_design.md first.


10. The reading path (the 1-page summary)

For an agent scoping a feature:

  1. Read this file (10 min)
  2. Read the 1-2 guide_*.md for the layers your feature touches (5-10 min each)
  3. Read the 1-2 code_styleguides/...md for the patterns your feature uses (5-10 min each)
  4. Read the ticket (conductor/tracks/<id>/plan.md) for the specific task (variable)

Total: 20-45 min for a typical feature. The investment pays back across the feature's lifetime.

If a guide is missing or stale, that's a bug; file a docs issue (or update the guide inline, per the project's "edit the source of truth, not this file" pattern).

End of agent-facing mirror.