spec-kitty-cli 0.12.1__py3-none-any.whl
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.
- spec_kitty_cli-0.12.1.dist-info/METADATA +1767 -0
- spec_kitty_cli-0.12.1.dist-info/RECORD +242 -0
- spec_kitty_cli-0.12.1.dist-info/WHEEL +4 -0
- spec_kitty_cli-0.12.1.dist-info/entry_points.txt +2 -0
- spec_kitty_cli-0.12.1.dist-info/licenses/LICENSE +21 -0
- specify_cli/__init__.py +171 -0
- specify_cli/acceptance.py +627 -0
- specify_cli/agent_utils/README.md +157 -0
- specify_cli/agent_utils/__init__.py +9 -0
- specify_cli/agent_utils/status.py +356 -0
- specify_cli/cli/__init__.py +6 -0
- specify_cli/cli/commands/__init__.py +46 -0
- specify_cli/cli/commands/accept.py +189 -0
- specify_cli/cli/commands/agent/__init__.py +22 -0
- specify_cli/cli/commands/agent/config.py +382 -0
- specify_cli/cli/commands/agent/context.py +191 -0
- specify_cli/cli/commands/agent/feature.py +1057 -0
- specify_cli/cli/commands/agent/release.py +11 -0
- specify_cli/cli/commands/agent/tasks.py +1253 -0
- specify_cli/cli/commands/agent/workflow.py +801 -0
- specify_cli/cli/commands/context.py +246 -0
- specify_cli/cli/commands/dashboard.py +85 -0
- specify_cli/cli/commands/implement.py +973 -0
- specify_cli/cli/commands/init.py +827 -0
- specify_cli/cli/commands/init_help.py +62 -0
- specify_cli/cli/commands/merge.py +755 -0
- specify_cli/cli/commands/mission.py +240 -0
- specify_cli/cli/commands/ops.py +265 -0
- specify_cli/cli/commands/orchestrate.py +640 -0
- specify_cli/cli/commands/repair.py +175 -0
- specify_cli/cli/commands/research.py +165 -0
- specify_cli/cli/commands/sync.py +364 -0
- specify_cli/cli/commands/upgrade.py +249 -0
- specify_cli/cli/commands/validate_encoding.py +186 -0
- specify_cli/cli/commands/validate_tasks.py +186 -0
- specify_cli/cli/commands/verify.py +310 -0
- specify_cli/cli/helpers.py +123 -0
- specify_cli/cli/step_tracker.py +91 -0
- specify_cli/cli/ui.py +192 -0
- specify_cli/core/__init__.py +53 -0
- specify_cli/core/agent_context.py +311 -0
- specify_cli/core/config.py +96 -0
- specify_cli/core/context_validation.py +362 -0
- specify_cli/core/dependency_graph.py +351 -0
- specify_cli/core/git_ops.py +129 -0
- specify_cli/core/multi_parent_merge.py +323 -0
- specify_cli/core/paths.py +260 -0
- specify_cli/core/project_resolver.py +110 -0
- specify_cli/core/stale_detection.py +263 -0
- specify_cli/core/tool_checker.py +79 -0
- specify_cli/core/utils.py +43 -0
- specify_cli/core/vcs/__init__.py +114 -0
- specify_cli/core/vcs/detection.py +341 -0
- specify_cli/core/vcs/exceptions.py +85 -0
- specify_cli/core/vcs/git.py +1304 -0
- specify_cli/core/vcs/jujutsu.py +1208 -0
- specify_cli/core/vcs/protocol.py +285 -0
- specify_cli/core/vcs/types.py +249 -0
- specify_cli/core/version_checker.py +261 -0
- specify_cli/core/worktree.py +506 -0
- specify_cli/dashboard/__init__.py +28 -0
- specify_cli/dashboard/diagnostics.py +204 -0
- specify_cli/dashboard/handlers/__init__.py +17 -0
- specify_cli/dashboard/handlers/api.py +143 -0
- specify_cli/dashboard/handlers/base.py +65 -0
- specify_cli/dashboard/handlers/features.py +390 -0
- specify_cli/dashboard/handlers/router.py +81 -0
- specify_cli/dashboard/handlers/static.py +50 -0
- specify_cli/dashboard/lifecycle.py +541 -0
- specify_cli/dashboard/scanner.py +437 -0
- specify_cli/dashboard/server.py +123 -0
- specify_cli/dashboard/static/dashboard/dashboard.css +722 -0
- specify_cli/dashboard/static/dashboard/dashboard.js +1424 -0
- specify_cli/dashboard/static/spec-kitty.png +0 -0
- specify_cli/dashboard/templates/__init__.py +36 -0
- specify_cli/dashboard/templates/index.html +258 -0
- specify_cli/doc_generators.py +621 -0
- specify_cli/doc_state.py +408 -0
- specify_cli/frontmatter.py +384 -0
- specify_cli/gap_analysis.py +915 -0
- specify_cli/gitignore_manager.py +300 -0
- specify_cli/guards.py +145 -0
- specify_cli/legacy_detector.py +83 -0
- specify_cli/manifest.py +286 -0
- specify_cli/merge/__init__.py +63 -0
- specify_cli/merge/executor.py +653 -0
- specify_cli/merge/forecast.py +215 -0
- specify_cli/merge/ordering.py +126 -0
- specify_cli/merge/preflight.py +230 -0
- specify_cli/merge/state.py +185 -0
- specify_cli/merge/status_resolver.py +354 -0
- specify_cli/mission.py +654 -0
- specify_cli/missions/documentation/command-templates/implement.md +309 -0
- specify_cli/missions/documentation/command-templates/plan.md +275 -0
- specify_cli/missions/documentation/command-templates/review.md +344 -0
- specify_cli/missions/documentation/command-templates/specify.md +206 -0
- specify_cli/missions/documentation/command-templates/tasks.md +189 -0
- specify_cli/missions/documentation/mission.yaml +113 -0
- specify_cli/missions/documentation/templates/divio/explanation-template.md +192 -0
- specify_cli/missions/documentation/templates/divio/howto-template.md +168 -0
- specify_cli/missions/documentation/templates/divio/reference-template.md +179 -0
- specify_cli/missions/documentation/templates/divio/tutorial-template.md +146 -0
- specify_cli/missions/documentation/templates/generators/jsdoc.json.template +18 -0
- specify_cli/missions/documentation/templates/generators/sphinx-conf.py.template +36 -0
- specify_cli/missions/documentation/templates/plan-template.md +269 -0
- specify_cli/missions/documentation/templates/release-template.md +222 -0
- specify_cli/missions/documentation/templates/spec-template.md +172 -0
- specify_cli/missions/documentation/templates/task-prompt-template.md +140 -0
- specify_cli/missions/documentation/templates/tasks-template.md +159 -0
- specify_cli/missions/research/command-templates/merge.md +388 -0
- specify_cli/missions/research/command-templates/plan.md +125 -0
- specify_cli/missions/research/command-templates/review.md +144 -0
- specify_cli/missions/research/command-templates/tasks.md +225 -0
- specify_cli/missions/research/mission.yaml +115 -0
- specify_cli/missions/research/templates/data-model-template.md +33 -0
- specify_cli/missions/research/templates/plan-template.md +161 -0
- specify_cli/missions/research/templates/research/evidence-log.csv +18 -0
- specify_cli/missions/research/templates/research/source-register.csv +18 -0
- specify_cli/missions/research/templates/research-template.md +35 -0
- specify_cli/missions/research/templates/spec-template.md +64 -0
- specify_cli/missions/research/templates/task-prompt-template.md +148 -0
- specify_cli/missions/research/templates/tasks-template.md +114 -0
- specify_cli/missions/software-dev/command-templates/accept.md +75 -0
- specify_cli/missions/software-dev/command-templates/analyze.md +183 -0
- specify_cli/missions/software-dev/command-templates/checklist.md +286 -0
- specify_cli/missions/software-dev/command-templates/clarify.md +157 -0
- specify_cli/missions/software-dev/command-templates/constitution.md +432 -0
- specify_cli/missions/software-dev/command-templates/dashboard.md +101 -0
- specify_cli/missions/software-dev/command-templates/implement.md +41 -0
- specify_cli/missions/software-dev/command-templates/merge.md +383 -0
- specify_cli/missions/software-dev/command-templates/plan.md +171 -0
- specify_cli/missions/software-dev/command-templates/review.md +32 -0
- specify_cli/missions/software-dev/command-templates/specify.md +321 -0
- specify_cli/missions/software-dev/command-templates/tasks.md +566 -0
- specify_cli/missions/software-dev/mission.yaml +100 -0
- specify_cli/missions/software-dev/templates/plan-template.md +132 -0
- specify_cli/missions/software-dev/templates/spec-template.md +116 -0
- specify_cli/missions/software-dev/templates/task-prompt-template.md +140 -0
- specify_cli/missions/software-dev/templates/tasks-template.md +159 -0
- specify_cli/orchestrator/__init__.py +75 -0
- specify_cli/orchestrator/agent_config.py +224 -0
- specify_cli/orchestrator/agents/__init__.py +170 -0
- specify_cli/orchestrator/agents/augment.py +112 -0
- specify_cli/orchestrator/agents/base.py +243 -0
- specify_cli/orchestrator/agents/claude.py +112 -0
- specify_cli/orchestrator/agents/codex.py +106 -0
- specify_cli/orchestrator/agents/copilot.py +137 -0
- specify_cli/orchestrator/agents/cursor.py +139 -0
- specify_cli/orchestrator/agents/gemini.py +115 -0
- specify_cli/orchestrator/agents/kilocode.py +94 -0
- specify_cli/orchestrator/agents/opencode.py +132 -0
- specify_cli/orchestrator/agents/qwen.py +96 -0
- specify_cli/orchestrator/config.py +455 -0
- specify_cli/orchestrator/executor.py +642 -0
- specify_cli/orchestrator/integration.py +1230 -0
- specify_cli/orchestrator/monitor.py +898 -0
- specify_cli/orchestrator/scheduler.py +832 -0
- specify_cli/orchestrator/state.py +508 -0
- specify_cli/orchestrator/testing/__init__.py +122 -0
- specify_cli/orchestrator/testing/availability.py +346 -0
- specify_cli/orchestrator/testing/fixtures.py +684 -0
- specify_cli/orchestrator/testing/paths.py +218 -0
- specify_cli/plan_validation.py +107 -0
- specify_cli/scripts/debug-dashboard-scan.py +61 -0
- specify_cli/scripts/tasks/acceptance_support.py +695 -0
- specify_cli/scripts/tasks/task_helpers.py +506 -0
- specify_cli/scripts/tasks/tasks_cli.py +848 -0
- specify_cli/scripts/validate_encoding.py +180 -0
- specify_cli/task_metadata_validation.py +274 -0
- specify_cli/tasks_support.py +447 -0
- specify_cli/template/__init__.py +47 -0
- specify_cli/template/asset_generator.py +206 -0
- specify_cli/template/github_client.py +334 -0
- specify_cli/template/manager.py +193 -0
- specify_cli/template/renderer.py +99 -0
- specify_cli/templates/AGENTS.md +190 -0
- specify_cli/templates/POWERSHELL_SYNTAX.md +229 -0
- specify_cli/templates/agent-file-template.md +35 -0
- specify_cli/templates/checklist-template.md +42 -0
- specify_cli/templates/claudeignore-template +58 -0
- specify_cli/templates/command-templates/accept.md +141 -0
- specify_cli/templates/command-templates/analyze.md +253 -0
- specify_cli/templates/command-templates/checklist.md +352 -0
- specify_cli/templates/command-templates/clarify.md +224 -0
- specify_cli/templates/command-templates/constitution.md +432 -0
- specify_cli/templates/command-templates/dashboard.md +175 -0
- specify_cli/templates/command-templates/implement.md +190 -0
- specify_cli/templates/command-templates/merge.md +374 -0
- specify_cli/templates/command-templates/plan.md +171 -0
- specify_cli/templates/command-templates/research.md +88 -0
- specify_cli/templates/command-templates/review.md +510 -0
- specify_cli/templates/command-templates/specify.md +321 -0
- specify_cli/templates/command-templates/status.md +92 -0
- specify_cli/templates/command-templates/tasks.md +199 -0
- specify_cli/templates/git-hooks/pre-commit +22 -0
- specify_cli/templates/git-hooks/pre-commit-agent-check +37 -0
- specify_cli/templates/git-hooks/pre-commit-encoding-check +142 -0
- specify_cli/templates/plan-template.md +108 -0
- specify_cli/templates/spec-template.md +118 -0
- specify_cli/templates/task-prompt-template.md +165 -0
- specify_cli/templates/tasks-template.md +161 -0
- specify_cli/templates/vscode-settings.json +13 -0
- specify_cli/text_sanitization.py +225 -0
- specify_cli/upgrade/__init__.py +18 -0
- specify_cli/upgrade/detector.py +239 -0
- specify_cli/upgrade/metadata.py +182 -0
- specify_cli/upgrade/migrations/__init__.py +65 -0
- specify_cli/upgrade/migrations/base.py +80 -0
- specify_cli/upgrade/migrations/m_0_10_0_python_only.py +359 -0
- specify_cli/upgrade/migrations/m_0_10_12_constitution_cleanup.py +99 -0
- specify_cli/upgrade/migrations/m_0_10_14_update_implement_slash_command.py +176 -0
- specify_cli/upgrade/migrations/m_0_10_1_populate_slash_commands.py +174 -0
- specify_cli/upgrade/migrations/m_0_10_2_update_slash_commands.py +172 -0
- specify_cli/upgrade/migrations/m_0_10_6_workflow_simplification.py +174 -0
- specify_cli/upgrade/migrations/m_0_10_8_fix_memory_structure.py +252 -0
- specify_cli/upgrade/migrations/m_0_10_9_repair_templates.py +168 -0
- specify_cli/upgrade/migrations/m_0_11_0_workspace_per_wp.py +182 -0
- specify_cli/upgrade/migrations/m_0_11_1_improved_workflow_templates.py +173 -0
- specify_cli/upgrade/migrations/m_0_11_1_update_implement_slash_command.py +160 -0
- specify_cli/upgrade/migrations/m_0_11_2_improved_workflow_templates.py +173 -0
- specify_cli/upgrade/migrations/m_0_11_3_workflow_agent_flag.py +114 -0
- specify_cli/upgrade/migrations/m_0_12_0_documentation_mission.py +155 -0
- specify_cli/upgrade/migrations/m_0_12_1_remove_kitty_specs_from_gitignore.py +183 -0
- specify_cli/upgrade/migrations/m_0_2_0_specify_to_kittify.py +80 -0
- specify_cli/upgrade/migrations/m_0_4_8_gitignore_agents.py +118 -0
- specify_cli/upgrade/migrations/m_0_5_0_encoding_hooks.py +141 -0
- specify_cli/upgrade/migrations/m_0_6_5_commands_rename.py +169 -0
- specify_cli/upgrade/migrations/m_0_6_7_ensure_missions.py +228 -0
- specify_cli/upgrade/migrations/m_0_7_2_worktree_commands_dedup.py +89 -0
- specify_cli/upgrade/migrations/m_0_7_3_update_scripts.py +114 -0
- specify_cli/upgrade/migrations/m_0_8_0_remove_active_mission.py +82 -0
- specify_cli/upgrade/migrations/m_0_8_0_worktree_agents_symlink.py +148 -0
- specify_cli/upgrade/migrations/m_0_9_0_frontmatter_only_lanes.py +346 -0
- specify_cli/upgrade/migrations/m_0_9_1_complete_lane_migration.py +656 -0
- specify_cli/upgrade/migrations/m_0_9_2_research_mission_templates.py +221 -0
- specify_cli/upgrade/registry.py +121 -0
- specify_cli/upgrade/runner.py +284 -0
- specify_cli/validators/__init__.py +14 -0
- specify_cli/validators/paths.py +154 -0
- specify_cli/validators/research.py +428 -0
- specify_cli/verify_enhanced.py +270 -0
- specify_cli/workspace_context.py +224 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
work_package_id: "WPxx"
|
|
3
|
+
subtasks:
|
|
4
|
+
- "Txxx"
|
|
5
|
+
title: "Replace with work package title"
|
|
6
|
+
phase: "Phase N - Replace with phase name"
|
|
7
|
+
lane: "planned" # DO NOT EDIT - use: spec-kitty agent tasks move-task <WPID> --to <lane>
|
|
8
|
+
assignee: "" # Optional friendly name when in doing/for_review
|
|
9
|
+
agent: "" # CLI agent identifier (claude, codex, etc.)
|
|
10
|
+
shell_pid: "" # PID captured when the task moved to the current lane
|
|
11
|
+
review_status: "" # empty | has_feedback | acknowledged (populated by reviewers/implementers)
|
|
12
|
+
reviewed_by: "" # Agent ID of the reviewer (if reviewed)
|
|
13
|
+
history:
|
|
14
|
+
- timestamp: "{{TIMESTAMP}}"
|
|
15
|
+
lane: "planned"
|
|
16
|
+
agent: "system"
|
|
17
|
+
shell_pid: ""
|
|
18
|
+
action: "Prompt generated via /spec-kitty.tasks"
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Research Work Package: {{work_package_id}} – {{title}}
|
|
22
|
+
|
|
23
|
+
## Review Feedback Status
|
|
24
|
+
|
|
25
|
+
**Read this first if you are working on this research task!**
|
|
26
|
+
|
|
27
|
+
- **Has review feedback?**: Check the `review_status` field above. If it says `has_feedback`, scroll to the **Review Feedback** section immediately (right below this notice).
|
|
28
|
+
- **You must address all feedback** before your work is complete. Feedback items are your research TODO list.
|
|
29
|
+
- **Mark as acknowledged**: When you understand the feedback and begin addressing it, update `review_status: acknowledged` in the frontmatter.
|
|
30
|
+
- **Report progress**: As you address each feedback item, update the Activity Log explaining what you changed.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Review Feedback
|
|
35
|
+
|
|
36
|
+
> **Populated by `/spec-kitty.review`** – Reviewers add detailed feedback here when research needs revision. Each item must be addressed before returning for re-review.
|
|
37
|
+
|
|
38
|
+
*[This section is empty initially. Reviewers will populate it if the work is returned from review. If you see feedback here, treat each item as a must-do before completion.]*
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Markdown Formatting
|
|
43
|
+
Wrap HTML/XML tags in backticks: `` `<div>` ``, `` `<script>` ``
|
|
44
|
+
Use language identifiers in code blocks: ````python`, ````bash`
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Research Objectives & Success Criteria
|
|
49
|
+
|
|
50
|
+
- Summarize the exact outcomes that mark this research work package complete.
|
|
51
|
+
- Call out key acceptance criteria or quality metrics (e.g., minimum sources, confidence thresholds).
|
|
52
|
+
|
|
53
|
+
## Context & Methodology
|
|
54
|
+
|
|
55
|
+
- Reference prerequisite work and related documents.
|
|
56
|
+
- Link to supporting specs: `.kittify/memory/constitution.md`, `kitty-specs/.../plan.md` (methodology), `kitty-specs/.../spec.md` (research question), `research.md`, `data-model.md`.
|
|
57
|
+
- Highlight methodological constraints or quality requirements.
|
|
58
|
+
|
|
59
|
+
## Evidence Tracking Requirements
|
|
60
|
+
|
|
61
|
+
- **Source Register**: All sources MUST be recorded in `research/source-register.csv`
|
|
62
|
+
- **Evidence Log**: All findings MUST be recorded in `research/evidence-log.csv`
|
|
63
|
+
- **Citations**: Every claim must link to evidence rows
|
|
64
|
+
|
|
65
|
+
## Subtasks & Detailed Guidance
|
|
66
|
+
|
|
67
|
+
### Subtask TXXX – Replace with summary
|
|
68
|
+
- **Purpose**: Explain why this research subtask exists.
|
|
69
|
+
- **Steps**: Detailed, actionable instructions for conducting research.
|
|
70
|
+
- **Sources**: Types of sources to search (academic, industry, gray literature).
|
|
71
|
+
- **Output**: What artifact to update (source-register.csv, evidence-log.csv, findings.md).
|
|
72
|
+
- **Parallel?**: Note if this can run alongside others (e.g., different databases).
|
|
73
|
+
- **Quality Criteria**: Minimum requirements for this subtask.
|
|
74
|
+
|
|
75
|
+
### Subtask TYYY – Replace with summary
|
|
76
|
+
- Repeat the structure above for every included `Txxx` entry.
|
|
77
|
+
|
|
78
|
+
## Quality & Validation
|
|
79
|
+
|
|
80
|
+
- Specify minimum source requirements.
|
|
81
|
+
- Define confidence level thresholds.
|
|
82
|
+
- Document methodology adherence checkpoints.
|
|
83
|
+
|
|
84
|
+
## Risks & Mitigations
|
|
85
|
+
|
|
86
|
+
- List known pitfalls (bias, incomplete coverage, contradictory findings).
|
|
87
|
+
- Provide mitigation strategies.
|
|
88
|
+
|
|
89
|
+
## Review Guidance
|
|
90
|
+
|
|
91
|
+
- Key acceptance checkpoints for `/spec-kitty.review`.
|
|
92
|
+
- Methodology adherence verification points.
|
|
93
|
+
- Any context reviewers should consider.
|
|
94
|
+
|
|
95
|
+
## Activity Log
|
|
96
|
+
|
|
97
|
+
> **CRITICAL**: Activity log entries MUST be in chronological order (oldest first, newest last).
|
|
98
|
+
|
|
99
|
+
### How to Add Activity Log Entries
|
|
100
|
+
|
|
101
|
+
**When adding an entry**:
|
|
102
|
+
1. Scroll to the bottom of this file (Activity Log section below "Valid lanes")
|
|
103
|
+
2. **APPEND the new entry at the END** (do NOT prepend or insert in middle)
|
|
104
|
+
3. Use exact format: `- YYYY-MM-DDTHH:MM:SSZ – agent_id – lane=<lane> – <action>`
|
|
105
|
+
4. Timestamp MUST be current time in UTC (check with `date -u "+%Y-%m-%dT%H:%M:%SZ"`)
|
|
106
|
+
5. Lane MUST match the frontmatter `lane:` field exactly
|
|
107
|
+
6. Agent ID should identify who made the change (claude-sonnet-4-5, codex, etc.)
|
|
108
|
+
|
|
109
|
+
**Format**:
|
|
110
|
+
```
|
|
111
|
+
- YYYY-MM-DDTHH:MM:SSZ – <agent_id> – lane=<lane> – <brief action description>
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Example (correct chronological order)**:
|
|
115
|
+
```
|
|
116
|
+
- 2026-01-12T10:00:00Z – system – lane=planned – Prompt created
|
|
117
|
+
- 2026-01-12T10:30:00Z – claude – lane=doing – Started literature search
|
|
118
|
+
- 2026-01-12T11:00:00Z – claude – lane=for_review – Research complete, ready for review
|
|
119
|
+
- 2026-01-12T11:30:00Z – codex – lane=done – Review passed, findings validated <- LATEST (at bottom)
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**Common mistakes (DO NOT DO THIS)**:
|
|
123
|
+
- Adding new entry at the top (breaks chronological order)
|
|
124
|
+
- Using future timestamps (causes acceptance validation to fail)
|
|
125
|
+
- Lane mismatch: frontmatter says `lane: "done"` but log entry says `lane=doing`
|
|
126
|
+
- Inserting in middle instead of appending to end
|
|
127
|
+
|
|
128
|
+
**Why this matters**: The acceptance system reads the LAST activity log entry as the current state. If entries are out of order, acceptance will fail even when the work is complete.
|
|
129
|
+
|
|
130
|
+
**Initial entry**:
|
|
131
|
+
- {{TIMESTAMP}} – system – lane=planned – Prompt created.
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
### Updating Lane Status
|
|
136
|
+
|
|
137
|
+
To change a work package's lane, either:
|
|
138
|
+
|
|
139
|
+
1. **Edit directly**: Change the `lane:` field in frontmatter AND append activity log entry (at the end)
|
|
140
|
+
2. **Use CLI**: `spec-kitty agent tasks move-task <WPID> --to <lane> --note "message"` (recommended)
|
|
141
|
+
|
|
142
|
+
The CLI command updates both frontmatter and activity log automatically.
|
|
143
|
+
|
|
144
|
+
**Valid lanes**: `planned`, `doing`, `for_review`, `done`
|
|
145
|
+
|
|
146
|
+
### File Structure
|
|
147
|
+
|
|
148
|
+
All WP files live in a flat `tasks/` directory. The lane is determined by the `lane:` frontmatter field, not the directory location.
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Work package task list template for research methodology execution"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Work Packages: [RESEARCH QUESTION]
|
|
6
|
+
|
|
7
|
+
**Inputs**: Research documents from `/kitty-specs/[###-research]/`
|
|
8
|
+
**Prerequisites**: plan.md (methodology), spec.md (research question), research.md (background), data-model.md, quickstart.md
|
|
9
|
+
|
|
10
|
+
**Evidence Tracking**: All sources MUST be recorded in `research/source-register.csv` and findings in `research/evidence-log.csv`.
|
|
11
|
+
|
|
12
|
+
**Organization**: Research work packages organized by methodology phase. Each work package must be independently deliverable and testable (e.g., literature search complete before analysis).
|
|
13
|
+
|
|
14
|
+
## Subtask Format: `[Txxx] [P?] Description`
|
|
15
|
+
- **[P]** indicates the subtask can proceed in parallel (different sources/analysts).
|
|
16
|
+
- Always reference the file or artifact impacted (e.g., `research/evidence-log.csv`).
|
|
17
|
+
- Use research terminology: phases, findings, synthesis, methodology.
|
|
18
|
+
|
|
19
|
+
## Path Conventions
|
|
20
|
+
- **Workspace**: `research/`
|
|
21
|
+
- **Data**: `data/`
|
|
22
|
+
- **Deliverables**: `findings/`
|
|
23
|
+
- Adjust additional paths to match mission.yaml definitions.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Work Package WP01: Literature Search & Source Collection (Priority: P1) 🎯 Foundation
|
|
28
|
+
|
|
29
|
+
**Goal**: Identify and collect all relevant sources for the research question.
|
|
30
|
+
**Independent Test**: `research/source-register.csv` contains the minimum required high-quality sources with relevance ratings.
|
|
31
|
+
**Prompt**: `/tasks/WP01-literature-search.md`
|
|
32
|
+
|
|
33
|
+
### Included Subtasks
|
|
34
|
+
- [ ] T001 Define search keywords and inclusion/exclusion criteria
|
|
35
|
+
- [ ] T002 [P] Search academic database 1 (IEEE, PubMed, arXiv, etc.)
|
|
36
|
+
- [ ] T003 [P] Search academic database 2
|
|
37
|
+
- [ ] T004 [P] Search gray literature and industry sources
|
|
38
|
+
- [ ] T005 Screen collected sources for relevance
|
|
39
|
+
- [ ] T006 Populate source-register.csv with all candidate sources
|
|
40
|
+
- [ ] T007 Prioritize sources by relevance rating and status
|
|
41
|
+
|
|
42
|
+
### Implementation Notes
|
|
43
|
+
- Document search queries and filters.
|
|
44
|
+
- Capture DOIs/URLs and access dates in the source register.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Work Package WP02: Source Review & Evidence Extraction (Priority: P1)
|
|
49
|
+
|
|
50
|
+
**Goal**: Review prioritized sources and extract key findings.
|
|
51
|
+
**Independent Test**: `research/evidence-log.csv` contains findings from all high-relevance sources with confidence levels.
|
|
52
|
+
**Prompt**: `/tasks/WP02-source-review.md`
|
|
53
|
+
|
|
54
|
+
### Included Subtasks
|
|
55
|
+
- [ ] T008 [P] Review high-relevance sources (parallelizable by researcher/source)
|
|
56
|
+
- [ ] T009 Extract key findings into evidence-log.csv
|
|
57
|
+
- [ ] T010 Assign confidence levels to findings
|
|
58
|
+
- [ ] T011 Document limitations and caveats in notes column
|
|
59
|
+
- [ ] T012 Identify patterns/themes emerging from evidence
|
|
60
|
+
|
|
61
|
+
### Implementation Notes
|
|
62
|
+
- Reference source IDs from source-register.csv within each evidence row.
|
|
63
|
+
- Flag contradictory findings for deeper analysis.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Work Package WP03: Analysis & Synthesis (Priority: P1)
|
|
68
|
+
|
|
69
|
+
**Goal**: Synthesize findings and answer the research question.
|
|
70
|
+
**Independent Test**: findings.md contains synthesized conclusions backed by citations.
|
|
71
|
+
**Prompt**: `/tasks/WP03-analysis-synthesis.md`
|
|
72
|
+
|
|
73
|
+
### Included Subtasks
|
|
74
|
+
- [ ] T013 Code findings by theme/category
|
|
75
|
+
- [ ] T014 Identify patterns across sources and confidence levels
|
|
76
|
+
- [ ] T015 Assess strength of evidence supporting each claim
|
|
77
|
+
- [ ] T016 Draw conclusions mapped to sub-questions
|
|
78
|
+
- [ ] T017 Document limitations and threats to validity
|
|
79
|
+
- [ ] T018 Write findings.md with synthesis and bibliography references
|
|
80
|
+
|
|
81
|
+
### Implementation Notes
|
|
82
|
+
- Link every conclusion to evidence rows.
|
|
83
|
+
- Summarize methodology adherence and outstanding questions.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Additional Work Packages (Add as needed)
|
|
88
|
+
|
|
89
|
+
- **WP0X – Methodology Refinement**: Update plan.md, adjust phases, incorporate new data collection methods.
|
|
90
|
+
- **WP0Y – Publication Prep**: Create findings/report deliverables, prepare presentation, finalize bibliography.
|
|
91
|
+
- **WP0Z – Empirical Study Support**: For empirical work, capture experiment setup, data collection logs, statistical analysis.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Dependency & Execution Summary
|
|
96
|
+
|
|
97
|
+
- **Sequence**: WP01 (literature search) → WP02 (evidence extraction) → WP03 (analysis & synthesis) → WP0X (publication/polish).
|
|
98
|
+
- **Parallelization**: Database searches, source reviews, and evidence extraction subtasks can run concurrently when using clear ownership per source.
|
|
99
|
+
- **Quality Gates**: Do not advance phases until acceptance criteria for the current work package are satisfied.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Subtask Index (Reference)
|
|
104
|
+
|
|
105
|
+
| Subtask ID | Summary | Work Package | Priority | Parallel? |
|
|
106
|
+
|------------|---------|--------------|----------|-----------|
|
|
107
|
+
| T001 | Define search parameters | WP01 | P1 | No |
|
|
108
|
+
| T002 | Search academic database 1 | WP01 | P1 | Yes |
|
|
109
|
+
| T008 | Review high-relevance sources | WP02 | P1 | Yes |
|
|
110
|
+
| T013 | Code findings by theme | WP03 | P1 | No |
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
> Replace placeholder text with research-specific content. Keep this structure so downstream automation can parse work packages and maintain rigorous research workflows.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Validate feature readiness and guide final acceptance steps.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /spec-kitty.accept - Validate Feature Readiness
|
|
6
|
+
|
|
7
|
+
**Version**: 0.11.0+
|
|
8
|
+
**Purpose**: Validate all work packages are complete and feature is ready to merge.
|
|
9
|
+
|
|
10
|
+
## 📍 WORKING DIRECTORY: Run from MAIN repository
|
|
11
|
+
|
|
12
|
+
**IMPORTANT**: Accept runs from the main repository root, NOT from a WP worktree.
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# If you're in a worktree, return to main first:
|
|
16
|
+
cd $(git rev-parse --show-toplevel)
|
|
17
|
+
|
|
18
|
+
# Then run accept:
|
|
19
|
+
spec-kitty accept
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## User Input
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
$ARGUMENTS
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
You **MUST** consider the user input before proceeding (if not empty).
|
|
29
|
+
|
|
30
|
+
## Discovery (mandatory)
|
|
31
|
+
|
|
32
|
+
Before running the acceptance workflow, gather the following:
|
|
33
|
+
|
|
34
|
+
1. **Feature slug** (e.g., `005-awesome-thing`). If omitted, detect automatically.
|
|
35
|
+
2. **Acceptance mode**:
|
|
36
|
+
- `pr` when the feature will merge via hosted pull request.
|
|
37
|
+
- `local` when the feature will merge locally without a PR.
|
|
38
|
+
- `checklist` to run the readiness checklist without committing or producing merge instructions.
|
|
39
|
+
3. **Validation commands executed** (tests/builds). Collect each command verbatim; omit if none.
|
|
40
|
+
4. **Acceptance actor** (optional, defaults to the current agent name).
|
|
41
|
+
|
|
42
|
+
Ask one focused question per item and confirm the summary before continuing. End the discovery turn with `WAITING_FOR_ACCEPTANCE_INPUT` until all answers are provided.
|
|
43
|
+
|
|
44
|
+
## Execution Plan
|
|
45
|
+
|
|
46
|
+
1. Compile the acceptance options into an argument list:
|
|
47
|
+
- Always include `--actor "__AGENT__"`.
|
|
48
|
+
- Append `--feature "<slug>"` when the user supplied a slug.
|
|
49
|
+
- Append `--mode <mode>` (`pr`, `local`, or `checklist`).
|
|
50
|
+
- Append `--test "<command>"` for each validation command provided.
|
|
51
|
+
2. Run `{SCRIPT}` (the CLI wrapper) with the assembled arguments **and** `--json`.
|
|
52
|
+
3. Parse the JSON response. It contains:
|
|
53
|
+
- `summary.ok` (boolean) and other readiness details.
|
|
54
|
+
- `summary.outstanding` categories when issues remain.
|
|
55
|
+
- `instructions` (merge steps) and `cleanup_instructions`.
|
|
56
|
+
- `notes` (e.g., acceptance commit hash).
|
|
57
|
+
4. Present the outcome:
|
|
58
|
+
- If `summary.ok` is `false`, list each outstanding category with bullet points and advise the user to resolve them before retrying acceptance.
|
|
59
|
+
- If `summary.ok` is `true`, display:
|
|
60
|
+
- Acceptance timestamp, actor, and (if present) acceptance commit hash.
|
|
61
|
+
- Merge instructions and cleanup instructions as ordered steps.
|
|
62
|
+
- Validation commands executed (if any).
|
|
63
|
+
5. When the mode is `checklist`, make it clear no commits or merge instructions were produced.
|
|
64
|
+
|
|
65
|
+
## Output Requirements
|
|
66
|
+
|
|
67
|
+
- Summaries must be in plain text (no tables). Use short bullet lists for instructions.
|
|
68
|
+
- Surface outstanding issues before any congratulations or success messages.
|
|
69
|
+
- If the JSON payload includes warnings, surface them under an explicit **Warnings** section.
|
|
70
|
+
- Never fabricate results; only report what the JSON contains.
|
|
71
|
+
|
|
72
|
+
## Error Handling
|
|
73
|
+
|
|
74
|
+
- If the command fails or returns invalid JSON, report the failure and request user guidance (do not retry automatically).
|
|
75
|
+
- When outstanding issues exist, do **not** attempt to force acceptance—return the checklist and prompt the user to fix the blockers.
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Perform a non-destructive cross-artifact consistency and quality analysis across spec.md, plan.md, and tasks.md after task generation.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## User Input
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
$ARGUMENTS
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
You **MUST** consider the user input before proceeding (if not empty).
|
|
12
|
+
|
|
13
|
+
## Goal
|
|
14
|
+
|
|
15
|
+
Identify inconsistencies, duplications, ambiguities, and underspecified items across the three core artifacts (`spec.md`, `plan.md`, `tasks.md`) before implementation. This command MUST run only after `/tasks` has successfully produced a complete `tasks.md`.
|
|
16
|
+
|
|
17
|
+
## Operating Constraints
|
|
18
|
+
|
|
19
|
+
**STRICTLY READ-ONLY**: Do **not** modify any files. Output a structured analysis report. Offer an optional remediation plan (user must explicitly approve before any follow-up editing commands would be invoked manually).
|
|
20
|
+
|
|
21
|
+
**Constitution Authority**: The project constitution (`/memory/constitution.md`) is **non-negotiable** within this analysis scope. Constitution conflicts are automatically CRITICAL and require adjustment of the spec, plan, or tasks—not dilution, reinterpretation, or silent ignoring of the principle. If a principle itself needs to change, that must occur in a separate, explicit constitution update outside `/analyze`.
|
|
22
|
+
|
|
23
|
+
## Execution Steps
|
|
24
|
+
|
|
25
|
+
### 1. Initialize Analysis Context
|
|
26
|
+
|
|
27
|
+
Run `{SCRIPT}` once from repo root and parse JSON for FEATURE_DIR and AVAILABLE_DOCS. Derive absolute paths:
|
|
28
|
+
|
|
29
|
+
- SPEC = FEATURE_DIR/spec.md
|
|
30
|
+
- PLAN = FEATURE_DIR/plan.md
|
|
31
|
+
- TASKS = FEATURE_DIR/tasks.md
|
|
32
|
+
|
|
33
|
+
Abort with an error message if any required file is missing (instruct the user to run missing prerequisite command).
|
|
34
|
+
|
|
35
|
+
### 2. Load Artifacts (Progressive Disclosure)
|
|
36
|
+
|
|
37
|
+
Load only the minimal necessary context from each artifact:
|
|
38
|
+
|
|
39
|
+
**From spec.md:**
|
|
40
|
+
|
|
41
|
+
- Overview/Context
|
|
42
|
+
- Functional Requirements
|
|
43
|
+
- Non-Functional Requirements
|
|
44
|
+
- User Stories
|
|
45
|
+
- Edge Cases (if present)
|
|
46
|
+
|
|
47
|
+
**From plan.md:**
|
|
48
|
+
|
|
49
|
+
- Architecture/stack choices
|
|
50
|
+
- Data Model references
|
|
51
|
+
- Phases
|
|
52
|
+
- Technical constraints
|
|
53
|
+
|
|
54
|
+
**From tasks.md:**
|
|
55
|
+
|
|
56
|
+
- Task IDs
|
|
57
|
+
- Descriptions
|
|
58
|
+
- Phase grouping
|
|
59
|
+
- Parallel markers [P]
|
|
60
|
+
- Referenced file paths
|
|
61
|
+
|
|
62
|
+
**From constitution:**
|
|
63
|
+
|
|
64
|
+
- Load `/memory/constitution.md` for principle validation
|
|
65
|
+
|
|
66
|
+
### 3. Build Semantic Models
|
|
67
|
+
|
|
68
|
+
Create internal representations (do not include raw artifacts in output):
|
|
69
|
+
|
|
70
|
+
- **Requirements inventory**: Each functional + non-functional requirement with a stable key (derive slug based on imperative phrase; e.g., "User can upload file" → `user-can-upload-file`)
|
|
71
|
+
- **User story/action inventory**: Discrete user actions with acceptance criteria
|
|
72
|
+
- **Task coverage mapping**: Map each task to one or more requirements or stories (inference by keyword / explicit reference patterns like IDs or key phrases)
|
|
73
|
+
- **Constitution rule set**: Extract principle names and MUST/SHOULD normative statements
|
|
74
|
+
|
|
75
|
+
### 4. Detection Passes (Token-Efficient Analysis)
|
|
76
|
+
|
|
77
|
+
Focus on high-signal findings. Limit to 50 findings total; aggregate remainder in overflow summary.
|
|
78
|
+
|
|
79
|
+
#### A. Duplication Detection
|
|
80
|
+
|
|
81
|
+
- Identify near-duplicate requirements
|
|
82
|
+
- Mark lower-quality phrasing for consolidation
|
|
83
|
+
|
|
84
|
+
#### B. Ambiguity Detection
|
|
85
|
+
|
|
86
|
+
- Flag vague adjectives (fast, scalable, secure, intuitive, robust) lacking measurable criteria
|
|
87
|
+
- Flag unresolved placeholders (TODO, TKTK, ???, `<placeholder>`, etc.)
|
|
88
|
+
|
|
89
|
+
#### C. Underspecification
|
|
90
|
+
|
|
91
|
+
- Requirements with verbs but missing object or measurable outcome
|
|
92
|
+
- User stories missing acceptance criteria alignment
|
|
93
|
+
- Tasks referencing files or components not defined in spec/plan
|
|
94
|
+
|
|
95
|
+
#### D. Constitution Alignment
|
|
96
|
+
|
|
97
|
+
- Any requirement or plan element conflicting with a MUST principle
|
|
98
|
+
- Missing mandated sections or quality gates from constitution
|
|
99
|
+
|
|
100
|
+
#### E. Coverage Gaps
|
|
101
|
+
|
|
102
|
+
- Requirements with zero associated tasks
|
|
103
|
+
- Tasks with no mapped requirement/story
|
|
104
|
+
- Non-functional requirements not reflected in tasks (e.g., performance, security)
|
|
105
|
+
|
|
106
|
+
#### F. Inconsistency
|
|
107
|
+
|
|
108
|
+
- Terminology drift (same concept named differently across files)
|
|
109
|
+
- Data entities referenced in plan but absent in spec (or vice versa)
|
|
110
|
+
- Task ordering contradictions (e.g., integration tasks before foundational setup tasks without dependency note)
|
|
111
|
+
- Conflicting requirements (e.g., one requires Next.js while other specifies Vue)
|
|
112
|
+
|
|
113
|
+
### 5. Severity Assignment
|
|
114
|
+
|
|
115
|
+
Use this heuristic to prioritize findings:
|
|
116
|
+
|
|
117
|
+
- **CRITICAL**: Violates constitution MUST, missing core spec artifact, or requirement with zero coverage that blocks baseline functionality
|
|
118
|
+
- **HIGH**: Duplicate or conflicting requirement, ambiguous security/performance attribute, untestable acceptance criterion
|
|
119
|
+
- **MEDIUM**: Terminology drift, missing non-functional task coverage, underspecified edge case
|
|
120
|
+
- **LOW**: Style/wording improvements, minor redundancy not affecting execution order
|
|
121
|
+
|
|
122
|
+
### 6. Produce Compact Analysis Report
|
|
123
|
+
|
|
124
|
+
Output a Markdown report (no file writes) with the following structure:
|
|
125
|
+
|
|
126
|
+
## Specification Analysis Report
|
|
127
|
+
|
|
128
|
+
| ID | Category | Severity | Location(s) | Summary | Recommendation |
|
|
129
|
+
|----|----------|----------|-------------|---------|----------------|
|
|
130
|
+
| A1 | Duplication | HIGH | spec.md:L120-134 | Two similar requirements ... | Merge phrasing; keep clearer version |
|
|
131
|
+
|
|
132
|
+
(Add one row per finding; generate stable IDs prefixed by category initial.)
|
|
133
|
+
|
|
134
|
+
**Coverage Summary Table:**
|
|
135
|
+
|
|
136
|
+
| Requirement Key | Has Task? | Task IDs | Notes |
|
|
137
|
+
|-----------------|-----------|----------|-------|
|
|
138
|
+
|
|
139
|
+
**Constitution Alignment Issues:** (if any)
|
|
140
|
+
|
|
141
|
+
**Unmapped Tasks:** (if any)
|
|
142
|
+
|
|
143
|
+
**Metrics:**
|
|
144
|
+
|
|
145
|
+
- Total Requirements
|
|
146
|
+
- Total Tasks
|
|
147
|
+
- Coverage % (requirements with >=1 task)
|
|
148
|
+
- Ambiguity Count
|
|
149
|
+
- Duplication Count
|
|
150
|
+
- Critical Issues Count
|
|
151
|
+
|
|
152
|
+
### 7. Provide Next Actions
|
|
153
|
+
|
|
154
|
+
At end of report, output a concise Next Actions block:
|
|
155
|
+
|
|
156
|
+
- If CRITICAL issues exist: Recommend resolving before `/implement`
|
|
157
|
+
- If only LOW/MEDIUM: User may proceed, but provide improvement suggestions
|
|
158
|
+
- Provide explicit command suggestions: e.g., "Run /spec-kitty.specify with refinement", "Run /plan to adjust architecture", "Manually edit tasks.md to add coverage for 'performance-metrics'"
|
|
159
|
+
|
|
160
|
+
### 8. Offer Remediation
|
|
161
|
+
|
|
162
|
+
Ask the user: "Would you like me to suggest concrete remediation edits for the top N issues?" (Do NOT apply them automatically.)
|
|
163
|
+
|
|
164
|
+
## Operating Principles
|
|
165
|
+
|
|
166
|
+
### Context Efficiency
|
|
167
|
+
|
|
168
|
+
- **Minimal high-signal tokens**: Focus on actionable findings, not exhaustive documentation
|
|
169
|
+
- **Progressive disclosure**: Load artifacts incrementally; don't dump all content into analysis
|
|
170
|
+
- **Token-efficient output**: Limit findings table to 50 rows; summarize overflow
|
|
171
|
+
- **Deterministic results**: Rerunning without changes should produce consistent IDs and counts
|
|
172
|
+
|
|
173
|
+
### Analysis Guidelines
|
|
174
|
+
|
|
175
|
+
- **NEVER modify files** (this is read-only analysis)
|
|
176
|
+
- **NEVER hallucinate missing sections** (if absent, report them accurately)
|
|
177
|
+
- **Prioritize constitution violations** (these are always CRITICAL)
|
|
178
|
+
- **Use examples over exhaustive rules** (cite specific instances, not generic patterns)
|
|
179
|
+
- **Report zero issues gracefully** (emit success report with coverage statistics)
|
|
180
|
+
|
|
181
|
+
## Context
|
|
182
|
+
|
|
183
|
+
{ARGS}
|