feat(workon): implement automated todo workflow with AI plans and branch management
- Add workon command to automate starting/completing todos/fixes - Generate AI-powered work plans and handle git branching - Update README and user docs with workon guide - Move workon todo item to completed
This commit is contained in:
parent
6692b9a050
commit
65f67ff7b1
@ -185,6 +185,7 @@ Generate shell completions for faster command entry:
|
|||||||
- ✅ **AI unit test generation** - Go (table-driven), Python (pytest), C (Check), C++ (GTest)
|
- ✅ **AI unit test generation** - Go (table-driven), Python (pytest), C (Check), C++ (GTest)
|
||||||
- ✅ **AI file scaffolding** - Create new files with project-aware style matching
|
- ✅ **AI file scaffolding** - Create new files with project-aware style matching
|
||||||
- ✅ **Transactional Recipes** - Markdown-based multi-step AI workflows
|
- ✅ **Transactional Recipes** - Markdown-based multi-step AI workflows
|
||||||
|
- ✅ **Automated Workon** - AI-powered todo/fix workflow with branch management, work plan generation, and completion tracking
|
||||||
|
|
||||||
### Quality & Testing
|
### Quality & Testing
|
||||||
- ✅ **Test coverage 54%+** - Comprehensive unit tests including all command message builders
|
- ✅ **Test coverage 54%+** - Comprehensive unit tests including all command message builders
|
||||||
|
|||||||
@ -35,7 +35,7 @@ grokkit analyze --model grok-4
|
|||||||
| Flag | Short | Description | Default |
|
| Flag | Short | Description | Default |
|
||||||
|----------|-------|----------------------------|-------------------|
|
|----------|-------|----------------------------|-------------------|
|
||||||
| --dir | | Repository root to analyze | Current directory |
|
| --dir | | Repository root to analyze | Current directory |
|
||||||
| --output | -o | Output file (- for stdout) | analyze.md |
|
| --output | -o | Output file (- for stdout) | .grokkit/analysis.md |
|
||||||
| --yes | -y | Skip confirmation prompt | false |
|
| --yes | -y | Skip confirmation prompt | false |
|
||||||
| --model | -m | Override model | from config |
|
| --model | -m | Override model | from config |
|
||||||
|
|
||||||
|
|||||||
@ -24,12 +24,15 @@ Welcome to the full user documentation for **Grokkit** — a fast, native Go CLI
|
|||||||
- **[📋 PR-Describe](pr-describe.md)** — Generate full PR descriptions.
|
- **[📋 PR-Describe](pr-describe.md)** — Generate full PR descriptions.
|
||||||
- **[📜 History](history.md)** — Summarize recent git history.
|
- **[📜 History](history.md)** — Summarize recent git history.
|
||||||
|
|
||||||
|
### Productivity Commands
|
||||||
|
- **[🔨 Workon](workon.md)** — Automate starting and completing todo items and fixes with AI work plans.
|
||||||
|
|
||||||
### Other Useful Commands
|
### Other Useful Commands
|
||||||
- **[💬 Chat](chat.md)** — Full interactive chat with history and streaming
|
- **[💬 Chat](chat.md)** — Full interactive chat with history and streaming
|
||||||
- **[🤖 Query](query.md)** — One-shot programming-focused queries
|
- **[🤖 Query](query.md)** — One-shot programming-focused queries
|
||||||
- **[🔍 Review](review.md)** — AI code review of the current repo/directory
|
- **[🔍 Review](review.md)** — AI code review of the current repo/directory
|
||||||
- **[🔧 Lint](lint.md)** — Lint + AI-suggested fixes
|
- **[🔧 Lint](lint.md)** — Lint + AI-suggested fixes
|
||||||
- - **[🔎 Analyze](analyze.md)** — Deep educational analysis of any codebase with custom language prompts.
|
- **[🔎 Analyze](analyze.md)** — Deep educational analysis of any codebase with custom language prompts.
|
||||||
- **[📖 Docs](docs.md)** — Generate documentation comments
|
- **[📖 Docs](docs.md)** — Generate documentation comments
|
||||||
- **[Completion](completion.md)** — Generate shell completion scripts
|
- **[Completion](completion.md)** — Generate shell completion scripts
|
||||||
- **[🏷️ Version](version.md)** — Print version information
|
- **[🏷️ Version](version.md)** — Print version information
|
||||||
|
|||||||
109
docs/user-guide/workon.md
Normal file
109
docs/user-guide/workon.md
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
# 🔨 Workon Guide
|
||||||
|
|
||||||
|
The `workon` command automates starting and completing work on todo items and fixes. It integrates with Grokkit's in-repo todo system, Git branching, and Grok AI to keep your workflow uniform and consistent.
|
||||||
|
|
||||||
|
### Why use Workon?
|
||||||
|
|
||||||
|
- **Automated Workflow**: Moves todo items, creates branches, generates work plans, and commits — all in one command.
|
||||||
|
- **AI Work Plans**: Grok generates a concrete, numbered implementation plan tailored to each item.
|
||||||
|
- **Branch Conventions**: Automatically prefixes branches with `feature/` or `fix/` for clean git history.
|
||||||
|
- **Completion Tracking**: Moves items to completed, updates the todo index, and commits the change.
|
||||||
|
- **Optional Integrations**: Logs work start via `cnadd` and opens your configured IDE automatically.
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Start working on a queued todo item
|
||||||
|
grokkit workon my-todo-item
|
||||||
|
|
||||||
|
# Start a fix (creates a new .md in doing/)
|
||||||
|
grokkit workon my-bugfix -f
|
||||||
|
|
||||||
|
# Custom commit message
|
||||||
|
grokkit workon my-feature -M "feat: begin API redesign"
|
||||||
|
|
||||||
|
# Complete a todo item (move to completed/, update index)
|
||||||
|
grokkit workon my-todo-item -c
|
||||||
|
|
||||||
|
# Complete a fix (move to completed/, no index update)
|
||||||
|
grokkit workon my-bugfix -c -f
|
||||||
|
```
|
||||||
|
|
||||||
|
### Options
|
||||||
|
|
||||||
|
| Flag | Short | Description | Default |
|
||||||
|
|-----------|-------|-----------------------------------------------------|------------------------------------------|
|
||||||
|
| --message | -M | Custom commit message | "Start working on \<todo_item_title\>" |
|
||||||
|
| --fix | -f | Treat as fix instead of todo | false |
|
||||||
|
| --complete| -c | Complete the item (cannot be combined with -M) | false |
|
||||||
|
|
||||||
|
### How It Works
|
||||||
|
|
||||||
|
#### Starting Work (default)
|
||||||
|
|
||||||
|
1. **Bootstraps todo structure** — Creates `todo/queued/`, `todo/doing/`, and `todo/completed/` directories if they don't exist.
|
||||||
|
2. **Moves or creates the item**:
|
||||||
|
- **Todo mode** (default): Moves `todo/queued/<title>.md` to `todo/doing/<title>.md`.
|
||||||
|
- **Fix mode** (`-f`): Creates a new `todo/doing/<title>.md` with a skeleton `## Work Plan` heading.
|
||||||
|
3. **Creates a git branch** — `feature/<title>` for todos, `fix/<title>` for fixes. If the branch already exists, checks it out instead.
|
||||||
|
4. **Generates a Work Plan** — Sends the item content to Grok and appends a numbered implementation plan to the markdown file.
|
||||||
|
5. **Commits** — Stages the `todo/` directory and commits with the default or custom message.
|
||||||
|
6. **Optional post-steps** (graceful fallbacks if unavailable):
|
||||||
|
- Logs the start of work via `cnadd` (if installed).
|
||||||
|
- Opens the repository in your configured IDE.
|
||||||
|
|
||||||
|
#### Completing Work (`-c`)
|
||||||
|
|
||||||
|
1. Moves `todo/doing/<title>.md` to `todo/completed/<title>.md`.
|
||||||
|
2. For non-fix items: updates `todo/README.md` — removes the entry from `## Queued` and appends it to `## Completed`.
|
||||||
|
3. Commits the change with the message `Complete work on <title>`.
|
||||||
|
|
||||||
|
### Todo Folder Structure
|
||||||
|
|
||||||
|
Workon assumes and maintains this in-repo ticketing layout:
|
||||||
|
|
||||||
|
```
|
||||||
|
todo/
|
||||||
|
README.md # Index of all items (Queued / Completed sections)
|
||||||
|
queued/ # Items waiting to be worked on
|
||||||
|
my-feature.md
|
||||||
|
another-item.md
|
||||||
|
doing/ # Items currently in progress
|
||||||
|
active-item.md
|
||||||
|
completed/ # Finished items
|
||||||
|
done-item.md
|
||||||
|
```
|
||||||
|
|
||||||
|
If the `todo/` folder doesn't exist, `workon` creates it automatically.
|
||||||
|
|
||||||
|
### Configuration
|
||||||
|
|
||||||
|
The workon command respects two config keys in `~/.config/grokkit/config.toml`:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[commands]
|
||||||
|
workon.model = "grok-4-1-fast-non-reasoning" # Model for work plan generation
|
||||||
|
workon.ide = "code" # IDE command to open repo (e.g. "code", "goland", "nvim")
|
||||||
|
```
|
||||||
|
|
||||||
|
If `workon.ide` is empty or unset, the IDE step is silently skipped. If `cnadd` is not installed, logging is silently skipped.
|
||||||
|
|
||||||
|
### Title Handling
|
||||||
|
|
||||||
|
- Spaces in the title are automatically replaced with dashes.
|
||||||
|
- The title is used as both the markdown filename (without prefix) and the branch name (with `feature/` or `fix/` prefix).
|
||||||
|
|
||||||
|
### Examples
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Full workflow: queue an item, work on it, complete it
|
||||||
|
echo "# Add caching" > todo/queued/add-caching.md
|
||||||
|
grokkit workon add-caching
|
||||||
|
# ... do the work ...
|
||||||
|
grokkit workon add-caching -c
|
||||||
|
|
||||||
|
# Quick fix workflow
|
||||||
|
grokkit workon fix-null-pointer -f
|
||||||
|
# ... fix the bug ...
|
||||||
|
grokkit workon fix-null-pointer -c -f
|
||||||
|
```
|
||||||
Loading…
Reference in New Issue
Block a user