mirror of
https://github.com/norandom/OpenUltraSAST.git
synced 2026-10-19 13:10:03 +00:00
chore(skills): .agents/skills -- the plural directory OpenCode searches by default
Verified against opencode.ai/docs/skills: project-local search paths are .opencode/skills, .claude/skills and .agents/skills, not configurable. Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01EmM1j46qgKMh3zqD1QMwEo
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
69b5e0efcc
commit
5010b15ffc
@@ -0,0 +1,192 @@
|
||||
---
|
||||
name: kiro-spec-tasks
|
||||
description: Generate implementation tasks for a specification
|
||||
metadata:
|
||||
shared-rules: "tasks-generation.md, tasks-parallel-analysis.md"
|
||||
---
|
||||
|
||||
|
||||
# Implementation Tasks Generator
|
||||
|
||||
<background_information>
|
||||
- **Success Criteria**:
|
||||
- All requirements mapped to specific tasks
|
||||
- Tasks properly sized (1-3 hours each)
|
||||
- Clear task progression with proper hierarchy
|
||||
- Natural language descriptions focused on capabilities
|
||||
- A lightweight task-plan sanity review confirms the task graph is executable before `tasks.md` is written
|
||||
</background_information>
|
||||
|
||||
<instructions>
|
||||
## Execution Steps
|
||||
|
||||
### Step 1: Load Context
|
||||
|
||||
**Read all necessary context**:
|
||||
- `.kiro/specs/$1/spec.json`, `requirements.md`, `design.md`
|
||||
- `.kiro/specs/$1/tasks.md` (if exists, for merge mode)
|
||||
- Core steering context: `product.md`, `tech.md`, `structure.md`
|
||||
- Additional steering files only when directly relevant to requirements coverage, design boundaries, runtime prerequisites, or team conventions that affect task executability
|
||||
|
||||
**Validate approvals**:
|
||||
- If `-y` flag provided: Auto-approve requirements and design in spec.json. Tasks approval is also handled automatically in Step 4.
|
||||
- Otherwise: Verify both approved (stop if not, see Safety & Fallback)
|
||||
- Determine sequential mode based on presence of `--sequential`
|
||||
|
||||
### Step 2: Generate Implementation Tasks
|
||||
|
||||
**Load generation rules and template**:
|
||||
- Read `rules/tasks-generation.md` from this skill's directory for principles
|
||||
- If `sequential` is false: Read `rules/tasks-parallel-analysis.md` from this skill's directory for parallel judgement criteria
|
||||
- Read `.kiro/settings/templates/specs/tasks.md` for format (supports `(P)` markers)
|
||||
|
||||
#### Parallel Research
|
||||
|
||||
The following research areas are independent and can be executed in parallel:
|
||||
1. **Context loading**: Spec documents (requirements.md, design.md), steering files
|
||||
2. **Rules loading**: tasks-generation.md, tasks-parallel-analysis.md, tasks template
|
||||
|
||||
If multi-agent is enabled, spawn sub-agents for each area above. Otherwise execute sequentially.
|
||||
|
||||
After all parallel research completes, synthesize findings before generating tasks.
|
||||
|
||||
**Generate task list following all rules**:
|
||||
- Use language specified in spec.json
|
||||
- Map all requirements to tasks
|
||||
- When documenting requirement coverage, list numeric requirement IDs only (comma-separated) without descriptive suffixes, parentheses, translations, or free-form labels
|
||||
- Ensure all design components included
|
||||
- Verify task progression is logical and incremental
|
||||
- Ensure each executable sub-task includes at least one detail bullet that states what "done" looks like in observable terms
|
||||
- Keep normal implementation tasks within a single responsibility boundary; if work crosses boundaries, make it an explicit integration task
|
||||
- Collapse single-subtask structures by promoting them to major tasks and avoid duplicating details on container-only major tasks (use template patterns accordingly)
|
||||
- Apply `(P)` markers to tasks that satisfy parallel criteria (omit markers when sequential mode requested)
|
||||
- Mark optional test coverage subtasks with `- [ ]*` only when they strictly cover acceptance criteria already satisfied by core implementation and can be deferred post-MVP
|
||||
- If existing tasks.md found, merge with new content
|
||||
|
||||
### Step 3: Review Task Plan
|
||||
|
||||
- Keep the draft task plan in working memory; do NOT write `tasks.md` yet
|
||||
- Run the `Task Plan Review Gate` from `rules/tasks-generation.md`
|
||||
- Review coverage:
|
||||
- Every requirement ID appears in at least one task
|
||||
- Every design component, contract, integration point, runtime prerequisite, and validation concern is represented
|
||||
- Review executability:
|
||||
- Each sub-task is an executable 1-3 hour work unit
|
||||
- Each sub-task has a verifiable deliverable
|
||||
- Each executable sub-task includes an observable completion bullet
|
||||
- No implicit prerequisites remain hidden
|
||||
- `_Depends:_`, `_Boundary:_`, and `(P)` markers still match the dependency graph and architecture boundaries
|
||||
- If issues are task-plan-local, repair the draft and re-run the review gate before writing
|
||||
- Keep the review bounded to at most 2 repair passes
|
||||
- If review exposes a real requirements/design gap or contradiction, stop and send the user back to requirements/design instead of inventing filler tasks
|
||||
|
||||
### Step 3.5: Run Task-Graph Sanity Review
|
||||
|
||||
Before writing `tasks.md`, run one lightweight independent sanity review of the task graph.
|
||||
|
||||
- If fresh subagent dispatch is available, spawn one fresh review subagent for this step. Otherwise perform the same review in the current context.
|
||||
- Provide only file paths, the draft task plan, and merge context if an existing `tasks.md` is being updated. The reviewer should read `requirements.md`, `design.md`, and the task-generation rules directly instead of relying on a parent-synthesized coverage summary.
|
||||
- Check only:
|
||||
- hidden prerequisites or missing setup tasks
|
||||
- dependency or ordering mistakes
|
||||
- boundary overlap or ambiguous ownership between tasks
|
||||
- tasks that are too large, too vague, cross boundaries without being explicit integration tasks, or are missing a verifiable deliverable
|
||||
- contradictions introduced between requirements, design, and the task graph
|
||||
- Return one verdict:
|
||||
- `PASS`
|
||||
- `NEEDS_FIXES`
|
||||
- `RETURN_TO_DESIGN`
|
||||
- If `NEEDS_FIXES`, repair the draft once and re-run the sanity review one time.
|
||||
- If `RETURN_TO_DESIGN`, stop without writing `tasks.md` and point back to the exact gap in requirements/design.
|
||||
- Keep this bounded. Do not turn it into a second full planning cycle.
|
||||
|
||||
### Step 4: Finalize
|
||||
|
||||
**Write tasks.md**:
|
||||
- Create/update `.kiro/specs/$1/tasks.md`
|
||||
- Update spec.json metadata:
|
||||
- Set `phase: "tasks-generated"`
|
||||
- Set `approvals.tasks.generated: true, approved: false`
|
||||
- Set `approvals.requirements.approved: true`
|
||||
- Set `approvals.design.approved: true`
|
||||
- Update `updated_at` timestamp
|
||||
|
||||
**Approval**:
|
||||
- If auto-approve flag (`-y`) is provided:
|
||||
- Set `approvals.tasks.approved: true` in spec.json
|
||||
- Display task summary (task count, major groups, parallel markers)
|
||||
- Respond: "Tasks generated and auto-approved. Start implementation with `/kiro-impl $1`"
|
||||
- Otherwise (interactive):
|
||||
- Display a summary of the generated tasks (task count, major groups, parallel markers)
|
||||
- Ask the user: "Tasks generated. Approve and proceed to implementation?"
|
||||
- If the user approves:
|
||||
- Set `approvals.tasks.approved: true` in spec.json
|
||||
- Respond: "Tasks approved. Start implementation with `/kiro-impl $1`"
|
||||
- If the user wants changes:
|
||||
- Keep `approvals.tasks.approved: false`
|
||||
- Respond with guidance on what to adjust and re-run
|
||||
|
||||
## Critical Constraints
|
||||
- **Task Integration**: Every task must connect to the system (no orphaned work)
|
||||
- **Boundary annotations**: Required for `(P)` tasks, recommended for all (`_Boundary: ComponentName_`)
|
||||
- **Explicit dependencies**: Cross-boundary non-obvious dependencies declared with `_Depends: X.X_`
|
||||
- **Executable deliverable granularity**: Each task must produce a verifiable deliverable (file, endpoint, UI component, config). Infrastructure tasks (project scaffolding, manifest, host integration, build config) must be explicit — never assume they exist
|
||||
- **Observable done state**: Each executable sub-task must include at least one detail bullet that makes the completed state visible without adding new bookkeeping fields
|
||||
- **No implicit prerequisites**: If a task requires a runtime, SDK, framework setup, or config file, that setup must be a separate preceding task
|
||||
</instructions>
|
||||
|
||||
## Output Description
|
||||
|
||||
Provide brief summary in the language specified in spec.json:
|
||||
|
||||
1. **Status**: Confirm tasks generated at `.kiro/specs/$1/tasks.md`
|
||||
2. **Task Summary**:
|
||||
- Total: X major tasks, Y sub-tasks
|
||||
- All Z requirements covered
|
||||
- Average task size: 1-3 hours per sub-task
|
||||
3. **Quality Validation**:
|
||||
- ✅ All requirements mapped to tasks
|
||||
- ✅ Design coverage and runtime prerequisites reviewed
|
||||
- ✅ Task dependencies verified
|
||||
- ✅ Task plan review gate passed
|
||||
- ✅ Independent task-graph sanity review passed
|
||||
- ✅ Testing tasks included
|
||||
4. **Next Action**: Review tasks and proceed when ready
|
||||
|
||||
**Format**: Concise (under 200 words)
|
||||
|
||||
## Safety & Fallback
|
||||
|
||||
### Error Scenarios
|
||||
|
||||
**Requirements or Design Not Approved**:
|
||||
- **Stop Execution**: Cannot proceed without approved requirements and design
|
||||
- **User Message**: "Requirements and design must be approved before task generation"
|
||||
- **Suggested Action**: "Run `/kiro-spec-tasks $1 -y` to auto-approve both and proceed"
|
||||
|
||||
**Missing Requirements or Design**:
|
||||
- **Stop Execution**: Both documents must exist
|
||||
- **User Message**: "Missing requirements.md or design.md at `.kiro/specs/$1/`"
|
||||
- **Suggested Action**: "Complete requirements and design phases first"
|
||||
|
||||
**Incomplete Requirements Coverage**:
|
||||
- **Warning**: "Not all requirements mapped to tasks. Review coverage."
|
||||
- **User Action Required**: Confirm intentional gaps or regenerate tasks
|
||||
|
||||
**Spec Gap Found During Task Review**:
|
||||
- **Stop Execution**: Do not write a patched-over `tasks.md`
|
||||
- **User Message**: "Requirements/design do not provide enough clear coverage to generate an executable task plan"
|
||||
- **Suggested Action**: "Refine requirements.md or design.md, then re-run `/kiro-spec-tasks $1`"
|
||||
|
||||
**Template/Rules Missing**:
|
||||
- **User Message**: "Template or rules files missing in `.kiro/settings/`"
|
||||
- **Fallback**: Use inline basic structure with warning
|
||||
- **Suggested Action**: "Check repository setup or restore template files"
|
||||
- **Missing Numeric Requirement IDs**:
|
||||
- **Stop Execution**: All requirements in requirements.md MUST have numeric IDs. If any requirement lacks a numeric ID, stop and request that requirements.md be fixed before generating tasks.
|
||||
|
||||
### Next Phase: Implementation
|
||||
|
||||
Tasks are approved in Step 4 via user confirmation. Once approved:
|
||||
- Autonomous implementation: `/kiro-impl $1`
|
||||
- Specific tasks only: `/kiro-impl $1 1.1,1.2`
|
||||
@@ -0,0 +1,222 @@
|
||||
# Task Generation Rules
|
||||
|
||||
## Core Principles
|
||||
|
||||
### 1. Natural Language Descriptions
|
||||
Focus on capabilities and outcomes, not code structure.
|
||||
|
||||
**Describe**:
|
||||
- What functionality to achieve
|
||||
- Business logic and behavior
|
||||
- Features and capabilities
|
||||
- Domain language and concepts
|
||||
- Data relationships and workflows
|
||||
|
||||
**Avoid**:
|
||||
- File paths and directory structure
|
||||
- Function/method names and signatures
|
||||
- Type definitions and interfaces
|
||||
- Class names and API contracts
|
||||
- Specific data structures
|
||||
|
||||
**Rationale**: Implementation details (files, methods, types) are defined in design.md. Tasks describe the functional work to be done.
|
||||
|
||||
### 2. Task Ordering Principle
|
||||
|
||||
**Order implies dependency**: Task N implicitly depends on all tasks before it. This is the primary dependency mechanism.
|
||||
|
||||
**Tasks must follow this phase order**:
|
||||
1. **Foundation**: Environment setup, test infrastructure, shared utilities, database schema, configuration
|
||||
2. **Core**: Primary feature implementation (parallel-capable tasks grouped here)
|
||||
3. **Integration**: Wiring components together, cross-boundary connections
|
||||
4. **Validation**: E2E tests, edge cases, regression checks
|
||||
|
||||
**Rationale**: Foundation work unblocks everything else. Placing setup tasks early prevents downstream blocking. Core tasks can often run in parallel because foundation is already complete.
|
||||
|
||||
### 3. Task Integration & Progression
|
||||
|
||||
**Every task must**:
|
||||
- Build on previous outputs (no orphaned code)
|
||||
- Connect to the overall system (no hanging features)
|
||||
- Progress incrementally (no big jumps in complexity)
|
||||
- Respect architecture boundaries defined in design.md (Architecture Pattern & Boundary Map)
|
||||
- Honor interface contracts documented in design.md
|
||||
- Use major task summaries sparingly—omit detail bullets if the work is fully captured by child tasks.
|
||||
|
||||
**End with integration tasks** to wire everything together.
|
||||
|
||||
### 4. Dependency Declaration
|
||||
|
||||
**Default**: Sequential ordering handles most dependencies (task N depends on tasks before it).
|
||||
|
||||
**Explicit declaration required when**:
|
||||
- A task depends on a specific task in a different major-task group (cross-boundary)
|
||||
- The dependency is non-obvious from ordering alone
|
||||
- A task can skip ahead of its position (declared via `(P)`) but still needs specific prior work
|
||||
|
||||
**Format**: `_Depends: 1.2, 2.3_` — placed alongside `_Requirements:_` in task detail sections.
|
||||
|
||||
**Do not over-annotate**: If a task simply depends on the task directly before it, ordering alone is sufficient.
|
||||
|
||||
### 5. Boundary Scope
|
||||
|
||||
**Each task should declare its component boundary** using design.md component/module names:
|
||||
- `_Boundary: AuthService_` or `_Boundary: API Layer, UserRepository_`
|
||||
- Helps validate parallel safety: tasks with non-overlapping boundaries are parallel candidates
|
||||
- Helps agents understand scope: what to touch and what not to touch
|
||||
|
||||
**When to use**: Required for tasks marked `(P)` to validate parallel safety. Omit for sequential tasks where scope is obvious from the description.
|
||||
|
||||
**Boundary rule**:
|
||||
- Each executable task should stay within a single responsibility boundary
|
||||
- If work must cross boundaries, make it an explicit integration task rather than a normal implementation task
|
||||
- Do not hide cross-boundary coordination inside a task that appears local
|
||||
|
||||
### 6. Flexible Task Sizing
|
||||
|
||||
**Guidelines**:
|
||||
- **Major tasks**: As many sub-tasks as logically needed (group by cohesion)
|
||||
- **Sub-tasks**: 1-3 hours each, 3-10 details per sub-task
|
||||
- Balance between too granular and too broad
|
||||
|
||||
**Don't force arbitrary numbers** - let logical grouping determine structure.
|
||||
|
||||
### 7. Requirements Mapping
|
||||
|
||||
**End each task detail section with**:
|
||||
- `_Requirements: X.X, Y.Y_` listing **only numeric requirement IDs** (comma-separated). Never append descriptive text, parentheses, translations, or free-form labels.
|
||||
- For cross-cutting requirements, list every relevant requirement ID. All requirements MUST have numeric IDs in requirements.md. If an ID is missing, stop and correct requirements.md before generating tasks.
|
||||
- Reference components/interfaces from design.md when helpful (e.g., `_Contracts: AuthService API`)
|
||||
|
||||
### 7.5 Observable Completion
|
||||
|
||||
**Each executable task must include at least one detail bullet that describes the observable completed state**:
|
||||
- Phrase it as a deliverable, runtime behavior, persisted state, UI state, endpoint behavior, test result, or integration outcome
|
||||
- Avoid vague bullets like "implement support", "wire things up", or "handle logic" unless paired with a concrete observable result
|
||||
- Prefer making one detail bullet clearly answer: "What will be true when this task is done?"
|
||||
- Keep this within the existing task body; do not add extra bookkeeping fields
|
||||
|
||||
### 8. Code-Only Focus
|
||||
|
||||
**Include ONLY**:
|
||||
- Coding tasks (implementation)
|
||||
- Testing tasks (unit, integration, E2E)
|
||||
- Technical setup tasks (infrastructure, configuration)
|
||||
|
||||
**Exclude**:
|
||||
- Deployment tasks
|
||||
- Documentation tasks
|
||||
- User testing
|
||||
- Marketing/business activities
|
||||
|
||||
## Task Plan Review Gate
|
||||
|
||||
Before writing `tasks.md`, review the draft task plan and repair local issues until the plan passes or a true spec gap is discovered.
|
||||
|
||||
### Coverage Review
|
||||
|
||||
- Every requirement ID from `requirements.md` must appear in at least one task.
|
||||
- Every design component, interface/contract, integration point, runtime prerequisite, and validation concern from `design.md` must be represented by at least one task.
|
||||
- If coverage is missing because the task plan is incomplete, repair the draft tasks and review again.
|
||||
- If coverage cannot be added cleanly because requirements or design are ambiguous, contradictory, or underspecified, stop and return to the requirements/design phase instead of papering over the gap in `tasks.md`.
|
||||
|
||||
### Executability Review
|
||||
|
||||
- Every sub-task must be executable as written, usually within 1-3 hours.
|
||||
- Every sub-task must produce a verifiable deliverable (behavior, artifact, endpoint, UI state, config, migration, test, or integration result).
|
||||
- Every executable sub-task must include at least one detail bullet that states the observable completion condition.
|
||||
- Split tasks that combine multiple independently verifiable outcomes.
|
||||
- Split tasks that combine multiple responsibility boundaries unless they are explicit integration tasks.
|
||||
- If many tasks require broad `_Boundary:_` scopes or repeated cross-boundary coordination, stop and return to design or roadmap decomposition instead of forcing the spec through task generation.
|
||||
- Merge or collapse tasks that are too small, bookkeeping-only, or not meaningful execution units.
|
||||
- Make implicit prerequisites explicit as preceding tasks.
|
||||
- Re-check `_Depends:_`, `_Boundary:_`, and `(P)` markers after edits so concurrency claims still match the design boundaries and dependency graph.
|
||||
|
||||
### Review Loop
|
||||
|
||||
- Run the review gate on the draft task plan before writing `tasks.md`.
|
||||
- If issues are task-plan-local, repair the draft and re-run the review gate.
|
||||
- Keep the loop bounded: no more than 2 review-and-repair passes before escalating a real spec gap.
|
||||
- Write `tasks.md` only after the review gate passes.
|
||||
|
||||
### Optional Test Coverage Tasks
|
||||
|
||||
- When the design already guarantees functional coverage and rapid MVP delivery is prioritized, mark purely test-oriented follow-up work (e.g., baseline rendering/unit tests) as **optional** using the `- [ ]*` checkbox form.
|
||||
- Only apply the optional marker when the sub-task directly references acceptance criteria from requirements.md in its detail bullets.
|
||||
- Never mark implementation work or integration-critical verification as optional—reserve `*` for auxiliary/deferrable test coverage that can be revisited post-MVP.
|
||||
|
||||
## Task Hierarchy Rules
|
||||
|
||||
### Maximum 2 Levels
|
||||
- **Level 1**: Major tasks (1, 2, 3, 4...)
|
||||
- **Level 2**: Sub-tasks (1.1, 1.2, 2.1, 2.2...)
|
||||
- **No deeper nesting** (no 1.1.1)
|
||||
- If a major task would contain only a single actionable item, collapse the structure and promote the sub-task to the major level (e.g., replace `1.1` with `1.`).
|
||||
- When a major task exists purely as a container, keep the checkbox description concise and avoid duplicating detailed bullets—reserve specifics for its sub-tasks.
|
||||
|
||||
### Sequential Numbering
|
||||
- Major tasks MUST increment: 1, 2, 3, 4, 5...
|
||||
- Sub-tasks reset per major task: 1.1, 1.2, then 2.1, 2.2...
|
||||
- Never repeat major task numbers
|
||||
|
||||
### Parallel Analysis (default)
|
||||
- Assume parallel analysis is enabled unless explicitly disabled (e.g. `--sequential` flag).
|
||||
- `(P)` means: this task has no dependency on its immediately preceding peers and can run concurrently with them.
|
||||
- Identify tasks that can run concurrently when **all** conditions hold:
|
||||
- No data dependency on other pending tasks
|
||||
- No shared file or resource contention
|
||||
- No prerequisite review/approval from another task
|
||||
- `_Boundary:_` annotations confirm non-overlapping component scopes
|
||||
- Foundation-phase tasks (see Task Ordering Principle) are rarely `(P)` — they establish shared prerequisites.
|
||||
- Core-phase tasks are the primary candidates for `(P)` since foundation is already complete.
|
||||
- Validate that identified parallel tasks operate within separate boundaries defined in the Architecture Pattern & Boundary Map.
|
||||
- Confirm API/event contracts from design.md do not overlap in ways that cause conflicts.
|
||||
- `(P)` tasks with cross-boundary dependencies must declare `_Depends: X.X_` explicitly.
|
||||
- Append `(P)` immediately after the task number for each parallel-capable task:
|
||||
- Example: `- [ ] 2.1 (P) Build background worker`
|
||||
- Apply to both major tasks and sub-tasks when appropriate.
|
||||
- If sequential mode is requested, omit `(P)` markers entirely.
|
||||
- Group parallel tasks logically (same parent when possible) and highlight any ordering caveats in detail bullets.
|
||||
- Explicitly call out dependencies that prevent `(P)` even when tasks look similar.
|
||||
|
||||
### Checkbox Format
|
||||
```markdown
|
||||
- [ ] 1. Foundation: environment and test infrastructure setup
|
||||
- [ ] 1.1 Sub-task description
|
||||
- Detail item 1
|
||||
- Detail item 2
|
||||
- Observable completion condition
|
||||
- _Requirements: X.X_
|
||||
|
||||
- [ ] 2. Core feature A
|
||||
- [ ] 2.1 (P) Sub-task description
|
||||
- Detail items...
|
||||
- Observable completion condition
|
||||
- _Requirements: Y.Y_
|
||||
- _Boundary: AuthService_
|
||||
|
||||
- [ ] 2.2 (P) Sub-task description
|
||||
- Detail items...
|
||||
- Observable completion condition
|
||||
- _Requirements: Z.Z_
|
||||
- _Boundary: UserRepository_
|
||||
|
||||
- [ ] 3. Integration and wiring
|
||||
- [ ] 3.1 Sub-task description
|
||||
- Detail items...
|
||||
- Observable completion condition
|
||||
- _Depends: 2.1, 2.2_
|
||||
- _Requirements: W.W_
|
||||
```
|
||||
|
||||
## Requirements Coverage
|
||||
|
||||
**Mandatory Check**:
|
||||
- ALL requirements from requirements.md MUST be covered
|
||||
- Cross-reference every requirement ID with task mappings
|
||||
- If gaps found: Return to requirements or design phase
|
||||
- No requirement should be left without corresponding tasks
|
||||
|
||||
Use `N.M`-style numeric requirement IDs where `N` is the top-level requirement number from requirements.md (for example, Requirement 1 → 1.1, 1.2; Requirement 2 → 2.1, 2.2), and `M` is a local index within that requirement group.
|
||||
|
||||
Document any intentionally deferred requirements with rationale.
|
||||
@@ -0,0 +1,41 @@
|
||||
# Parallel Task Analysis Rules
|
||||
|
||||
## Purpose
|
||||
Provide a consistent way to identify implementation tasks that can be safely executed in parallel while generating `tasks.md`.
|
||||
|
||||
## Relationship to Task Ordering
|
||||
|
||||
`(P)` means: this task has no dependency on its immediately preceding peers and can run concurrently with them. The Task Ordering Principle (see tasks-generation.md) ensures Foundation-phase tasks run first, making Core-phase tasks the primary `(P)` candidates.
|
||||
|
||||
## When to Consider Tasks Parallel
|
||||
Only mark a task as parallel-capable when **all** of the following are true:
|
||||
|
||||
1. **No data dependency** on pending tasks.
|
||||
2. **No conflicting files or shared mutable resources** are touched.
|
||||
3. **No prerequisite review/approval** from another task is required beforehand.
|
||||
4. **Foundation work complete**: Environment/setup work needed by this task is already satisfied by earlier Foundation-phase tasks.
|
||||
5. **Non-overlapping boundaries**: `_Boundary:_` annotations confirm tasks operate on separate components.
|
||||
|
||||
## Marking Convention
|
||||
- Append `(P)` immediately after the numeric identifier for each qualifying task.
|
||||
- Example: `- [ ] 2.1 (P) Build background worker for emails`
|
||||
- Apply `(P)` to both major tasks and sub-tasks when appropriate.
|
||||
- If sequential execution is requested (e.g. via `--sequential` flag), omit `(P)` markers entirely.
|
||||
- Keep `(P)` **outside** of checkbox brackets to avoid confusion with completion state.
|
||||
|
||||
## Grouping & Ordering Guidelines
|
||||
- Group parallel tasks under the same parent whenever the work belongs to the same theme.
|
||||
- List obvious prerequisites or caveats in the detail bullets (e.g., "Requires schema migration from 1.2").
|
||||
- When two tasks look similar but are not parallel-safe, call out the blocking dependency explicitly.
|
||||
- Skip marking container-only major tasks (those without their own actionable detail bullets) with `(P)`—evaluate parallel execution at the sub-task level instead.
|
||||
|
||||
## Quality Checklist
|
||||
Before marking a task with `(P)`, ensure you have:
|
||||
|
||||
- Verified that running this task concurrently will not create merge or deployment conflicts.
|
||||
- Confirmed `_Boundary:_` annotations show non-overlapping component scopes.
|
||||
- Captured any shared state expectations in the detail bullets.
|
||||
- Confirmed that the implementation can be tested independently.
|
||||
- Added `_Depends: X.X_` if this `(P)` task still requires specific prior work from a different major-task group.
|
||||
|
||||
If any check fails, **do not** mark the task with `(P)` and explain the dependency in the task details.
|
||||
Reference in New Issue
Block a user