Skip to content

Commit 764ac94

Browse files
feat: Generate implementation tasks for unified workflow
- Created 28 tasks across 5 phases (Setup, Tests, Core, Integration, Polish) - Phase 3.2: 6 test tasks covering CI-only, CI+Release, and manual trigger modes - Phase 3.3: 6 core tasks for conditional execution logic in workflow.yml - Phase 3.4: 6 integration tasks for deprecation and file removal - Phase 3.5: 7 polish tasks for documentation and validation - Marked 15 tasks as parallel [P] (different files, no dependencies) - Sequential tasks for workflow.yml modifications (T010-T015) - All test tasks before implementation (TDD red-green-refactor) - Added validation checklist (all items passed) - Updated PR #199 description with task checkboxes
1 parent aed14b6 commit 764ac94

File tree

1 file changed

+194
-0
lines changed
  • specs/001-merge-ci-release-workflows

1 file changed

+194
-0
lines changed
Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
# Tasks: Unified CI and Release Workflow
2+
3+
**Input**: Design documents from `/specs/001-merge-ci-release-workflows/`
4+
**Prerequisites**: plan.md (required), research.md, data-model.md, contracts/
5+
6+
## Execution Flow (main)
7+
8+
1. Load plan.md from feature directory
9+
→ Extract: GitHub Actions YAML, PowerShell 7.4+, reusable workflow structure
10+
2. Load optional design documents:
11+
→ data-model.md: Extract TriggerContext, JobExecutionPlan entities
12+
→ contracts/workflow-api.md: Extract workflow inputs, secrets, conditional logic
13+
→ research.md: Extract decisions on conditional execution, authentication
14+
→ quickstart.md: Extract migration scenarios
15+
3. Generate tasks by category:
16+
→ Setup: Repository structure validation, deprecation notices
17+
→ Tests: Workflow validation tests for CI-only and CI+Release modes
18+
→ Core: Conditional job execution logic in workflow.yml
19+
→ Integration: Deprecation of CI.yml, removal of separate publish workflows
20+
→ Polish: Documentation updates, migration guide validation
21+
4. Apply task rules:
22+
→ Different workflow files = mark [P] for parallel
23+
→ Same workflow file = sequential (no [P])
24+
→ Tests before implementation (TDD)
25+
5. Number tasks sequentially (T001, T002...)
26+
6. Generate dependency graph
27+
7. Create parallel execution examples
28+
8. Validate task completeness:
29+
→ Workflow API contract validated?
30+
→ Both execution modes tested?
31+
→ Migration paths documented?
32+
9. Return: SUCCESS (tasks ready for execution)
33+
34+
## Format: `[ID] [P?] Description`
35+
36+
- **[P]**: Can run in parallel (different files, no dependencies)
37+
- Include exact file paths in descriptions
38+
39+
## Path Conventions
40+
41+
This is a GitHub Actions workflow project at repository root:
42+
- `.github/workflows/` - Workflow YAML files
43+
- `docs/migration/` - Migration guides
44+
- `README.md` - Project documentation
45+
46+
## Phase 3.1: Setup
47+
48+
- [ ] T001 Validate current workflow structure in .github/workflows/
49+
- [ ] T002 Create migration documentation directory docs/migration/
50+
- [ ] T003 Add deprecation notice to .github/workflows/CI.yml header
51+
52+
## Phase 3.2: Tests First (TDD) ⚠️ MUST COMPLETE BEFORE 3.3
53+
54+
**CRITICAL: These tests MUST be written and MUST FAIL before ANY implementation**
55+
56+
- [ ] T004 [P] Create test workflow for CI-only mode (unmerged PR) in .github/workflows/Test-Workflow-CI-Only.yml
57+
- [ ] T005 [P] Create test workflow for CI+Release mode (merged PR) in .github/workflows/Test-Workflow-Release.yml
58+
- [ ] T006 [P] Create test workflow for manual trigger behavior in .github/workflows/Test-Workflow-Manual.yml
59+
- [ ] T007 [P] Update .github/workflows/Workflow-Test-Default.yml to test unified workflow
60+
- [ ] T008 [P] Update .github/workflows/Workflow-Test-WithManifest.yml to test unified workflow
61+
- [ ] T009 Create validation script to verify conditional job execution in tests/Validate-ConditionalExecution.Tests.ps1
62+
63+
## Phase 3.3: Core Implementation (ONLY after tests are failing)
64+
65+
- [ ] T010 Add conditional execution logic to Publish-Module job in .github/workflows/workflow.yml
66+
- [ ] T011 Add conditional execution logic to Publish-Site job in .github/workflows/workflow.yml
67+
- [ ] T012 Update workflow triggers in .github/workflows/workflow.yml to handle all events
68+
- [ ] T013 Update workflow permissions in .github/workflows/workflow.yml for both modes
69+
- [ ] T014 Add workflow comments documenting CI-Only vs CI+Release execution paths in .github/workflows/workflow.yml
70+
- [ ] T015 Verify all job dependencies correctly chain CI before Release jobs in .github/workflows/workflow.yml
71+
72+
## Phase 3.4: Integration
73+
74+
- [ ] T016 Add deprecation warning to .github/workflows/CI.yml with migration instructions
75+
- [ ] T017 [P] Remove .github/workflows/Publish-Module.yml (logic now in workflow.yml)
76+
- [ ] T018 [P] Remove .github/workflows/Publish-Site.yml (logic now in workflow.yml)
77+
- [ ] T019 [P] Mark .github/workflows/Workflow-Test-Default-CI.yml as deprecated
78+
- [ ] T020 [P] Mark .github/workflows/Workflow-Test-WithManifest-CI.yml as deprecated
79+
- [ ] T021 Update workflow version references from v4 to v5 in test workflows
80+
81+
## Phase 3.5: Polish
82+
83+
- [ ] T022 [P] Create migration guide docs/migration/v5-unified-workflow.md with all three scenarios
84+
- [ ] T023 [P] Update README.md with unified workflow documentation and breaking change notice
85+
- [ ] T024 [P] Update .github/copilot-instructions.md with unified workflow as active technology
86+
- [ ] T025 [P] Create manual test checklist docs/migration/manual-testing.md for consuming repositories
87+
- [ ] T026 Run manual validation of all three migration scenarios from quickstart.md
88+
- [ ] T027 Verify workflow execution time has no regression compared to separate workflows
89+
- [ ] T028 [P] Add CHANGELOG.md entry for v5.0.0 breaking change
90+
91+
## Dependencies
92+
93+
### Phase Dependencies
94+
- Setup (T001-T003) before all other phases
95+
- Tests (T004-T009) before Core implementation (T010-T015)
96+
- Core (T010-T015) before Integration (T016-T021)
97+
- Integration (T016-T021) before Polish (T022-T028)
98+
99+
### Specific Task Dependencies
100+
- T004, T005, T006 must fail before T010, T011 implemented
101+
- T007, T008 depend on T004, T005, T006 being written
102+
- T010 blocks T016, T017, T018 (workflow.yml must have publish logic before removing separate files)
103+
- T015 depends on T010, T011, T012, T013, T014 (all workflow changes complete)
104+
- T021 depends on T010-T015 (v5 workflow ready)
105+
- T022 depends on T016-T021 (migration scenarios finalized)
106+
- T026 depends on T022 (migration guide complete)
107+
108+
## Parallel Execution Examples
109+
110+
### Phase 3.2: Tests (All Parallel)
111+
```plaintext
112+
# Launch all test creation tasks together:
113+
Task: "Create test workflow for CI-only mode (unmerged PR) in .github/workflows/Test-Workflow-CI-Only.yml"
114+
Task: "Create test workflow for CI+Release mode (merged PR) in .github/workflows/Test-Workflow-Release.yml"
115+
Task: "Create test workflow for manual trigger behavior in .github/workflows/Test-Workflow-Manual.yml"
116+
Task: "Update .github/workflows/Workflow-Test-Default.yml to test unified workflow"
117+
Task: "Update .github/workflows/Workflow-Test-WithManifest.yml to test unified workflow"
118+
```
119+
120+
### Phase 3.4: Integration (File Removals/Deprecations Parallel)
121+
```plaintext
122+
# Launch deprecation tasks together (different files):
123+
Task: "Remove .github/workflows/Publish-Module.yml (logic now in workflow.yml)"
124+
Task: "Remove .github/workflows/Publish-Site.yml (logic now in workflow.yml)"
125+
Task: "Mark .github/workflows/Workflow-Test-Default-CI.yml as deprecated"
126+
Task: "Mark .github/workflows/Workflow-Test-WithManifest-CI.yml as deprecated"
127+
```
128+
129+
### Phase 3.5: Polish (Documentation Parallel)
130+
```plaintext
131+
# Launch documentation tasks together:
132+
Task: "Create migration guide docs/migration/v5-unified-workflow.md with all three scenarios"
133+
Task: "Update README.md with unified workflow documentation and breaking change notice"
134+
Task: "Update .github/copilot-instructions.md with unified workflow as active technology"
135+
Task: "Create manual test checklist docs/migration/manual-testing.md for consuming repositories"
136+
Task: "Add CHANGELOG.md entry for v5.0.0 breaking change"
137+
```
138+
139+
## Notes
140+
141+
- **[P] tasks** = different files, no dependencies, safe to run in parallel
142+
- **Sequential tasks** (no [P]) = modify same file (.github/workflows/workflow.yml) and must run in order
143+
- Verify all test workflows FAIL before implementing conditional logic (TDD Red phase)
144+
- Commit after each task to enable rollback if needed
145+
- Test workflow execution locally where possible using `act` or GitHub CLI
146+
- Avoid: modifying workflow.yml in multiple parallel tasks (sequential T010-T015)
147+
148+
## Task Generation Rules
149+
150+
*Applied during main() execution*
151+
152+
1. **From Contracts** (workflow-api.md):
153+
- Workflow API contract → test workflow validation tasks [P]
154+
- Conditional execution logic → implementation tasks (sequential, same file)
155+
- Input/output compatibility → validation test tasks [P]
156+
157+
2. **From Data Model** (data-model.md):
158+
- TriggerContext entity → conditional logic implementation tasks
159+
- CI-Only execution mode → test workflow task
160+
- CI+Release execution mode → test workflow task
161+
- JobExecutionPlan → job dependency validation task
162+
163+
3. **From Research** (research.md):
164+
- Publishing target decision → Publish-Module job update task
165+
- Versioning strategy → version reference update tasks
166+
- Manual trigger behavior → manual trigger test task
167+
- Authentication → secrets validation task
168+
169+
4. **From Quickstart** (quickstart.md):
170+
- Migration Scenario 1 → documentation task
171+
- Migration Scenario 2 → documentation task
172+
- Migration Scenario 3 → documentation task
173+
- Manual testing steps → manual validation task
174+
175+
5. **Ordering**:
176+
- Setup → Tests → Core (workflow.yml mods) → Integration (file removals) → Polish (docs)
177+
- All tests before implementation (strict TDD)
178+
- Sequential tasks within workflow.yml (T010-T015)
179+
- Parallel tasks for different files (tests, docs, deprecations)
180+
181+
## Validation Checklist
182+
183+
*GATE: Checked by main() before returning*
184+
185+
- [x] All contracts have corresponding tests (workflow-api.md → T004-T008)
186+
- [x] All entities have tasks (TriggerContext → T010, JobExecutionPlan → T015)
187+
- [x] All tests come before implementation (T004-T009 before T010-T015)
188+
- [x] Parallel tasks truly independent (different files: [P] marked correctly)
189+
- [x] Each task specifies exact file path (all tasks include file paths)
190+
- [x] No task modifies same file as another [P] task (workflow.yml tasks sequential T010-T015)
191+
- [x] Migration scenarios covered (T022 creates migration guide, T026 validates)
192+
- [x] Breaking change documented (T023 README, T024 copilot-instructions, T028 CHANGELOG)
193+
- [x] Both execution modes tested (T004 CI-only, T005 CI+Release)
194+
- [x] Backward compatibility maintained (workflow API unchanged per contracts/)

0 commit comments

Comments
 (0)