with one click
spec-kitty-tasks-packages
Materialize work package files
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Materialize work package files
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Interview and compile a project charter
Generate a requirements-quality checklist
Execute a work package implementation
Create an implementation plan
Generate research documents for the current mission
Review a work package implementation
| name | spec-kitty.tasks-packages |
| description | Materialize work package files |
| user-invocable | true |
Version: 3.2.0
Generate individual tasks/WP*.md prompt files from the manifest in wps.yaml.
This step reads wps.yaml (written in tasks-outline), updates it with per-WP
details, then generates the WP prompt files.
This step assumes wps.yaml already exists with complete WP definitions.
IMPORTANT: This step works in the project root checkout. NO worktrees created.
In repos with multiple missions, always pass --mission <handle> to every spec-kitty command. The <handle> can be the mission's mission_id (ULID), mid8 (first 8 chars of the ULID), or mission_slug. The resolver disambiguates by mission_id and returns a structured MISSION_AMBIGUOUS_SELECTOR error on ambiguity — there is no silent fallback.
The content of the user's message that invoked this skill (everything after the skill invocation token, e.g. after /spec-kitty.<command> or $spec-kitty.<command>) is the User Input referenced elsewhere in these instructions.
You MUST consider this user input before proceeding (if not empty).
Run:
spec-kitty agent context resolve --action tasks_packages --mission <mission-slug> --json
Then execute the returned check_prerequisites command and capture
feature_dir. All paths must be absolute.
wps.yamlRead feature_dir/wps.yaml. This is the manifest written in the previous step.
Each entry defines a WP with its id, title, dependencies, and partial metadata.
Parse all work package entries. The YAML structure is:
work_packages:
- id: WP01
title: "..."
dependencies: [...] # may be present (authoritative) or absent
owned_files: [...] # may be absent — fill in this step
requirement_refs: [...] # may be absent — fill in this step
subtasks: [...]
prompt_file: null # fill in this step
For each work package defined in wps.yaml:
CRITICAL PATH RULE: All WP files MUST be created in a FLAT feature_dir/tasks/ directory, NOT in subdirectories!
feature_dir/tasks/WPxx-slug.md (flat, no subdirectories)feature_dir/tasks/planned/, feature_dir/tasks/doing/, or ANY status subdirectoriesFor each WP:
WPxx-slug.md (e.g., WP01-create-html-page.md)feature_dir/tasks/WP01-create-html-page.md.kittify/)work_package_id, subtasks array, dependencies, history entryrequirement_refs array from the WP's requirement_refs in wps.yamlowned_files, authoritative_surface, execution_mode (required ownership fields)TARGET PROMPT SIZE: 200-500 lines per WP (3-7 subtasks) MAXIMUM PROMPT SIZE: 700 lines per WP (10 subtasks max) If prompts are >700 lines: Split the WP — it's too large
IMPORTANT: All WP files live in flat tasks/ directory. Status is managed via status.events.jsonl, not by directory location or frontmatter fields.
wps.yaml With Per-WP DetailsAfter generating each WP prompt file, update the corresponding entry in wps.yaml
to fill in owned_files, requirement_refs, subtasks, and prompt_file.
Write the updated wps.yaml back to disk after each WP is generated (or
accumulate changes and write once at the end).
Critical rule: Do NOT modify a dependencies field that is already present in
wps.yaml — even if it is empty ([]). It is authoritative. Only populate
dependencies for entries where the key is absent from wps.yaml.
Example of a fully-populated entry after this step:
- id: WP02
title: "Build API"
dependencies:
- WP01
owned_files:
- "src/api/**"
requirement_refs:
- FR-001
- NFR-001
subtasks:
- T001
- T002
prompt_file: "tasks/WP02-build-api.md"
The frontmatter in each WP prompt file MUST include a dependencies field:
---
work_package_id: "WP02"
title: "Build API"
dependencies: ["WP01"] # From wps.yaml
requirement_refs: ["FR-001", "NFR-001"] # From wps.yaml requirement_refs
subtasks: ["T001", "T002"]
owned_files: ["src/api/**"]
authoritative_surface: "src/api/"
execution_mode: "code_change"
---
Include the correct implementation command:
spec-kitty agent action implement WP01 --agent <name>spec-kitty agent action implement WP02 --agent <name>finalize_tasks computes execution lanes from dependencies and write ownership. Agents never choose a base branch manually.
Ownership rules:
owned_files: List of glob patterns for files this WP touches — no two WPs may overlap.authoritative_surface: Path prefix that must be a prefix of at least one owned_files entry.execution_mode: "code_change" for source code changes, "planning_artifact" for kitty-specs docs.owned_files list.After generating each prompt:
After completing this step:
feature_dir/tasks/WP*.md prompt files exist for all work packageswork_package_id, dependencies, owned_files, authoritative_surface, execution_modefeature_dir/wps.yaml is fully populated: all owned_files, requirement_refs, subtasks, and prompt_file fields are setNext step: spec-kitty next --agent <name> will advance to finalization.
Good prompt (~60 lines per subtask):
### Subtask T001: Implement User Login Endpoint
**Purpose**: Create POST /api/auth/login endpoint that validates credentials and returns JWT token.
**Steps**:
1. Create endpoint handler in `src/api/auth.py`:
- Route: POST /api/auth/login
- Request body: `{email: string, password: string}`
- Response: `{token: string, user: UserProfile}` on success
- Error codes: 400, 401, 429
2. Implement credential validation:
- Hash password with bcrypt
- Use constant-time comparison
**Files**: `src/api/auth.py` (new, ~80 lines)
**Validation**: Valid credentials return 200 with token
Bad prompt (~20 lines per subtask):
### T001: Add auth
Steps: Create endpoint. Add validation. Test it.
Context for work-package planning: (refer to the User Input section above)