2.2 KiB
2.2 KiB
Project Context
High-Level Goal
To build a standalone Agentic AI Code Assistant application using Tauri. The assistant will facilitate a "Story-Driven Spec Workflow" (SDSW) for software development. Unlike a passive chat interface, this assistant acts as an Agent, capable of using tools to read the filesystem, execute shell commands, manage git repositories, and modify code directly to implement features.
Core Features
- Chat Interface: A conversational UI for the user to interact with the AI assistant.
- Agentic Tool Bridge: A robust system mapping LLM "Tool Calls" to native Rust functions.
- Filesystem: Read/Write access (scoped to the target project).
- Search: High-performance file searching (ripgrep-style) and content retrieval.
- Shell Integration: Ability to execute approved commands (e.g.,
cargo,npm,git) to run tests, linters, and version control.
- Workflow Management: Specialized tools to manage the SDSW lifecycle:
- Ingesting stories.
- Updating specs.
- Implementing code.
- Verifying results (running tests).
- LLM Integration: Connection to an LLM backend to drive the intelligence and tool selection.
- Remote: Support for major APIs (Anthropic Claude, Google Gemini, OpenAI, etc).
- Local: Support for local inference via Ollama.
Domain Definition
- User: A software engineer using the assistant to build a project.
- Target Project: The local software project the user is working on.
- Agent: The AI entity that receives prompts and decides which Tools to invoke to solve the problem.
- Tool: A discrete function exposed to the Agent (e.g.,
run_shell_command,write_file,search_project). - Story: A unit of work defining a change (Feature Request).
- Spec: A persistent documentation artifact defining the current truth of the system.
Glossary
- SDSW: Story-Driven Spec Workflow.
- Tauri: The framework used to build this assistant (Rust backend + Web frontend).
- Living Spec: The collection of Markdown files in
.living_spec/that define the project. - Tool Call: A structured request from the LLM to execute a specific native function.