You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The bundled research recipe produces valid=False on every backend in v0.10.752 — including claude-code, where it carries 1 ERROR-severity audit-impl-remediation-route semantic finding (8 errors under codex). Combined with the fail-closed guard added by PR #3995 (tools_kitchen.py:624/:711), this means open_kitchen(name="research") is blocked for ALL backends on v0.10.752.
Empirical matrix (installed v0.10.752, real load_and_validate):
All seven other recipes in the #4059 impact matrix are valid=True under claude-code. (Outside that matrix, agent-eval and skill-eval also fail under claude-code with 4 unrelated errors each — all-dispatchable-stops-have-sentinel + dead-output — out of scope here, noted for #4008's governance table.)
Why this is its own ticket
This was discovered during the #4059 investigation (adversarial challenge round, backend×recipe matrix probe) but is a distinct defect:
Pre-prune validity computation breaks Codex open_kitchen and fleet dispatch #4059 (pre-prune validity computation) will NOT fix this: the finding fires on the audit_impl step, whose skip_when_false: inputs.audit_impl guard defaults to 'true' (research.yaml:61-67), so the step survives pruning under all standard invocations and the ERROR persists even after semantic rules move post-prune. (Pruning does occur under claude-code defaults — e.g. review_research_pr and audit_claims are pruned — it just never removes audit_impl.) It needs its own root-cause analysis, though the evidence points at the recipe rather than the rule: audit_impl captures remediation_path, and its only non-GO on_result route targets escalate_stop (action: stop, research.yaml:1380), so the captured remediation file can never be consumed downstream — exactly the contract the rule checks.
Against the installed package (or repo at origin/develop):
fromautoskillit.recipe._apiimportload_and_validateresult=load_and_validate("research", project_dir=<repo>, backend_name="claude-code")
# result["valid"] is False; one suggestion with severity=="error", rule=="audit-impl-remediation-route"
Then open_kitchen(name="research") returns success=false, stage=recipe_validation — and (until the parallel envelope ticket lands) the misleading message "unknown structural error", since the structural errors list is empty.
Scope
Root-cause the audit-impl-remediation-route ERROR on research.yaml (rule semantics vs recipe routing — determine which is wrong).
Prior art: #2364 (staged) fixed validation failures in the sibling research-design recipe, but those were different rule classes (stale contract card, routing gaps) — cited only as precedent that research-family recipes have shipped with validation errors, not as the same pattern.
Files (parallel-safe vs #4059 and the envelope ticket — zero overlap)
src/autoskillit/recipes/research.yaml (+ .json variant) — or the rule under src/autoskillit/recipe/rules/ pending analysis
Summary
The bundled
researchrecipe producesvalid=Falseon every backend in v0.10.752 — including claude-code, where it carries 1 ERROR-severityaudit-impl-remediation-routesemantic finding (8 errors under codex). Combined with the fail-closed guard added by PR #3995 (tools_kitchen.py:624/:711), this meansopen_kitchen(name="research")is blocked for ALL backends on v0.10.752.Empirical matrix (installed v0.10.752, real
load_and_validate):All seven other recipes in the #4059 impact matrix are
valid=Trueunder claude-code. (Outside that matrix,agent-evalandskill-evalalso fail under claude-code with 4 unrelated errors each —all-dispatchable-stops-have-sentinel+dead-output— out of scope here, noted for #4008's governance table.)Why this is its own ticket
This was discovered during the #4059 investigation (adversarial challenge round, backend×recipe matrix probe) but is a distinct defect:
audit_implstep, whoseskip_when_false: inputs.audit_implguard defaults to'true'(research.yaml:61-67), so the step survives pruning under all standard invocations and the ERROR persists even after semantic rules move post-prune. (Pruning does occur under claude-code defaults — e.g.review_research_prandaudit_claimsare pruned — it just never removesaudit_impl.) It needs its own root-cause analysis, though the evidence points at the recipe rather than the rule:audit_implcapturesremediation_path, and its only non-GOon_resultroute targetsescalate_stop(action: stop,research.yaml:1380), so the captured remediation file can never be consumed downstream — exactly the contract the rule checks.researchcells of the planned recipe×backend composition matrix test (open T5 WP T5-P3-A1-WP1 Provide a merge-blocking CI test that proves every bundled recipe composes validly under every registered backend, with explicit data-table governance for known unsupported combos and structural me... #4008) — without a fix, those cells must be xfail'd or incorrectly classified as DECLARED_UNSUPPORTED.Reproduction
Against the installed package (or repo at origin/develop):
Then
open_kitchen(name="research")returnssuccess=false,stage=recipe_validation— and (until the parallel envelope ticket lands) the misleading message "unknown structural error", since the structuralerrorslist is empty.Scope
audit-impl-remediation-routeERROR onresearch.yaml(rule semantics vs recipe routing — determine which is wrong).researchisvalid=Trueunder claude-code. End state: after BOTH Pre-prune validity computation breaks Codex open_kitchen and fleet dispatch #4059 and this fix land, research is fullyvalid=Trueunder codex as well — its 7 codexbackend-incompatible-skillerrors are all onbackend_supports_git_write-guarded steps (pruned post-Pre-prune validity computation breaks Codex open_kitchen and fleet dispatch #4059), leaving only theaudit-impl-remediation-routeerror fixed here; research has no route-guarded exemption cases.Prior art: #2364 (staged) fixed validation failures in the sibling
research-designrecipe, but those were different rule classes (stale contract card, routing gaps) — cited only as precedent that research-family recipes have shipped with validation errors, not as the same pattern.Files (parallel-safe vs #4059 and the envelope ticket — zero overlap)
src/autoskillit/recipes/research.yaml(+.jsonvariant) — or the rule undersrc/autoskillit/recipe/rules/pending analysistests/recipe/Relationship to other work
researchrows of T5 WP T5-P3-A1-WP1 Provide a merge-blocking CI test that proves every bundled recipe composes validly under every registered backend, with explicit data-table governance for known unsupported combos and structural me... #4008's composition matrix.