$npx -y skills add NeoLabHQ/context-engineering-kit --skill add-taskcreates draft task file in .specs/tasks/draft/ with original user intent
| 1 | # Create Draft Task File |
| 2 | |
| 3 | ## Role |
| 4 | |
| 5 | Your role is to create a draft task file that exactly matches the user's request. |
| 6 | |
| 7 | ## Goal |
| 8 | |
| 9 | Create a task file in `.specs/tasks/draft/` with: |
| 10 | |
| 11 | - Clear, action-oriented title (verb + specific description) |
| 12 | - Appropriate type classification (feature/bug/refactor/test/docs/chore/ci) |
| 13 | - Correct dependencies if any |
| 14 | - Useful description preserving user intent |
| 15 | - Correct file name |
| 16 | |
| 17 | ## Input |
| 18 | |
| 19 | - **User Input**: The task description/title provided by the user (passed as argument) |
| 20 | - **Target Directory**: Default is `.specs/tasks/draft/` |
| 21 | |
| 22 | ## Instructions |
| 23 | |
| 24 | ### 1. Ensure Directory Structure |
| 25 | |
| 26 | Run the folder creation script to create task directories and configure gitignore: |
| 27 | |
| 28 | ```bash |
| 29 | bash ${CLAUDE_PLUGIN_ROOT}/scripts/create-folders.sh |
| 30 | ``` |
| 31 | |
| 32 | This creates: |
| 33 | |
| 34 | - `.specs/tasks/draft/` - New tasks awaiting analysis |
| 35 | - `.specs/tasks/todo/` - Tasks ready to implement |
| 36 | - `.specs/tasks/in-progress/` - Currently being worked on |
| 37 | - `.specs/tasks/done/` - Completed tasks |
| 38 | - `.specs/scratchpad/` - Temporary working files (gitignored) |
| 39 | |
| 40 | ### 2. Analyze Input |
| 41 | |
| 42 | 1. **Parse the user's request**: |
| 43 | - Extract the core task objective |
| 44 | - Identify implied type (bug, feature, task) |
| 45 | - List of task files that this task depends on |
| 46 | |
| 47 | 2. **Clarify if ambiguous** (only if truly unclear): |
| 48 | - Is this a bug fix or new feature? |
| 49 | - Any related tasks or dependencies? (if not proided, then assume none) |
| 50 | |
| 51 | ### 3. Structure the Task |
| 52 | |
| 53 | 1. **Create action-oriented title**: |
| 54 | - Start with verb: Add, Fix, Update, Implement, Remove, Refactor |
| 55 | - Be specific but concise |
| 56 | - Examples: |
| 57 | - "Add validation to login form" |
| 58 | - "Fix null pointer in user service" |
| 59 | - "Implement caching for API responses" |
| 60 | |
| 61 | 2. **Determine type**: |
| 62 | |
| 63 | | Type | Use When | |
| 64 | |------|----------| |
| 65 | | `feature` | New functionality or capability | |
| 66 | | `bug` | Something is broken or not working correctly | |
| 67 | | `refactor` | Code restructuring without changing behavior | |
| 68 | | `test` | Adding or updating tests | |
| 69 | | `docs` | Documentation changes only | |
| 70 | | `chore` | Maintenance tasks, dependency updates | |
| 71 | | `ci` | CI/CD configuration changes | |
| 72 | |
| 73 | ### 4. Generate File Name |
| 74 | |
| 75 | 1. **Create short name from the task title**: |
| 76 | - Lowercase the title |
| 77 | - Replace spaces with hyphens |
| 78 | - Remove special characters |
| 79 | - Keep it concise (3-5 words max) |
| 80 | - Example: "Add validation to login form" -> `add-validation-login-form` |
| 81 | |
| 82 | 2. **Form file name**: `<short-name>.<issue-type>.md` |
| 83 | - Examples: |
| 84 | - `add-validation-login-form.feature.md` |
| 85 | - `fix-null-pointer-user-service.bug.md` |
| 86 | - `restructure-auth-module.refactor.md` |
| 87 | - `add-unit-tests-api.test.md` |
| 88 | - `update-readme.docs.md` |
| 89 | - `upgrade-dependencies.chore.md` |
| 90 | - `add-github-actions.ci.md` |
| 91 | |
| 92 | 3. **Verify uniqueness**: Check `.specs/tasks/draft/`, `.specs/tasks/todo/`, `.specs/tasks/in-progress/`, and `.specs/tasks/done/` for existing files with same name |
| 93 | |
| 94 | ### 5. Create Task File |
| 95 | |
| 96 | **Use Write tool** to create `.specs/tasks/todo/<short-name>.<issue-type>.md`: |
| 97 | |
| 98 | ```markdown |
| 99 | --- |
| 100 | title: <ACTION-ORIENTED TITLE> |
| 101 | depends_on: <list of task files that this task depends on> |
| 102 | --- |
| 103 | |
| 104 | ## Initial User Prompt |
| 105 | |
| 106 | {EXACT user input as provided} |
| 107 | |
| 108 | ## Description |
| 109 | |
| 110 | // Will be filled in future stages by business analyst |
| 111 | ``` |
| 112 | |
| 113 | ## Constraints |
| 114 | |
| 115 | - **Do NOT** invoke the plan skill - the workflow handles subsequent phases |
| 116 | - **Do NOT** create files outside `.specs/tasks/draft/` |
| 117 | - **Do NOT** modify existing task files |
| 118 | - **Do NOT** write description, only put `// ...` placeholder as specified in the task file. |
| 119 | - **Do NOT** write depends_on section if no dependencies are provided. |
| 120 | |
| 121 | ## Expected Output |
| 122 | |
| 123 | Return to the orchestrator: |
| 124 | |
| 125 | 1. **Task file path**: Full path to created file (e.g., `.specs/tasks/todo/add-validation-login-form.feature.md`) |
| 126 | 2. **Generated title**: The action-oriented title created |
| 127 | 3. **Issue type**: `task`, `bug`, or `feature` |
| 128 | |
| 129 | Format: |
| 130 | |
| 131 | ``` |
| 132 | Created task file: .specs/tasks/draft/<name>.<type>.md |
| 133 | Title: <action-oriented title> |
| 134 | Type: <task|bug|feature> |
| 135 | Depends on: <list of task files that this task depends on> |
| 136 | ``` |
| 137 | |
| 138 | ## Success Criteria |
| 139 | |
| 140 | - [ ] Directories `.specs/tasks/draft/`, `.specs/tasks/todo/`, `.specs/tasks/in-progress/`, `.specs/tasks/done/` exist |
| 141 | - [ ] Task file created in `.specs/tasks/draft/` with correct naming convention (`<name>.<type>.md`) |
| 142 | - [ ] File name is unique across all status folders (no overwriting existing files) |
| 143 | - [ ] Depends on section is correct if dependencies are provided |
| 144 | - [ ] Title starts with action verb (Add, Fix, Implement, Update, Remove, Refactor) |
| 145 | - [ ] Type is correctly classified and reflected in file extension (`.feature.md`, `.bug.md`, `.refactor.md`, `.test.md`, `.docs.md`, `.chore.md`, `.ci.md`) |
| 146 | - [ ] Original user input preserved in "Initial |