conductor(tracks): Add two deferred future tracks

- aggregation_smarter_summaries: Sub-agent summarization, hash-based caching
- system_context_exposure: Expose hidden _SYSTEM_PROMPT for user customization
This commit is contained in:
2026-03-22 12:43:47 -04:00
parent dd520dd4db
commit abe1c660ea
7 changed files with 355 additions and 1 deletions

View File

@@ -0,0 +1,17 @@
{
"name": "aggregation_smarter_summaries",
"created": "2026-03-22",
"status": "future",
"priority": "medium",
"affected_files": [
"src/aggregate.py",
"src/file_cache.py",
"src/ai_client.py",
"src/models.py"
],
"related_tracks": [
"discussion_hub_panel_reorganization (in_progress)",
"system_context_exposure (future)"
],
"notes": "Deferred from discussion_hub_panel_reorganization planning. Improves aggregation with sub-agent summarization and hash-based caching."
}

View File

@@ -0,0 +1,49 @@
# Implementation Plan: Smarter Aggregation with Sub-Agent Summarization
## Phase 1: Hash-Based Summary Cache
Focus: Implement file hashing and cache storage
- [ ] Task: Research existing file hash implementations in codebase
- [ ] Task: Design cache storage format (file-based vs project state)
- [ ] Task: Implement hash computation for aggregation files
- [ ] Task: Implement summary cache storage and retrieval
- [ ] Task: Add cache invalidation when file content changes
- [ ] Task: Write tests for hash computation and cache
- [ ] Task: Conductor - User Manual Verification 'Phase 1: Hash-Based Summary Cache'
## Phase 2: Sub-Agent Summarization
Focus: Implement sub-agent summarization during aggregation
- [ ] Task: Audit current aggregate.py flow
- [ ] Task: Define summarization prompt strategy for code vs text files
- [ ] Task: Implement sub-agent invocation during aggregation
- [ ] Task: Handle provider-specific differences in sub-agent calls
- [ ] Task: Write tests for sub-agent summarization
- [ ] Task: Conductor - User Manual Verification 'Phase 2: Sub-Agent Summarization'
## Phase 3: Tiered Aggregation Strategy
Focus: Respect tier-level aggregation configuration
- [ ] Task: Audit how tiers receive context currently
- [ ] Task: Implement tier-level aggregation strategy selection
- [ ] Task: Connect tier strategy to Persona configuration
- [ ] Task: Write tests for tiered aggregation
- [ ] Task: Conductor - User Manual Verification 'Phase 3: Tiered Aggregation Strategy'
## Phase 4: UI Integration
Focus: Expose cache status and controls in UI
- [ ] Task: Add cache status indicator to Files & Media panel
- [ ] Task: Add "Clear Summary Cache" button
- [ ] Task: Add aggregation configuration to Project Settings or AI Settings
- [ ] Task: Write tests for UI integration
- [ ] Task: Conductor - User Manual Verification 'Phase 4: UI Integration'
## Phase 5: Cache Persistence & Optimization
Focus: Ensure cache persists and is performant
- [ ] Task: Implement persistent cache storage to disk
- [ ] Task: Add cache size management (max entries, LRU)
- [ ] Task: Performance testing with large codebases
- [ ] Task: Write tests for persistence
- [ ] Task: Conductor - User Manual Verification 'Phase 5: Cache Persistence & Optimization'

View File

@@ -0,0 +1,103 @@
# Specification: Smarter Aggregation with Sub-Agent Summarization
## 1. Overview
This track improves the context aggregation system to use sub-agent passes for intelligent summarization and hash-based caching to avoid redundant work.
**Current Problem:**
- Aggregation is a simple pass that either injects full file content or a basic skeleton
- No intelligence applied to determine what level of detail is needed
- Same files get re-summarized on every discussion start even if unchanged
**Goal:**
- Use a sub-agent during aggregation pass for high-tier agents to generate succinct summaries
- Cache summaries based on file hash - only re-summarize if file changed
- Smart outline generation for code files, summary for text files
## 2. Current State Audit
### Existing Aggregation Behavior
- `aggregate.py` handles context aggregation
- `file_cache.py` provides AST parsing and skeleton generation
- Per-file flags: `Auto-Aggregate` (summarize), `Force Full` (inject raw)
- No caching of summarization results
### Provider API Considerations
- Different providers have different prompt/caching mechanisms
- Need to verify how each provider handles system context and caching
- May need provider-specific aggregation strategies
## 3. Functional Requirements
### 3.1 Hash-Based Summary Cache
- Generate SHA256 hash of file content
- Store summaries in a cache (file-based or in project state)
- Before summarizing, check if file hash matches cached summary
- Cache invalidation when file content changes
### 3.2 Sub-Agent Summarization Pass
- During aggregation, optionally invoke sub-agent for summarization
- Sub-agent generates concise summary of file purpose and key points
- Different strategies for:
- Code files: AST-based outline + key function signatures
- Text files: Paragraph-level summary
- Config files: Key-value extraction
### 3.3 Tiered Aggregation Strategy
- Tier 3/4 workers: Get skeleton outlines (fast, cheap)
- Tier 2 (Tech Lead): Get summaries with key details
- Tier 1 (Orchestrator): May get full content or enhanced summaries
- Configurable per-agent via Persona
### 3.4 Cache Persistence
- Summaries persist across sessions
- Stored in project directory or centralized cache location
- Manual cache clear option in UI
## 4. Data Model
### 4.1 Summary Cache Entry
```python
{
"file_path": str,
"file_hash": str, # SHA256 of content
"summary": str,
"outline": str, # For code files
"generated_at": str, # ISO timestamp
"generator_tier": str, # Which tier generated it
}
```
### 4.2 Aggregation Config
```toml
[aggregation]
default_mode = "summarize" # "full", "summarize", "outline"
cache_enabled = true
cache_dir = ".slop_cache"
```
## 5. UI Changes
- Add "Clear Summary Cache" button in Files & Media or Context Composition
- Show cached status indicator on files (similar to AST cache indicator)
- Configuration in AI Settings or Project Settings
## 6. Acceptance Criteria
- [ ] File hash computed before summarization
- [ ] Summary cache persists across app restarts
- [ ] Sub-agent generates better summaries than basic skeleton
- [ ] Aggregation respects tier-level configuration
- [ ] Cache can be manually cleared
- [ ] Provider APIs handle aggregated context correctly
## 7. Out of Scope
- Changes to provider API internals
- Vector store / embeddings for RAG (separate track)
- Changes to Session Hub / Discussion Hub layout
## 8. Dependencies
- `aggregate.py` - main aggregation logic
- `file_cache.py` - AST parsing and caching
- `ai_client.py` - sub-agent invocation
- `models.py` - may need new config structures