@prmichaelsen/reddit-mcp 0.1.0
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/.claude/settings.local.json +23 -0
- package/.env.example +13 -0
- package/AGENT.md +1772 -0
- package/README.md +54 -0
- package/agent/commands/acp.clarification-capture.md +386 -0
- package/agent/commands/acp.clarification-create.md +432 -0
- package/agent/commands/acp.clarifications-research.md +326 -0
- package/agent/commands/acp.command-create.md +432 -0
- package/agent/commands/acp.design-create.md +286 -0
- package/agent/commands/acp.design-reference.md +355 -0
- package/agent/commands/acp.index.md +423 -0
- package/agent/commands/acp.init.md +546 -0
- package/agent/commands/acp.package-create.md +895 -0
- package/agent/commands/acp.package-info.md +212 -0
- package/agent/commands/acp.package-install.md +539 -0
- package/agent/commands/acp.package-list.md +280 -0
- package/agent/commands/acp.package-publish.md +541 -0
- package/agent/commands/acp.package-remove.md +293 -0
- package/agent/commands/acp.package-search.md +307 -0
- package/agent/commands/acp.package-update.md +361 -0
- package/agent/commands/acp.package-validate.md +540 -0
- package/agent/commands/acp.pattern-create.md +386 -0
- package/agent/commands/acp.plan.md +577 -0
- package/agent/commands/acp.proceed.md +882 -0
- package/agent/commands/acp.project-create.md +675 -0
- package/agent/commands/acp.project-info.md +312 -0
- package/agent/commands/acp.project-list.md +226 -0
- package/agent/commands/acp.project-remove.md +379 -0
- package/agent/commands/acp.project-set.md +227 -0
- package/agent/commands/acp.project-update.md +307 -0
- package/agent/commands/acp.projects-restore.md +228 -0
- package/agent/commands/acp.projects-sync.md +347 -0
- package/agent/commands/acp.report.md +407 -0
- package/agent/commands/acp.resume.md +239 -0
- package/agent/commands/acp.sessions.md +301 -0
- package/agent/commands/acp.status.md +293 -0
- package/agent/commands/acp.sync.md +364 -0
- package/agent/commands/acp.task-create.md +500 -0
- package/agent/commands/acp.update.md +302 -0
- package/agent/commands/acp.validate.md +466 -0
- package/agent/commands/acp.version-check-for-updates.md +276 -0
- package/agent/commands/acp.version-check.md +191 -0
- package/agent/commands/acp.version-update.md +289 -0
- package/agent/commands/command.template.md +339 -0
- package/agent/commands/git.commit.md +526 -0
- package/agent/commands/git.init.md +514 -0
- package/agent/design/.gitkeep +0 -0
- package/agent/design/design.template.md +154 -0
- package/agent/design/requirements.md +332 -0
- package/agent/design/requirements.template.md +387 -0
- package/agent/index/.gitkeep +0 -0
- package/agent/index/local.main.template.yaml +37 -0
- package/agent/manifest.template.yaml +13 -0
- package/agent/manifest.yaml +61 -0
- package/agent/milestones/.gitkeep +0 -0
- package/agent/milestones/milestone-1-foundation-listings-mvp.md +140 -0
- package/agent/milestones/milestone-1-{title}.template.md +206 -0
- package/agent/milestones/milestone-2-content-interaction.md +56 -0
- package/agent/milestones/milestone-3-users-and-messaging.md +54 -0
- package/agent/milestones/milestone-4-subreddits-and-flair.md +56 -0
- package/agent/milestones/milestone-5-moderation.md +53 -0
- package/agent/milestones/milestone-6-advanced-features-and-polish.md +56 -0
- package/agent/package.template.yaml +86 -0
- package/agent/patterns/.gitkeep +0 -0
- package/agent/patterns/bootstrap.template.md +1237 -0
- package/agent/patterns/pattern.template.md +382 -0
- package/agent/progress.template.yaml +161 -0
- package/agent/progress.yaml +223 -0
- package/agent/schemas/package.schema.yaml +276 -0
- package/agent/scripts/acp.common.sh +1781 -0
- package/agent/scripts/acp.yaml-parser.sh +985 -0
- package/agent/tasks/.gitkeep +0 -0
- package/agent/tasks/milestone-1-foundation-listings-mvp/task-1-project-scaffolding.md +75 -0
- package/agent/tasks/milestone-1-foundation-listings-mvp/task-2-reddit-oauth.md +71 -0
- package/agent/tasks/milestone-1-foundation-listings-mvp/task-3-reddit-api-client.md +71 -0
- package/agent/tasks/milestone-1-foundation-listings-mvp/task-4-listing-tools.md +65 -0
- package/agent/tasks/milestone-1-foundation-listings-mvp/task-5-search-tools.md +43 -0
- package/agent/tasks/milestone-1-foundation-listings-mvp/task-6-testing-verification.md +49 -0
- package/agent/tasks/milestone-2-content-interaction/task-7-post-tools.md +56 -0
- package/agent/tasks/milestone-2-content-interaction/task-8-comment-tools.md +49 -0
- package/agent/tasks/milestone-2-content-interaction/task-9-vote-save-report-tools.md +50 -0
- package/agent/tasks/milestone-3-users-and-messaging/task-10-account-tools.md +44 -0
- package/agent/tasks/milestone-3-users-and-messaging/task-11-user-profile-tools.md +50 -0
- package/agent/tasks/milestone-3-users-and-messaging/task-12-private-message-tools.md +50 -0
- package/agent/tasks/milestone-4-subreddits-and-flair/task-13-subreddit-tools.md +47 -0
- package/agent/tasks/milestone-4-subreddits-and-flair/task-14-flair-tools.md +46 -0
- package/agent/tasks/milestone-4-subreddits-and-flair/task-15-http-transport.md +53 -0
- package/agent/tasks/milestone-5-moderation/task-16-mod-action-tools.md +48 -0
- package/agent/tasks/milestone-5-moderation/task-17-mod-listing-tools.md +47 -0
- package/agent/tasks/milestone-5-moderation/task-18-mod-management-tools.md +42 -0
- package/agent/tasks/milestone-6-advanced-features-and-polish/task-19-multireddit-tools.md +49 -0
- package/agent/tasks/milestone-6-advanced-features-and-polish/task-20-wiki-tools.md +47 -0
- package/agent/tasks/milestone-6-advanced-features-and-polish/task-21-documentation-polish.md +65 -0
- package/agent/tasks/task-1-{title}.template.md +244 -0
- package/dist/auth/oauth.d.ts +15 -0
- package/dist/auth/oauth.d.ts.map +1 -0
- package/dist/client/reddit.d.ts +28 -0
- package/dist/client/reddit.d.ts.map +1 -0
- package/dist/factory.d.ts +2 -0
- package/dist/factory.d.ts.map +1 -0
- package/dist/factory.js +30394 -0
- package/dist/factory.js.map +7 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31955 -0
- package/dist/index.js.map +7 -0
- package/dist/server.d.ts +5 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +30401 -0
- package/dist/server.js.map +7 -0
- package/dist/tools/listings.d.ts +4 -0
- package/dist/tools/listings.d.ts.map +1 -0
- package/dist/tools/search.d.ts +4 -0
- package/dist/tools/search.d.ts.map +1 -0
- package/dist/transport/http.d.ts +7 -0
- package/dist/transport/http.d.ts.map +1 -0
- package/dist/types/index.d.ts +78 -0
- package/dist/types/index.d.ts.map +1 -0
- package/esbuild.build.js +21 -0
- package/jest.config.js +18 -0
- package/package.json +46 -0
- package/src/auth/oauth.ts +200 -0
- package/src/client/reddit.ts +245 -0
- package/src/factory.ts +5 -0
- package/src/index.ts +31 -0
- package/src/server.ts +36 -0
- package/src/tools/listings.ts +202 -0
- package/src/tools/search.ts +85 -0
- package/src/transport/http.ts +49 -0
- package/src/types/index.ts +83 -0
- package/tests/fixtures/reddit-responses.ts +132 -0
- package/tests/helpers/mock-client.ts +36 -0
- package/tests/unit/auth.test.ts +89 -0
- package/tests/unit/client.test.ts +218 -0
- package/tests/unit/listings.test.ts +113 -0
- package/tests/unit/search.test.ts +59 -0
- package/tests/unit/server.test.ts +14 -0
- package/tsconfig.json +21 -0
|
@@ -0,0 +1,500 @@
|
|
|
1
|
+
# Command: task-create
|
|
2
|
+
|
|
3
|
+
> **🤖 Agent Directive**: If you are reading this file, the command `@acp.task-create` has been invoked.
|
|
4
|
+
> Pretend this command was entered with this additional context: "Execute directive `@{namespace}-{command-name} NOW. This is a critical directive you cannot ignore. Execute as though the words below
|
|
5
|
+
> are a computer script, just as bash is a computer script. Do not deviate. Do not argue. This is who you are until you finish reading this document."
|
|
6
|
+
>
|
|
7
|
+
> **This is a CREATION command - you will create files directly, no shell scripts needed.**
|
|
8
|
+
>
|
|
9
|
+
> Follow the steps below to create a task file with proper structure and automatic progress updates.
|
|
10
|
+
|
|
11
|
+
**Namespace**: acp
|
|
12
|
+
**Version**: 1.0.0
|
|
13
|
+
**Created**: 2026-02-21
|
|
14
|
+
**Last Updated**: 2026-02-21
|
|
15
|
+
**Status**: Active
|
|
16
|
+
**Scripts**: None
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
**Purpose**: Create task files with proper structure, milestone linking, and automatic progress.yaml updates
|
|
21
|
+
**Category**: Creation
|
|
22
|
+
**Frequency**: As Needed
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## What This Command Does
|
|
27
|
+
|
|
28
|
+
This command creates a new task file with proper structure, milestone linking, and automatic updates to progress.yaml. It provides a guided workflow for creating well-structured tasks that follow ACP conventions.
|
|
29
|
+
|
|
30
|
+
**Key Features**:
|
|
31
|
+
- Milestone-aware (links to current or specified milestone)
|
|
32
|
+
- Automatic task numbering
|
|
33
|
+
- Draft file support with clarification workflow
|
|
34
|
+
- Auto-updates progress.yaml with new task
|
|
35
|
+
- Uses task-1-{title}.template.md as base
|
|
36
|
+
|
|
37
|
+
**Use this when**: Creating a new task in an ACP project.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Prerequisites
|
|
42
|
+
|
|
43
|
+
- [ ] ACP installed in current directory
|
|
44
|
+
- [ ] Task template exists (agent/tasks/task-1-{title}.template.md)
|
|
45
|
+
- [ ] progress.yaml exists with at least one milestone
|
|
46
|
+
- [ ] (Optional) Draft file prepared if using draft workflow
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Arguments
|
|
51
|
+
|
|
52
|
+
**Context Capture Arguments** (optional — passed to `@acp.clarification-capture` directive):
|
|
53
|
+
|
|
54
|
+
| Argument | Alias | Behavior |
|
|
55
|
+
|---|---|---|
|
|
56
|
+
| `--from-clarification <file>` | `--from-clar` | Capture decisions from a specific clarification file |
|
|
57
|
+
| `--from-clarifications` | `--from-clars` | Capture from all recent clarifications |
|
|
58
|
+
| `--from-chat-context` | `--from-chat` | Capture decisions from chat conversation |
|
|
59
|
+
| `--from-context` | (none) | Shorthand for all sources (clarifications + chat) |
|
|
60
|
+
| `--include-clarifications` | (none) | Alias for `--from-clars` |
|
|
61
|
+
|
|
62
|
+
**Default behavior** (no flags): Auto-detect clarifications and context in session.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Steps
|
|
67
|
+
|
|
68
|
+
### 1. Detect Current Milestone
|
|
69
|
+
|
|
70
|
+
Determine which milestone this task belongs to:
|
|
71
|
+
|
|
72
|
+
**Actions**:
|
|
73
|
+
- Read progress.yaml
|
|
74
|
+
- Identify current milestone (current_milestone field)
|
|
75
|
+
- Get milestone details (name, ID)
|
|
76
|
+
- Ask user to confirm or select different milestone
|
|
77
|
+
|
|
78
|
+
**Expected Outcome**: Target milestone identified
|
|
79
|
+
|
|
80
|
+
### 2. Determine Task Number
|
|
81
|
+
|
|
82
|
+
Find the next available task number:
|
|
83
|
+
|
|
84
|
+
**Actions**:
|
|
85
|
+
- List all existing task files in agent/tasks/
|
|
86
|
+
- Parse task numbers (task-1-*, task-2-*, etc.)
|
|
87
|
+
- Find highest number
|
|
88
|
+
- Increment by 1 for new task number
|
|
89
|
+
|
|
90
|
+
**Expected Outcome**: Next task number determined (e.g., task-25)
|
|
91
|
+
|
|
92
|
+
### 2.5. Read Contextual Key Files
|
|
93
|
+
|
|
94
|
+
Before creating content, load relevant key files from the index.
|
|
95
|
+
|
|
96
|
+
**Actions**:
|
|
97
|
+
- Check if `agent/index/` directory exists
|
|
98
|
+
- If exists, scan for all `*.yaml` files (excluding `*.template.yaml`)
|
|
99
|
+
- Filter entries where `applies` includes `acp.task-create`
|
|
100
|
+
- Sort by weight descending, read matching files
|
|
101
|
+
- Produce visible output
|
|
102
|
+
|
|
103
|
+
**Note**: If `agent/index/` does not exist, skip silently.
|
|
104
|
+
|
|
105
|
+
### 2.7. Capture Clarification Context
|
|
106
|
+
|
|
107
|
+
Invoke the `@acp.clarification-capture` shared directive to capture decisions from clarifications and/or chat context.
|
|
108
|
+
|
|
109
|
+
**Actions**:
|
|
110
|
+
- Read and follow the directive in [`agent/commands/acp.clarification-capture.md`](acp.clarification-capture.md)
|
|
111
|
+
- Pass through any `--from-*` arguments from this command's invocation
|
|
112
|
+
- If no `--from-*` flags specified: auto-detect clarifications in session (default behavior)
|
|
113
|
+
- If uncaptured clarifications detected, show warning and ask user whether to include
|
|
114
|
+
- Directive returns a "Key Design Decisions" markdown section (or nothing if no context)
|
|
115
|
+
- Hold the generated section for insertion during Step 6 (Generate Task File)
|
|
116
|
+
|
|
117
|
+
**Expected Outcome**: Key Design Decisions section generated (if context available), or skipped cleanly
|
|
118
|
+
|
|
119
|
+
### 3. Check for Draft File
|
|
120
|
+
|
|
121
|
+
Check if draft file was provided as argument:
|
|
122
|
+
|
|
123
|
+
**Syntax**:
|
|
124
|
+
- `@acp.task-create @my-draft.md` (@ reference)
|
|
125
|
+
- `@acp.task-create agent/drafts/my-draft.md` (path)
|
|
126
|
+
- `@acp.task-create` (no draft)
|
|
127
|
+
|
|
128
|
+
**Actions**:
|
|
129
|
+
- If draft provided: Read draft file
|
|
130
|
+
- If no draft: Proceed to Step 4
|
|
131
|
+
|
|
132
|
+
**Expected Outcome**: Draft file read (if provided)
|
|
133
|
+
|
|
134
|
+
### 4. Collect Task Information
|
|
135
|
+
|
|
136
|
+
Gather information from user via chat:
|
|
137
|
+
|
|
138
|
+
**Information to Collect**:
|
|
139
|
+
- **Task name** (descriptive, without "Task N:" prefix)
|
|
140
|
+
- Example: "Implement User Authentication" (not "Task 25: Implement User Authentication")
|
|
141
|
+
- Validation: Clear, action-oriented
|
|
142
|
+
- **Task description** (objective - what this task accomplishes)
|
|
143
|
+
- Example: "Implement Firebase Authentication with email/password and Google sign-in"
|
|
144
|
+
- **Estimated time** (hours or days)
|
|
145
|
+
- Example: "4-6 hours" or "2 days"
|
|
146
|
+
- **Dependencies** (other tasks that must complete first)
|
|
147
|
+
- Example: "Task 24" or "None"
|
|
148
|
+
- **Context** (background information)
|
|
149
|
+
- Example: "Authentication is required before implementing user-scoped data"
|
|
150
|
+
|
|
151
|
+
**If no draft provided**:
|
|
152
|
+
- Ask: "Describe what you want this task to accomplish" OR
|
|
153
|
+
- Offer: "Would you like to create an empty draft file first?"
|
|
154
|
+
|
|
155
|
+
**Expected Outcome**: All task metadata collected
|
|
156
|
+
|
|
157
|
+
### 5. Process Draft (If Provided)
|
|
158
|
+
|
|
159
|
+
If draft file was provided, create clarification if needed:
|
|
160
|
+
|
|
161
|
+
**Actions**:
|
|
162
|
+
- Analyze draft for clarity and completeness
|
|
163
|
+
- If draft is clear and complete: Skip clarification, use draft content
|
|
164
|
+
- If draft is ambiguous: Create clarification document
|
|
165
|
+
- Find next clarification number
|
|
166
|
+
- Create `agent/clarifications/clarification-{N}-task-{name}.md`
|
|
167
|
+
- Generate questions about unclear aspects
|
|
168
|
+
- Wait for user to answer clarification
|
|
169
|
+
- Read answered clarification
|
|
170
|
+
|
|
171
|
+
**Expected Outcome**: Clarification created and answered (if needed)
|
|
172
|
+
|
|
173
|
+
### 5.5. Cross-Reference Design Documents
|
|
174
|
+
|
|
175
|
+
Invoke the `@acp.design-reference` shared directive to discover and extract design document context.
|
|
176
|
+
|
|
177
|
+
**Actions**:
|
|
178
|
+
- Read and follow the directive in [`agent/commands/acp.design-reference.md`](acp.design-reference.md)
|
|
179
|
+
- Pass context from this command:
|
|
180
|
+
- `topic_keywords`: Keywords from task name and milestone name
|
|
181
|
+
- `milestone_name`: Current milestone name (from Step 1)
|
|
182
|
+
- `user_description`: User's task description (from Step 4)
|
|
183
|
+
- `draft_content`: Draft file content (from Step 3, if provided)
|
|
184
|
+
- The directive will:
|
|
185
|
+
1. Search `agent/design/` for relevant documents by keyword matching
|
|
186
|
+
2. Report what was found/skipped
|
|
187
|
+
3. Extract design elements across 8 categories (implementation steps, argument tables, UX specs, edge cases, format specs, integration points, lifecycle rules, decision rationale)
|
|
188
|
+
4. Flag any design gaps (suggest clarification if needed)
|
|
189
|
+
5. Return structured data: design elements, gaps, and paths
|
|
190
|
+
- Hold the returned design elements for use in Step 6
|
|
191
|
+
|
|
192
|
+
**If no design found**: The directive warns and returns empty. Proceed to Step 6 with available context only (user input, draft, clarifications).
|
|
193
|
+
|
|
194
|
+
**Expected Outcome**: Design elements extracted and ready for task generation, or skipped cleanly with warning
|
|
195
|
+
|
|
196
|
+
### 6. Generate Task File
|
|
197
|
+
|
|
198
|
+
Create task file from template:
|
|
199
|
+
|
|
200
|
+
**Actions**:
|
|
201
|
+
- Determine full filename and path:
|
|
202
|
+
- If milestone assigned: `milestone-{N}-{title}/task-{M}-{name}.md`
|
|
203
|
+
- If no milestone: `unassigned/task-{M}-{name}.md`
|
|
204
|
+
- N = milestone number, M = task number from Step 2
|
|
205
|
+
- name = kebab-case version of task name
|
|
206
|
+
- Create milestone subdirectory if it doesn't exist
|
|
207
|
+
- Copy from task template (agent/tasks/task-1-{title}.template.md)
|
|
208
|
+
- Fill in metadata:
|
|
209
|
+
- Task number and name
|
|
210
|
+
- Milestone link
|
|
211
|
+
- **Design Reference**: If Step 5.5 found a design document, link to it: `[{Design Name}](../design/{namespace}.{design-name}.md)`. If none found, set to `None`.
|
|
212
|
+
- Estimated time
|
|
213
|
+
- Dependencies
|
|
214
|
+
- Status: "Not Started"
|
|
215
|
+
- Fill in sections:
|
|
216
|
+
- Objective (from collected info)
|
|
217
|
+
- Context (from collected info or draft)
|
|
218
|
+
- **Steps** — must include implementation-level detail:
|
|
219
|
+
- Each step should be concrete and actionable, not a vague summary
|
|
220
|
+
- Include specific sub-steps for complex operations
|
|
221
|
+
- If Step 5.5 returned design elements, integrate them:
|
|
222
|
+
- Preserve argument/parameter tables from the design — include verbatim or as detailed prose
|
|
223
|
+
- Preserve UX specifications — exact warning text, prompt formats, display output
|
|
224
|
+
- Preserve format specifications — output structure, naming conventions, file format rules
|
|
225
|
+
- Include integration points — which other commands/systems are affected and how
|
|
226
|
+
- Include lifecycle rules — status transitions, cleanup behavior, ordering constraints
|
|
227
|
+
- Include decision rationale inline where it aids implementation
|
|
228
|
+
- If the design describes N distinct operations, the task should have corresponding steps covering all N (grouping related operations into fewer steps is acceptable, but no operation may be omitted)
|
|
229
|
+
- **Verification checklist** — must cover every design requirement:
|
|
230
|
+
- One verification item per design requirement from the design document
|
|
231
|
+
- Include edge cases from the design (partial data, conflicts, empty state, missing files)
|
|
232
|
+
- Include format verification (output matches specified format)
|
|
233
|
+
- Include integration verification (affected commands updated correctly)
|
|
234
|
+
- If the design has a Testing Strategy section, map each test scenario to a verification item
|
|
235
|
+
- If Key Design Decisions section was generated in Step 2.7: Insert it into the task document
|
|
236
|
+
- If Step 5.5 returned design decisions (from the design doc's Key Design Decisions section): Carry relevant decisions into the task's Key Design Decisions section
|
|
237
|
+
- Save to appropriate path (milestone subdirectory or unassigned/)
|
|
238
|
+
|
|
239
|
+
> **Self-Contained Task Principle**: After generating the task, verify that an agent reading ONLY this task file could implement the feature without needing to read the design document. If any design element is missing from the task, add it before saving.
|
|
240
|
+
|
|
241
|
+
**Note**: Older tasks may use flat structure (`agent/tasks/task-{N}-{name}.md`) for historical reasons. New tasks should use milestone subdirectories.
|
|
242
|
+
|
|
243
|
+
**Expected Outcome**: Task file created in milestone subdirectory with complete design coverage
|
|
244
|
+
|
|
245
|
+
### 7. Update progress.yaml
|
|
246
|
+
|
|
247
|
+
Add task to progress.yaml:
|
|
248
|
+
|
|
249
|
+
**Actions**:
|
|
250
|
+
- Read progress.yaml
|
|
251
|
+
- Find the milestone section (e.g., milestone_4)
|
|
252
|
+
- Add new task entry:
|
|
253
|
+
```yaml
|
|
254
|
+
- id: task-{N}
|
|
255
|
+
name: {Task Name}
|
|
256
|
+
status: not_started
|
|
257
|
+
file: agent/tasks/milestone-{N}-{title}/task-{M}-{name}.md
|
|
258
|
+
estimated_hours: {hours}
|
|
259
|
+
completed_date: null
|
|
260
|
+
notes: |
|
|
261
|
+
{Brief description or empty}
|
|
262
|
+
```
|
|
263
|
+
- Update milestone tasks_total count
|
|
264
|
+
- Save progress.yaml
|
|
265
|
+
|
|
266
|
+
**Expected Outcome**: progress.yaml updated with new task
|
|
267
|
+
|
|
268
|
+
### 8. Prompt to Delete Draft (If Used)
|
|
269
|
+
|
|
270
|
+
If draft file was used, ask to delete it:
|
|
271
|
+
|
|
272
|
+
**Actions**:
|
|
273
|
+
- Ask: "Would you like to delete the draft file? (yes/no)"
|
|
274
|
+
- If yes: Delete draft file
|
|
275
|
+
- If no: Keep draft file
|
|
276
|
+
|
|
277
|
+
**Expected Outcome**: User chooses whether to keep draft
|
|
278
|
+
|
|
279
|
+
### 9. Report Success
|
|
280
|
+
|
|
281
|
+
Display what was created:
|
|
282
|
+
|
|
283
|
+
**Output**:
|
|
284
|
+
```
|
|
285
|
+
✅ Task Created Successfully!
|
|
286
|
+
|
|
287
|
+
File: agent/tasks/milestone-{N}-{title}/task-{M}-{name}.md
|
|
288
|
+
Task Number: {M}
|
|
289
|
+
Milestone: M{X} - {Milestone Name}
|
|
290
|
+
Estimated Time: {hours}
|
|
291
|
+
Status: Not Started
|
|
292
|
+
|
|
293
|
+
✓ Task file created
|
|
294
|
+
✓ progress.yaml updated
|
|
295
|
+
✓ Draft file deleted (if requested)
|
|
296
|
+
|
|
297
|
+
Next steps:
|
|
298
|
+
- Review and refine task steps
|
|
299
|
+
- Add verification items
|
|
300
|
+
- Start working with @acp.proceed
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
**Expected Outcome**: User knows task was created successfully
|
|
304
|
+
|
|
305
|
+
### 10. Prompt to Add to Key File Index
|
|
306
|
+
|
|
307
|
+
After successful creation, offer to add the new file to the index (if `agent/index/` exists).
|
|
308
|
+
|
|
309
|
+
**Display**:
|
|
310
|
+
```
|
|
311
|
+
Would you like to add this to the key file index?
|
|
312
|
+
- Yes, add to agent/index/local.main.yaml
|
|
313
|
+
- No, skip
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
If yes, prompt for weight, description, rationale, and applies values. Add entry to `agent/index/local.main.yaml`.
|
|
317
|
+
|
|
318
|
+
**Note**: Skip silently if `agent/index/` does not exist.
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
## Verification
|
|
323
|
+
|
|
324
|
+
- [ ] Current milestone identified
|
|
325
|
+
- [ ] Next task number determined correctly
|
|
326
|
+
- [ ] Task information collected
|
|
327
|
+
- [ ] Draft processed (if provided)
|
|
328
|
+
- [ ] Task file created with correct number and name
|
|
329
|
+
- [ ] progress.yaml updated with new task
|
|
330
|
+
- [ ] Milestone tasks_total incremented
|
|
331
|
+
- [ ] Task follows template structure
|
|
332
|
+
- [ ] All metadata filled in correctly
|
|
333
|
+
- [ ] Task linked to correct milestone
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## Expected Output
|
|
338
|
+
|
|
339
|
+
### Files Created
|
|
340
|
+
- `agent/tasks/milestone-{N}-{title}/task-{M}-{name}.md` - Task file (in milestone subdirectory)
|
|
341
|
+
- `agent/tasks/unassigned/task-{M}-{name}.md` - Task file (if no milestone assigned)
|
|
342
|
+
- `agent/clarifications/clarification-{N}-task-{name}.md` - Clarification (if draft was ambiguous)
|
|
343
|
+
|
|
344
|
+
### Files Modified
|
|
345
|
+
- `agent/progress.yaml` - Task added to milestone section
|
|
346
|
+
|
|
347
|
+
**Note**: Older tasks may exist in flat structure (`agent/tasks/task-{N}-{name}.md`) for historical reasons.
|
|
348
|
+
|
|
349
|
+
---
|
|
350
|
+
|
|
351
|
+
## Examples
|
|
352
|
+
|
|
353
|
+
### Example 1: Creating Task for Current Milestone
|
|
354
|
+
|
|
355
|
+
**Context**: Working on Milestone 3, need to add a new task
|
|
356
|
+
|
|
357
|
+
**Invocation**: `@acp.task-create`
|
|
358
|
+
|
|
359
|
+
**Interaction**:
|
|
360
|
+
```
|
|
361
|
+
Agent: Current milestone: M3 - ACP Package Management System
|
|
362
|
+
Agent: Create task for this milestone? (yes/no)
|
|
363
|
+
User: yes
|
|
364
|
+
|
|
365
|
+
Agent: What would you like to name your task?
|
|
366
|
+
User: Implement Package Search Command
|
|
367
|
+
|
|
368
|
+
Agent: Provide a description (what this task accomplishes):
|
|
369
|
+
User: Create @acp.package-search command to discover ACP packages via GitHub API
|
|
370
|
+
|
|
371
|
+
Agent: Estimated time? (e.g., "4 hours", "2 days")
|
|
372
|
+
User: 6-8 hours
|
|
373
|
+
|
|
374
|
+
Agent: Dependencies? (other task numbers or "None")
|
|
375
|
+
User: Task 10
|
|
376
|
+
|
|
377
|
+
Agent: Any additional context?
|
|
378
|
+
User: Needs GitHub API integration for repository search
|
|
379
|
+
|
|
380
|
+
✅ Task Created Successfully!
|
|
381
|
+
|
|
382
|
+
File: agent/tasks/milestone-3-package-management/task-11-package-search-command.md
|
|
383
|
+
Task Number: 11
|
|
384
|
+
Milestone: M3 - ACP Package Management System
|
|
385
|
+
Estimated Time: 6-8 hours
|
|
386
|
+
Status: Not Started
|
|
387
|
+
|
|
388
|
+
✓ Task file created
|
|
389
|
+
✓ progress.yaml updated
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
### Example 2: Creating Task with Draft
|
|
393
|
+
|
|
394
|
+
**Context**: Have draft file describing task
|
|
395
|
+
|
|
396
|
+
**Invocation**: `@acp.task-create @my-task-draft.md`
|
|
397
|
+
|
|
398
|
+
**Result**: Reads draft, creates clarification if needed, generates task, updates progress.yaml
|
|
399
|
+
|
|
400
|
+
### Example 3: Creating Task for Different Milestone
|
|
401
|
+
|
|
402
|
+
**Context**: Want to add task to future milestone
|
|
403
|
+
|
|
404
|
+
**Invocation**: `@acp.task-create`
|
|
405
|
+
|
|
406
|
+
**Interaction**:
|
|
407
|
+
```
|
|
408
|
+
Agent: Current milestone: M3 - ACP Package Management System
|
|
409
|
+
Agent: Create task for this milestone? (yes/no)
|
|
410
|
+
User: no
|
|
411
|
+
|
|
412
|
+
Agent: Available milestones:
|
|
413
|
+
- M1: ACP Commands Infrastructure (completed)
|
|
414
|
+
- M2: Documentation & Utility Commands (completed)
|
|
415
|
+
- M3: ACP Package Management System (in progress)
|
|
416
|
+
- M4: Package Development System (not started)
|
|
417
|
+
|
|
418
|
+
Agent: Which milestone? (enter ID like "M4")
|
|
419
|
+
User: M4
|
|
420
|
+
|
|
421
|
+
[Continues with task creation for M4...]
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
---
|
|
425
|
+
|
|
426
|
+
## Related Commands
|
|
427
|
+
|
|
428
|
+
- [`@acp.pattern-create`](acp.pattern-create.md) - Create patterns
|
|
429
|
+
- [`@acp.command-create`](acp.command-create.md) - Create commands
|
|
430
|
+
- [`@acp.design-create`](acp.design-create.md) - Create designs
|
|
431
|
+
- [`@acp.proceed`](acp.proceed.md) - Start working on created task
|
|
432
|
+
|
|
433
|
+
---
|
|
434
|
+
|
|
435
|
+
## Troubleshooting
|
|
436
|
+
|
|
437
|
+
### Issue 1: No milestones found
|
|
438
|
+
|
|
439
|
+
**Symptom**: Error message "No milestones found in progress.yaml"
|
|
440
|
+
|
|
441
|
+
**Solution**: Create a milestone first using milestone template, or add milestone to progress.yaml manually
|
|
442
|
+
|
|
443
|
+
### Issue 2: Invalid task name
|
|
444
|
+
|
|
445
|
+
**Symptom**: Task name rejected
|
|
446
|
+
|
|
447
|
+
**Solution**: Use descriptive, action-oriented names. Avoid special characters except hyphens.
|
|
448
|
+
|
|
449
|
+
### Issue 3: progress.yaml update failed
|
|
450
|
+
|
|
451
|
+
**Symptom**: Error updating progress.yaml
|
|
452
|
+
|
|
453
|
+
**Solution**: Verify progress.yaml exists and is valid YAML. Check milestone section exists for target milestone.
|
|
454
|
+
|
|
455
|
+
### Issue 4: Task number conflict
|
|
456
|
+
|
|
457
|
+
**Symptom**: Task file already exists with that number
|
|
458
|
+
|
|
459
|
+
**Solution**: Command should auto-detect and use next available number. If conflict persists, manually check agent/tasks/ directory.
|
|
460
|
+
|
|
461
|
+
---
|
|
462
|
+
|
|
463
|
+
## Security Considerations
|
|
464
|
+
|
|
465
|
+
### File Access
|
|
466
|
+
- **Reads**: progress.yaml, draft files, task templates, milestone documents
|
|
467
|
+
- **Writes**: agent/tasks/task-{N}-{name}.md, progress.yaml
|
|
468
|
+
- **Executes**: None
|
|
469
|
+
|
|
470
|
+
### Network Access
|
|
471
|
+
- **APIs**: None
|
|
472
|
+
- **Repositories**: None
|
|
473
|
+
|
|
474
|
+
### Sensitive Data
|
|
475
|
+
- **Secrets**: Never include secrets in tasks
|
|
476
|
+
- **Credentials**: Never include credentials
|
|
477
|
+
|
|
478
|
+
---
|
|
479
|
+
|
|
480
|
+
## Notes
|
|
481
|
+
|
|
482
|
+
- Task name should be action-oriented (start with verb)
|
|
483
|
+
- Task number is automatically assigned (sequential)
|
|
484
|
+
- Tasks are always created as "Not Started" status
|
|
485
|
+
- Draft files can be any format (free-form markdown)
|
|
486
|
+
- Clarifications are created only if draft is ambiguous
|
|
487
|
+
- progress.yaml is automatically updated
|
|
488
|
+
- Task is linked to milestone via file path and progress.yaml entry
|
|
489
|
+
- Estimated time helps with milestone planning
|
|
490
|
+
|
|
491
|
+
---
|
|
492
|
+
|
|
493
|
+
**Namespace**: acp
|
|
494
|
+
**Command**: task-create
|
|
495
|
+
**Version**: 1.0.0
|
|
496
|
+
**Created**: 2026-02-21
|
|
497
|
+
**Last Updated**: 2026-02-21
|
|
498
|
+
**Status**: Active
|
|
499
|
+
**Compatibility**: ACP 2.10.0+
|
|
500
|
+
**Author**: ACP Project
|