Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 08:41:13 +08:00
commit 3e9fe41aa3
14 changed files with 675 additions and 0 deletions

27
commands/add-one-task.md Normal file
View File

@@ -0,0 +1,27 @@
---
argument-hint: task description
description: Add a task to the project task list
---
Add a task to the project task list.
If the user provided a description, it will appear here:
<description>
$ARGUMENTS
</description>
## Steps
1. Extract the description from the user's input
2. If no description was provided, ask the user for one
3. Add the task:
@../shared/scripts/task-add.md
4. Confirm to the user that the task was added
## Notes
- The description should be clear and actionable
- Do not include the checkbox syntax in the description (the script adds it)

48
commands/do-all-tasks.md Normal file
View File

@@ -0,0 +1,48 @@
---
argument-hint: optional instructions
description: Process all tasks automatically
---
Process all tasks automatically.
Repeatedly work through incomplete tasks from the project task list.
If the user provided additional instructions, they will appear here:
<instructions>
$ARGUMENTS
</instructions>
If the user did not provide instructions, work through ALL incomplete tasks until NONE remain.
## Steps
1. Track attempt count and previously attempted tasks to prevent infinite loops
2. Use the `@tasks` skill to extract the first incomplete task from `.llm/todo.md`
3. If a task is found:
- Check if we have already attempted this task 1 time
- If yes, mark it as blocked (with `- [!]`) and continue to next task
- If no, launch the `@tasks:do-task` agent to implement it
- **Do NOT add instructions to the agent prompt** - the agent is self-contained and follows its own workflow (including precommit, commit, rebase)
- Do NOT mark the task as complete yourself - the `do-task` agent does this
4. Repeat until no incomplete tasks remain or the user's instructions are met
5. When all tasks are completed, archive the task list:
@../shared/scripts/task-archive.md
## Notes
- Each task is handled completely by the `do-task` agent before moving to the next
- The `do-task` agent marks tasks as complete - do NOT call `task_complete.py` yourself
- Each task gets its own commit for clear history
- After each agent returns, check the task list again to see if more tasks remain
## User feedback
Throughout the process, provide clear status updates:
- "Starting task: [task description]"
- "Task completed successfully: [task description]"
- "Task failed: [task description]"
- "Skipping blocked task: [task description]"
- "All tasks completed - task list archived to .llm/YYYY-MM-DD-todo.md" or "Stopping due to failures"

7
commands/do-one-task.md Normal file
View File

@@ -0,0 +1,7 @@
---
description: Find and implement the next incomplete task from the project task list
---
Find and implement the next incomplete task from the project task list.
@../shared/task-workflow.md

36
commands/plan-tasks.md Normal file
View File

@@ -0,0 +1,36 @@
---
name: plan-tasks
description: Capture conversation planning into self-contained tasks at end of discussion
---
# Plan Tasks
Transform conversation planning and requirements into a markdown task list where each task is completely self-contained with all necessary context inline.
@../shared/task-format.md
## When to Use
Use this command at the **end of a planning conversation** when you have discussed requirements, approaches, and implementation details but have not started coding yet. This captures the conversation context into actionable tasks in `.llm/todo.md`.
## Input
The input is the current conversation where planning and requirements have been discussed. Transform the plans, ideas, and requirements from the discussion into self-contained tasks in a markdown checklist format, appended to `.llm/todo.md`.
## Task Writing Guidelines
Each task should be written so it can be read independently from `- [ ]` to the next `- [ ]` and contain:
1. **Full absolute paths** - Never use relative paths
2. **Exact class/function names** - Specify exact names of code elements
3. **Analogies to existing code** - Reference similar existing implementations
4. **Specific implementation details** - List concrete methods or operations
5. **Module/package context** - State which module or package the work belongs to
6. **Dependencies and prerequisites** - Note what needs to exist or be imported
7. **Expected outcomes** - Describe what success looks like
## Example
```markdown
- [ ] Create a new test class `SynchronizedBagTest` at `/Users/craig/projects/eclipse-collections/unit-tests-thread-safety/src/test/java/org/eclipse/collections/impl/bag/mutable/SynchronizedBagTest.java` to test thread-safety of `org.eclipse.collections.impl.bag.mutable.SynchronizedBag`. Similar to how `SynchronizedMutableListTest` covers `SynchronizedMutableList`, this should extend `SynchronizedTestTrait` and implement test traits like `SynchronizedCollectionTestTrait`, `SynchronizedMutableIterableTestTrait`, and `SynchronizedRichIterableTestTrait`. The test should verify that all public methods of SynchronizedBag properly synchronize on the lock object using the `assertSynchronized()` method. Include tests for bag-specific methods like `addOccurrences()`, `removeOccurrences()`, `occurrencesOf()`, `forEachWithOccurrences()`, and `toMapOfItemToCount()`.
```

21
commands/sweep-todos.md Normal file
View File

@@ -0,0 +1,21 @@
---
description: Find all TODO and TASK comments and add them to the project task list
---
Find all TODO and TASK comments and add them to the project task list.
Search the codebase for all TODO and TASK comments and add them to `.llm/todo.md`. Each TODO or TASK found in the code will be converted to a task in the markdown task list.
## Steps
1. Find all occurrences of "TODO" in the codebase using grep/search
2. For each occurrence, gather:
- File path
- Line number
- Full TODO comment text
3. Strip comment markers (`//`, `#`, `/* */`) from the TODO/TASK text
4. Add each TODO or TASK as a new task entry to `.llm/todo.md`:
```markdown
- [ ] Implement TODO from src/api/client.ts:87: Extract commonality in getRootNodes and getChildNodes
- [ ] Implement TODO from test/utils.test.ts:103: Use deep object equality rather than loose assertions
```