This document outlines the planned features and future direction for the Context Vibes CLI. Priorities and features may change based on feedback and community contributions. This roadmap aims to guide development efforts and inform potential contributors about areas where help is welcome.
- Unit Tests for Enhanced Kickoff (
internal/kickoff): (High Priority post v0.1.0)- Implement comprehensive unit tests for
internal/kickoff.Orchestratormethods. - This includes mocking
ui.Presenter,git.ClientInterface(may require refactoring Orchestrator to use a Git client interface), andconfig.Configinteractions. - Focus on testing:
- Mode selection logic in
ExecuteKickoff(strategic vs. daily). runCollaborationSetup,runInitialInfoGathering,runTechnicalReadinessInquirywith mocked presenter inputs and config state verification.generateMasterKickoffPromptTextfor correct template execution and parameter substitution.generateCollaborationPrefsYAMLoutput.MarkStrategicKickoffCompletefor correct config updates and save calls.- Detailed scenarios for
executeDailyKickoff(mocking Git operations for success/failure, branch validation,assumeYesbehavior).
- Mode selection logic in
- Implement comprehensive unit tests for
- Comprehensive Unit Testing (General): (High Priority, ongoing)
- Expand unit test coverage significantly. Priority areas:
internal/git.GitClientmethods (ideally refactoring to use an interface for easier mocking).internal/execpackage components.- Further tests for
internal/configpackage logic (edge cases forLoadConfig,UpdateAndSaveConfigfailures,MergeWithDefaultswith complex overrides). internal/toolsutilities.internal/projectpackage detection logic.
- Goal: Ensure robustness, facilitate safe refactoring, and improve maintainability.
- Expand unit test coverage significantly. Priority areas:
- Refactor Orchestrator Dependencies to Interfaces: (Medium Priority - consider for v0.2.0 or if kickoff unit testing becomes too complex)
- Modify
internal/kickoff.Orchestratorand its constructorNewOrchestratorto accept interfaces forui.Presenterandgit.GitClientinstead of concrete types. This will significantly simplify unit testing, especially forexecuteDailyKickoff.
- Modify
- Implement Configurable Commit Message Validation in
cmd/commit.go(Finalize):- Ensure the
commitcommand fully utilizes thevalidation.commitMessage.enableandvalidation.commitMessage.patternsettings from.contextvibes.yamlas per v0.0.5 changelog (verify this is complete and robust).
- Ensure the
- Refactor
describeCommand:- Break down the large
RunEfunction incmd/describe.gointo smaller, more manageable, and testable helper functions within thecmdpackage or a newinternal/describe_logicpackage. This will improve readability and maintainability.
- Break down the large
- Enhance
qualityforgo mod tidy:- Modify the
go mod tidycheck in thequalitycommand to detect ifgo.modorgo.sumfiles were modified bygo mod tidy. If modifications occur, the check should fail (similar to howgo fmtnon-compliance is handled), prompting the user to commit the changes.
- Modify the
-
initCommand Flag Enhancements:- Add flags to the
initcommand (especially for Terraform) to pass common options to the underlying initialization tools (e.g.,terraform init -upgrade,terraform init -reconfigure).
- Add flags to the
- Generate Kickoff Summary Document:
- Implement the logic in
internal/kickoff.Orchestrator(part ofexecuteStrategicKickoffGeneration) to generate a structured Markdown summary document based on the (simulated for now) Q&A from the strategic kickoff. This was a TODO in thev0.1.0plan.
- Implement the logic in
- Context File Management Strategy (
contextvibes.md"Memory"):- Explore and implement strategies for managing the
contextvibes.mdfile, particularly given that thediffcommand currently overwrites it. - Options to consider:
- An optional backup flag for
diffbefore overwriting. - Allowing timestamped or uniquely named output files for
diffanddescribe. - Alternative approaches to providing diff context alongside full project context.
- An optional backup flag for
- Explore and implement strategies for managing the
- Global Verbose Flag:
- Introduce a global
--verboseor-vflag. This would enable more detailed output during command execution, such as showing the full commands being run by theExecutorClientor more granular internal step logging to the terminal.
- Introduce a global
- Expand Quality Tool Integrations:
- Investigate and add support for more widely-used linters and static analysis tools.
- Examples:
- Go:
golangci-lint(ensure robust integration if not already fully covered byqualitycommand). - Python:
mypy(for type checking).
- Go:
- Richer
describeProject Structure Analysis:- Enhance the
describecommand to provide more intelligent and detailed project structure information beyond simpletreeorlsoutput. - Examples: Analyzing
go.modfor Go project dependencies/packages,pyproject.toml/requirements.txtfor Python,package.jsonfor Node.js (if/when supported).
- Enhance the
- Standalone
updateCommand (Revisit):- Consider re-introducing a simpler
updatecommand (e.g.,git pull --rebaseon the current branch with confirmation) for users who prefer an explicit update action without the push component of thesynccommand.
- Consider re-introducing a simpler
- Git Stash Integration (Optional):
- Explore adding a
contextvibes stashcommand or integrating optional stashing capabilities into commands likekickofforsyncto more gracefully handle non-clean working directories, prompting the user to stash/unstash.
- Explore adding a
- Enhanced
.idx/airules.mdInteraction (Re-evaluate Scope):- Currently,
contextvibesreads.idx/airules.mdfor context indescribe. - Re-evaluate if more active generation, validation, or maintenance features for this specific IDE context file are desired by users or align with the CLI's core purpose. This might involve interactive creation or specific structural validation if it becomes a widely adopted standard.
- Currently,
- Broader Project Type Support:
- Incrementally expand project detection and relevant command adaptations (
quality,format,test,init,plan,deploysteps) for other common development ecosystems. - Examples: Node.js (npm/yarn commands, linters), Java (Maven/Gradle tasks), Rust (Cargo tasks), Docker (Dockerfile linting).
- Incrementally expand project detection and relevant command adaptations (
- Direct AI Integration (Optional Feature):
- Investigate safely and effectively integrating direct calls to LLM APIs for commands like
askorplan(similar tovibe-toolsmodel), making ContextVibes a more active AI agent. - This would require robust API key management, user consent for data transfer, and clear indication of when external AI is being called.
- Investigate safely and effectively integrating direct calls to LLM APIs for commands like
- Plugin System or Extensibility:
- Explore architectural changes to allow users or teams to more easily extend
contextvibeswith custom commands, project-type specific logic, or quality tool integrations without modifying the core CLI codebase.
- Explore architectural changes to allow users or teams to more easily extend
- CI/CD Integration Enhancements:
- Provide clearer examples, documentation, or specific flags/output modes (e.g., machine-readable output for some commands) to facilitate the robust use of
contextvibescommands within automated CI/CD pipelines.
- Provide clearer examples, documentation, or specific flags/output modes (e.g., machine-readable output for some commands) to facilitate the robust use of
- Configuration File Validation:
- Add a dedicated command (e.g.,
contextvibes config validate) to check the syntax and potentially the semantic correctness of the.contextvibes.yamlfile.
- Add a dedicated command (e.g.,
- Improved AI Prompting & Context (
contextvibes.mdand Master Kickoff Prompt):- Continuously refine the structure, content, and verbosity of the
contextvibes.mdfile and the generatedSTRATEGIC_KICKOFF_PROTOCOL_FOR_AI.mdbased on evolving best practices for prompting various AI models and user feedback.
- Continuously refine the structure, content, and verbosity of the
This roadmap is a living document. Feedback, suggestions, and contributions are highly welcome! Please open an issue on the GitHub repository to discuss roadmap items or propose new features.