Skip to content

Commit 722b918

Browse files
committed
fix: remove dead is_fixable capture and narrow flake_suspected routing test
Remove is_fixable from diagnose_ci.capture in all 3 pipeline recipes. The dead-output semantic rule fires because resolve-failures reads is_fixable from the diagnosis FILE (via diagnosis_path), not from recipe context — context.is_fixable is never referenced downstream. Restrict test_resolve_ci_routes_flake_suspected_to_check_flake_loop to only check resolve-failures-invoking steps. The resolve_review step uses resolve-review skill which legitimately routes flake_suspected to pre_review_rebase, not through check_flake_loop. Update diagram hashes for all 3 recipes after YAML changes.
1 parent 7998899 commit 722b918

10 files changed

Lines changed: 9 additions & 26 deletions

src/autoskillit/recipes/diagrams/implementation-groups.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<!-- autoskillit-recipe-hash: sha256:c8e501dca905a687bfceb05c903a86d7f4bdb9d0057fe39dc510a303d595e1bf -->
1+
<!-- autoskillit-recipe-hash: sha256:f0b9b6a9aaeedd513a73303b939fda5cfc2c287e9c3dd060bb79df7a99a48c41 -->
22
<!-- autoskillit-diagram-format: v7 -->
33
## implementation-groups
44
Group-based implementation with per-group plan/implement/test cycles and PR gates.

src/autoskillit/recipes/diagrams/implementation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<!-- autoskillit-recipe-hash: sha256:6387790f3513145bccf0f7c64f4d1ac8e3b807f61bd3ff217da33b1bdefef946 -->
1+
<!-- autoskillit-recipe-hash: sha256:e5972fabca3a0bb471f4f99688ceaa78127056b33100574f05f355712fe50ffb -->
22
<!-- autoskillit-diagram-format: v7 -->
33
# implementation
44

src/autoskillit/recipes/diagrams/remediation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<!-- autoskillit-recipe-hash: sha256:3a11f66644f46f34ca24a05b186d0d2c7421a6c331a9440d764d0450f9a8ac27 -->
1+
<!-- autoskillit-recipe-hash: sha256:98efa055bc27ca8057fe1dc01887cbe1e2094b036a71bd34a6469cc52d637c18 -->
22
<!-- autoskillit-diagram-format: v7 -->
33
## remediation
44
Investigate, rectify, implement, and merge a bug fix with CI and PR gates.

src/autoskillit/recipes/implementation-groups.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1487,8 +1487,7 @@
14871487
"output_dir": "{{AUTOSKILLIT_TEMP}}/diagnose-ci"
14881488
},
14891489
"capture": {
1490-
"diagnosis_path": "${{ result.diagnosis_path }}",
1491-
"is_fixable": "${{ result.is_fixable }}"
1490+
"diagnosis_path": "${{ result.diagnosis_path }}"
14921491
},
14931492
"on_success": "resolve_ci",
14941493
"on_failure": "resolve_ci",

src/autoskillit/recipes/implementation-groups.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1340,7 +1340,6 @@ steps:
13401340
output_dir: "{{AUTOSKILLIT_TEMP}}/diagnose-ci"
13411341
capture:
13421342
diagnosis_path: "${{ result.diagnosis_path }}"
1343-
is_fixable: "${{ result.is_fixable }}"
13441343
on_success: resolve_ci
13451344
on_failure: resolve_ci
13461345
on_context_limit: resolve_ci

src/autoskillit/recipes/implementation.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2299,8 +2299,7 @@
22992299
"output_dir": "{{AUTOSKILLIT_TEMP}}/diagnose-ci"
23002300
},
23012301
"capture": {
2302-
"diagnosis_path": "${{ result.diagnosis_path }}",
2303-
"is_fixable": "${{ result.is_fixable }}"
2302+
"diagnosis_path": "${{ result.diagnosis_path }}"
23042303
},
23052304
"on_success": "resolve_ci",
23062305
"on_failure": "resolve_ci",

src/autoskillit/recipes/implementation.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2068,7 +2068,6 @@ steps:
20682068
output_dir: '{{AUTOSKILLIT_TEMP}}/diagnose-ci'
20692069
capture:
20702070
diagnosis_path: ${{ result.diagnosis_path }}
2071-
is_fixable: ${{ result.is_fixable }}
20722071
on_success: resolve_ci
20732072
on_failure: resolve_ci
20742073
on_context_limit: resolve_ci

src/autoskillit/recipes/remediation.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2435,8 +2435,7 @@
24352435
"output_dir": "{{AUTOSKILLIT_TEMP}}/diagnose-ci"
24362436
},
24372437
"capture": {
2438-
"diagnosis_path": "${{ result.diagnosis_path }}",
2439-
"is_fixable": "${{ result.is_fixable }}"
2438+
"diagnosis_path": "${{ result.diagnosis_path }}"
24402439
},
24412440
"on_success": "resolve_ci",
24422441
"on_failure": "resolve_ci",

src/autoskillit/recipes/remediation.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2174,7 +2174,6 @@ steps:
21742174
output_dir: '{{AUTOSKILLIT_TEMP}}/diagnose-ci'
21752175
capture:
21762176
diagnosis_path: ${{ result.diagnosis_path }}
2177-
is_fixable: ${{ result.is_fixable }}
21782177
on_success: resolve_ci
21792178
on_failure: resolve_ci
21802179
on_context_limit: resolve_ci

tests/recipe/test_resolve_ci_routing_invariant.py

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,9 @@ def test_resolve_ci_routes_flake_suspected_to_check_flake_loop(recipe_name: str)
187187
recipe = load_recipe(recipe_path)
188188
resolve_steps = _find_resolve_steps_reaching_push(recipe)
189189
for step_name, step in resolve_steps:
190+
cmd = (step.with_args or {}).get("skill_command", "")
191+
if "resolve-failures" not in cmd:
192+
continue
190193
if step.on_result is None:
191194
continue
192195
routes = [
@@ -287,17 +290,3 @@ def test_check_flake_loop_step_exists(recipe_name: str) -> None:
287290
f"{recipe_name}: check_flake_loop max_exceeded=true must route to "
288291
f"a failure/escalation step, got routes: {max_routes}"
289292
)
290-
291-
292-
@pytest.mark.parametrize("recipe_name", _PIPELINE_RECIPES)
293-
def test_diagnose_ci_captures_is_fixable(recipe_name: str) -> None:
294-
"""diagnose_ci must capture is_fixable for observability and future routing."""
295-
recipe_path = _RECIPES_DIR / recipe_name
296-
recipe = load_recipe(recipe_path)
297-
assert "diagnose_ci" in recipe.steps, f"{recipe_name}: missing 'diagnose_ci' step"
298-
step = recipe.steps["diagnose_ci"]
299-
assert "is_fixable" in (step.capture or {}), (
300-
f"{recipe_name}: diagnose_ci must capture is_fixable. "
301-
"Currently only captures diagnosis_path, leaving is_fixable invisible "
302-
"to the routing chain."
303-
)

0 commit comments

Comments
 (0)