Skip to content

Commit b510d12

Browse files
docs: add execution blueprint and task files for plan 12
Add execution blueprint section to the plan and individual task files for mutmut config/CI setup and killing surviving mutants across protocol, client, auth, and b2c_login modules. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent ac93940 commit b510d12

6 files changed

Lines changed: 149 additions & 0 deletions

File tree

.ai/task-manager/plans/12--mutation-testing-expansion/plan-12--mutation-testing-expansion.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,3 +126,16 @@ Update the mutation test step in `.github/workflows/ci.yml` to run mutmut on all
126126
- The `mutants/` directory is mutmut v3's working directory and should be gitignored.
127127
- TUI modules and `cli.py` are intentionally excluded from this plan. They can be added later if desired.
128128
- Some surviving mutants will be equivalent (semantically identical to the original). These should be documented rather than chased with brittle tests.
129+
130+
---
131+
132+
## Execution Blueprint
133+
134+
### ✅ Phase 1: Configuration Setup
135+
- ✔️ Task 01: Setup mutmut configuration, .gitignore, and CI update (`01--mutmut-config-and-ci.md`)
136+
137+
### Phase 2: Kill Surviving Mutants (parallel)
138+
- Task 02: Kill surviving mutants in protocol.py (`02--kill-protocol-mutants.md`)
139+
- Task 03: Kill surviving mutants in client.py (`03--kill-client-mutants.md`)
140+
- Task 04: Kill surviving mutants in auth.py (`04--kill-auth-mutants.md`)
141+
- Task 05: Kill surviving mutants in b2c_login.py (`05--kill-b2c-mutants.md`)
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
id: 1
3+
group: "mutation-testing-expansion"
4+
dependencies: []
5+
status: "completed"
6+
created: 2026-02-25
7+
skills:
8+
- "ci-config"
9+
---
10+
# Setup mutmut configuration, .gitignore, and CI update
11+
12+
## Objective
13+
Create `setup.cfg` with mutmut configuration, update `.gitignore` with `mutants/`, and expand CI mutation testing to all 4 core modules.
14+
15+
## Acceptance Criteria
16+
- [ ] `setup.cfg` exists with `[mutmut]` section containing `paths_to_mutate` and `also_copy`
17+
- [ ] `.gitignore` includes `mutants/` and replaces stale `.mutmut-cache/` entry
18+
- [ ] CI workflow runs mutmut on protocol.py, client.py, auth.py, and b2c_login.py
19+
- [ ] `uv run mutmut run --paths-to-mutate=src/flameconnect/auth.py --no-progress` works locally
20+
21+
## Technical Requirements
22+
- Create `setup.cfg` with `[mutmut]` section
23+
- Update `.gitignore`: add `mutants/`, remove `.mutmut-cache/`
24+
- Update `.github/workflows/ci.yml` mutation test step to run on all 4 modules
25+
26+
## Output Artifacts
27+
- `setup.cfg` (new), `.gitignore` (updated), `.github/workflows/ci.yml` (updated)
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
id: 2
3+
group: "mutation-testing-expansion"
4+
dependencies: [1]
5+
status: "pending"
6+
created: 2026-02-25
7+
skills:
8+
- "python-testing"
9+
- "mutation-testing"
10+
---
11+
# Kill surviving mutants in protocol.py
12+
13+
## Objective
14+
Write targeted tests to raise protocol.py mutation score from 62% to ≥90% by killing the 266 surviving mutants.
15+
16+
## Acceptance Criteria
17+
- [ ] New tests added to `tests/test_protocol.py`
18+
- [ ] Mutation score ≥90% verified by `uv run mutmut run --paths-to-mutate=src/flameconnect/protocol.py --no-progress`
19+
- [ ] All tests pass
20+
- [ ] No files in `src/` modified
21+
22+
## Technical Requirements
23+
- Run mutmut to identify surviving mutants
24+
- Analyze each surviving mutant to understand what assertion is missing
25+
- Write targeted test assertions for: individual decoded field values, byte-level encoding correctness, constant values, boundary conditions
26+
27+
## Output Artifacts
28+
- Updated `tests/test_protocol.py` with additional test assertions
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
id: 3
3+
group: "mutation-testing-expansion"
4+
dependencies: [1]
5+
status: "pending"
6+
created: 2026-02-25
7+
skills:
8+
- "python-testing"
9+
- "mutation-testing"
10+
---
11+
# Kill surviving mutants in client.py
12+
13+
## Objective
14+
Write targeted tests to raise client.py mutation score from 64% to ≥90% by killing the 116 surviving mutants.
15+
16+
## Acceptance Criteria
17+
- [ ] New tests added to `tests/test_client.py`
18+
- [ ] Mutation score ≥90% verified by mutmut
19+
- [ ] All tests pass
20+
- [ ] No files in `src/` modified
21+
22+
## Technical Requirements
23+
- Run mutmut to identify surviving mutants
24+
- Write tests asserting on specific URL paths, request payloads, HTTP methods, headers, and parsed response fields
25+
26+
## Output Artifacts
27+
- Updated `tests/test_client.py` with additional test assertions
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
id: 4
3+
group: "mutation-testing-expansion"
4+
dependencies: [1]
5+
status: "pending"
6+
created: 2026-02-25
7+
skills:
8+
- "python-testing"
9+
- "mutation-testing"
10+
---
11+
# Kill surviving mutants in auth.py
12+
13+
## Objective
14+
Establish mutation testing on auth.py with ≥90% kill rate.
15+
16+
## Acceptance Criteria
17+
- [ ] New tests added to `tests/test_auth.py`
18+
- [ ] Mutation score ≥90% verified by mutmut
19+
- [ ] All tests pass
20+
- [ ] No files in `src/` modified
21+
22+
## Technical Requirements
23+
- Run mutmut on auth.py to identify all surviving mutants
24+
- Write targeted tests for authentication logic: token acquisition, cache handling, error paths
25+
26+
## Output Artifacts
27+
- Updated `tests/test_auth.py` with additional test assertions
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
id: 5
3+
group: "mutation-testing-expansion"
4+
dependencies: [1]
5+
status: "pending"
6+
created: 2026-02-25
7+
skills:
8+
- "python-testing"
9+
- "mutation-testing"
10+
---
11+
# Kill surviving mutants in b2c_login.py
12+
13+
## Objective
14+
Establish mutation testing on b2c_login.py with ≥90% kill rate.
15+
16+
## Acceptance Criteria
17+
- [ ] New tests added to `tests/test_b2c_login.py`
18+
- [ ] Mutation score ≥90% verified by mutmut
19+
- [ ] All tests pass
20+
- [ ] No files in `src/` modified
21+
22+
## Technical Requirements
23+
- Run mutmut on b2c_login.py to identify all surviving mutants
24+
- Write targeted tests for B2C login flow: HTTP redirect handling, HTML parsing, token exchange, error paths
25+
26+
## Output Artifacts
27+
- Updated `tests/test_b2c_login.py` with additional test assertions

0 commit comments

Comments
 (0)