blitz-cli 0.11.0__tar.gz → 0.12.0__tar.gz

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.
Files changed (96) hide show
  1. blitz_cli-0.12.0/.blitz/memory/playbook.md +87 -0
  2. {blitz_cli-0.11.0/blitz_cli/playbooks/scaffold → blitz_cli-0.12.0}/.blitz/scripts/bash/check-prerequisites.sh +0 -0
  3. {blitz_cli-0.11.0/blitz_cli/playbooks/scaffold → blitz_cli-0.12.0}/.blitz/scripts/bash/common.sh +0 -0
  4. {blitz_cli-0.11.0/blitz_cli/playbooks/scaffold → blitz_cli-0.12.0}/.blitz/scripts/bash/create-new-feature.sh +0 -0
  5. {blitz_cli-0.11.0/blitz_cli/playbooks/scaffold → blitz_cli-0.12.0}/.blitz/scripts/bash/setup-plan.sh +0 -0
  6. {blitz_cli-0.11.0/blitz_cli/playbooks/scaffold → blitz_cli-0.12.0}/.blitz/scripts/bash/setup-tasks.sh +0 -0
  7. blitz_cli-0.12.0/.blitz/templates/plan-template.md +113 -0
  8. blitz_cli-0.12.0/.blitz/templates/tasks-template.md +252 -0
  9. blitz_cli-0.12.0/.gitignore +23 -0
  10. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/PKG-INFO +5 -1
  11. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/README.md +4 -0
  12. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/__init__.py +1 -1
  13. blitz_cli-0.12.0/blitz_cli/_gitignore.py +149 -0
  14. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/cli.py +99 -3
  15. blitz_cli-0.12.0/blitz_cli/playbooks/scaffold/.blitz/scripts/bash/check-prerequisites.sh +195 -0
  16. blitz_cli-0.12.0/blitz_cli/playbooks/scaffold/.blitz/scripts/bash/common.sh +692 -0
  17. blitz_cli-0.12.0/blitz_cli/playbooks/scaffold/.blitz/scripts/bash/create-new-feature.sh +301 -0
  18. blitz_cli-0.12.0/blitz_cli/playbooks/scaffold/.blitz/scripts/bash/setup-plan.sh +83 -0
  19. blitz_cli-0.12.0/blitz_cli/playbooks/scaffold/.blitz/scripts/bash/setup-tasks.sh +91 -0
  20. blitz_cli-0.12.0/blitz_cli/playbooks/scaffold/.blitz/templates/spec-template.md +131 -0
  21. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/pyproject.toml +1 -1
  22. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/specs/001-cli-model-namespace/tasks.md +14 -14
  23. blitz_cli-0.12.0/specs/002-label-experimental-surfaces/checklists/requirements.md +36 -0
  24. blitz_cli-0.12.0/specs/002-label-experimental-surfaces/contracts/experimental-labels.md +104 -0
  25. blitz_cli-0.12.0/specs/002-label-experimental-surfaces/data-model.md +79 -0
  26. blitz_cli-0.12.0/specs/002-label-experimental-surfaces/plan.md +121 -0
  27. blitz_cli-0.12.0/specs/002-label-experimental-surfaces/quickstart.md +97 -0
  28. blitz_cli-0.12.0/specs/002-label-experimental-surfaces/research.md +56 -0
  29. blitz_cli-0.12.0/specs/002-label-experimental-surfaces/spec.md +117 -0
  30. blitz_cli-0.12.0/specs/002-label-experimental-surfaces/tasks.md +599 -0
  31. blitz_cli-0.12.0/specs/003-init-gitignore-rules/checklists/requirements.md +46 -0
  32. blitz_cli-0.12.0/specs/003-init-gitignore-rules/contracts/cli-output.md +77 -0
  33. blitz_cli-0.12.0/specs/003-init-gitignore-rules/contracts/ensure-rules.md +80 -0
  34. blitz_cli-0.12.0/specs/003-init-gitignore-rules/contracts/gitignore-block.md +112 -0
  35. blitz_cli-0.12.0/specs/003-init-gitignore-rules/data-model.md +126 -0
  36. blitz_cli-0.12.0/specs/003-init-gitignore-rules/plan.md +121 -0
  37. blitz_cli-0.12.0/specs/003-init-gitignore-rules/quickstart.md +188 -0
  38. blitz_cli-0.12.0/specs/003-init-gitignore-rules/research.md +190 -0
  39. blitz_cli-0.12.0/specs/003-init-gitignore-rules/spec.md +171 -0
  40. blitz_cli-0.12.0/specs/003-init-gitignore-rules/tasks.md +253 -0
  41. blitz_cli-0.12.0/tests/test_cli.py +199 -0
  42. blitz_cli-0.12.0/tests/test_gitignore.py +413 -0
  43. blitz_cli-0.11.0/.gitignore +0 -11
  44. blitz_cli-0.11.0/tests/test_cli.py +0 -71
  45. {blitz_cli-0.11.0/blitz_cli/playbooks/scaffold → blitz_cli-0.12.0}/.blitz/templates/spec-template.md +0 -0
  46. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/.github/workflows/homebrew.yml +0 -0
  47. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/.github/workflows/publish.yml +0 -0
  48. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/.mcp.json +0 -0
  49. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/LICENSE +0 -0
  50. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/_activity.py +0 -0
  51. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/_code_graph.py +0 -0
  52. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/_corpus.py +0 -0
  53. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/_dataset.py +0 -0
  54. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/_execute.py +0 -0
  55. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/_git.py +0 -0
  56. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/_make.py +0 -0
  57. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/_ontology.py +0 -0
  58. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/_playbooks.py +0 -0
  59. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/_redact.py +0 -0
  60. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/_scaffold.py +0 -0
  61. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/_tool_schemas.py +0 -0
  62. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/_train.py +0 -0
  63. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/playbooks/__init__.py +0 -0
  64. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/playbooks/commands/__init__.py +0 -0
  65. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/playbooks/commands/analyze.md +0 -0
  66. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/playbooks/commands/clarify.md +0 -0
  67. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/playbooks/commands/implement.md +0 -0
  68. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/playbooks/commands/plan.md +0 -0
  69. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/playbooks/commands/playbook.md +0 -0
  70. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/playbooks/commands/specify.md +0 -0
  71. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/playbooks/commands/tasks.md +0 -0
  72. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/playbooks/scaffold/.blitz/memory/playbook.md +0 -0
  73. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/playbooks/scaffold/.blitz/templates/plan-template.md +0 -0
  74. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/playbooks/scaffold/.blitz/templates/tasks-template.md +0 -0
  75. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/playbooks/workspace/__init__.py +0 -0
  76. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/playbooks/workspace/huddle.md +0 -0
  77. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/templates/__init__.py +0 -0
  78. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/templates/locker_room_Makefile.tmpl +0 -0
  79. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/templates/locker_room_README.md.tmpl +0 -0
  80. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/templates/locker_room_compose.yml.tmpl +0 -0
  81. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/blitz_cli/templates/workspace_playbook.md.tmpl +0 -0
  82. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/specs/001-cli-model-namespace/checklists/requirements.md +0 -0
  83. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/specs/001-cli-model-namespace/contracts/cli-commands.md +0 -0
  84. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/specs/001-cli-model-namespace/plan.md +0 -0
  85. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/specs/001-cli-model-namespace/quickstart.md +0 -0
  86. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/specs/001-cli-model-namespace/research.md +0 -0
  87. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/specs/001-cli-model-namespace/spec.md +0 -0
  88. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/tests/test_activity.py +0 -0
  89. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/tests/test_corpus.py +0 -0
  90. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/tests/test_execute.py +0 -0
  91. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/tests/test_make.py +0 -0
  92. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/tests/test_ontology.py +0 -0
  93. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/tests/test_playbooks.py +0 -0
  94. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/tests/test_redact.py +0 -0
  95. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/tests/test_scaffold.py +0 -0
  96. {blitz_cli-0.11.0 → blitz_cli-0.12.0}/tests/test_tool_schemas.py +0 -0
@@ -0,0 +1,87 @@
1
+ # blitz-cli Playbook
2
+
3
+ <!--
4
+ Sync Impact Report
5
+ - Version change: (template, unversioned) → 1.0.0
6
+ - Rationale (1.0.0): first governing version. This file was the unfilled upstream
7
+ template, so every Playbook Check against it passed vacuously — including the one
8
+ that should have caught a Claude Code attribution footer on a PR body.
9
+ - Scope: adopts the Conventions of the authoritative Blitz constitution
10
+ (`blitz/.blitz/memory/playbook.md` v1.2.0) verbatim. The five Core Principles of
11
+ that constitution are product-specific (boundary integrity, aiosql patterns, auth
12
+ coverage) and are deliberately NOT copied here — blitz-cli is a stdlib-plus-rich
13
+ CLI with no service boundaries or auth surface. Repo-specific principles are left
14
+ to be ratified when there is real evidence for them rather than invented to fill
15
+ template slots.
16
+ - Templates: `.blitz/templates/plan-template.md` ✅ compatible (Playbook Check reads
17
+ this file at runtime; no hardcoded principles to edit).
18
+ -->
19
+
20
+ ## Scope
21
+
22
+ Repo playbook for `blitz-cli`. The authoritative source for shared conventions is
23
+ the Blitz constitution at `blitz/.blitz/memory/playbook.md`; the workspace playbook
24
+ at `.blitz/memory/playbook.md` restates them for cross-repo work. This repo MAY
25
+ tighten these rules but MUST NOT loosen them.
26
+
27
+ ## Conventions
28
+
29
+ - **Commit hygiene:** commit messages MUST follow Conventional Commits
30
+ (`type(scope): summary`, e.g. `feat:`, `fix:`, `docs:`, `refactor:`, `chore:`; `!`
31
+ or a `BREAKING CHANGE:` footer marks a breaking change). Commit messages and PR
32
+ bodies MUST NOT carry a `Co-Authored-By` trailer or a Claude Code attribution
33
+ footer. This is about tool attribution, not one specific string: any
34
+ auto-generated "made with / generated by" footer is covered, whatever its
35
+ wording.
36
+ - **User-facing copy: no em dashes** (help strings, README prose, CLI output);
37
+ rewrite with periods or commas. Does not apply to code comments.
38
+ - **Docs describe present behavior, not change history**: no "renamed from", "used
39
+ to", "now supports", "previously". Change rationale belongs in the commit or PR;
40
+ design-rationale comments explaining why current code is shaped a certain way are
41
+ fine.
42
+ - **Anthropic is the mandated model provider** for new AI features.
43
+
44
+ ## Executor Routing (NON-NEGOTIABLE)
45
+
46
+ Evidence-based, from two failed `blitz model execute` runs on 2026-07-15:
47
+
48
+ - **A task is `[L]`-eligible only if its success criterion is "the file contains
49
+ this verbatim content".** Any task whose criterion is "a check passes" MUST NOT be
50
+ marked `[L]`: a retry can satisfy it by changing something other than the thing
51
+ under test. One such retry made a failing scope check pass by running
52
+ `git checkout -- .`, reverting the run's own work.
53
+ - **Exit 0 is not evidence of success.** Any local run MUST be verified against
54
+ `git diff` (expected files, plausible line delta, nothing out of scope) before its
55
+ result is believed. Both observed failure modes exited 0, and one of them also
56
+ passed a content grep while destroying the surrounding file.
57
+ - **`[L]` on edits to existing files is unproven.** The local model has regenerated
58
+ a whole file from scratch when asked to replace one anchored line. Prefer the
59
+ frontier agent for edits; a failed local task MUST stop the run for a human
60
+ decision rather than be silently taken over.
61
+ - **Executors MUST NOT run** `git checkout`, `git reset`, `git clean`, `git stash`,
62
+ or `git pull`. A task that cannot proceed fails loudly and leaves the tree as it
63
+ found it.
64
+
65
+ ## Quality Gates
66
+
67
+ - The test suite MUST pass before merge, and changes SHOULD be additive: a
68
+ pre-existing test that needs editing to accommodate a change is a signal the
69
+ change stopped being additive. Fix the code, not the test. Amending a test is
70
+ justified only when the test itself is provably wrong, and the justification
71
+ belongs in the PR.
72
+ - Behavior-preserving changes (labeling, docs, refactors) SHOULD be verified against
73
+ a baseline captured before the change, not merely asserted.
74
+
75
+ ## Governance
76
+
77
+ This playbook supersedes ad-hoc practice for this repo. Amendments MUST be made by
78
+ editing this file with a Sync Impact Report and a semantic version bump:
79
+
80
+ - **MAJOR** — backward-incompatible governance or principle removal/redefinition.
81
+ - **MINOR** — a new principle/section or materially expanded guidance.
82
+ - **PATCH** — clarifications, wording, and non-semantic refinements.
83
+
84
+ Shared conventions MUST stay in sync with the authoritative constitution; if it and
85
+ this file disagree, the authoritative constitution wins and this file is the bug.
86
+
87
+ **Version**: 1.0.0 | **Ratified**: 2026-07-15 | **Last Amended**: 2026-07-15
@@ -0,0 +1,113 @@
1
+ # Implementation Plan: [FEATURE]
2
+
3
+ **Branch**: `[###-feature-name]` | **Date**: [DATE] | **Spec**: [link]
4
+
5
+ **Input**: Feature specification from `/specs/[###-feature-name]/spec.md`
6
+
7
+ **Note**: This template is filled in by the `/plan` command; its definition describes the execution workflow.
8
+
9
+ ## Summary
10
+
11
+ [Extract from feature spec: primary requirement + technical approach from research]
12
+
13
+ ## Technical Context
14
+
15
+ <!--
16
+ ACTION REQUIRED: Replace the content in this section with the technical details
17
+ for the project. The structure here is presented in advisory capacity to guide
18
+ the iteration process.
19
+ -->
20
+
21
+ **Language/Version**: [e.g., Python 3.11, Swift 5.9, Rust 1.75 or NEEDS CLARIFICATION]
22
+
23
+ **Primary Dependencies**: [e.g., FastAPI, UIKit, LLVM or NEEDS CLARIFICATION]
24
+
25
+ **Storage**: [if applicable, e.g., PostgreSQL, CoreData, files or N/A]
26
+
27
+ **Testing**: [e.g., pytest, XCTest, cargo test or NEEDS CLARIFICATION]
28
+
29
+ **Target Platform**: [e.g., Linux server, iOS 15+, WASM or NEEDS CLARIFICATION]
30
+
31
+ **Project Type**: [e.g., library/cli/web-service/mobile-app/compiler/desktop-app or NEEDS CLARIFICATION]
32
+
33
+ **Performance Goals**: [domain-specific, e.g., 1000 req/s, 10k lines/sec, 60 fps or NEEDS CLARIFICATION]
34
+
35
+ **Constraints**: [domain-specific, e.g., <200ms p95, <100MB memory, offline-capable or NEEDS CLARIFICATION]
36
+
37
+ **Scale/Scope**: [domain-specific, e.g., 10k users, 1M LOC, 50 screens or NEEDS CLARIFICATION]
38
+
39
+ ## Playbook Check
40
+
41
+ *GATE: Must pass before Phase 0 research. Re-check after Phase 1 design.*
42
+
43
+ [Gates determined based on playbook file]
44
+
45
+ ## Project Structure
46
+
47
+ ### Documentation (this feature)
48
+
49
+ ```text
50
+ specs/[###-feature]/
51
+ ├── plan.md # This file (/plan command output)
52
+ ├── research.md # Phase 0 output (/plan command)
53
+ ├── data-model.md # Phase 1 output (/plan command)
54
+ ├── quickstart.md # Phase 1 output (/plan command)
55
+ ├── contracts/ # Phase 1 output (/plan command)
56
+ └── tasks.md # Phase 2 output (/tasks command - NOT created by /plan)
57
+ ```
58
+
59
+ ### Source Code (repository root)
60
+ <!--
61
+ ACTION REQUIRED: Replace the placeholder tree below with the concrete layout
62
+ for this feature. Delete unused options and expand the chosen structure with
63
+ real paths (e.g., apps/admin, packages/something). The delivered plan must
64
+ not include Option labels.
65
+ -->
66
+
67
+ ```text
68
+ # [REMOVE IF UNUSED] Option 1: Single project (DEFAULT)
69
+ src/
70
+ ├── models/
71
+ ├── services/
72
+ ├── cli/
73
+ └── lib/
74
+
75
+ tests/
76
+ ├── contract/
77
+ ├── integration/
78
+ └── unit/
79
+
80
+ # [REMOVE IF UNUSED] Option 2: Web application (when "frontend" + "backend" detected)
81
+ backend/
82
+ ├── src/
83
+ │ ├── models/
84
+ │ ├── services/
85
+ │ └── api/
86
+ └── tests/
87
+
88
+ frontend/
89
+ ├── src/
90
+ │ ├── components/
91
+ │ ├── pages/
92
+ │ └── services/
93
+ └── tests/
94
+
95
+ # [REMOVE IF UNUSED] Option 3: Mobile + API (when "iOS/Android" detected)
96
+ api/
97
+ └── [same as backend above]
98
+
99
+ ios/ or android/
100
+ └── [platform-specific structure: feature modules, UI flows, platform tests]
101
+ ```
102
+
103
+ **Structure Decision**: [Document the selected structure and reference the real
104
+ directories captured above]
105
+
106
+ ## Complexity Tracking
107
+
108
+ > **Fill ONLY if Playbook Check has violations that must be justified**
109
+
110
+ | Violation | Why Needed | Simpler Alternative Rejected Because |
111
+ |-----------|------------|-------------------------------------|
112
+ | [e.g., 4th project] | [current need] | [why 3 projects insufficient] |
113
+ | [e.g., Repository pattern] | [specific problem] | [why direct DB access insufficient] |
@@ -0,0 +1,252 @@
1
+ ---
2
+
3
+ description: "Task list template for feature implementation"
4
+ ---
5
+
6
+ # Tasks: [FEATURE NAME]
7
+
8
+ **Input**: Design documents from `/specs/[###-feature-name]/`
9
+
10
+ **Prerequisites**: plan.md (required), spec.md (required for user stories), research.md, data-model.md, contracts/
11
+
12
+ **Tests**: The examples below include test tasks. Tests are OPTIONAL - only include them if explicitly requested in the feature specification.
13
+
14
+ **Organization**: Tasks are grouped by user story to enable independent implementation and testing of each story.
15
+
16
+ ## Format: `[ID] [P?] [Story] Description`
17
+
18
+ - **[P]**: Can run in parallel (different files, no dependencies)
19
+ - **[Story]**: Which user story this task belongs to (e.g., US1, US2, US3)
20
+ - Include exact file paths in descriptions
21
+
22
+ ## Path Conventions
23
+
24
+ - **Single project**: `src/`, `tests/` at repository root
25
+ - **Web app**: `backend/src/`, `frontend/src/`
26
+ - **Mobile**: `api/src/`, `ios/src/` or `android/src/`
27
+ - Paths shown below assume single project - adjust based on plan.md structure
28
+
29
+ <!--
30
+ ============================================================================
31
+ IMPORTANT: The tasks below are SAMPLE TASKS for illustration purposes only.
32
+
33
+ The /tasks command MUST replace these with actual tasks based on:
34
+ - User stories from spec.md (with their priorities P1, P2, P3...)
35
+ - Feature requirements from plan.md
36
+ - Entities from data-model.md
37
+ - Endpoints from contracts/
38
+
39
+ Tasks MUST be organized by user story so each story can be:
40
+ - Implemented independently
41
+ - Tested independently
42
+ - Delivered as an MVP increment
43
+
44
+ DO NOT keep these sample tasks in the generated tasks.md file.
45
+ ============================================================================
46
+ -->
47
+
48
+ ## Phase 1: Setup (Shared Infrastructure)
49
+
50
+ **Purpose**: Project initialization and basic structure
51
+
52
+ - [ ] T001 Create project structure per implementation plan
53
+ - [ ] T002 Initialize [language] project with [framework] dependencies
54
+ - [ ] T003 [P] Configure linting and formatting tools
55
+
56
+ ---
57
+
58
+ ## Phase 2: Foundational (Blocking Prerequisites)
59
+
60
+ **Purpose**: Core infrastructure that MUST be complete before ANY user story can be implemented
61
+
62
+ **⚠️ CRITICAL**: No user story work can begin until this phase is complete
63
+
64
+ Examples of foundational tasks (adjust based on your project):
65
+
66
+ - [ ] T004 Setup database schema and migrations framework
67
+ - [ ] T005 [P] Implement authentication/authorization framework
68
+ - [ ] T006 [P] Setup API routing and middleware structure
69
+ - [ ] T007 Create base models/entities that all stories depend on
70
+ - [ ] T008 Configure error handling and logging infrastructure
71
+ - [ ] T009 Setup environment configuration management
72
+
73
+ **Checkpoint**: Foundation ready - user story implementation can now begin in parallel
74
+
75
+ ---
76
+
77
+ ## Phase 3: User Story 1 - [Title] (Priority: P1) 🎯 MVP
78
+
79
+ **Goal**: [Brief description of what this story delivers]
80
+
81
+ **Independent Test**: [How to verify this story works on its own]
82
+
83
+ ### Tests for User Story 1 (OPTIONAL - only if tests requested) ⚠️
84
+
85
+ > **NOTE: Write these tests FIRST, ensure they FAIL before implementation**
86
+
87
+ - [ ] T010 [P] [US1] Contract test for [endpoint] in tests/contract/test_[name].py
88
+ - [ ] T011 [P] [US1] Integration test for [user journey] in tests/integration/test_[name].py
89
+
90
+ ### Implementation for User Story 1
91
+
92
+ - [ ] T012 [P] [US1] Create [Entity1] model in src/models/[entity1].py
93
+ - [ ] T013 [P] [US1] Create [Entity2] model in src/models/[entity2].py
94
+ - [ ] T014 [US1] Implement [Service] in src/services/[service].py (depends on T012, T013)
95
+ - [ ] T015 [US1] Implement [endpoint/feature] in src/[location]/[file].py
96
+ - [ ] T016 [US1] Add validation and error handling
97
+ - [ ] T017 [US1] Add logging for user story 1 operations
98
+
99
+ **Checkpoint**: At this point, User Story 1 should be fully functional and testable independently
100
+
101
+ ---
102
+
103
+ ## Phase 4: User Story 2 - [Title] (Priority: P2)
104
+
105
+ **Goal**: [Brief description of what this story delivers]
106
+
107
+ **Independent Test**: [How to verify this story works on its own]
108
+
109
+ ### Tests for User Story 2 (OPTIONAL - only if tests requested) ⚠️
110
+
111
+ - [ ] T018 [P] [US2] Contract test for [endpoint] in tests/contract/test_[name].py
112
+ - [ ] T019 [P] [US2] Integration test for [user journey] in tests/integration/test_[name].py
113
+
114
+ ### Implementation for User Story 2
115
+
116
+ - [ ] T020 [P] [US2] Create [Entity] model in src/models/[entity].py
117
+ - [ ] T021 [US2] Implement [Service] in src/services/[service].py
118
+ - [ ] T022 [US2] Implement [endpoint/feature] in src/[location]/[file].py
119
+ - [ ] T023 [US2] Integrate with User Story 1 components (if needed)
120
+
121
+ **Checkpoint**: At this point, User Stories 1 AND 2 should both work independently
122
+
123
+ ---
124
+
125
+ ## Phase 5: User Story 3 - [Title] (Priority: P3)
126
+
127
+ **Goal**: [Brief description of what this story delivers]
128
+
129
+ **Independent Test**: [How to verify this story works on its own]
130
+
131
+ ### Tests for User Story 3 (OPTIONAL - only if tests requested) ⚠️
132
+
133
+ - [ ] T024 [P] [US3] Contract test for [endpoint] in tests/contract/test_[name].py
134
+ - [ ] T025 [P] [US3] Integration test for [user journey] in tests/integration/test_[name].py
135
+
136
+ ### Implementation for User Story 3
137
+
138
+ - [ ] T026 [P] [US3] Create [Entity] model in src/models/[entity].py
139
+ - [ ] T027 [US3] Implement [Service] in src/services/[service].py
140
+ - [ ] T028 [US3] Implement [endpoint/feature] in src/[location]/[file].py
141
+
142
+ **Checkpoint**: All user stories should now be independently functional
143
+
144
+ ---
145
+
146
+ [Add more user story phases as needed, following the same pattern]
147
+
148
+ ---
149
+
150
+ ## Phase N: Polish & Cross-Cutting Concerns
151
+
152
+ **Purpose**: Improvements that affect multiple user stories
153
+
154
+ - [ ] TXXX [P] Documentation updates in docs/
155
+ - [ ] TXXX Code cleanup and refactoring
156
+ - [ ] TXXX Performance optimization across all stories
157
+ - [ ] TXXX [P] Additional unit tests (if requested) in tests/unit/
158
+ - [ ] TXXX Security hardening
159
+ - [ ] TXXX Run quickstart.md validation
160
+
161
+ ---
162
+
163
+ ## Dependencies & Execution Order
164
+
165
+ ### Phase Dependencies
166
+
167
+ - **Setup (Phase 1)**: No dependencies - can start immediately
168
+ - **Foundational (Phase 2)**: Depends on Setup completion - BLOCKS all user stories
169
+ - **User Stories (Phase 3+)**: All depend on Foundational phase completion
170
+ - User stories can then proceed in parallel (if staffed)
171
+ - Or sequentially in priority order (P1 → P2 → P3)
172
+ - **Polish (Final Phase)**: Depends on all desired user stories being complete
173
+
174
+ ### User Story Dependencies
175
+
176
+ - **User Story 1 (P1)**: Can start after Foundational (Phase 2) - No dependencies on other stories
177
+ - **User Story 2 (P2)**: Can start after Foundational (Phase 2) - May integrate with US1 but should be independently testable
178
+ - **User Story 3 (P3)**: Can start after Foundational (Phase 2) - May integrate with US1/US2 but should be independently testable
179
+
180
+ ### Within Each User Story
181
+
182
+ - Tests (if included) MUST be written and FAIL before implementation
183
+ - Models before services
184
+ - Services before endpoints
185
+ - Core implementation before integration
186
+ - Story complete before moving to next priority
187
+
188
+ ### Parallel Opportunities
189
+
190
+ - All Setup tasks marked [P] can run in parallel
191
+ - All Foundational tasks marked [P] can run in parallel (within Phase 2)
192
+ - Once Foundational phase completes, all user stories can start in parallel (if team capacity allows)
193
+ - All tests for a user story marked [P] can run in parallel
194
+ - Models within a story marked [P] can run in parallel
195
+ - Different user stories can be worked on in parallel by different team members
196
+
197
+ ---
198
+
199
+ ## Parallel Example: User Story 1
200
+
201
+ ```bash
202
+ # Launch all tests for User Story 1 together (if tests requested):
203
+ Task: "Contract test for [endpoint] in tests/contract/test_[name].py"
204
+ Task: "Integration test for [user journey] in tests/integration/test_[name].py"
205
+
206
+ # Launch all models for User Story 1 together:
207
+ Task: "Create [Entity1] model in src/models/[entity1].py"
208
+ Task: "Create [Entity2] model in src/models/[entity2].py"
209
+ ```
210
+
211
+ ---
212
+
213
+ ## Implementation Strategy
214
+
215
+ ### MVP First (User Story 1 Only)
216
+
217
+ 1. Complete Phase 1: Setup
218
+ 2. Complete Phase 2: Foundational (CRITICAL - blocks all stories)
219
+ 3. Complete Phase 3: User Story 1
220
+ 4. **STOP and VALIDATE**: Test User Story 1 independently
221
+ 5. Deploy/demo if ready
222
+
223
+ ### Incremental Delivery
224
+
225
+ 1. Complete Setup + Foundational → Foundation ready
226
+ 2. Add User Story 1 → Test independently → Deploy/Demo (MVP!)
227
+ 3. Add User Story 2 → Test independently → Deploy/Demo
228
+ 4. Add User Story 3 → Test independently → Deploy/Demo
229
+ 5. Each story adds value without breaking previous stories
230
+
231
+ ### Parallel Team Strategy
232
+
233
+ With multiple developers:
234
+
235
+ 1. Team completes Setup + Foundational together
236
+ 2. Once Foundational is done:
237
+ - Developer A: User Story 1
238
+ - Developer B: User Story 2
239
+ - Developer C: User Story 3
240
+ 3. Stories complete and integrate independently
241
+
242
+ ---
243
+
244
+ ## Notes
245
+
246
+ - [P] tasks = different files, no dependencies
247
+ - [Story] label maps task to specific user story for traceability
248
+ - Each user story should be independently completable and testable
249
+ - Verify tests fail before implementing
250
+ - Commit after each task or logical group
251
+ - Stop at any checkpoint to validate story independently
252
+ - Avoid: vague tasks, same file conflicts, cross-story dependencies that break independence
@@ -0,0 +1,23 @@
1
+ __pycache__/
2
+ *.pyc
3
+ *.egg-info/
4
+ build/
5
+ dist/
6
+ .venv/
7
+ .pytest_cache/
8
+
9
+ # stray test artifacts from running the CLI in-repo
10
+ /.claude/
11
+
12
+ # The .blitz/ working area is governed content, not an artifact: memory/ holds
13
+ # the repo's playbook (seeded once, never overwritten even by `init --force`),
14
+ # and scripts/ + templates/ are what the playbook commands execute. Two parts
15
+ # are per-run or per-developer state and never belong in git.
16
+ /.blitz/execute/
17
+ /.blitz/feature.json
18
+
19
+ # blitz-sdk local trace capture (see blitz.toml's [capture] local = true).
20
+ # Unanchored: the sdk writes its store relative to whichever project dir holds
21
+ # the blitz.toml, which is not always the repo root. The `*` covers the SQLite
22
+ # -wal/-shm sidecars.
23
+ **/.blitz/traces.db*
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: blitz-cli
3
- Version: 0.11.0
3
+ Version: 0.12.0
4
4
  Summary: Developer CLI for Blitz locker-room: spec-driven playbooks, a codebase/huddle ontology graph with an MCP tool, and the composable watcher/trainer/graph containers.
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -53,6 +53,8 @@ for coordinating a feature across repos. Use `--ignore PATH` to skip a repo and
53
53
 
54
54
  ## Model execute: run a tasks.md with a local model
55
55
 
56
+ **Experimental.** This is under active development, its interface and output may change without notice, and it is not recommended for production use.
57
+
56
58
  `blitz model execute` drives a local model (served by Ollama) through a
57
59
  playbook-generated `tasks.md`, one task at a time. The model only proposes
58
60
  actions (full-file writes and shell commands); the driver applies them, runs
@@ -114,6 +116,8 @@ The `mcp` role serves this: point an agent's MCP config at
114
116
 
115
117
  ### Training (optional)
116
118
 
119
+ **Experimental.** This is under active development, its interface and output may change without notice, and it is not recommended for production use.
120
+
117
121
  `blitz locker-room train` runs an on-demand QLoRA fine-tune of the watcher corpus
118
122
  in the trainer container (needs a GPU); adapters land in `./train-out`. Override
119
123
  the base model with `BASE_MODEL_HF` or `blitz locker-room init --base-model`.
@@ -34,6 +34,8 @@ for coordinating a feature across repos. Use `--ignore PATH` to skip a repo and
34
34
 
35
35
  ## Model execute: run a tasks.md with a local model
36
36
 
37
+ **Experimental.** This is under active development, its interface and output may change without notice, and it is not recommended for production use.
38
+
37
39
  `blitz model execute` drives a local model (served by Ollama) through a
38
40
  playbook-generated `tasks.md`, one task at a time. The model only proposes
39
41
  actions (full-file writes and shell commands); the driver applies them, runs
@@ -95,6 +97,8 @@ The `mcp` role serves this: point an agent's MCP config at
95
97
 
96
98
  ### Training (optional)
97
99
 
100
+ **Experimental.** This is under active development, its interface and output may change without notice, and it is not recommended for production use.
101
+
98
102
  `blitz locker-room train` runs an on-demand QLoRA fine-tune of the watcher corpus
99
103
  in the trainer container (needs a GPU); adapters land in `./train-out`. Override
100
104
  the base model with `BASE_MODEL_HF` or `blitz locker-room init --base-model`.
@@ -30,4 +30,4 @@ Commands:
30
30
 
31
31
  __all__ = ["__version__"]
32
32
 
33
- __version__ = "0.11.0"
33
+ __version__ = "0.12.0"