@@ -13,10 +13,10 @@ Use `./bin/taskwing` during development, `taskwing` for testing production behav
1313
1414Two MCP servers are available for testing:
1515
16- | MCP Server | Binary | Use Case |
17- | ------------| --------| ----------|
18- | ` taskwing-mcp ` | Production (` taskwing ` ) | Stable features, production testing |
19- | ` taskwing-local-dev-mcp ` | Development (` ./bin/taskwing ` ) | Testing new/changed features |
16+ | MCP Server | Binary | Use Case |
17+ | ------------------------ | ------------------------------ | ----------------------------------- |
18+ | ` taskwing-mcp ` | Production (` taskwing ` ) | Stable features, production testing |
19+ | ` taskwing-local-dev-mcp ` | Development (` ./bin/taskwing ` ) | Testing new/changed features |
2020
2121### Testing New Features
2222
@@ -29,6 +29,7 @@ When developing new MCP tools or modifying existing ones:
2929### Important: MCP Server Caching
3030
3131The production MCP server (` taskwing-mcp ` ) uses the installed Homebrew binary. Changes to code are ** NOT reflected** until:
32+
3233- You rebuild: ` make build && brew reinstall taskwing ` (if using Homebrew)
3334- Or test with: ` go run . mcp ` directly
3435
@@ -123,6 +124,7 @@ internal/
123124### Database Schema
124125
125126Three main tables in SQLite:
127+
126128- ` features ` : id, name, one_liner, status, tags (JSON), file_path, decision_count
127129- ` decisions ` : id, feature_id, title, summary, reasoning, tradeoffs
128130- ` edges ` : from_feature, to_feature, edge_type (depends_on, extends, replaces, related)
@@ -132,6 +134,7 @@ Graph traversal uses recursive CTEs for GetDependencies/GetDependents.
132134### LLM Integration
133135
134136Uses CloudWeGo Eino for multi-provider support:
137+
135138- OpenAI: Set ` OPENAI_API_KEY ` or ` TASKWING_LLM_APIKEY `
136139- Anthropic: Set ` ANTHROPIC_API_KEY ` and ` TASKWING_LLM_PROVIDER=anthropic `
137140- Gemini: Set ` GOOGLE_API_KEY ` and ` TASKWING_LLM_PROVIDER=gemini `
@@ -154,6 +157,7 @@ Tasks receive architectural context via a **hybrid early+late binding** approach
154157This ensures tasks always have relevant architecture context while maintaining backward compatibility with older tasks.
155158
156159** Key files** :
160+
157161- ` internal/app/plan.go ` - TaskEnricher executes queries at creation time
158162- ` internal/task/presentation.go ` - FormatRichContext() handles display with fallback
159163- ` internal/task/scope_config.go ` - Configurable scope keywords for context matching
@@ -172,6 +176,7 @@ taskwing hook status # View current session state
172176```
173177
174178** Circuit breakers** prevent runaway execution:
179+
175180- ` --max-tasks=5 ` - Stop after N tasks for human review
176181- ` --max-minutes=30 ` - Stop after N minutes
177182
@@ -199,12 +204,15 @@ See `docs/development/AUTONOMOUS_HOOKS.md` for full documentation.
199204We follow [ SemVer] ( https://semver.org/ ) : ` MAJOR.MINOR.PATCH ` — but ** err on the side of NOT bumping** .
200205
201206### Golden Rule: Batch Changes
207+
202208- Do NOT bump version for every small fix
203209- Accumulate related fixes/improvements, then bump ONCE
204210- Multiple bug fixes in one session = ONE patch bump, not multiple
205211
206212### PATCH (x.x.X) - Most changes go here
213+
207214Increment when:
215+
208216- Bug fixes
209217- Internal refactoring (no user-visible change)
210218- Performance improvements
@@ -217,7 +225,9 @@ Increment when:
217225Examples: JSON repair logic, retry improvements, file tracking fixes
218226
219227### MINOR (x.X.0) - User-visible new features only
228+
220229Increment when:
230+
221231- New CLI command users can run
222232- New flag users can pass
223233- New output format users can see
@@ -228,12 +238,15 @@ Increment when:
228238Examples: new ` taskwing goal ` command, new ` --format ` flag, adding Gemini provider
229239
230240### MAJOR (X.0.0) - Breaking changes only
241+
231242Increment when:
243+
232244- Removing commands, flags, or config options
233245- Changing command behavior incompatibly
234246- Changing config/database format without migration
235247
236248### Decision Checklist
249+
2372501 . Is this visible to users running CLI commands? No → probably no bump needed yet
2382512 . Does it break existing workflows? → MAJOR
2392523 . Does it add new user-facing capability? → MINOR
@@ -250,6 +263,7 @@ Increment when:
250263When user says "let's release", "create a release", or similar:
251264
2522651 . ** Analyze changes** since last tag:
266+
253267 ``` bash
254268 git log $( git describe --tags --abbrev=0) ..HEAD --oneline
255269 ```
@@ -267,6 +281,7 @@ When user says "let's release", "create a release", or similar:
2672814 . ** Get user approval** before proceeding
268282
2692835 . ** Execute release** :
284+
270285 ``` bash
271286 # Create annotated tag with release notes (no source file changes needed)
272287 git tag -a vX.Y.Z -m " Release notes here..."
@@ -295,34 +310,41 @@ Interactive script that prompts for version, opens editor for notes, creates tag
295310
296311## TaskWing Integration
297312
298- TaskWing helps me turn a goal into executed tasks with persistent context across AI sessions.
313+ TaskWing helps turn a goal into executed tasks with persistent context across AI sessions.
299314
300315### Supported Models
301316
302317<!-- TASKWING_PROVIDERS_START -->
318+
303319[ ![ OpenAI] ( https://img.shields.io/badge/OpenAI-412991?logo=openai&logoColor=white )] ( https://platform.openai.com/ )
304320[ ![ Anthropic] ( https://img.shields.io/badge/Anthropic-191919?logo=anthropic&logoColor=white )] ( https://www.anthropic.com/ )
305321[ ![ Google Gemini] ( https://img.shields.io/badge/Google_Gemini-4285F4?logo=google&logoColor=white )] ( https://ai.google.dev/ )
306322[ ![ AWS Bedrock] ( https://img.shields.io/badge/AWS_Bedrock-OpenAI--Compatible_Beta-FF9900?logo=amazonaws&logoColor=white )] ( https://docs.aws.amazon.com/bedrock/latest/userguide/inference-chat-completions.html )
307323[ ![ Ollama] ( https://img.shields.io/badge/Ollama-Local-000000?logo=ollama&logoColor=white )] ( https://ollama.com/ )
324+
308325<!-- TASKWING_PROVIDERS_END -->
309326
310327### Works With
311328
312329<!-- TASKWING_TOOLS_START -->
330+
313331[ ![ Claude Code] ( https://img.shields.io/badge/Claude_Code-191919?logo=anthropic&logoColor=white )] ( https://www.anthropic.com/claude-code )
314332[ ![ OpenAI Codex] ( https://img.shields.io/badge/OpenAI_Codex-412991?logo=openai&logoColor=white )] ( https://developers.openai.com/codex )
315333[ ![ Cursor] ( https://img.shields.io/badge/Cursor-111111?logo=cursor&logoColor=white )] ( https://cursor.com/ )
316334[ ![ GitHub Copilot] ( https://img.shields.io/badge/GitHub_Copilot-181717?logo=githubcopilot&logoColor=white )] ( https://github.com/features/copilot )
317335[ ![ Gemini CLI] ( https://img.shields.io/badge/Gemini_CLI-4285F4?logo=google&logoColor=white )] ( https://github.com/google-gemini/gemini-cli )
318336[ ![ OpenCode] ( https://img.shields.io/badge/OpenCode-000000?logo=opencode&logoColor=white )] ( https://opencode.ai/ )
337+
319338<!-- TASKWING_TOOLS_END -->
320339
321340<!-- TASKWING_LEGAL_START -->
341+
322342Brand names and logos are trademarks of their respective owners; usage here indicates compatibility, not endorsement.
343+
323344<!-- TASKWING_LEGAL_END -->
324345
325346### Slash Commands
347+
326348- /tw-ask - Use when you need to search project knowledge (decisions, patterns, constraints).
327349- /tw-remember - Use when you want to persist a decision, pattern, or insight to project memory.
328350- /tw-next - Use when you are ready to start the next approved TaskWing task with full context.
@@ -336,6 +358,7 @@ Brand names and logos are trademarks of their respective owners; usage here indi
336358### Core Commands
337359
338360<!-- TASKWING_COMMANDS_START -->
361+
339362- ` taskwing bootstrap `
340363- ` taskwing goal "<goal>" `
341364- ` taskwing ask "<query>" `
@@ -351,28 +374,31 @@ Brand names and logos are trademarks of their respective owners; usage here indi
351374### MCP Tools (Canonical Contract)
352375
353376<!-- TASKWING_MCP_TOOLS_START -->
354- | Tool | Description |
355- | ------| -------------|
356- | ` ask ` | Search project knowledge (decisions, patterns, constraints) |
357- | ` task ` | Unified task lifecycle (` next ` , ` current ` , ` start ` , ` complete ` ) |
358- | ` plan ` | Plan management (` clarify ` , ` decompose ` , ` expand ` , ` generate ` , ` finalize ` , ` audit ` ) |
359- | ` code ` | Code intelligence (` find ` , ` search ` , ` explain ` , ` callers ` , ` impact ` , ` simplify ` ) |
360- | ` debug ` | Diagnose issues systematically with AI-powered analysis |
361- | ` remember ` | Store knowledge in project memory |
377+
378+ | Tool | Description |
379+ | ---------- | ----------------------------------------------------------------------------------- |
380+ | ` ask ` | Search project knowledge (decisions, patterns, constraints) |
381+ | ` task ` | Unified task lifecycle (` next ` , ` current ` , ` start ` , ` complete ` ) |
382+ | ` plan ` | Plan management (` clarify ` , ` decompose ` , ` expand ` , ` generate ` , ` finalize ` , ` audit ` ) |
383+ | ` code ` | Code intelligence (` find ` , ` search ` , ` explain ` , ` callers ` , ` impact ` , ` simplify ` ) |
384+ | ` debug ` | Diagnose issues systematically with AI-powered analysis |
385+ | ` remember ` | Store knowledge in project memory |
386+
362387<!-- TASKWING_MCP_TOOLS_END -->
363388
364389### Autonomous Task Execution (Hooks)
365390
366391TaskWing integrates with Claude Code's hook system for autonomous plan execution:
367392
368- ~~~ bash
393+ ``` bash
369394taskwing hook session-init # Initialize session tracking (SessionStart hook)
370395taskwing hook continue-check # Check if should continue to next task (Stop hook)
371396taskwing hook session-end # Cleanup session (SessionEnd hook)
372397taskwing hook status # View current session state
373- ~~~
398+ ```
374399
375400Circuit breakers prevent runaway execution:
401+
376402- --max-tasks=5 stops after N tasks for human review.
377403- --max-minutes=30 stops after N minutes.
378404
0 commit comments