Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,15 +79,15 @@ Brand names and logos are trademarks of their respective owners; usage here indi

### Slash Commands

- /tw-ask - Use when you need to search project knowledge (decisions, patterns, constraints).
- /tw-remember - Use when you want to persist a decision, pattern, or insight to project memory.
- /tw-next - Use when you are ready to start the next approved TaskWing task with full context.
- /tw-done - Use when implementation is verified and you are ready to complete the current task.
- /tw-status - Use when you need current task progress and acceptance criteria status.
- /tw-plan - Use when you need to clarify a goal and build an approved execution plan.
- /tw-debug - Use when an issue requires root-cause-first debugging before proposing fixes.
- /tw-explain - Use when you need a deep explanation of a code symbol and its call graph.
- /tw-simplify - Use when you want to simplify code while preserving behavior.
- /taskwing:ask - Use when you need to search project knowledge (decisions, patterns, constraints).
- /taskwing:remember - Use when you want to persist a decision, pattern, or insight to project memory.
- /taskwing:next - Use when you are ready to start the next approved TaskWing task with full context.
- /taskwing:done - Use when implementation is verified and you are ready to complete the current task.
- /taskwing:status - Use when you need current task progress and acceptance criteria status.
- /taskwing:plan - Use when you need to clarify a goal and build an approved execution plan.
- /taskwing:debug - Use when an issue requires root-cause-first debugging before proposing fixes.
- /taskwing:explain - Use when you need a deep explanation of a code symbol and its call graph.
- /taskwing:simplify - Use when you want to simplify code while preserving behavior.

### Core Commands

Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- "TaskWing helps turn a goal into executed tasks with persistent context across AI sessions."
- Updated slash and MCP prompt contracts to unified `task` and `plan` action-based interfaces.
- Purged stale/outdated architecture documentation that no longer matches shipped behavior.
- Reworked `/tw-plan`, `/tw-next`, `/tw-done`, and `/tw-debug` prompts as explicit process contracts with hard gates and refusal fallbacks.
- Reworked `/taskwing:plan`, `/taskwing:next`, `/taskwing:done`, and `/taskwing:debug` prompts as explicit process contracts with hard gates and refusal fallbacks.
- Updated slash command descriptions to trigger-focused "Use when ..." phrasing across assistant command generation.
- Session initialization output now injects TaskWing Workflow Contract v1 for hook-enabled assistants.

Expand Down
22 changes: 11 additions & 11 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Two MCP servers are available for testing:

| MCP Server | Binary | Use Case |
| ------------------------ | ------------------------------ | ----------------------------------- |
| `taskwing-mcp` | Production (`taskwing`) | Stable features, production testing |
| `taskwing` | Production (`taskwing`) | Stable features, production testing |
| `taskwing-local-dev-mcp` | Development (`./bin/taskwing`) | Testing new/changed features |

### Testing New Features
Expand All @@ -28,7 +28,7 @@ When developing new MCP tools or modifying existing ones:

### Important: MCP Server Caching

The production MCP server (`taskwing-mcp`) uses the installed Homebrew binary. Changes to code are **NOT reflected** until:
The production MCP server (`taskwing`) uses the installed Homebrew binary. Changes to code are **NOT reflected** until:

- You rebuild: `make build && brew reinstall taskwing` (if using Homebrew)
- Or test with: `go run . mcp` directly
Expand Down Expand Up @@ -339,15 +339,15 @@ Brand names and logos are trademarks of their respective owners; usage here indi

### Slash Commands

- /tw-ask - Use when you need to search project knowledge (decisions, patterns, constraints).
- /tw-remember - Use when you want to persist a decision, pattern, or insight to project memory.
- /tw-next - Use when you are ready to start the next approved TaskWing task with full context.
- /tw-done - Use when implementation is verified and you are ready to complete the current task.
- /tw-status - Use when you need current task progress and acceptance criteria status.
- /tw-plan - Use when you need to clarify a goal and build an approved execution plan.
- /tw-debug - Use when an issue requires root-cause-first debugging before proposing fixes.
- /tw-explain - Use when you need a deep explanation of a code symbol and its call graph.
- /tw-simplify - Use when you want to simplify code while preserving behavior.
- /taskwing:ask - Use when you need to search project knowledge (decisions, patterns, constraints).
- /taskwing:remember - Use when you want to persist a decision, pattern, or insight to project memory.
- /taskwing:next - Use when you are ready to start the next approved TaskWing task with full context.
- /taskwing:done - Use when implementation is verified and you are ready to complete the current task.
- /taskwing:status - Use when you need current task progress and acceptance criteria status.
- /taskwing:plan - Use when you need to clarify a goal and build an approved execution plan.
- /taskwing:debug - Use when an issue requires root-cause-first debugging before proposing fixes.
- /taskwing:explain - Use when you need a deep explanation of a code symbol and its call graph.
- /taskwing:simplify - Use when you want to simplify code while preserving behavior.

### Core Commands

Expand Down
18 changes: 9 additions & 9 deletions GEMINI.md
Original file line number Diff line number Diff line change
Expand Up @@ -218,15 +218,15 @@ Brand names and logos are trademarks of their respective owners; usage here indi

### Slash Commands

- /tw-ask - Use when you need to search project knowledge (decisions, patterns, constraints).
- /tw-remember - Use when you want to persist a decision, pattern, or insight to project memory.
- /tw-next - Use when you are ready to start the next approved TaskWing task with full context.
- /tw-done - Use when implementation is verified and you are ready to complete the current task.
- /tw-status - Use when you need current task progress and acceptance criteria status.
- /tw-plan - Use when you need to clarify a goal and build an approved execution plan.
- /tw-debug - Use when an issue requires root-cause-first debugging before proposing fixes.
- /tw-explain - Use when you need a deep explanation of a code symbol and its call graph.
- /tw-simplify - Use when you want to simplify code while preserving behavior.
- /taskwing:ask - Use when you need to search project knowledge (decisions, patterns, constraints).
- /taskwing:remember - Use when you want to persist a decision, pattern, or insight to project memory.
- /taskwing:next - Use when you are ready to start the next approved TaskWing task with full context.
- /taskwing:done - Use when implementation is verified and you are ready to complete the current task.
- /taskwing:status - Use when you need current task progress and acceptance criteria status.
- /taskwing:plan - Use when you need to clarify a goal and build an approved execution plan.
- /taskwing:debug - Use when an issue requires root-cause-first debugging before proposing fixes.
- /taskwing:explain - Use when you need a deep explanation of a code symbol and its call graph.
- /taskwing:simplify - Use when you want to simplify code while preserving behavior.

### Core Commands

Expand Down
24 changes: 12 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,9 @@ taskwing goal "Add Stripe billing"
# → Plan decomposed into 5 executable tasks

# 3. Execute with your AI assistant
/tw-next # Get next task with full context
/taskwing:next # Get next task with full context
# ...work...
/tw-done # Mark complete, advance to next
/taskwing:done # Mark complete, advance to next
```

## MCP Tools
Expand All @@ -141,7 +141,7 @@ Add to your AI tool's MCP config:
```json
{
"mcpServers": {
"taskwing-mcp": {
"taskwing": {
"command": "taskwing",
"args": ["mcp"]
}
Expand All @@ -155,15 +155,15 @@ Once connected, use these slash commands from your AI assistant:

| Command | When to use |
|:--------|:------------|
| `/tw-ask` | Search project knowledge (decisions, patterns, constraints) |
| `/tw-remember` | Persist a decision, pattern, or insight to project memory |
| `/tw-next` | Start the next approved task with full context |
| `/tw-done` | Complete the current task after verification |
| `/tw-status` | Check current task progress and acceptance criteria |
| `/tw-plan` | Clarify a goal and build an approved execution plan |
| `/tw-debug` | Root-cause-first debugging before proposing fixes |
| `/tw-explain` | Deep explanation of a code symbol and its call graph |
| `/tw-simplify` | Simplify code while preserving behavior |
| `/taskwing:ask` | Search project knowledge (decisions, patterns, constraints) |
| `/taskwing:remember` | Persist a decision, pattern, or insight to project memory |
| `/taskwing:next` | Start the next approved task with full context |
| `/taskwing:done` | Complete the current task after verification |
| `/taskwing:status` | Check current task progress and acceptance criteria |
| `/taskwing:plan` | Clarify a goal and build an approved execution plan |
| `/taskwing:debug` | Root-cause-first debugging before proposing fixes |
| `/taskwing:explain` | Deep explanation of a code symbol and its call graph |
| `/taskwing:simplify` | Simplify code while preserving behavior |

## Core Commands

Expand Down
6 changes: 3 additions & 3 deletions cmd/doctor.go
Original file line number Diff line number Diff line change
Expand Up @@ -517,12 +517,12 @@ func printNextSteps(checks []DoctorCheck) {
fmt.Println("Next steps:")
if !hasActivePlan {
fmt.Println(" 1. Create and activate plan: taskwing goal \"your development goal\"")
fmt.Println(" 2. Open Claude Code and run: /tw-next")
fmt.Println(" 2. Open Claude Code and run: /taskwing:next")
} else if !hasSession {
fmt.Println(" 1. Open Claude Code (session will auto-initialize)")
fmt.Println(" 2. Run: /tw-next")
fmt.Println(" 2. Run: /taskwing:next")
} else {
fmt.Println(" • In Claude Code, run: /tw-next")
fmt.Println(" • In Claude Code, run: /taskwing:next")
fmt.Println(" • Tasks will auto-continue until circuit breaker triggers")
}
}
2 changes: 1 addition & 1 deletion cmd/goal.go
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ func runGoal(cmd *cobra.Command, args []string) error {

fmt.Printf("Plan created and activated: %s (%d task(s))\n", genRes.PlanID, len(genRes.Tasks))
fmt.Println("Next:")
fmt.Println(" 1. In your AI tool, run /tw-next")
fmt.Println(" 1. In your AI tool, run /taskwing:next")
fmt.Println(" 2. Or use MCP tool task with action=next")
return nil
}
Expand Down
10 changes: 5 additions & 5 deletions cmd/hook.go
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ func runContinueCheck(maxTasks, maxMinutes int) error {
_ = saveHookSession(session)

return outputHookResponse(HookResponse{
Reason: fmt.Sprintf("Sentinel circuit breaker: Critical deviation detected in previous task. %s\n\nReview the changes before proceeding. Use /tw-next to continue after review.", session.LastDeviationSummary),
Reason: fmt.Sprintf("Sentinel circuit breaker: Critical deviation detected in previous task. %s\n\nReview the changes before proceeding. Use /taskwing:next to continue after review.", session.LastDeviationSummary),
})
}

Expand All @@ -232,11 +232,11 @@ func runContinueCheck(maxTasks, maxMinutes int) error {
if err != nil {
if isMissingProjectMemoryError(err) {
return outputHookResponse(HookResponse{
Reason: "No project memory found. Run 'taskwing bootstrap' to initialize project memory, or use /tw-next to continue manually.",
Reason: "No project memory found. Run 'taskwing bootstrap' to initialize project memory, or use /taskwing:next to continue manually.",
})
}
return outputHookResponse(HookResponse{
Reason: fmt.Sprintf("Could not open repository: %v. Use /tw-next to continue manually.", err),
Reason: fmt.Sprintf("Could not open repository: %v. Use /taskwing:next to continue manually.", err),
})
}
defer func() { _ = repo.Close() }()
Expand Down Expand Up @@ -332,7 +332,7 @@ func runContinueCheck(maxTasks, maxMinutes int) error {
blockDecision := "block"
return outputHookResponse(HookResponse{
Decision: &blockDecision,
Reason: fmt.Sprintf("Continue to task %d/%d: %s\n\n%s\n\nIf auto-continue fails, use /tw-next to proceed manually.", session.TasksCompleted+1, len(activePlan.Tasks), nextTask.Title, contextStr),
Reason: fmt.Sprintf("Continue to task %d/%d: %s\n\n%s\n\nIf auto-continue fails, use /taskwing:next to proceed manually.", session.TasksCompleted+1, len(activePlan.Tasks), nextTask.Title, contextStr),
})
}

Expand Down Expand Up @@ -415,7 +415,7 @@ Circuit breakers are configured in .claude/settings.json (defaults: %d tasks, %d

%s

Use /tw-next to start the first task, or it will auto-continue after each task.
Use /taskwing:next to start the first task, or it will auto-continue after each task.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
`, session.SessionID, session.StartedAt.Format("15:04:05"), planInfo, DefaultMaxTasksPerSession, DefaultMaxSessionMinutes, workflowContractBanner)

Expand Down
6 changes: 3 additions & 3 deletions cmd/mcp_detect.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ func detectExistingMCPConfigs() []string {
return found
}

// detectClaudeMCP checks if Claude Code CLI has taskwing-mcp configured.
// detectClaudeMCP checks if Claude Code CLI has taskwing configured.
func detectClaudeMCP() bool {
// First check if claude CLI is available
_, err := exec.LookPath("claude")
Expand All @@ -56,7 +56,7 @@ func detectClaudeMCP() bool {
return mcpcfg.ContainsCanonicalServerName(string(output))
}

// detectGeminiMCP checks if Gemini CLI has taskwing-mcp configured.
// detectGeminiMCP checks if Gemini CLI has taskwing configured.
func detectGeminiMCP() bool {
// First check if gemini CLI is available
_, err := exec.LookPath("gemini")
Expand All @@ -78,7 +78,7 @@ func detectGeminiMCP() bool {
return mcpcfg.ContainsCanonicalServerName(string(output))
}

// detectCodexMCP checks if Codex CLI has taskwing-mcp configured.
// detectCodexMCP checks if Codex CLI has taskwing configured.
func detectCodexMCP() bool {
// First check if codex CLI is available
_, err := exec.LookPath("codex")
Expand Down
2 changes: 1 addition & 1 deletion cmd/mcp_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ func runMCPServer(ctx context.Context) error {

// Create MCP server
impl := &mcpsdk.Implementation{
Name: "taskwing-mcp",
Name: "taskwing",
Version: version,
}

Expand Down
2 changes: 1 addition & 1 deletion cmd/plan.go
Original file line number Diff line number Diff line change
Expand Up @@ -689,5 +689,5 @@ func printPlanView(plan *task.Plan) {

fmt.Println("Next steps:")
fmt.Println(" • taskwing task list --plan " + plan.ID)
fmt.Println(" • /tw-next")
fmt.Println(" • /taskwing:next")
}
6 changes: 3 additions & 3 deletions cmd/slash.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ This command is called dynamically by AI assistant slash commands
to ensure the content always matches the installed CLI version.

Example:
taskwing slash next # Output /tw-next content
taskwing slash done # Output /tw-done content
taskwing slash plan # Output /tw-plan content`,
taskwing slash next # Output /taskwing:next content
taskwing slash done # Output /taskwing:done content
taskwing slash plan # Output /taskwing:plan content`,
RunE: func(cmd *cobra.Command, args []string) error {
if len(args) == 0 {
return cmd.Help()
Expand Down
Loading
Loading