task-o-matic 0.0.9 → 0.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/display/progress.d.ts +1 -1
- package/dist/cli/display/progress.d.ts.map +1 -1
- package/dist/cli/display/progress.js +16 -13
- package/dist/commands/benchmark.js +70 -2
- package/dist/commands/init.js +48 -27
- package/dist/commands/prd.d.ts.map +1 -1
- package/dist/commands/prd.js +201 -0
- package/dist/commands/tasks/execute-loop.d.ts.map +1 -1
- package/dist/commands/tasks/execute-loop.js +10 -0
- package/dist/commands/tasks/execute.d.ts.map +1 -1
- package/dist/commands/tasks/execute.js +4 -0
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +56 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/lib/ai-service/ai-operations.d.ts +13 -10
- package/dist/lib/ai-service/ai-operations.d.ts.map +1 -1
- package/dist/lib/ai-service/ai-operations.js +35 -995
- package/dist/lib/ai-service/base-operations.d.ts +13 -0
- package/dist/lib/ai-service/base-operations.d.ts.map +1 -0
- package/dist/lib/ai-service/base-operations.js +79 -0
- package/dist/lib/ai-service/documentation-operations.d.ts +18 -0
- package/dist/lib/ai-service/documentation-operations.d.ts.map +1 -0
- package/dist/lib/ai-service/documentation-operations.js +291 -0
- package/dist/lib/ai-service/prd-operations.d.ts +14 -0
- package/dist/lib/ai-service/prd-operations.d.ts.map +1 -0
- package/dist/lib/ai-service/prd-operations.js +405 -0
- package/dist/lib/ai-service/task-operations.d.ts +12 -0
- package/dist/lib/ai-service/task-operations.d.ts.map +1 -0
- package/dist/lib/ai-service/task-operations.js +225 -0
- package/dist/lib/benchmark/registry.d.ts.map +1 -1
- package/dist/lib/benchmark/registry.js +127 -0
- package/dist/lib/better-t-stack-cli.d.ts +4 -1
- package/dist/lib/better-t-stack-cli.d.ts.map +1 -1
- package/dist/lib/better-t-stack-cli.js +126 -5
- package/dist/lib/config.d.ts +13 -6
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +90 -48
- package/dist/lib/context-builder.d.ts +13 -1
- package/dist/lib/context-builder.d.ts.map +1 -1
- package/dist/lib/context-builder.js +68 -36
- package/dist/lib/executors/claude-code-executor.d.ts +5 -2
- package/dist/lib/executors/claude-code-executor.d.ts.map +1 -1
- package/dist/lib/executors/claude-code-executor.js +30 -3
- package/dist/lib/executors/codex-executor.d.ts +5 -2
- package/dist/lib/executors/codex-executor.d.ts.map +1 -1
- package/dist/lib/executors/codex-executor.js +30 -3
- package/dist/lib/executors/executor-factory.d.ts +2 -2
- package/dist/lib/executors/executor-factory.d.ts.map +1 -1
- package/dist/lib/executors/executor-factory.js +5 -5
- package/dist/lib/executors/gemini-executor.d.ts +5 -2
- package/dist/lib/executors/gemini-executor.d.ts.map +1 -1
- package/dist/lib/executors/gemini-executor.js +30 -3
- package/dist/lib/executors/opencode-executor.d.ts +5 -2
- package/dist/lib/executors/opencode-executor.d.ts.map +1 -1
- package/dist/lib/executors/opencode-executor.js +30 -7
- package/dist/lib/index.d.ts +5 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +7 -1
- package/dist/lib/prompt-builder.d.ts.map +1 -1
- package/dist/lib/prompt-builder.js +1 -0
- package/dist/lib/storage/file-system.d.ts +3 -7
- package/dist/lib/storage/file-system.d.ts.map +1 -1
- package/dist/lib/storage/file-system.js +50 -230
- package/dist/lib/storage/storage-callbacks.d.ts +17 -0
- package/dist/lib/storage/storage-callbacks.d.ts.map +1 -0
- package/dist/lib/storage/storage-callbacks.js +94 -0
- package/dist/lib/task-execution.d.ts.map +1 -1
- package/dist/lib/task-execution.js +16 -9
- package/dist/lib/task-loop-execution.d.ts.map +1 -1
- package/dist/lib/task-loop-execution.js +207 -8
- package/dist/prompts/index.d.ts +2 -0
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +2 -0
- package/dist/prompts/prd-combination.d.ts +2 -0
- package/dist/prompts/prd-combination.d.ts.map +1 -0
- package/dist/prompts/prd-combination.js +35 -0
- package/dist/prompts/prd-generation.d.ts +2 -0
- package/dist/prompts/prd-generation.d.ts.map +1 -0
- package/dist/prompts/prd-generation.js +49 -0
- package/dist/services/prd.d.ts +43 -0
- package/dist/services/prd.d.ts.map +1 -1
- package/dist/services/prd.js +121 -0
- package/dist/services/workflow-ai-assistant.d.ts.map +1 -1
- package/dist/services/workflow-ai-assistant.js +1 -40
- package/dist/services/workflow.d.ts +10 -0
- package/dist/services/workflow.d.ts.map +1 -1
- package/dist/services/workflow.js +118 -40
- package/dist/test/hooks.test.js +19 -10
- package/dist/test/integration/callbacks.test.d.ts +2 -0
- package/dist/test/integration/callbacks.test.d.ts.map +1 -0
- package/dist/test/integration/callbacks.test.js +64 -0
- package/dist/test/task-loop-git.test.js +33 -0
- package/dist/test/validation.test.d.ts +2 -0
- package/dist/test/validation.test.d.ts.map +1 -0
- package/dist/test/validation.test.js +22 -0
- package/dist/types/callbacks.d.ts +9 -6
- package/dist/types/callbacks.d.ts.map +1 -1
- package/dist/types/index.d.ts +17 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/workflow-options.d.ts +7 -0
- package/dist/types/workflow-options.d.ts.map +1 -1
- package/dist/utils/ai-service-factory.d.ts +15 -1
- package/dist/utils/ai-service-factory.d.ts.map +1 -1
- package/dist/utils/ai-service-factory.js +29 -1
- package/dist/utils/streaming-options.d.ts +1 -1
- package/dist/utils/streaming-options.d.ts.map +1 -1
- package/dist/utils/streaming-options.js +31 -18
- package/docs/agents/cli.md +191 -0
- package/package.json +3 -2
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initializeServices = initializeServices;
|
|
3
4
|
exports.getAIOperations = getAIOperations;
|
|
4
5
|
exports.getModelProvider = getModelProvider;
|
|
5
6
|
exports.getStorage = getStorage;
|
|
@@ -15,6 +16,30 @@ let aiOperations = null;
|
|
|
15
16
|
let modelProvider = null;
|
|
16
17
|
let storage = null;
|
|
17
18
|
let contextBuilder = null;
|
|
19
|
+
/**
|
|
20
|
+
* Initialize services with optional custom callbacks.
|
|
21
|
+
* This is the entry point for web applications or custom environments.
|
|
22
|
+
* It also ensures configuration is loaded asynchronously.
|
|
23
|
+
*/
|
|
24
|
+
async function initializeServices(options = {}) {
|
|
25
|
+
if (options.workingDirectory) {
|
|
26
|
+
config_1.configManager.setWorkingDirectory(options.workingDirectory);
|
|
27
|
+
}
|
|
28
|
+
if (options.configCallbacks) {
|
|
29
|
+
config_1.configManager.setCallbacks(options.configCallbacks);
|
|
30
|
+
}
|
|
31
|
+
// Ensure config is loaded (async)
|
|
32
|
+
await config_1.configManager.load();
|
|
33
|
+
// Initialize storage
|
|
34
|
+
// If storageCallbacks provided, use them.
|
|
35
|
+
// If not, FileSystemStorage will use default callbacks (which use configManager.getTaskOMaticDir)
|
|
36
|
+
storage = new file_system_1.FileSystemStorage(options.storageCallbacks);
|
|
37
|
+
// Initialize context builder
|
|
38
|
+
contextBuilder = new context_builder_1.ContextBuilder(storage, options.contextCallbacks);
|
|
39
|
+
// Reset other services to ensure they use fresh dependencies if needed
|
|
40
|
+
aiOperations = null;
|
|
41
|
+
modelProvider = null;
|
|
42
|
+
}
|
|
18
43
|
function getAIOperations() {
|
|
19
44
|
if (!aiOperations) {
|
|
20
45
|
aiOperations = new ai_operations_1.AIOperations();
|
|
@@ -29,10 +54,13 @@ function getModelProvider() {
|
|
|
29
54
|
}
|
|
30
55
|
function getStorage() {
|
|
31
56
|
if (!storage) {
|
|
57
|
+
// Default behavior for CLI (if initializeServices wasn't called)
|
|
32
58
|
// Ensure we're in a task-o-matic project before creating storage
|
|
59
|
+
// We use configManager (sync path) to check existence.
|
|
33
60
|
const taskOMaticDir = config_1.configManager.getTaskOMaticDir();
|
|
61
|
+
// Note: This check relies on FS. Web apps should call initializeServices first.
|
|
34
62
|
if (!(0, fs_1.existsSync)(taskOMaticDir)) {
|
|
35
|
-
throw new Error(`Not a task-o-matic project. Run 'task-o-matic init
|
|
63
|
+
throw new Error(`Not a task-o-matic project. Run 'task-o-matic init' first.`);
|
|
36
64
|
}
|
|
37
65
|
storage = new file_system_1.FileSystemStorage();
|
|
38
66
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StreamingOptions } from
|
|
1
|
+
import { StreamingOptions } from "../types";
|
|
2
2
|
export declare function createStreamingOptions(enabled?: boolean, operation?: string): StreamingOptions | undefined;
|
|
3
3
|
export declare function createStreamingOptionsWithCustomHandlers(enabled?: boolean, customHandlers?: {
|
|
4
4
|
onChunk?: (chunk: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streaming-options.d.ts","sourceRoot":"","sources":["../../src/utils/streaming-options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,wBAAgB,sBAAsB,CACpC,OAAO,GAAE,OAAe,EACxB,SAAS,GAAE,MAAoB,GAC9B,gBAAgB,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"streaming-options.d.ts","sourceRoot":"","sources":["../../src/utils/streaming-options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,wBAAgB,sBAAsB,CACpC,OAAO,GAAE,OAAe,EACxB,SAAS,GAAE,MAAoB,GAC9B,gBAAgB,GAAG,SAAS,CAqC9B;AAED,wBAAgB,wCAAwC,CACtD,OAAO,GAAE,OAAe,EACxB,cAAc,CAAC,EAAE;IACf,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACvD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC,GACA,gBAAgB,GAAG,SAAS,CAwC9B"}
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.createStreamingOptions = createStreamingOptions;
|
|
7
7
|
exports.createStreamingOptionsWithCustomHandlers = createStreamingOptionsWithCustomHandlers;
|
|
8
8
|
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
function createStreamingOptions(enabled = false, operation =
|
|
9
|
+
function createStreamingOptions(enabled = false, operation = "operation") {
|
|
10
10
|
if (!enabled) {
|
|
11
11
|
return undefined;
|
|
12
12
|
}
|
|
@@ -17,7 +17,9 @@ function createStreamingOptions(enabled = false, operation = 'operation') {
|
|
|
17
17
|
process.stdout.write(chunk);
|
|
18
18
|
},
|
|
19
19
|
onFinish: ({ finishReason }) => {
|
|
20
|
-
if (finishReason &&
|
|
20
|
+
if (finishReason &&
|
|
21
|
+
finishReason !== "stop" &&
|
|
22
|
+
finishReason !== "tool-calls") {
|
|
21
23
|
console.log(chalk_1.default.yellow(`\n⚠️ ${operation} finished: ${finishReason}`));
|
|
22
24
|
}
|
|
23
25
|
else {
|
|
@@ -25,8 +27,11 @@ function createStreamingOptions(enabled = false, operation = 'operation') {
|
|
|
25
27
|
}
|
|
26
28
|
},
|
|
27
29
|
onError: (error) => {
|
|
28
|
-
console.log(chalk_1.default.red(`\n❌ ${operation} error: ${error instanceof Error ? error.message :
|
|
29
|
-
}
|
|
30
|
+
console.log(chalk_1.default.red(`\n❌ ${operation} error: ${error instanceof Error ? error.message : "Unknown error"}`));
|
|
31
|
+
},
|
|
32
|
+
onReasoning: (text) => {
|
|
33
|
+
process.stdout.write(chalk_1.default.magenta(text));
|
|
34
|
+
},
|
|
30
35
|
};
|
|
31
36
|
}
|
|
32
37
|
function createStreamingOptionsWithCustomHandlers(enabled = false, customHandlers) {
|
|
@@ -35,19 +40,27 @@ function createStreamingOptionsWithCustomHandlers(enabled = false, customHandler
|
|
|
35
40
|
}
|
|
36
41
|
return {
|
|
37
42
|
enabled: true,
|
|
38
|
-
onChunk: customHandlers?.onChunk ||
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
43
|
+
onChunk: customHandlers?.onChunk ||
|
|
44
|
+
((chunk) => {
|
|
45
|
+
process.stdout.write(chunk);
|
|
46
|
+
}),
|
|
47
|
+
onFinish: customHandlers?.onFinish ||
|
|
48
|
+
(({ finishReason }) => {
|
|
49
|
+
if (finishReason &&
|
|
50
|
+
finishReason !== "stop" &&
|
|
51
|
+
finishReason !== "tool-calls") {
|
|
52
|
+
console.log(chalk_1.default.yellow(`\n⚠️ Operation finished: ${finishReason}`));
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
console.log(chalk_1.default.green("\n✓ Operation complete"));
|
|
56
|
+
}
|
|
57
|
+
}),
|
|
58
|
+
onError: customHandlers?.onError ||
|
|
59
|
+
((error) => {
|
|
60
|
+
console.log(chalk_1.default.red(`\n❌ Operation error: ${error instanceof Error ? error.message : "Unknown error"}`));
|
|
61
|
+
}),
|
|
62
|
+
onReasoning: (text) => {
|
|
63
|
+
process.stdout.write(chalk_1.default.magenta(text));
|
|
64
|
+
},
|
|
52
65
|
};
|
|
53
66
|
}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
# Task-O-Matic CLI Agent Guide
|
|
2
|
+
|
|
3
|
+
You are an AI agent with access to the Task-O-Matic CLI tool for managing development tasks. This guide provides comprehensive usage patterns and command reference for autonomous development workflows.
|
|
4
|
+
|
|
5
|
+
## Core Commands Reference
|
|
6
|
+
|
|
7
|
+
### Task Management
|
|
8
|
+
```bash
|
|
9
|
+
# Get next task to work on (prioritizes subtasks over parent tasks)
|
|
10
|
+
task-o-matic tasks get-next [--status todo] [--tag <tag>] [--effort <small|medium|large>]
|
|
11
|
+
|
|
12
|
+
# Show detailed task information
|
|
13
|
+
task-o-matic tasks show --id <task-id>
|
|
14
|
+
|
|
15
|
+
# Update task status
|
|
16
|
+
task-o-matic tasks status --id <task-id> --status <todo|in-progress|completed>
|
|
17
|
+
|
|
18
|
+
# List all tasks with optional filtering
|
|
19
|
+
task-o-matic tasks list [--status <status>] [--tag <tag>]
|
|
20
|
+
|
|
21
|
+
# Create new tasks
|
|
22
|
+
task-o-matic tasks create --title "Task Title" [--content "Description"] [--effort <small|medium|large>] [--parent-id <id>] [--ai-enhance] [--stream]
|
|
23
|
+
|
|
24
|
+
# Split tasks into subtasks using AI
|
|
25
|
+
task-o-matic tasks split --task-id <id> [--tools] [--stream] [--ai-provider <provider>]
|
|
26
|
+
|
|
27
|
+
# Update task details
|
|
28
|
+
task-o-matic tasks update --id <task-id> [--title "New Title"] [--description "New Description"] [--status <status>] [--effort <effort>]
|
|
29
|
+
|
|
30
|
+
# Delete tasks
|
|
31
|
+
task-o-matic tasks delete --id <task-id> --force [--cascade]
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Planning & Documentation
|
|
35
|
+
```bash
|
|
36
|
+
# Generate AI implementation plans for tasks
|
|
37
|
+
task-o-matic tasks plan --id <task-id> [--stream] [--ai-provider <provider>]
|
|
38
|
+
|
|
39
|
+
# View existing implementation plans
|
|
40
|
+
task-o-matic tasks get-plan --id <task-id>
|
|
41
|
+
|
|
42
|
+
# Set manual implementation plan
|
|
43
|
+
task-o-matic tasks set-plan --id <task-id> --plan "Plan text" [or --plan-file <path>]
|
|
44
|
+
|
|
45
|
+
# Generate AI task documentation with project context
|
|
46
|
+
task-o-matic tasks document --task-id <task-id> [--force] [--stream] [--ai-provider <provider>]
|
|
47
|
+
|
|
48
|
+
# Get existing task documentation
|
|
49
|
+
task-o-matic tasks get-documentation --id <task-id>
|
|
50
|
+
|
|
51
|
+
# Add documentation from external file
|
|
52
|
+
task-o-matic tasks add-documentation --id <task-id> --doc-file <path> [--overwrite]
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### PRD Management
|
|
56
|
+
```bash
|
|
57
|
+
# Parse PRD into structured tasks
|
|
58
|
+
task-o-matic prd parse --file <prd-file> [--tools] [--stream] [--ai-provider <provider>]
|
|
59
|
+
|
|
60
|
+
# Improve PRD based on feedback
|
|
61
|
+
task-o-matic prd rework --file <prd-file> --feedback "Feedback text" [--tools] [--output <output-file>] [--stream]
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Project Initialization
|
|
65
|
+
```bash
|
|
66
|
+
# Initialize task-o-matic in current directory
|
|
67
|
+
task-o-matic init init
|
|
68
|
+
|
|
69
|
+
# Configure AI providers
|
|
70
|
+
task-o-matic config set --provider <openai|anthropic|openrouter> --model <model-name> [--api-key <key>]
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Autonomous Development Workflow
|
|
74
|
+
|
|
75
|
+
### Primary Work Loop
|
|
76
|
+
```bash
|
|
77
|
+
# 1. Get next available task (subtasks have priority)
|
|
78
|
+
TASK_ID=$(task-o-matic tasks get-next --status todo | grep -oE '[a-f0-9-]{36}')
|
|
79
|
+
|
|
80
|
+
# 2. Show task details and mark as in-progress
|
|
81
|
+
task-o-matic tasks show --id $TASK_ID
|
|
82
|
+
task-o-matic tasks status --id $TASK_ID --status in-progress
|
|
83
|
+
|
|
84
|
+
# 3. Generate implementation plan with project context
|
|
85
|
+
task-o-matic tasks plan --id $TASK_ID --stream
|
|
86
|
+
|
|
87
|
+
# 4. Check for existing documentation or create it
|
|
88
|
+
task-o-matic tasks get-documentation --id $TASK_ID || \
|
|
89
|
+
task-o-matic tasks document --task-id $TASK_ID --stream
|
|
90
|
+
|
|
91
|
+
# 5. Execute implementation (use your development tools)
|
|
92
|
+
# - Read project files using filesystem access
|
|
93
|
+
# - Implement code changes
|
|
94
|
+
# - Add tests if needed
|
|
95
|
+
|
|
96
|
+
# 6. Validate implementation
|
|
97
|
+
npm run check-types # Fix any type errors
|
|
98
|
+
npm run build # Fix any build errors
|
|
99
|
+
npm test # Fix any test failures
|
|
100
|
+
|
|
101
|
+
# 7. Commit changes with descriptive message
|
|
102
|
+
git add .
|
|
103
|
+
git commit -m "$(task-o-matic tasks show --id $TASK_ID | grep Title | cut -d: -f2-) - completed"
|
|
104
|
+
|
|
105
|
+
# 8. Mark task as completed
|
|
106
|
+
task-o-matic tasks status --id $TASK_ID --status completed
|
|
107
|
+
|
|
108
|
+
# 9. Repeat - get next task
|
|
109
|
+
task-o-matic tasks get-next
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Advanced Features
|
|
113
|
+
|
|
114
|
+
### AI-Enhanced Operations
|
|
115
|
+
Use `--tools` flag to enable filesystem tools for AI operations:
|
|
116
|
+
```bash
|
|
117
|
+
# Parse PRD with project context awareness
|
|
118
|
+
task-o-matic prd parse --file prd.md --tools --stream
|
|
119
|
+
|
|
120
|
+
# Split tasks with understanding of current codebase
|
|
121
|
+
task-o-matic tasks split --task-id <id> --tools --stream
|
|
122
|
+
|
|
123
|
+
# Rework PRD considering current implementation
|
|
124
|
+
task-o-matic prd rework --file prd.md --feedback "Add auth" --tools --stream
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Getting Help
|
|
128
|
+
```bash
|
|
129
|
+
# Get help for main commands
|
|
130
|
+
task-o-matic --help
|
|
131
|
+
|
|
132
|
+
# Get help for specific command groups
|
|
133
|
+
task-o-matic tasks --help
|
|
134
|
+
task-o-matic prd --help
|
|
135
|
+
task-o-matic config --help
|
|
136
|
+
|
|
137
|
+
# Get help for specific commands
|
|
138
|
+
task-o-matic tasks create --help
|
|
139
|
+
task-o-matic tasks split --help
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### AI Provider Configuration
|
|
143
|
+
```bash
|
|
144
|
+
# Configure different AI providers
|
|
145
|
+
task-o-matic config set --provider openai --model gpt-4 --api-key <your-key>
|
|
146
|
+
task-o-matic config set --provider anthropic --model claude-3-sonnet-20240229 --api-key <your-key>
|
|
147
|
+
task-o-matic config set --provider openrouter --model anthropic/claude-3.5-sonnet --api-key <your-key>
|
|
148
|
+
|
|
149
|
+
# Use different providers per command
|
|
150
|
+
task-o-matic tasks plan --id <task-id> --ai-provider anthropic --ai-model claude-3-sonnet-20240229
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Best Practices for AI Agents
|
|
154
|
+
|
|
155
|
+
### Task Prioritization
|
|
156
|
+
1. **Always work on subtasks first** - `get-next` automatically prioritizes them
|
|
157
|
+
2. **Mark parent tasks as in-progress** when starting their subtasks
|
|
158
|
+
3. **Complete subtasks before marking parent as complete**
|
|
159
|
+
|
|
160
|
+
### Quality Assurance
|
|
161
|
+
1. **Always validate before completion**: type-check → build → test → commit
|
|
162
|
+
2. **Use streaming output** (`--stream`) to monitor AI operations in real-time
|
|
163
|
+
3. **Enable filesystem tools** (`--tools`) when context awareness is beneficial
|
|
164
|
+
|
|
165
|
+
### Error Recovery
|
|
166
|
+
- **Type errors**: Fix immediately, re-run `npm run check-types`
|
|
167
|
+
- **Build errors**: Fix immediately, re-run `npm run build`
|
|
168
|
+
- **Test failures**: Fix immediately, re-run `npm test`
|
|
169
|
+
- **Task confusion**: Use `task-o-matic tasks show --id <id>` for clarification
|
|
170
|
+
|
|
171
|
+
### Continuous Development
|
|
172
|
+
- **Never stop the loop**: Immediately get next task after completing current one
|
|
173
|
+
- **Maintain clean git history**: One commit per completed task
|
|
174
|
+
- **Use descriptive commit messages**: Include task title and completion status
|
|
175
|
+
- **Leverage AI enhancements**: Use `--ai-enhance`, `--tools`, and `--stream` flags appropriately
|
|
176
|
+
|
|
177
|
+
## Command Discovery
|
|
178
|
+
When you need to discover available commands or options:
|
|
179
|
+
```bash
|
|
180
|
+
# Explore available commands
|
|
181
|
+
task-o-matic --help
|
|
182
|
+
|
|
183
|
+
# Explore command groups
|
|
184
|
+
task-o-matic tasks --help
|
|
185
|
+
task-o-matic prd --help
|
|
186
|
+
|
|
187
|
+
# Get detailed help for specific commands
|
|
188
|
+
task-o-matic tasks [command] --help
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
This comprehensive reference enables autonomous AI agents to effectively use Task-O-Matic CLI for continuous development workflows with proper task management, planning, documentation, and quality assurance.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "task-o-matic",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.11",
|
|
4
4
|
"description": "AI-powered task management CLI",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"task-management",
|
|
@@ -39,7 +39,8 @@
|
|
|
39
39
|
"files": [
|
|
40
40
|
"dist",
|
|
41
41
|
"README.md",
|
|
42
|
-
"LICENSE"
|
|
42
|
+
"LICENSE",
|
|
43
|
+
"docs/agents/cli.md"
|
|
43
44
|
],
|
|
44
45
|
"scripts": {
|
|
45
46
|
"clean": "rm -rf dist tsconfig.tsbuildinfo",
|