10 KiB
Roadmap
Detailed milestone task lists live in docs/tasks/.
Current ordering:
- Phase 1 is closed.
- Phase 1.5 establishes the explicit context engine foundation before Phase 2.
- Phase 2 integrates the context engine with stances, safer command handling, and operator controls.
- Phase 3 adds project awareness and operational memory on top of visible, user-controlled context.
Phase 3 Tasks
Phase 3 goal: provide useful project awareness and operational memory while keeping all context visible, inspectable, and user-controlled.
P3-001: Project Root Detection
Status: planned.
Outcome: Exoshell can identify and operate against a project root.
Acceptance criteria:
- Detect Git repositories.
- Detect project roots using common markers.
- User can override detected root.
- Current project root is visible.
- Tests cover nested repositories and overrides.
P3-002: Project Context Model
Status: planned.
Outcome: Exoshell has a structured representation of project information.
Acceptance criteria:
- Project metadata includes root path, repository type, language hints, and discovery timestamps.
- Metadata is serializable.
- Metadata can be displayed in the UI.
- Tests cover serialization and loading.
P3-003: Repository Summary Generation
Status: planned.
Outcome: Exoshell can generate a high-level summary of a repository.
Acceptance criteria:
- Summary includes major directories.
- Summary includes language breakdown.
- Summary identifies likely entry points.
- Summary avoids reading entire repositories by default.
- Tests cover large repositories.
P3-004: Repository Ignore Rules
Status: planned.
Outcome: repository scanning remains efficient.
Acceptance criteria:
- Honors .gitignore when practical.
- Supports Exoshell-specific ignore rules.
- Skips common build artifacts.
- Ignore behavior is configurable.
- Tests cover ignore matching.
P3-005: File Inventory Builder
Status: planned.
Outcome: users can inspect repository contents.
Acceptance criteria:
- Generates file inventories.
- Supports filtering by extension.
- Supports filtering by path.
- Supports size limits.
- Tests cover large inventories.
P3-006: Symbol Discovery Framework
Status: planned.
Outcome: Exoshell can discover likely symbols without full semantic indexing.
Acceptance criteria:
- Extracts functions, structs, classes, interfaces, and modules where practical.
- Stores symbol metadata.
- Supports lookup by name.
- Supports language-specific extractors.
- Tests cover supported languages.
P3-007: Language Detector
Status: planned.
Outcome: Exoshell understands repository language composition.
Acceptance criteria:
- Detects primary languages.
- Detects mixed-language repositories.
- Handles generated code separately.
- Displays language summary.
- Tests cover representative repositories.
P3-008: Git Status Context Provider
Status: planned.
Outcome: users can add current Git state as context.
Acceptance criteria:
- Captures branch.
- Captures modified files.
- Captures staged files.
- Captures untracked files.
- Tests cover detached HEAD and clean repositories.
P3-009: Recent Commit Context Provider
Status: planned.
Outcome: users can add recent history to context.
Acceptance criteria:
- Supports configurable commit count.
- Includes author, timestamp, message, and changed files.
- Supports filtering by author.
- Supports filtering by path.
- Tests cover repositories with no commits.
P3-010: Diff Context Provider
Status: planned.
Outcome: users can attach diffs to prompts.
Acceptance criteria:
- Supports staged diffs.
- Supports unstaged diffs.
- Supports specific files.
- Large diffs are truncated visibly.
- Tests cover truncation behavior.
P3-011: Search Provider Framework
Status: planned.
Outcome: Exoshell can search repositories consistently.
Acceptance criteria:
- Search abstraction exists.
- Supports text search.
- Supports path search.
- Supports symbol search.
- Tests cover provider behavior.
P3-012: Ripgrep Integration
Status: planned.
Outcome: repository search is fast and useful.
Acceptance criteria:
- Uses ripgrep when available.
- Provides fallback behavior.
- Search results include file and line information.
- Results are attachable as context.
- Tests cover common searches.
P3-013: Source File Context Commands
Status: planned.
Outcome: users can add code directly to context.
Acceptance criteria:
- Supports adding files.
- Supports adding line ranges.
- Supports adding symbols.
- Supports adding search results.
- Tests cover invalid ranges.
P3-014: Context Compression Pipeline
Status: planned.
Outcome: large repositories remain usable.
Acceptance criteria:
- Large context can be summarized.
- Compression preserves source references.
- Compression is visible to the user.
- Original context remains inspectable.
- Tests cover compression logic.
P3-015: Global Notebook Support
Status: planned.
Outcome: users can maintain global notes.
Acceptance criteria:
- Global notebook exists outside repositories.
- Notes are markdown.
- Notes are searchable.
- Notes are user-editable.
- Tests cover creation and loading.
P3-016: Repository Notebook Support
Status: planned.
Outcome: each repository can maintain its own notebook.
Acceptance criteria:
- Notebook is scoped to repository.
- Notebook persists between sessions.
- Notebook supports markdown.
- Notebook location is configurable.
- Tests cover notebook loading.
P3-017: Task Notebook Support
Status: planned.
Outcome: users can organize work around tasks.
Acceptance criteria:
- Users can create tasks.
- Tasks have notes.
- Tasks can link context entries.
- Tasks can be completed or archived.
- Tests cover task lifecycle.
P3-018: Notebook Search
Status: planned.
Outcome: stored discoveries remain useful.
Acceptance criteria:
- Supports keyword search.
- Supports filtering by notebook type.
- Results include source references.
- Results are attachable to prompts.
- Tests cover notebook search.
P3-019: Discovery Linking
Status: planned.
Outcome: findings become navigable knowledge.
Acceptance criteria:
- Discoveries can link files.
- Discoveries can link symbols.
- Discoveries can link commits.
- Discoveries can link tasks.
- Tests cover link integrity.
P3-020: Runbook Generation
Status: planned.
Outcome: sessions can produce operational documentation.
Acceptance criteria:
- Generates markdown runbooks.
- Includes commands, findings, and notes.
- Includes timestamps.
- Includes source references.
- Tests cover runbook generation.
P3-021: Session Summarization
Status: planned.
Outcome: long sessions remain manageable.
Acceptance criteria:
- Session summaries are generated on demand.
- Summaries preserve important discoveries.
- Summaries include linked context.
- Summaries are written to notebooks.
- Tests cover summary generation.
P3-022: Patch Suggestion Model
Status: planned.
Outcome: Exoshell can suggest code modifications.
Acceptance criteria:
- Suggestions are emitted as diffs.
- Suggestions never modify files automatically.
- Suggestions include rationale.
- Suggestions include uncertainty when appropriate.
- Tests cover patch formatting.
P3-023: Diff Renderer
Status: planned.
Outcome: code changes are reviewable.
Acceptance criteria:
- Unified diff rendering.
- Syntax-aware formatting where practical.
- Clear additions and removals.
- Works without ANSI color.
- Tests cover rendering.
P3-024: Patch Export
Status: planned.
Outcome: users can save suggested patches.
Acceptance criteria:
- Exports standard patch files.
- Exports markdown review files.
- Includes metadata.
- Does not modify repository state.
- Tests cover export behavior.
P3-025: Evidence and Confidence Framework
Status: planned.
Outcome: Exoshell communicates uncertainty consistently.
Acceptance criteria:
- Responses distinguish evidence from inference.
- Confidence labels are documented.
- Confidence metadata can be rendered.
- Confidence survives transcript export.
- Tests cover confidence formatting.
P3-026: Code Review Stance
Status: planned.
Outcome: Exoshell can behave like a skeptical reviewer.
Acceptance criteria:
- Focuses on correctness.
- Focuses on maintainability.
- Focuses on security.
- Prioritizes findings.
- Snapshot tests cover stance behavior.
P3-027: Repository Dashboard
Status: planned.
Outcome: users can inspect project state quickly.
Acceptance criteria:
- Shows repository metadata.
- Shows notebook summary.
- Shows recent discoveries.
- Shows current task.
- Displays cleanly in terminal environments.
P3-028: Tree-Sitter Foundation
Status: planned.
Outcome: semantic parsing foundation exists for supported languages.
Acceptance criteria:
- Tree-sitter integration is optional.
- Supports at least one language initially.
- Symbol extraction can use tree-sitter.
- Fallback path exists when unavailable.
- Tests cover parser loading.
P3-029: Tree-Sitter Symbol Provider
Status: planned.
Outcome: symbol extraction becomes more accurate.
Acceptance criteria:
- Extracts functions.
- Extracts classes/structs.
- Extracts methods.
- Preserves source locations.
- Tests cover supported languages.
P3-030: Phase 3 Documentation
Status: planned.
Outcome: users understand project-aware workflows.
Acceptance criteria:
- Documentation covers repositories.
- Documentation covers notebooks.
- Documentation covers patch suggestions.
- Documentation covers confidence reporting.
- Documentation covers limitations.
P3-031: Phase 3 Test Coverage
Status: planned.
Outcome: repository-awareness features remain reliable.
Acceptance criteria:
- cargo test covers discovery, search, notebooks, patch generation, and confidence handling.
- Snapshot tests protect prompt assembly and patch formatting.
- Manual integration tests remain separate.
- Verification workflow is documented.
P3-032: Phase 3 Manual Acceptance Test
Outcome: repository awareness milestone is validated.
Acceptance criteria:
- Open a repository.
- Generate repository summary.
- Add git diff context.
- Add recent commit context.
- Search for a symbol.
- Create a task notebook.
- Record discoveries.
- Generate a runbook.
- Request a patch suggestion.
- Export the patch.
- Verify no files are modified automatically.
- Verify all context remains inspectable.