Skip to content

Latest commit

 

History

History
106 lines (72 loc) · 4.79 KB

ROADMAP.md

File metadata and controls

106 lines (72 loc) · 4.79 KB

ROADMAP

opencode-builder-profile — Project Roadmap


Phase 1: Foundation ✅ (Current)

  • 7 extractors covering session metrics, code changes, tool usage, agent workflow, conversation, project diversity, task completion
  • Per-dimension LLM calls with isolated prompts
  • --dry-run and --extractor CLI flags
  • Pydantic-validated final profile output
  • GitHub Models API integration
  • Clone-and-run setup with virtualenv

Phase 2: NLP & Prompt Intelligence

Goal: Extract linguistic signals from user prompts — vocabulary patterns, problem framing, technical language density.

  • Term frequency analysis — most common unigrams, bigrams, and trigrams across all user prompts
  • Sentence boundary detection — average sentence length, complexity score, question-to-statement ratio
  • Technical term extraction — count usage of domain-specific terms (API, schema, deploy, refactor, etc.)
  • Intent classification — categorize prompts by intent (implement, debug, explain, refactor, test, design)
  • Prompt evolution tracking — how prompt structure changes over time (early sessions vs. recent)

New extractors: prompt_intelligence, expanded conversation with NLP layer

Dependencies: nltk or spacy, scikit-learn


Phase 3: User-Only Signal Extraction

Goal: Isolate what the user independently contributes vs. what the AI generates — to assess autonomous engineering judgment.

  • User prompt isolation — extract part.text where message.role = 'user' and part.type = 'text'
  • User command patterns — extract bash commands the user explicitly requested
  • User file selections — files the user explicitly chose to read/edit vs. AI-chosen
  • Correction frequency — how often the user rejects or corrects AI output (heuristic: short follow-up after long assistant response)
  • Autonomy score — ratio of user-initiated actions to AI-suggested actions

New extractors: user_signals

Dependencies: None (relies on existing message.role field)


Phase 4: Multi-LLM Provider Support

Goal: Allow users to choose their preferred LLM provider for profile generation.

  • Provider abstraction — profile/client.py refactored into a provider registry pattern
  • OpenAI support — POST https://api.openai.com/v1/chat/completions, env var OPENAI_API_KEY
  • Anthropic support — POST https://api.anthropic.com/v1/messages, env var ANTHROPIC_API_KEY
  • Provider selection flag — --provider openai|anthropic|github + PROFILE_LLM_PROVIDER env var
  • Custom endpoint — --endpoint URL for self-hosted or proxy-compatible models

Config change:

PROFILE_LLM_PROVIDER=github        # default
# PROFILE_LLM_PROVIDER=openai
# PROFILE_LLM_PROVIDER=anthropic

OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...

Dependencies: None (client refactor only, requests already covers all providers)


Phase 5: OpenCode-Only Focus (Ongoing)

Constraint: This project extracts data exclusively from OpenCode's SQLite database. No Cursor, no Copilot, no Windsurf, no other AI coding assistant.

  • Schema version detection — detect OpenCode DB schema version at startup and warn on mismatch
  • Migration support — handle column additions/deprecations across OpenCode releases (the session table grows columns over time)
  • v2 event-sourced tables — adapt extractors to read from session_message, session_input, and event tables when present
  • DB path auto-detection — search standard locations (~/.local/share/opencode/, $XDG_DATA_HOME/opencode/, macOS ~/Library/Application Support/opencode/)
  • Channel-aware resolution — detect non-stable install channels (opencode-nightly.db, opencode-dev.db)

Phase 6: Long-Term Vision

  • Frontend dashboard — visualize the builder profile with charts (session timeline, language breakdown, tool usage heatmap)
  • Comparative profiles — generate profiles across time windows and compute diffs (e.g. Q1 vs Q2 growth)
  • Plug-in extractor system — third-party extractors via pip-installable packages, discovered through a registry
  • CI/CD integration — GitHub Action that generates a profile on a schedule and publishes to GitHub Pages
  • Batch organization mode — generate profiles for a team from multiple opencode.db files

Dependency Roadmap

Phase New Dependencies LLM Calls per Run
1 (current) pydantic, requests, python-dotenv 8 (7 section + 1 narrative)
2 (NLP) nltk or spacy, scikit-learn 9
3 (user signals) None 10
4 (multi-provider) None 10
5 (OpenCode focus) None 10
6 (frontend) react, d3 or recharts 0