# By-design exceptions for scripts/smoke_scripts.py (gate G8). # Format: # reason # These scripts intentionally do not implement a CLI `--help` contract. # Fixed-contract evaluators: argv contract is fixed by engineering/autoresearch-agent # (called as `evaluator.py `; exit code IS the metric channel). engineering/autoresearch-agent/evaluators/benchmark_size.py # fixed-contract autoresearch evaluator engineering/autoresearch-agent/evaluators/benchmark_speed.py # fixed-contract autoresearch evaluator engineering/autoresearch-agent/evaluators/build_speed.py # fixed-contract autoresearch evaluator engineering/autoresearch-agent/evaluators/llm_judge_content.py # fixed-contract autoresearch evaluator engineering/autoresearch-agent/evaluators/llm_judge_copy.py # fixed-contract autoresearch evaluator engineering/autoresearch-agent/evaluators/llm_judge_prompt.py # fixed-contract autoresearch evaluator engineering/autoresearch-agent/evaluators/memory_usage.py # fixed-contract autoresearch evaluator engineering/autoresearch-agent/evaluators/test_pass_rate.py # fixed-contract autoresearch evaluator # Claude Code hooks: invoked by the hook runner with a JSON payload on stdin, # not as CLI tools (exit 2 is a signaling channel for PreToolUse). engineering/security-guidance/hooks/security_reminder_hook.py # PreToolUse stdin hook productivity/handoff/hooks/session_start.py # SessionStart stdin hook productivity/handoff/hooks/session_end.py # SessionEnd stdin hook # skillopt_sleep engine (engineering/skillopt-sleep, vendored from # microsoft/SkillOpt): internal package modules, not standalone CLI scripts. # The real entry point is `python -m skillopt_sleep` (verified: exits 0 on # --help). Running any single file directly breaks two ways: (1) # skillopt_sleep/types.py shadows the stdlib `types` module once the file's # own directory is prepended to sys.path, which cascades into # "cannot import name 'GenericAlias'/'asdict' from partially initialized # module" for every sibling that (transitively) imports dataclasses/typing; # (2) experiments/*.py use absolute `from skillopt_sleep.x import y` imports # that require the package's parent dir on sys.path, which standalone # execution doesn't provide. engineering/skillopt-sleep/skillopt_sleep/__main__.py # python -m skillopt_sleep entry point only engineering/skillopt-sleep/skillopt_sleep/backend.py # internal module, types.py shadow engineering/skillopt-sleep/skillopt_sleep/budget.py # internal module, types.py shadow engineering/skillopt-sleep/skillopt_sleep/config.py # internal module, types.py shadow engineering/skillopt-sleep/skillopt_sleep/consolidate.py # internal module, types.py shadow engineering/skillopt-sleep/skillopt_sleep/cycle.py # internal module, types.py shadow engineering/skillopt-sleep/skillopt_sleep/dream.py # internal module, types.py shadow engineering/skillopt-sleep/skillopt_sleep/experiments/gbrain_bench.py # requires skillopt_sleep on sys.path engineering/skillopt-sleep/skillopt_sleep/experiments/personas.py # requires skillopt_sleep on sys.path engineering/skillopt-sleep/skillopt_sleep/experiments/run_experiment.py # requires skillopt_sleep on sys.path engineering/skillopt-sleep/skillopt_sleep/experiments/run_gbrain.py # requires skillopt_sleep on sys.path engineering/skillopt-sleep/skillopt_sleep/experiments/run_transfer.py # requires skillopt_sleep on sys.path engineering/skillopt-sleep/skillopt_sleep/experiments/sweep.py # requires skillopt_sleep on sys.path engineering/skillopt-sleep/skillopt_sleep/gate.py # internal module, types.py shadow engineering/skillopt-sleep/skillopt_sleep/harvest.py # internal module, types.py shadow engineering/skillopt-sleep/skillopt_sleep/harvest_codex.py # internal module, types.py shadow engineering/skillopt-sleep/skillopt_sleep/harvest_sources.py # internal module, types.py shadow engineering/skillopt-sleep/skillopt_sleep/judges.py # internal module, types.py shadow engineering/skillopt-sleep/skillopt_sleep/llm_miner.py # internal module, types.py shadow engineering/skillopt-sleep/skillopt_sleep/memory.py # internal module, types.py shadow engineering/skillopt-sleep/skillopt_sleep/mine.py # internal module, types.py shadow engineering/skillopt-sleep/skillopt_sleep/replay.py # internal module, types.py shadow engineering/skillopt-sleep/skillopt_sleep/rollout.py # internal module, types.py shadow engineering/skillopt-sleep/skillopt_sleep/scheduler.py # internal module, types.py shadow engineering/skillopt-sleep/skillopt_sleep/slow_update.py # internal module, types.py shadow engineering/skillopt-sleep/skillopt_sleep/staging.py # internal module, types.py shadow engineering/skillopt-sleep/skillopt_sleep/state.py # internal module, types.py shadow engineering/skillopt-sleep/skillopt_sleep/tasks_file.py # internal module, types.py shadow engineering/skillopt-sleep/skillopt_sleep/types.py # internal module; module itself IS the stdlib-name collision # book_to_skill extraction library (engineering/book-to-skill, vendored from # virgiliojr94/book-to-skill): internal package modules imported as # `book_to_skill.*`, not standalone CLI scripts. # # Listed here are the modules that FAIL the G8 probe — those with absolute # `book_to_skill.*` imports, which raise `No module named 'book_to_skill'` before # they could parse a flag. The package's remaining modules (config.py, # exceptions.py, sanitize.py, parsers/__init__.py, parsers/pdf.py, # parsers/text.py) are equally not-CLIs; they pass G8 only because they have no # argv handling at all, so `--help` no-ops and exits 0. This list is therefore # "modules the probe trips on", not "modules that aren't CLIs" — the latter is # the whole package. # # The four real entry points DO implement the CLI contract and are smoke-tested # normally: # scripts/extract_document.py, book_skill_validator.py, # token_budget_estimator.py, skill_plugin_emitter.py (--help + --sample, exit 0) # Unlike the skillopt_sleep case below, no module here shadows a stdlib name: # upstream's parsers/html.py was renamed to parsers/html_text.py precisely so # `import html.parser` cannot resolve to a sibling. engineering/book-to-skill/skills/book-to-skill/scripts/book_to_skill/__init__.py # package init, not a CLI engineering/book-to-skill/skills/book-to-skill/scripts/book_to_skill/dependencies.py # internal module engineering/book-to-skill/skills/book-to-skill/scripts/book_to_skill/utils.py # internal module engineering/book-to-skill/skills/book-to-skill/scripts/book_to_skill/zip_safety.py # internal module engineering/book-to-skill/skills/book-to-skill/scripts/book_to_skill/parsers/calibre.py # internal module engineering/book-to-skill/skills/book-to-skill/scripts/book_to_skill/parsers/docx.py # internal module engineering/book-to-skill/skills/book-to-skill/scripts/book_to_skill/parsers/epub.py # internal module engineering/book-to-skill/skills/book-to-skill/scripts/book_to_skill/parsers/html_text.py # internal module engineering/book-to-skill/skills/book-to-skill/scripts/book_to_skill/parsers/rtf.py # internal module