Skip to content

Commit 4b77187

Browse files
authored
Implementation Plan: Keep _EXEMPT_FILES Accurate and Self-Documenting After P3 Migration (#3990)
## Summary Remove 3 stale entries from `_EXEMPT_FILES` in `test_no_backend_name_bypass.py` and add self-documenting inline comments to the remaining 6 entries explaining why each structural backend-name comparison is unavoidable. The 3 entries to remove (`execution/backends/__init__.py`, `cli/_marketplace.py`, `recipe/rules/rules_backend_compat.py`) have zero AST `Compare` violations — the exemptions were either always technically incorrect (dict-key lookup, not a Compare node) or became stale after P3 migration refactored comparisons to capability checks. The 6 remaining entries each have genuine `ast.Compare` nodes referencing backend-name literals or constants, and each has a documented reason why the comparison cannot be replaced with a `BackendCapabilities` field. ## Implementation Plan Plan file: `/home/talon/projects/autoskillit-runs/impl-20260610-112706-148380/.autoskillit/temp/make-plan/keep_exempt_files_accurate_plan_2026-06-10_113600.md` Closes #3933 🤖 Generated with [Claude Code](https://claude.com/claude-code) via AutoSkillit <!-- autoskillit:pipeline-signature steps=prepare_pr,run_arch_lenses,compose_pr,annotate_pr_diff,review_pr --> ## Token Usage Summary | Step | Model | count | uncached | output | cache_read | peak_ctx | turns | cache_write | time | |------|-------|-------|----------|--------|------------|----------|-------|-------------|------| | plan* | opus[1m] | 1 | 898 | 5.9k | 646.5k | 70.6k | 32 | 51.6k | 4m 36s | | verify* | sonnet | 1 | 60 | 9.5k | 269.5k | 52.5k | 22 | 31.6k | 3m 49s | | implement* | MiniMax-M3 | 1 | 774.7k | 3.3k | 0 | 0 | 34 | 0 | 7m 4s | | audit_impl* | sonnet | 1 | 52 | 3.6k | 201.3k | 39.1k | 12 | 21.1k | 2m 3s | | prepare_pr* | MiniMax-M3 | 1 | 228.1k | 1.9k | 0 | 0 | 16 | 0 | 45s | | compose_pr* | MiniMax-M3 | 1 | 177.3k | 1.9k | 0 | 0 | 11 | 0 | 44s | | **Total** | | | 1.2M | 26.0k | 1.1M | 70.6k | | 104.2k | 19m 1s | \* *Step used a non-Anthropic provider; caching behavior may differ.* ## Token Efficiency | Step | LoC Changed | cache_read/LoC | cache_write/LoC | output/LoC | |------|-------------|----------------|-----------------|------------| | plan | 0 | — | — | — | | verify | 0 | — | — | — | | implement | 21 | 0.0 | 0.0 | 155.1 | | audit_impl | 0 | — | — | — | | prepare_pr | 0 | — | — | — | | compose_pr | 0 | — | — | — | | **Total** | **21** | 53204.3 | 4963.4 | 1239.4 | ## Model Usage Breakdown | Model | steps | uncached | output | cache_read | cache_write | time | |-------|-------|----------|--------|------------|-------------|------| | opus[1m] | 1 | 898 | 5.9k | 646.5k | 51.6k | 4m 36s | | sonnet | 2 | 112 | 13.1k | 470.8k | 52.6k | 5m 52s | | MiniMax-M3 | 3 | 1.2M | 7.0k | 0 | 0 | 8m 33s |
1 parent 18f4108 commit 4b77187

1 file changed

Lines changed: 12 additions & 9 deletions

File tree

tests/arch/test_no_backend_name_bypass.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,18 @@
99
# Exempt files where backend name comparison is structurally necessary.
1010
_EXEMPT_FILES: frozenset[str] = frozenset(
1111
{
12-
"execution/backends/__init__.py", # BACKEND_REGISTRY lookup
13-
"server/_factory.py", # Feature-gated backend swap (pre-capabilities)
14-
"cli/_marketplace.py", # Marketplace — Claude Code-only install guard
15-
"execution/recording.py", # Replay setup: fmt == "codex" Compare for player selection
16-
"execution/headless/_headless_result.py", # Claude-specific result parsing
17-
"core/_version_snapshot.py", # Version snapshot — routes codex_version by backend name
18-
"execution/headless/_headless_helpers.py", # assert_headless_cmd claude -p flag check
19-
"cli/session/_session_launch.py", # Feature-gate backend-alignment fallback
20-
"recipe/rules/rules_backend_compat.py", # Backend compatibility semantic rule
12+
# Pre-instantiation config guard: backend object not yet constructed
13+
"server/_factory.py",
14+
# Cassette format from filenames; selects api_simulator player (no backend at replay time)
15+
"execution/recording.py",
16+
# Claude-specific JSONL stdout format; parse_session_result() is Claude-only
17+
"execution/headless/_headless_result.py",
18+
# IL-0 module: cannot import BackendCapabilities (IL-1); routes version data by name
19+
"core/_version_snapshot.py",
20+
# Binary name check on CmdSpec subprocess argv; no backend context in assert_headless_cmd()
21+
"execution/headless/_headless_helpers.py",
22+
# FeatureDef.requires_backend_alignment is config-layer; no capabilities at scan time
23+
"cli/session/_session_launch.py",
2124
}
2225
)
2326

0 commit comments

Comments
 (0)