exoshell/docs/PHASES.md
2026-06-05 01:54:01 -07:00

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.

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.