AI Slop Code RIsk Monitor

github/spec-kit

💫 Toolkit to help you get started with SDD or any other process!

29.0 Elevated pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for github/spec-kit, a Python project with 140,706 GitHub stars. SynthScan examined 307,794 lines of code across 890 source files, recording 8241 pattern matches distributed across 21 syntactic categories. The legacy adjusted pattern signal is 29.0 (Elevated pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

29.0
Adjusted Signal
29.0
Raw Pattern Score
100%
Time Factor
2026-10-10
Last Push
140.7K
Stars
Python
Language
307.8K
Lines of Code
890
Files
8.2K
Pattern Hits
2026-10-12
Scan Date
0.38
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 60.1/100 · HIGH

Can maintainers explain intent, assumptions, and trade-offs? 6771 finding(s).

Hallucinated Dependency & Supply Chain Risk 14.2/100 · LOW

Are imports declared and package/API names verified? 809 finding(s).

Agent Over-Engineering Ratio 69.3/100 · HIGH

Are wrappers, guards, and repeated structures necessary? 6916 finding(s).

PR Review Velocity Impact 82.0/100 · CRITICAL

Which changes need focused human review? 8241 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 338MEDIUM 316LOW 7587

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 8241 distinct pattern matches across 21 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers6252 hits · 4959 pts
SeverityFileLineSnippetContext
LOWtests/test_shared_infra_integrity.py23def test_matching_digest_passes():CODE
LOWtests/test_shared_infra_integrity.py30def test_mismatch_raises_error_cls():CODE
LOWtests/test_shared_infra_integrity.py43def test_comparison_is_case_insensitive():CODE
LOWtests/test_shared_infra_integrity.py50def test_malformed_digest_is_rejected():CODE
LOWtests/test_shared_infra_integrity.py75def test_absent_digest_skips_and_logs_debug(caplog):CODE
LOWtests/test_shared_infra_integrity.py90def test_blank_declared_digest_is_rejected():CODE
LOWtests/test_check_prerequisites_python_parity.py142def test_all_variants_resolve_requested_template(CODE
LOWtests/test_check_prerequisites_python_parity.py185def test_all_variants_validate_requested_template_in_text_mode(CODE
LOWtests/test_check_prerequisites_python_parity.py231def test_python_json_output_matches_bash(prereq_repo: Path, args: tuple[str, ...]) -> None:CODE
LOWtests/test_check_prerequisites_python_parity.py251def test_python_require_spec_matches_bash(prereq_repo: Path) -> None:CODE
LOWtests/test_check_prerequisites_python_parity.py287def test_powershell_require_spec_matches_python(prereq_repo: Path) -> None:CODE
LOWtests/test_check_prerequisites_python_parity.py323def test_python_text_output_matches_bash(prereq_repo: Path) -> None:CODE
LOWtests/test_check_prerequisites_python_parity.py338def test_python_text_output_survives_a_legacy_stdout_code_page(CODE
LOWtests/test_check_prerequisites_python_parity.py385def test_python_help_output_matches_bash(prereq_repo: Path) -> None:CODE
LOWtests/test_check_prerequisites_python_parity.py395def test_python_unknown_option_matches_bash_error_shape(prereq_repo: Path) -> None:CODE
LOWtests/test_check_prerequisites_python_parity.py423def test_python_json_output_matches_powershell(CODE
LOWtests/test_check_prerequisites_python_parity.py444def test_python_repo_copy_script_file_fallback_finds_repo_root(tmp_path: Path) -> None:CODE
LOWtests/test_check_prerequisites_python_parity.py465def test_python_paths_only_does_not_persist_feature_json(prereq_repo: Path) -> None:CODE
LOWtests/test_check_prerequisites_python_parity.py481def test_python_normal_mode_persists_feature_json(prereq_repo: Path) -> None:CODE
LOWtests/test_check_prerequisites_python_parity.py500def test_persisted_feature_json_is_lexical_when_specs_is_symlink(CODE
LOWtests/test_check_prerequisites_python_parity.py541def test_python_negative_errors_are_stderr_only(CODE
LOWtests/test_check_prerequisites_python_parity.py565def test_python_branch_falls_back_to_feature_dir_basename(prereq_repo: Path) -> None:CODE
LOWtests/test_check_prerequisites_python_parity.py622 def test_non_mapping_integration_json_falls_back(self, tmp_path: Path, body: str):CODE
LOWtests/test_check_prerequisites_python_parity.py631 def test_hyphen_separator_is_still_honoured(self, tmp_path: Path):CODE
LOWtests/test_check_prerequisites_python_parity.py644def test_powershell_text_output_lists_available_docs(prereq_repo: Path) -> None:CODE
LOW⚡tests/test_workflows.py120 def test_get_step_type_missing(self):CODE
LOW⚡tests/test_workflows.py125 def test_register_step_duplicate_raises(self):CODE
LOW⚡tests/test_workflows.py132 def test_register_step_empty_key_raises(self):CODE
LOW⚡tests/test_workflows.py214 def test_step_output_reference(self):CODE
LOW⚡tests/test_workflows.py223 def test_string_interpolation(self):CODE
LOW⚡tests/test_workflows.py231 def test_multi_expression_no_surrounding_text(self):CODE
LOW⚡tests/test_workflows.py548 def test_filter_from_json_parses_object(self):CODE
LOW⚡tests/test_workflows.py558 def test_filter_from_json_invalid_json_raises(self):CODE
LOW⚡tests/test_workflows.py567 def test_filter_from_json_non_string_raises(self):CODE
LOW⚡tests/test_workflows.py576 def test_filter_from_json_rejects_malformed_forms(self):CODE
LOW⚡tests/test_workflows.py2855 def test_validate_rejects_non_positive_timeout(self):CODE
LOW⚡tests/test_workflows.py2863 def test_validate_rejects_non_numeric_timeout(self):CODE
LOW⚡tests/test_workflows.py2873 def test_validate_rejects_non_finite_timeout(self):CODE
LOW⚡tests/test_workflows.py3303 def test_validate_rejects_bad_script(self):CODE
LOW⚡tests/test_workflows.py3310 def test_validate_accepts_valid(self):CODE
LOW⚡tests/test_workflows.py3320 def test_docstring_lists_every_on_reject_behaviour(self):CODE
LOW⚡tests/test_workflows.py3330 def _non_tty_stdin_by_default(self, monkeypatch):CODE
LOW⚡tests/test_workflows.py3337 def test_execute_returns_paused(self):CODE
LOW⚡tests/test_workflows.py4572 def test_validate_rejects_non_string_non_bool_condition(self, bad):CODE
LOW⚡tests/test_workflows.py4580 def test_validate_accepts_string_or_bool_condition(self, good):CODE
LOW⚡tests/test_workflows.py4589 def test_validate_invalid_max_iterations(self):CODE
LOW⚡tests/test_workflows.py4723 def test_validate_rejects_non_string_non_bool_condition(self, bad):CODE
LOW⚡tests/test_workflows.py4731 def test_validate_accepts_string_or_bool_condition(self, good):CODE
LOW⚡tests/test_workflows.py4740 def test_validate_steps_not_list(self):CODE
LOW⚡tests/test_workflows.py5008 def test_validate_empty_wait_for(self):CODE
LOW⚡tests/test_workflows.py5015 def test_validate_wait_for_not_list(self):CODE
LOW⚡tests/test_workflows.py5023 def test_validate_rejects_non_mapping_output(self, bad_output):CODE
LOW⚡tests/test_workflows.py5087 def test_sequential_default_preserves_order(self, tmp_path, monkeypatch):CODE
LOW⚡tests/test_workflows.py5091 def test_concurrent_runs_all_items_in_item_order(self, tmp_path, monkeypatch):CODE
LOW⚡tests/test_workflows.py5095 def test_sequential_and_concurrent_agree(self, tmp_path, monkeypatch):CODE
LOW⚡tests/test_workflows.py5101 def test_shuffled_completion_preserves_item_order(self, tmp_path, monkeypatch):CODE
LOW⚡tests/test_workflows.py5145 def test_invalid_max_concurrency_coerces_to_sequential(CODE
LOW⚡tests/test_workflows.py5154 def test_string_max_concurrency_is_honored(self, tmp_path, monkeypatch):CODE
LOW⚡tests/test_workflows.py5158 def test_context_item_isolation_across_threads(self, tmp_path, monkeypatch):CODE
LOW⚡tests/test_workflows.py5164 def test_marks_item_context_as_inside_fan_out(CODE
6192 more matches not shown…
Decorative Section Separators228 hits · 832 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_workflows.py28# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_workflows.py30# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/conftest.py138# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/conftest.py140# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_setup_tasks.py181# ===========================================================================COMMENT
MEDIUM⚡tests/test_setup_tasks.py183# ===========================================================================COMMENT
MEDIUM⚡tests/test_setup_tasks.py703# ===========================================================================COMMENT
MEDIUM⚡tests/test_setup_tasks.py705# ===========================================================================COMMENT
MEDIUMtests/test_setup_tasks.py26# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_setup_tasks.py28# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_setup_tasks.py150# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_setup_tasks.py152# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_setup_tasks.py994# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_setup_tasks.py997# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_live_transient_windows.py17# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_live_transient_windows.py19# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_live_transient_windows.py65# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_live_transient_windows.py67# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_setup_plan_no_overwrite.py90# ── Bash tests ────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/test_setup_plan_no_overwrite.py178# ── PowerShell tests ──────────────────────────────────────────────────────COMMENT
MEDIUM⚡tests/test_timestamp_branches.py445# ── check_feature_branch Tests ───────────────────────────────────────────────COMMENT
MEDIUM⚡tests/test_timestamp_branches.py459# ── find_feature_dir_by_prefix Tests ─────────────────────────────────────────COMMENT
MEDIUM⚡tests/test_timestamp_branches.py470# ── get_feature_paths + single-prefix integration ───────────────────────────COMMENT
MEDIUM⚡tests/test_timestamp_branches.py764# ── Dry-Run Tests ────────────────────────────────────────────────────────────COMMENT
MEDIUM⚡tests/test_timestamp_branches.py1210# ── Feature Directory Resolution Tests ───────────────────────────────────────COMMENT
MEDIUMtests/test_timestamp_branches.py179# ── Timestamp Branch Tests ───────────────────────────────────────────────────COMMENT
MEDIUMtests/test_timestamp_branches.py225# ── Sequential Branch Tests ──────────────────────────────────────────────────COMMENT
MEDIUMtests/test_timestamp_branches.py513# ── get_current_branch Tests ─────────────────────────────────────────────────COMMENT
MEDIUMtests/test_timestamp_branches.py524# ── No-git Tests ─────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/test_timestamp_branches.py537# ── E2E Flow Tests ───────────────────────────────────────────────────────────COMMENT
MEDIUMtests/test_timestamp_branches.py604# ── Allow Existing Branch Tests ──────────────────────────────────────────────COMMENT
MEDIUMtests/test_timestamp_branches.py978# ── PowerShell Dry-Run Tests ─────────────────────────────────────────────────COMMENT
MEDIUMtests/test_timestamp_branches.py1062# ── Short-Word / Acronym Branch-Name Tests ──────────────────────────────────COMMENT
MEDIUMtests/test_timestamp_branches.py1108# ── GIT_BRANCH_NAME Override Tests ──────────────────────────────────────────COMMENT
MEDIUMtests/test_timestamp_branches.py1366# ── Description Quoting Tests (issue #2339) ──────────────────────────────────COMMENT
MEDIUM⚡tests/test_init_dir.py115# ── Bash: positive cases ────────────────────────────────────────────────────COMMENT
MEDIUM⚡tests/test_init_dir.py350# ubuntu/windows runners ship pwsh, so these DO run there) ─────────────────COMMENT
MEDIUMtests/test_init_dir.py199# ── Bash: negative / contract cases ─────────────────────────────────────────COMMENT
MEDIUMtests/test_init_dir.py292# ── Bash: bundled Git extension entrypoint ──────────────────────────────────COMMENT
MEDIUMtests/test_init_dir.py480# ── Windows PowerShell 5.1 compatibility (issue #3749) ──────────────────────COMMENT
MEDIUMtests/test_check_prerequisites_paths_only.py76# ── Bash tests ────────────────────────────────────────────────────────────COMMENT
MEDIUMtests/test_check_prerequisites_paths_only.py265# ── PowerShell tests ──────────────────────────────────────────────────────COMMENT
MEDIUMtests/test_init_dir_cli.py52# ── chokepoint: _require_specify_project() via `workflow list` ───────────────COMMENT
MEDIUMtests/test_init_dir_cli.py165# ── bypass: `workflow run <file>` ────────────────────────────────────────────COMMENT
MEDIUM⚡tests/specify_cli/test_version_detection.py600# ===========================================================================COMMENT
MEDIUM⚡tests/specify_cli/test_version_detection.py602# ===========================================================================COMMENT
MEDIUMtests/specify_cli/test_version_execution.py18# ===========================================================================COMMENT
MEDIUMtests/specify_cli/test_version_execution.py20# ===========================================================================COMMENT
MEDIUM⚡tests/specify_cli/test_version_verification.py23# ===========================================================================COMMENT
MEDIUM⚡tests/specify_cli/test_version_verification.py25# ===========================================================================COMMENT
MEDIUMtests/specify_cli/test_version_guidance.py14# ===========================================================================COMMENT
MEDIUMtests/specify_cli/test_version_guidance.py16# ===========================================================================COMMENT
MEDIUM⚡tests/specify_cli/artifacts/test_catalog.py36# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/specify_cli/artifacts/test_catalog.py38# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/specify_cli/artifacts/test_catalog.py659# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/specify_cli/artifacts/test_catalog.py661# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/specify_cli/artifacts/test_catalog.py751# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/specify_cli/artifacts/test_catalog.py753# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/specify_cli/artifacts/test_catalog.py893# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/specify_cli/artifacts/test_catalog.py895# ---------------------------------------------------------------------------COMMENT
168 more matches not shown…
Cross-File Repetition159 hits · 795 pts
SeverityFileLineSnippetContext
HIGHtests/test_workflows.py0cli alignment with extension/preset commands (#2342).STRING
HIGHtests/specify_cli/workflows/test_command_search.py0cli alignment with extension/preset commands (#2342).STRING
HIGHtests/specify_cli/workflows/test_command_disable.py0cli alignment with extension/preset commands (#2342).STRING
HIGHtests/specify_cli/workflows/test_command_status.py0cli alignment with extension/preset commands (#2342).STRING
HIGHtests/specify_cli/workflows/test_command_enable.py0cli alignment with extension/preset commands (#2342).STRING
HIGHtests/specify_cli/workflows/test_command_add.py0cli alignment with extension/preset commands (#2342).STRING
HIGHtests/specify_cli/workflows/test_command_resume.py0cli alignment with extension/preset commands (#2342).STRING
HIGHtests/specify_cli/workflows/test_command_update.py0cli alignment with extension/preset commands (#2342).STRING
HIGHtests/specify_cli/workflows/test_command_run.py0cli alignment with extension/preset commands (#2342).STRING
HIGHtests/specify_cli/workflows/test_command_remove.py0cli alignment with extension/preset commands (#2342).STRING
HIGHtests/specify_cli/workflows/test_command_list.py0cli alignment with extension/preset commands (#2342).STRING
HIGH…sts/specify_cli/workflows/catalog/test_command_list.py0cli alignment with extension/preset commands (#2342).STRING
HIGH…pecify_cli/workflows/step/catalog/test_command_list.py0cli alignment with extension/preset commands (#2342).STRING
HIGHtests/specify_cli/workflows/test_command_disable.py0schema_version: "1.0" workflow: id: "align-wf" name: "align workflow" version: "{version}" description: "cli alignment tSTRING
HIGHtests/specify_cli/workflows/test_command_enable.py0schema_version: "1.0" workflow: id: "align-wf" name: "align workflow" version: "{version}" description: "cli alignment tSTRING
HIGHtests/specify_cli/workflows/test_command_add.py0schema_version: "1.0" workflow: id: "align-wf" name: "align workflow" version: "{version}" description: "cli alignment tSTRING
HIGHtests/specify_cli/workflows/test_command_update.py0schema_version: "1.0" workflow: id: "align-wf" name: "align workflow" version: "{version}" description: "cli alignment tSTRING
HIGH…ts/specify_cli/workflows/test_command_run_ownership.py0schema_version: "1.0" workflow: id: "align-wf" name: "align workflow" version: "{version}" description: "cli alignment tSTRING
HIGHtests/specify_cli/workflows/test_command_run.py0schema_version: "1.0" workflow: id: "align-wf" name: "align workflow" version: "{version}" description: "cli alignment tSTRING
HIGHtests/specify_cli/workflows/test_command_remove.py0schema_version: "1.0" workflow: id: "align-wf" name: "align workflow" version: "{version}" description: "cli alignment tSTRING
HIGHtests/specify_cli/workflows/test_command_list.py0schema_version: "1.0" workflow: id: "align-wf" name: "align workflow" version: "{version}" description: "cli alignment tSTRING
HIGHtests/specify_cli/workflows/test_command_status.py0test the --json machine-readable output for run/resume/status.STRING
HIGHtests/specify_cli/workflows/test_command_resume.py0test the --json machine-readable output for run/resume/status.STRING
HIGHtests/specify_cli/workflows/test_command_run.py0test the --json machine-readable output for run/resume/status.STRING
HIGHtests/specify_cli/workflows/test_command_status.py0schema_version: "1.0" workflow: id: "json-wf" name: "json wf" version: "1.0.0" steps: - id: ask type: gate message: "revSTRING
HIGHtests/specify_cli/workflows/test_command_resume.py0schema_version: "1.0" workflow: id: "json-wf" name: "json wf" version: "1.0.0" steps: - id: ask type: gate message: "revSTRING
HIGHtests/specify_cli/workflows/test_command_run.py0schema_version: "1.0" workflow: id: "json-wf" name: "json wf" version: "1.0.0" steps: - id: ask type: gate message: "revSTRING
HIGHtests/specify_cli/workflows/test_command_status.py0schema_version: "1.0" workflow: id: "gated-wf" name: "gated workflow" version: "1.0.0" steps: - id: ask type: gate messaSTRING
HIGHtests/specify_cli/workflows/test_command_resume.py0schema_version: "1.0" workflow: id: "gated-wf" name: "gated workflow" version: "1.0.0" steps: - id: ask type: gate messaSTRING
HIGHtests/specify_cli/workflows/test_command_run.py0schema_version: "1.0" workflow: id: "gated-wf" name: "gated workflow" version: "1.0.0" steps: - id: ask type: gate messaSTRING
HIGHtests/specify_cli/workflows/test_command_add.py0a malformed ipv6 url must produce a clean error, not a valueerror traceback.STRING
HIGHtests/specify_cli/extensions/test_command_add.py0a malformed ipv6 url must produce a clean error, not a valueerror traceback.STRING
HIGHtests/specify_cli/presets/test_command_add.py0a malformed ipv6 url must produce a clean error, not a valueerror traceback.STRING
HIGHtests/specify_cli/workflows/test_command_add.py0cli-level tests for ``specify workflow overlay *``.STRING
HIGHtests/specify_cli/workflows/test_command_resolve.py0cli-level tests for ``specify workflow overlay *``.STRING
HIGH…ify_cli/workflows/overlay/test_command_set_priority.py0cli-level tests for ``specify workflow overlay *``.STRING
HIGH…/specify_cli/workflows/overlay/test_command_disable.py0cli-level tests for ``specify workflow overlay *``.STRING
HIGHtests/specify_cli/workflows/overlay/test_command_add.py0cli-level tests for ``specify workflow overlay *``.STRING
HIGH…s/specify_cli/workflows/overlay/test_command_remove.py0cli-level tests for ``specify workflow overlay *``.STRING
HIGH…sts/specify_cli/workflows/overlay/test_command_list.py0cli-level tests for ``specify workflow overlay *``.STRING
HIGH…sts/specify_cli/workflows/catalog/test_command_list.py0user-editable catalog name/url/description must not be parsed as rich markup.STRING
HIGH…/specify_cli/integrations/catalog/test_command_list.py0user-editable catalog name/url/description must not be parsed as rich markup.STRING
HIGHtests/specify_cli/presets/catalog/test_command_list.py0user-editable catalog name/url/description must not be parsed as rich markup.STRING
HIGHtests/specify_cli/workflows/step/test_command_info.py0step discovery commands render metadata as literal text.STRING
HIGHtests/specify_cli/workflows/step/test_command_search.py0step discovery commands render metadata as literal text.STRING
HIGHtests/specify_cli/workflows/step/test_command_list.py0step discovery commands render metadata as literal text.STRING
HIGH…ify_cli/workflows/overlay/test_command_set_priority.py0overlay identity must come from the manifest ``id`` field, not the filename. this matches the project-wide convention: pSTRING
HIGH…/specify_cli/workflows/overlay/test_command_disable.py0overlay identity must come from the manifest ``id`` field, not the filename. this matches the project-wide convention: pSTRING
HIGH…s/specify_cli/workflows/overlay/test_command_remove.py0overlay identity must come from the manifest ``id`` field, not the filename. this matches the project-wide convention: pSTRING
HIGH…sts/specify_cli/workflows/overlay/test_command_list.py0overlay identity must come from the manifest ``id`` field, not the filename. this matches the project-wide convention: pSTRING
HIGH…ify_cli/workflows/overlay/test_command_set_priority.py0write an overlay file where filename != manifest id.STRING
HIGH…/specify_cli/workflows/overlay/test_command_disable.py0write an overlay file where filename != manifest id.STRING
HIGH…s/specify_cli/workflows/overlay/test_command_remove.py0write an overlay file where filename != manifest id.STRING
HIGH…sts/specify_cli/workflows/overlay/test_command_list.py0write an overlay file where filename != manifest id.STRING
HIGH…ify_cli/workflows/overlay/test_command_set_priority.py0overlay cli must stay inside the overlay directory.STRING
HIGH…s/specify_cli/workflows/overlay/test_command_enable.py0overlay cli must stay inside the overlay directory.STRING
HIGHtests/specify_cli/workflows/overlay/test_command_add.py0overlay cli must stay inside the overlay directory.STRING
HIGH…s/specify_cli/workflows/overlay/test_command_remove.py0overlay cli must stay inside the overlay directory.STRING
HIGH…sts/specify_cli/workflows/overlay/test_command_list.py0overlay cli must stay inside the overlay directory.STRING
HIGHtests/integrations/test_integration_base_markdown.py0the generated plan skill must not carry a context-file placeholder. agent context files are owned entirely by the opt-inSTRING
99 more matches not shown…
Unused Imports752 hits · 692 pts
SeverityFileLineSnippetContext
LOWtests/test_shared_infra_integrity.py9CODE
LOWtests/test_check_prerequisites_python_parity.py3CODE
LOWtests/test_workflows.py13CODE
LOWtests/test_utils.py3CODE
LOWtests/lock_helpers.py3CODE
LOWtests/test_github_workflows.py3CODE
LOWtests/test_installed_list_json.py3CODE
LOWtests/test_download_security.py3CODE
LOWtests/test_post_process.py10CODE
LOWtests/test_live_transient_windows.py12CODE
LOWtests/test_resolve_template_python_parity.py3CODE
LOWtests/test_extensions.py26CODE
LOWtests/parity_helpers.py3CODE
LOWtests/test_setup_tasks_python_parity.py3CODE
LOWtests/test_shared_infra_gitignore.py12CODE
LOWtests/test_create_new_feature_python_parity.py3CODE
LOWtests/test_setup_plan_python_parity.py3CODE
LOWtests/test_security_workflow.py3CODE
LOWtests/test_shared_infra_lock.py3CODE
LOWtests/test_installed_info_json.py3CODE
LOWtests/specify_cli/test_command_init.py17CODE
LOWtests/specify_cli/test_version_detection.py15CODE
LOWtests/specify_cli/test_version_execution.py9CODE
LOWtests/specify_cli/self_upgrade_helpers.py13CODE
LOWtests/specify_cli/self_upgrade_helpers.py13CODE
LOWtests/specify_cli/self_upgrade_helpers.py13CODE
LOWtests/specify_cli/self_upgrade_helpers.py13CODE
LOWtests/specify_cli/self_upgrade_helpers.py13CODE
LOWtests/specify_cli/self_upgrade_helpers.py20CODE
LOWtests/specify_cli/self_upgrade_helpers.py21CODE
LOWtests/specify_cli/self_upgrade_helpers.py21CODE
LOWtests/specify_cli/test_version_release.py22CODE
LOWtests/specify_cli/test_version_verification.py10CODE
LOWtests/specify_cli/test_version_guidance.py7CODE
LOWtests/specify_cli/artifacts/test_command_info.py3CODE
LOWtests/specify_cli/artifacts/conftest.py1CODE
LOWtests/specify_cli/artifacts/test_catalog.py3CODE
LOWtests/specify_cli/artifacts/test_operation_info.py3CODE
LOWtests/specify_cli/artifacts/test_catalog_parity.py8CODE
LOWtests/specify_cli/artifacts/test_operation_list.py3CODE
LOWtests/specify_cli/artifacts/helpers.py1CODE
LOWtests/specify_cli/artifacts/test_command_lookup.py3CODE
LOWtests/specify_cli/artifacts/test_command_list.py3CODE
LOWtests/specify_cli/selfs/test_command_check.py11CODE
LOWtests/specify_cli/workflows/test_command_info.py3CODE
LOWtests/specify_cli/workflows/test_command_search.py3CODE
LOWtests/specify_cli/workflows/conftest.py3CODE
LOWtests/specify_cli/workflows/test_custom_steps.py3CODE
LOWtests/specify_cli/workflows/test_command_disable.py3CODE
LOWtests/specify_cli/workflows/test_catalog_versions.py3CODE
LOWtests/specify_cli/workflows/test_command_status.py3CODE
LOWtests/specify_cli/workflows/test_command_enable.py3CODE
LOWtests/specify_cli/workflows/test_command_add.py3CODE
LOWtests/specify_cli/workflows/test_command_resume.py3CODE
LOWtests/specify_cli/workflows/test_command_resolve.py3CODE
LOWtests/specify_cli/workflows/test_command_update.py3CODE
LOWtests/specify_cli/workflows/test_command_run.py3CODE
LOWtests/specify_cli/workflows/helpers.py3CODE
LOWtests/specify_cli/workflows/test_command_remove.py3CODE
LOWtests/specify_cli/workflows/test_command_list.py3CODE
692 more matches not shown…
Empty Error Handlers110 hits · 538 pts
SeverityFileLineSnippetContext
HIGHtests/specify_cli/artifacts/test_catalog.py816except ArtifactNotFoundError:CODE
HIGHtests/specify_cli/extensions/test_command_info.py231except SystemExit:CODE
HIGHtests/integrations/test_registry.py95except ValueError:CODE
HIGHscripts/python/common.py298except OSError:CODE
HIGHscripts/python/common.py530except ImportError:CODE
HIGHscripts/python/common.py237except Exception:CODE
HIGHsrc/specify_cli/_version.py549except (subprocess.TimeoutExpired, OSError, ValueError):CODE
HIGHsrc/specify_cli/_version.py570except (subprocess.TimeoutExpired, OSError, ValueError):CODE
HIGHsrc/specify_cli/_assets.py117except Exception:CODE
HIGHsrc/specify_cli/__init__.py512except (AttributeError, ValueError, OSError):CODE
HIGHsrc/specify_cli/agents.py1457except ImportError:CODE
HIGHsrc/specify_cli/agents.py747except (ImportError, ValueError, KeyError):CODE
HIGHsrc/specify_cli/agents.py92except ImportError:CODE
HIGHsrc/specify_cli/agents.py1437except OSError:CODE
HIGHsrc/specify_cli/_download_security.py183except _TAR_DECOMPRESSION_ERRORS:CODE
HIGHsrc/specify_cli/command_init.py905except OSError:CODE
HIGHsrc/specify_cli/_utils.py230except OSError:CODE
HIGHsrc/specify_cli/_utils.py227except PermissionError:CODE
HIGHsrc/specify_cli/artifacts/catalog.py234except IdentifierComponentError:CODE
HIGHsrc/specify_cli/artifacts/catalog.py547except (OSError, ValueError):CODE
HIGHsrc/specify_cli/artifacts/_operation_info.py462except IdentifierComponentError:CODE
HIGHsrc/specify_cli/workflows/expressions.py930except (ValueError, TypeError):CODE
HIGHsrc/specify_cli/workflows/expressions.py1455except Exception: # noqa: BLE001 - probe values, reported by _evaluator_rejectsCODE
HIGHsrc/specify_cli/workflows/_execution.py662except Exception:CODE
HIGHsrc/specify_cli/workflows/engine.py1031except FileNotFoundError:CODE
HIGHsrc/specify_cli/workflows/engine.py807except OSError:CODE
HIGHsrc/specify_cli/workflows/_commands.py405except OSError:CODE
HIGHsrc/specify_cli/workflows/_commands.py447except OSError:CODE
HIGHsrc/specify_cli/workflows/_commands.py452except OSError:CODE
HIGHsrc/specify_cli/workflows/_commands.py522except OSError:CODE
HIGHsrc/specify_cli/workflows/_commands.py542except OSError:CODE
HIGHsrc/specify_cli/workflows/command_info.py53except FileNotFoundError:CODE
HIGHsrc/specify_cli/workflows/catalog/_domain.py628except OSError:CODE
HIGHsrc/specify_cli/workflows/catalog/_domain.py199except OSError:CODE
HIGHsrc/specify_cli/workflows/catalog/_domain.py542except (UnicodeDecodeError, json.JSONDecodeError, OSError):CODE
HIGHsrc/specify_cli/workflows/catalog/_domain.py224except OSError:CODE
HIGHsrc/specify_cli/workflows/catalog/_domain.py220except OSError:CODE
HIGHsrc/specify_cli/workflows/catalog/_domain.py609except (json.JSONDecodeError, ValueError, OSError):CODE
HIGHsrc/specify_cli/workflows/catalog/_domain.py197except PermissionError:CODE
HIGHsrc/specify_cli/workflows/catalog/_versions.py112except InvalidVersion:CODE
HIGHsrc/specify_cli/workflows/step/installer.py448except FileNotFoundError:CODE
HIGHsrc/specify_cli/workflows/step/installer.py657except OSError:CODE
HIGHsrc/specify_cli/workflows/step/init/__init__.py282except OSError:CODE
HIGHsrc/specify_cli/workflows/step/catalog/_domain.py159except OSError:CODE
HIGHsrc/specify_cli/workflows/step/catalog/_domain.py503except (UnicodeDecodeError, json.JSONDecodeError, OSError):CODE
HIGHsrc/specify_cli/workflows/step/catalog/_domain.py593except OSError:CODE
HIGHsrc/specify_cli/workflows/step/catalog/_domain.py183except OSError:CODE
HIGHsrc/specify_cli/workflows/step/catalog/_domain.py188except OSError:CODE
HIGHsrc/specify_cli/workflows/step/catalog/_domain.py574except (json.JSONDecodeError, ValueError, OSError):CODE
HIGHsrc/specify_cli/workflows/step/catalog/_domain.py157except PermissionError:CODE
HIGHsrc/specify_cli/workflows/step/catalog/_versions.py161except InvalidVersion:CODE
HIGH…/specify_cli/extensions/_command_update_transaction.py732except KeyError:CODE
HIGH…/specify_cli/extensions/_command_update_transaction.py808except OSError:CODE
HIGHsrc/specify_cli/extensions/__init__.py173except OSError:CODE
HIGHsrc/specify_cli/extensions/__init__.py1946except (OSError, ValueError):CODE
HIGHsrc/specify_cli/extensions/__init__.py3248except OSError:CODE
HIGHsrc/specify_cli/extensions/__init__.py4770except (json.JSONDecodeError, OSError, UnicodeError, ExtensionError):CODE
HIGHsrc/specify_cli/extensions/__init__.py4834except OSError:CODE
HIGHsrc/specify_cli/extensions/__init__.py4975except (json.JSONDecodeError, OSError, UnicodeError, ExtensionError):CODE
HIGHsrc/specify_cli/extensions/__init__.py5029except OSError:CODE
50 more matches not shown…
Cross-Language Confusion49 hits · 242 pts
SeverityFileLineSnippetContext
HIGHtests/test_workflows.py5508 # block (list/null) is stored raw and would crash _resolve_inputs atCOMMENT
HIGHtests/test_workflows.py3563 ``config.get(k, default)`` does not replace an explicit null).CODE
HIGHtests/test_workflows.py4969 """An explicit ``output:`` (YAML null) is valid, matching ``validate``."""STRING
HIGHtests/test_workflows.py10402 """An empty document, explicit null, or absent/empty ``catalogs:`` stays aSTRING
HIGHtests/test_github_workflows.py202 calls.push({api, args});CODE
HIGHtests/test_github_workflows.py216 let error = null;CODE
HIGHtests/test_github_workflows.py1645 const activated = pre && evaluate(input.activated);CODE
HIGHtests/test_github_workflows.py1683 "pr-assess-${{ github.event.issue.number || github.event.pull_request.number }}"STRING
HIGHtests/test_resolve_template_python_parity.py280 '"disabled-ext":{"enabled":null,"priority":1},'CODE
HIGHtests/parity_helpers.py141 'command -v cygpath >/dev/null 2>&1 && cygpath -u "$1"',CODE
HIGH⚡tests/test_workflow_step_submission.py918 path.write_text(original.replace(token, token + " null, " + token, 1))STRING
HIGHtests/test_workflow_step_submission.py898 text = text.replace(token, token + " null, " + token, 1)STRING
HIGHtests/test_init_dir.py562 `cd && pwd` never yields one, so the two must agree.STRING
HIGH⚡tests/test_setup_plan_python_parity.py183 '{"presets": {"alpha": {"priority": 2}, "beta": {"priority": 1}, "gamma": {"priority": null}}}',CODE
HIGH⚡tests/test_setup_plan_python_parity.py188 ('{"presets":null}', "# alpha plan\n"),CODE
HIGHtests/test_extension_registration.py303 """Regression: hooks: {after_tasks: null} must not crash in unregister_hooks()."""STRING
HIGHtests/test_security_workflow.py100 "${{ github.event.pull_request.base.sha || github.event.before || '' }}"CODE
HIGHtests/test_security_workflow.py103 "${{ github.event.pull_request.head.sha || github.sha }}"CODE
HIGHtests/specify_cli/workflows/test_command_status.py343 (int/list instead of str-or-null) raises ValueError, which leakedCODE
HIGH…cify_cli/extensions/test_command_update_transaction.py160 # Write config with hooks: null; get_project_config() normalizes this to {}COMMENT
HIGH⚡tests/specify_cli/presets/test_manifest.py77 """Required manifest sections reject null, list, and scalar values."""STRING
HIGHtests/specify_cli/events/test_events.py1217 assert "errors.push(" in contentCODE
HIGH⚡tests/contract/test_catalog_schema.py108 default stack (must not be confused with an explicit top-level null)."""STRING
HIGHtests/contract/test_catalog_schema.py85 """A top-level non-mapping bundle-catalogs.yml (list/scalar/null) must raise,STRING
HIGHtests/extensions/test_extension_agent_context.py175 "command -v cygpath >/dev/null 2>&1 && cygpath -u \"$1\"",CODE
HIGHscripts/python/common.py692 # * a non-mapping top level ([], "forge", 42, null) is valid JSON, soCOMMENT
HIGHsrc/specify_cli/workflows/expressions.py983 In every such case the membership relation is undefined, so treat it asSTRING
HIGH⚡src/specify_cli/workflows/engine.py171 "'workflow.integration' must be a string or null, got "CODE
HIGH⚡src/specify_cli/workflows/engine.py181 "'workflow.model' must be a string or null, got "CODE
HIGH⚡src/specify_cli/workflows/engine.py188 "'workflow.options' must be a mapping or null, got "CODE
HIGHsrc/specify_cli/workflows/engine.py343 # valid, but any present-but-non-mapping value — ``requires:`` (YAML null),COMMENT
HIGHsrc/specify_cli/workflows/engine.py650 f"string or null, got {type(installed_workflow_id).__name__}"CODE
HIGHsrc/specify_cli/workflows/engine.py661 f"string or null, got {type(installed_registry_root).__name__}"CODE
HIGHsrc/specify_cli/workflows/catalog/_domain.py384 # raises. An absent key, an explicit ``catalogs:`` null, and an emptyCOMMENT
HIGHsrc/specify_cli/workflows/step/prompt/__init__.py294 # (an explicit ``integration:``/``model:`` YAML null) means "inherit theCOMMENT
HIGHsrc/specify_cli/workflows/step/command/__init__.py322 # a non-string (null, list, int) crashes there with a rawCOMMENT
HIGHsrc/specify_cli/workflows/step/command/__init__.py374 # (an explicit ``integration:``/``model:`` YAML null) means "inherit theCOMMENT
HIGHsrc/specify_cli/workflows/step/fan_in/__init__.py38 # explicit ``output:`` (YAML null) stays valid, matching validate.COMMENT
HIGHsrc/specify_cli/extensions/__init__.py4588 ``{"extensions": []}`` or ``{"extensions": null}`` slip throughSTRING
HIGHsrc/specify_cli/integrations/_command_upgrade_layout.py154 # anything else (e.g. null) leaves ownership undecidable, so failCOMMENT
HIGHsrc/specify_cli/presets/_manifest.py173 # ``templates: [null]``) raises a clean PresetValidationError theCOMMENT
HIGHsrc/specify_cli/presets/_catalog.py209 ``{"presets": []}`` or ``{"presets": null}`` slip through here andSTRING
HIGH⚡src/specify_cli/events/__init__.py2022 f" try {{ if ({checks}) {{ runEvent({command_lit}, {ev_lit}, input, output, {timeout_sec}); }STRING
HIGH⚡src/specify_cli/events/__init__.py2026 f" try {{ runEvent({command_lit}, {ev_lit}, input, output, {timeout_sec}); }} catch (e) {{ erSTRING
HIGH⚡src/specify_cli/events/__init__.py2030 f" try {{ const ctx = runEvent({command_lit}, {ev_lit}, input, output, {timeout_sec}); if (ctx) cSTRING
HIGH⚡src/specify_cli/events/__init__.py2034 f" try {{ runEvent({command_lit}, {ev_lit}, input, output, {timeout_sec}); }} catch (e) {{ errorsSTRING
HIGHsrc/specify_cli/events/__init__.py2069 f" if (ctx === undefined) {{\n"STRING
HIGHsrc/specify_cli/events/__init__.py2073 f" if (ctx) output.system.push(ctx);\n"STRING
HIGHsrc/specify_cli/events/__init__.py2093 f" output.parts.push({{ id: base + \".speckit\" + Math.random().toString(36).slice(2, 8), sessionIDSTRING
Deep Nesting215 hits · 174 pts
SeverityFileLineSnippetContext
LOWtests/test_github_workflows.py1593CODE
LOWtests/test_extensions.py1673CODE
LOWtests/test_extensions.py2816CODE
LOWtests/test_workflow_step_submission.py743CODE
LOWtests/test_community_preset_validation.py651CODE
LOWtests/specify_cli/workflows/test_command_add.py818CODE
LOWtests/specify_cli/workflows/step/test_command_add.py1662CODE
LOWtests/specify_cli/integrations/test_lifecycle.py63CODE
LOW…ts/specify_cli/integrations/test_installed_adapters.py1350CODE
LOW…ts/specify_cli/integrations/test_installed_adapters.py2180CODE
LOW…ts/specify_cli/integrations/test_installed_adapters.py2412CODE
LOWtests/specify_cli/presets/test_catalog.py973CODE
LOWtests/specify_cli/bundles/test_references.py447CODE
LOWtests/integrations/test_integration_generic.py229CODE
LOWtests/integrations/test_integration_generic.py1534CODE
LOW…s/agent-context/scripts/python/update_agent_context.py45CODE
LOW…s/agent-context/scripts/python/update_agent_context.py141CODE
LOW…s/agent-context/scripts/python/update_agent_context.py259CODE
LOW…nsions/git/scripts/python/create_new_feature_branch.py90CODE
LOW…nsions/git/scripts/python/create_new_feature_branch.py427CODE
LOWextensions/git/scripts/python/auto_commit.py49CODE
LOWscripts/python/check_prerequisites.py70CODE
LOWscripts/python/common.py612CODE
LOWscripts/python/common.py619CODE
LOWscripts/python/create_new_feature.py114CODE
LOWscripts/python/create_new_feature.py266CODE
LOW.github/scripts/validate_community_workflow_step.py274CODE
LOW.github/scripts/validate_community_workflow_step.py346CODE
LOW.github/scripts/validate_community_workflow_step.py491CODE
LOW.github/scripts/validate_community_preset.py113CODE
LOW.github/scripts/validate_community_preset.py165CODE
LOW.github/scripts/validate_community_preset.py184CODE
LOW.github/scripts/validate_community_preset.py382CODE
LOWsrc/specify_cli/_console.py150CODE
LOWsrc/specify_cli/_console.py93CODE
LOWsrc/specify_cli/_console.py220CODE
LOWsrc/specify_cli/_toml_string.py36CODE
LOWsrc/specify_cli/_version.py480CODE
LOWsrc/specify_cli/_assets.py104CODE
LOWsrc/specify_cli/__init__.py216CODE
LOWsrc/specify_cli/agents.py669CODE
LOWsrc/specify_cli/agents.py1139CODE
LOWsrc/specify_cli/agents.py1293CODE
LOWsrc/specify_cli/agents.py1372CODE
LOWsrc/specify_cli/shared_infra.py243CODE
LOWsrc/specify_cli/shared_infra.py467CODE
LOWsrc/specify_cli/_download_security.py125CODE
LOWsrc/specify_cli/_download_security.py905CODE
LOWsrc/specify_cli/_download_security.py1070CODE
LOWsrc/specify_cli/command_init.py264CODE
LOWsrc/specify_cli/command_init.py269CODE
LOWsrc/specify_cli/integration_status.py130CODE
LOWsrc/specify_cli/_utils.py194CODE
LOWsrc/specify_cli/_utils.py204CODE
LOWsrc/specify_cli/artifacts/catalog.py475CODE
LOWsrc/specify_cli/artifacts/catalog.py580CODE
LOWsrc/specify_cli/artifacts/catalog.py844CODE
LOWsrc/specify_cli/artifacts/catalog.py1032CODE
LOWsrc/specify_cli/artifacts/resolution.py189CODE
LOWsrc/specify_cli/artifacts/resolution.py293CODE
155 more matches not shown…
Excessive Try-Catch Wrapping144 hits · 130 pts
SeverityFileLineSnippetContext
LOWtests/test_check_prerequisites_python_parity.py605 except Exception: # pragma: no cover - defensive cleanupCODE
MEDIUMtests/specify_cli/workflows/step/test_installer.py1045def _install(label, pkg, force):CODE
LOWtests/specify_cli/workflows/step/test_installer.py1050 except Exception as exc: # noqa: BLE001 - recorded for assertionsCODE
MEDIUM…ts/specify_cli/integrations/test_installed_adapters.py3569def load_second():CODE
LOW…ts/specify_cli/integrations/test_installed_adapters.py3572 except Exception as exc:STRING
LOWtests/unit/test_condition_expression_block.py774 except Exception:CODE
LOWtests/integrations/test_integration_base_toml.py316 except Exception as exc:CODE
LOWtests/integrations/test_integration_base_yaml.py152 except Exception as exc:CODE
LOW…s/agent-context/scripts/python/update_agent_context.py83 except Exception:CODE
LOW…s/agent-context/scripts/python/update_agent_context.py96 except Exception:CODE
LOW…s/agent-context/scripts/python/update_agent_context.py152 except Exception:CODE
LOW…s/agent-context/scripts/python/update_agent_context.py325 except Exception as exc:CODE
LOW…ons/agent-context/scripts/bash/update-agent-context.sh86except Exception as exc:CODE
LOW…ons/agent-context/scripts/bash/update-agent-context.sh138 except Exception:CODE
LOW…ons/agent-context/scripts/bash/update-agent-context.sh151 except Exception:CODE
LOW…ons/agent-context/scripts/bash/update-agent-context.sh197except Exception:CODE
LOW…ons/agent-context/scripts/bash/update-agent-context.sh270except Exception:CODE
LOWscripts/python/common.py237 except Exception:CODE
MEDIUMscripts/python/setup_plan.py70 print(f"Error: {exc}", file=sys.stderr)STRING
MEDIUMscripts/python/create_new_feature.py134 print(f"Error: {arg} requires a value", file=sys.stderr)STRING
MEDIUMscripts/python/create_new_feature.py364 print("Error: feature number is too long for a branch name", file=sys.stderr)CODE
MEDIUMscripts/python/create_new_feature.py415 print(f"Error: {exc}", file=sys.stderr)CODE
LOWscripts/bash/common.sh291except Exception:CODE
LOWscripts/bash/common.sh453 except Exception as exc:CODE
LOWscripts/bash/common.sh559except Exception:CODE
LOWscripts/bash/common.sh678except Exception:CODE
LOWscripts/bash/common.sh760except Exception as exc:CODE
LOWsrc/specify_cli/_console.py90 except Exception:STRING
LOWsrc/specify_cli/mcp_version.py130 except Exception:CODE
LOWsrc/specify_cli/command_version.py84 except Exception: # noqa: BLE001CODE
LOWsrc/specify_cli/_assets.py108 except Exception:CODE
LOWsrc/specify_cli/_assets.py117 except Exception:CODE
LOWsrc/specify_cli/__init__.py237 except Exception:CODE
LOWsrc/specify_cli/__init__.py254 except Exception as e:CODE
LOWsrc/specify_cli/_download_security.py520 except Exception as exc:CODE
LOWsrc/specify_cli/_download_security.py900 except Exception as exc:CODE
LOWsrc/specify_cli/_download_security.py1060 except Exception as exc:CODE
LOWsrc/specify_cli/_download_security.py1235 except Exception as exc:CODE
LOWsrc/specify_cli/command_init.py254 except Exception as e:CODE
LOWsrc/specify_cli/command_init.py822 except Exception as wf_err:CODE
LOWsrc/specify_cli/command_init.py907 except Exception as preset_err:CODE
LOWsrc/specify_cli/command_init.py943 except Exception as ext_err:CODE
LOWsrc/specify_cli/command_init.py966 except Exception as e:CODE
LOWsrc/specify_cli/_utils.py235 except Exception:CODE
LOWsrc/specify_cli/artifacts/mcp_list.py330 except Exception:CODE
LOWsrc/specify_cli/artifacts/mcp_list.py349 except Exception as exc:CODE
LOWsrc/specify_cli/artifacts/mcp_list.py366 except Exception as exc:CODE
LOWsrc/specify_cli/artifacts/mcp_info.py308 except Exception:CODE
LOWsrc/specify_cli/artifacts/mcp_info.py326 except Exception as exc:CODE
LOWsrc/specify_cli/artifacts/mcp_info.py343 except Exception as exc:CODE
LOWsrc/specify_cli/workflows/command_resume.py115 except Exception as exc:CODE
LOWsrc/specify_cli/workflows/expressions.py876 except Exception: # noqa: BLE001 - probe values, not the author's textCODE
LOWsrc/specify_cli/workflows/expressions.py1428 except Exception: # noqa: BLE001 - probe values, not the author's textCODE
LOWsrc/specify_cli/workflows/expressions.py1455 except Exception: # noqa: BLE001 - probe values, reported by _evaluator_rejectsCODE
LOWsrc/specify_cli/workflows/__init__.py229 except Exception: # noqa: BLE001, S112CODE
LOWsrc/specify_cli/workflows/_execution.py662 except Exception:CODE
LOWsrc/specify_cli/workflows/engine.py778 except Exception as exc:CODE
LOWsrc/specify_cli/workflows/engine.py1146 except Exception as exc:CODE
LOWsrc/specify_cli/workflows/engine.py1260 except Exception as exc:CODE
LOWsrc/specify_cli/workflows/command_add.py429 except Exception as exc:CODE
84 more matches not shown…
Over-Commented Block138 hits · 126 pts
SeverityFileLineSnippetContext
LOWspec-driven.md121COMMENT
LOWtests/test_workflows.py7981 engine = WorkflowEngine(project_dir)COMMENT
LOWtests/integrations/test_extra_args.py481# SPECKIT_INTEGRATION_<KEY>_EXECUTABLE testsCOMMENT
LOWextensions/template/extension.yml81 description: "Demonstrates hook functionality"COMMENT
LOWextensions/template/config-template.yml61COMMENT
LOWextensions/github/scripts/bash/resolve-tasks.sh1#!/usr/bin/env bashCOMMENT
LOWextensions/agent-context/agent-context-config.yml1# Coding Agent Context Extension ConfigurationCOMMENT
LOW…ons/agent-context/scripts/bash/update-agent-context.sh1#!/usr/bin/env bashCOMMENT
LOWextensions/git/git-config.yml1# Git Branching Workflow Extension ConfigurationCOMMENT
LOWextensions/git/config-template.yml1# Git Branching Workflow Extension ConfigurationCOMMENT
LOWextensions/git/scripts/bash/auto-commit.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/bash/common.sh21 prev_dir="$dir"COMMENT
LOWscripts/bash/check-prerequisites.sh1#!/usr/bin/env bashCOMMENT
LOW.github/security-audit-requirements.txt801 # sse-starletteCOMMENT
LOW.github/workflows/add-community-workflow-step.lock.yml1# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"8afebb8429e0d385eb72f85e4ad601a08d7af8f6a1265c79a02d66f6ccaCOMMENT
LOW.github/workflows/add-community-workflow-step.lock.yml21# gh aw compileCOMMENT
LOW.github/workflows/add-community-workflow-step.lock.yml41# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0COMMENT
LOW.github/workflows/add-community-workflow-step.lock.yml961 run: bash "${RUNNER_TEMP}/gh-aw/actions/clean_git_credentials.sh"COMMENT
LOW.github/workflows/add-community-workflow-step.lock.yml981 # --allow-tool shell(git status)COMMENT
LOW.github/workflows/add-community-extension.lock.yml1# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"09fd527390aa8e7828202739810588856a8edfbca24ee945e387134bf1fCOMMENT
LOW.github/workflows/add-community-extension.lock.yml21# gh aw compileCOMMENT
LOW.github/workflows/add-community-extension.lock.yml41# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0COMMENT
LOW.github/workflows/add-community-extension.lock.yml961 # --allow-tool safeoutputsCOMMENT
LOW.github/workflows/feature-assess.lock.yml1# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"6df6db7c7d409c16fdef601eba29916205c00c3d33284dd517c9e0367f9COMMENT
LOW.github/workflows/feature-assess.lock.yml21# gh aw compileCOMMENT
LOW.github/workflows/feature-assess.lock.yml41# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9)COMMENT
LOW.github/workflows/feature-assess.lock.yml921 continue-on-error: trueCOMMENT
LOW.github/workflows/feature-assess.lock.yml941 # --allow-tool shell(mkdir)COMMENT
LOW.github/workflows/add-community-bundle.lock.yml1# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"8f2183d49bd078f40c1d155c981ab0d24de6fd6f594982ef9c34e29d3bfCOMMENT
LOW.github/workflows/add-community-bundle.lock.yml21# gh aw compileCOMMENT
LOW.github/workflows/add-community-bundle.lock.yml41# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0COMMENT
LOW.github/workflows/add-community-bundle.lock.yml961 # --allow-tool safeoutputsCOMMENT
LOW.github/workflows/bug-test.lock.yml1# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"59e49bd028e10b6702fa004ac998eec66641a031cc6c633da41d5206593COMMENT
LOW.github/workflows/bug-test.lock.yml21# gh aw compileCOMMENT
LOW.github/workflows/bug-test.lock.yml41# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9)COMMENT
LOW.github/workflows/bug-test.lock.yml901 # --allow-tool shell(awk)COMMENT
LOW.github/workflows/bug-test.lock.yml921 # --allow-tool shell(pnpm:*)COMMENT
LOW.github/workflows/add-community-preset.lock.yml1# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"b4af3f68becf88fb1763c4da846706cbedde768068083c3ad5b8dc5b7b1COMMENT
LOW.github/workflows/add-community-preset.lock.yml21# gh aw compileCOMMENT
LOW.github/workflows/add-community-preset.lock.yml41# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0COMMENT
LOW.github/workflows/add-community-preset.lock.yml961 continue-on-error: trueCOMMENT
LOW.github/workflows/add-community-preset.lock.yml981 # --allow-tool shell(git rm:*)COMMENT
LOW.github/workflows/bug-fix.lock.yml1# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"f405777e1e6006722af689eeaa5be716ec394f77dcde4f00c403c316c5fCOMMENT
LOW.github/workflows/bug-fix.lock.yml21# gh aw compileCOMMENT
LOW.github/workflows/bug-fix.lock.yml41# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0COMMENT
LOW.github/workflows/bug-fix.lock.yml941 id: agentic_executionCOMMENT
LOW.github/workflows/bug-fix.lock.yml961 # --allow-tool shell(grep)COMMENT
LOW.github/workflows/pr-assess.lock.yml1# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"9027e52e8e4ccbef860ca13c6cdf97cf11ce578cb62084e39a7c42d3807COMMENT
LOW.github/workflows/pr-assess.lock.yml21# gh aw compileCOMMENT
LOW.github/workflows/pr-assess.lock.yml41# - actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0COMMENT
LOW.github/workflows/bug-assess.lock.yml1# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"a82cb49e1928917832e31a5d10f4db984d1be1a9006bd20dc7d4dfc45a4COMMENT
LOW.github/workflows/bug-assess.lock.yml21# gh aw compileCOMMENT
LOW.github/workflows/bug-assess.lock.yml41# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 (source v9)COMMENT
LOW.github/workflows/bug-assess.lock.yml881 # Copilot CLI tool arguments (sorted):COMMENT
LOW.github/workflows/extension-version-guard.yml1name: Extension Version GuardCOMMENT
LOWpresets/scaffold/preset.yml21COMMENT
LOWpresets/scaffold/preset.yml41 # $CORE_SCRIPT placeholder (scripts), replaced with lower-priority contentCOMMENT
LOWpresets/scaffold/preset.yml61 #COMMENT
LOWsrc/specify_cli/__init__.py1#!/usr/bin/env python3COMMENT
LOWsrc/specify_cli/agents.py721 # Resolve the command-reference separator for the file THIS registrarCOMMENT
78 more matches not shown…
Modern AI Meta-Vocabulary47 hits · 107 pts
SeverityFileLineSnippetContext
MEDIUMREADME.md95[Command reference](https://github.github.io/spec-kit/reference/agentic-sdd.html)CODE
MEDIUMREADME.md123[Command reference](https://github.github.io/spec-kit/reference/agentic-bugfix.html)CODE
MEDIUMREADME.md156[Command reference](https://github.github.io/spec-kit/reference/agentic-assessment.html)CODE
MEDIUMREADME.md182- [CLI reference](https://github.github.io/spec-kit/reference/overview.html) and [process commands](https://github.githuCODE
MEDIUMREADME.ja.md77[コマンドリファレンス](https://github.github.io/spec-kit/reference/agentic-sdd.html)CODE
MEDIUMREADME.ja.md104[コマンドリファレンス](https://github.github.io/spec-kit/reference/agentic-bugfix.html)CODE
MEDIUMREADME.ja.md133[コマンドリファレンス](https://github.github.io/spec-kit/reference/agentic-assessment.html)CODE
MEDIUMREADME.ja.md157- [CLIリファレンス](https://github.github.io/spec-kit/reference/overview.html) と [プロセスコマンド](https://github.github.io/spec-kit/CODE
MEDIUMCONTRIBUTING.md2471. **Run focused automated checks first** — use the quick verification commands [below](#automated-checks) to catch scafCODE
MEDIUMREADME.zh-CN.md96[命令参考](https://github.github.io/spec-kit/reference/agentic-sdd.html)CODE
MEDIUMREADME.zh-CN.md121[命令参考](https://github.github.io/spec-kit/reference/agentic-bugfix.html)CODE
MEDIUMREADME.zh-CN.md151[命令参考](https://github.github.io/spec-kit/reference/agentic-assessment.html)CODE
MEDIUMREADME.zh-CN.md177- [CLI 参考](https://github.github.io/spec-kit/reference/overview.html)与[流程命令](https://github.github.io/spec-kit/referenceCODE
MEDIUMnewsletters/2026-March.md75- **End-to-end workflow automation** -- an open issue (#1966) proposes a built-in pipeline command. The community-built CODE
MEDIUMnewsletters/2026-May.md135- **Multi-agent workflows** — multi-install support (#2389) was the most-requested feature. The next frontier is orchestCODE
MEDIUMnewsletters/2026-September.md58September's documentation leaned toward simplification and localization. The **README was simplified around the three coCODE
MEDIUMnewsletters/2026-September.md83Additional coverage appeared on DEV Community (Ayush Bisht, Rost Glukhov's gstack, Dmitry Amelchenko, Manjush, Abhishek CODE
MEDIUMnewsletters/2026-August.md17**v0.15.2–v0.16.5** (August 3–19) ran the month's patch cadence before the milestone. Feature work concentrated on **insCODE
MEDIUMnewsletters/2026-August.md90- **New2026** (Medium, August 19) — *"AI Coding Frameworks Explained,"* a five-layer "stack" mental model positioning SpCODE
MEDIUMnewsletters/2026-June.md21**v0.11.0–v0.11.10** (June 16–29) was the largest release cluster of the month and centered on **workflows** and the newCODE
MEDIUMnewsletters/2026-June.md47Beyond converge and bundles, June was the month the **workflow engine grew up**. The **step catalog** (#2394) made stepsCODE
MEDIUMnewsletters/2026-July.md17**v0.12.3–v0.12.18** (July 1–17) was the month's longest patch run and carried two features amid heavy hardening. The **CODE
MEDIUMnewsletters/2026-July.md29The pipeline runs a staged flow — **capture → evidence → refine → design → decision** — that takes a raw idea, gathers sCODE
MEDIUMtests/test_extensions.py8992 # .specify/extensions/<id>/<name>, so that is where scaffolding mustCOMMENT
MEDIUMtests/specify_cli/presets/test_manager_commands.py116 # it must scaffold (as a native-skill SKILL.md for claude) and beCOMMENT
MEDIUMtests/extensions/git/test_git_extension.py1283 # Baseline-commit the scaffolding (and config) so the tree isCOMMENT
MEDIUMtests/extensions/git/test_git_extension.py1285 # the untracked scaffold files would mask whether the message fileCOMMENT
MEDIUMtests/extensions/git/test_git_extension.py1629 # Baseline-commit the scaffolding (and config) so the tree isCOMMENT
MEDIUMtests/extensions/git/test_git_extension.py1631 # the untracked scaffold files would mask whether the message fileCOMMENT
MEDIUMtests/integrations/test_cli.py339 # Aborted before scaffolding: the pre-existing file is untouched.COMMENT
MEDIUMdocs/guides/agentic-sdlc.md46A star (&#9733;) marks agentic work: before prose paragraphs and afterCODE
MEDIUMdocs/guides/agentic-sdlc.md239&#9733; Beyond core feature delivery, agentic community-submission workflows forCODE
MEDIUMdocs/guides/agentic-sdlc.md250## How we went from SDLC to an agentic SDLCCOMMENT
MEDIUMdocs/guides/agentic-sdlc.md265| June 2026 | <ul><li>An <a href="https://github.com/github/spec-kit/pull/3023">agentic bug-assess workflow</a> was addeCODE
MEDIUMdocs/guides/agentic-sdlc.md266| July 2026 | <ul><li><a href="https://github.com/github/spec-kit/pull/3258">Bug-fix</a> extended the agentic issue workCODE
MEDIUMdocs/reference/integrations.md30| [IBM Bob](https://www.ibm.com/products/bob) | `bob` | Skills-basedCODE
MEDIUMdocs/reference/agentic-assessment.md92## Handoff and guardrailsCOMMENT
MEDIUMscripts/python/common.py144 # letting an orchestrator (multi-agent runner, CI matrix) guarantee that noCOMMENT
MEDIUMscripts/bash/common.sh173 # letting an orchestrator (multi-agent runner, CI matrix) guarantee that noCOMMENT
MEDIUMpresets/ARCHITECTURE.md160│ ├── README.md # Guide for customizing the scaffoldCODE
MEDIUMsrc/specify_cli/agents.py725 # skill scaffold ("/SKILL.md") uses the skills separator; anyCOMMENT
MEDIUMsrc/specify_cli/agents.py843 # layout* this registrar writes — a "/SKILL.md" scaffold uses the skillsCOMMENT
MEDIUMsrc/specify_cli/extensions/__init__.py3463 # Only scaffold what removal actually preserves. remove(keep_config)COMMENT
MEDIUMsrc/specify_cli/extensions/__init__.py3494 # file or cannot be created, not raise out of scaffolding afterCOMMENT
MEDIUMsrc/specify_cli/integrations/command_scaffold.py36 # scaffold targets the Spec Kit *source* repo layout (_is_spec_kit_repo_root),COMMENT
MEDIUMsrc/specify_cli/integrations/copilot/__init__.py177 # Mutable flag set by setup() — indicates the active scaffolding mode.COMMENT
MEDIUMsrc/specify_cli/events/__init__.py670 # uses for command scaffolding.STRING
Self-Referential Comments32 hits · 102 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_setup_tasks.py221 # Create the overrideCOMMENT
MEDIUMtests/test_extensions.py1829 # Create a config file in the installed extension directoryCOMMENT
MEDIUMtests/test_extensions.py2826 # Create a ZIP of the extension in a temp directory (not NamedTemporaryFile,COMMENT
MEDIUMtests/test_extensions.py3266 # Create a config fileCOMMENT
MEDIUMtests/test_extension_skills.py3152 # Create the skill directory without the SKILL.md fileCOMMENT
MEDIUMtests/test_extension_registration.py69 # Create a mock manifestCOMMENT
MEDIUMtests/test_extension_registration.py117 # Create a manifest with hooksCOMMENT
MEDIUMtests/test_extension_registration.py175 # Create a corrupted config (root is a list)COMMENT
MEDIUMtests/test_extension_registration.py330 # Create a manifest with a hook for the same eventCOMMENT
MEDIUMtests/specify_cli/workflows/test_command_run.py1004 # Create a minimal workflow YAML with a shell stepCOMMENT
MEDIUMtests/specify_cli/workflows/step/test_command_remove.py265 # Create an orphaned step directory (no registry entry)COMMENT
MEDIUM…s/specify_cli/workflows/overlay/test_command_remove.py124 # Create a base workflow file that would be the traversal target.COMMENT
MEDIUM⚡…sts/specify_cli/workflows/overlay/test_command_list.py175 # Create a symlinked overlays directory pointing outside the projectCOMMENT
MEDIUM⚡…sts/specify_cli/workflows/overlay/test_command_list.py189 # Create a real overlay directory outside the project.COMMENT
MEDIUMtests/specify_cli/presets/test_manager_commands.py2731 # Create a preset command dir with a wrap-strategy commandCOMMENT
MEDIUMtests/specify_cli/presets/test_manager.py1540 # Create a gemini commands dir so reconciliation writes thereCOMMENT
MEDIUMtests/specify_cli/presets/test_resolver.py815 # Create a template in the preset directoryCOMMENT
MEDIUMtests/specify_cli/events/test_events.py1172 # Create a project venv so the plugin's runtime resolver prefers it.COMMENT
MEDIUMtests/specify_cli/events/test_events.py1376 # Create a mock core command md fileCOMMENT
MEDIUMtests/specify_cli/events/test_events.py1648 # Create a core command template whose script writes its payload.COMMENT
MEDIUMtests/specify_cli/events/test_events.py2483 # Create a symlinked .claude directory pointing outside the project.COMMENT
MEDIUMtests/workflows/test_resolver_integration.py382 # Create a real overlay directory outside the project with a malicious overlay.COMMENT
MEDIUMtests/extensions/git/test_git_extension.py1050 # Create a file to commitCOMMENT
MEDIUMtests/integrations/test_integration_bob.py661 # Create a real legacy Bob project (renders shared templates).COMMENT
MEDIUMtests/integrations/test_integration_hermes.py179 # Create a foreign skill in the global dir firstCOMMENT
MEDIUM⚡tests/integrations/test_integration_forge.py405 # Create a mock extension command fileCOMMENT
MEDIUM⚡tests/integrations/test_integration_forge.py411 # Create a test command with dot notation nameCOMMENT
MEDIUMtests/integrations/test_integration_forge.py456 # Create a mock extension command fileCOMMENT
MEDIUMtests/integrations/test_integration_forge.py504 # Create a mock extension command fileCOMMENT
MEDIUM⚡tests/integrations/test_integration_opencode.py78 # Create a source command file for the registrarCOMMENT
MEDIUMtests/integrations/test_integration_opencode.py165 # Create a source command file for the registrarCOMMENT
MEDIUMsrc/specify_cli/extensions/__init__.py2898 # Create the staging file with mode 0600 before writing soCOMMENT
Docstring Block Structure19 hits · 95 pts
SeverityFileLineSnippetContext
HIGHsrc/specify_cli/extensions/__init__.py1092Collect command and alias names declared by a manifest. Performs install-time validation for extension-specificSTRING
HIGHsrc/specify_cli/extensions/__init__.py2387Check if extension is compatible with current spec-kit version. Args: manifest: Extension manifest STRING
HIGHsrc/specify_cli/extensions/__init__.py2438Install extension from a local directory. Args: source_dir: Path to extension directory STRING
HIGHsrc/specify_cli/extensions/__init__.py3285Install an extension from a supported archive. Args: archive_path: Path to a .zip, .tar.gz, or .tgzSTRING
HIGHsrc/specify_cli/extensions/__init__.py4703Fetch a single catalog with per-URL caching. For the DEFAULT_CATALOG_URL, uses legacy cache files (self.cache_fSTRING
HIGHsrc/specify_cli/extensions/__init__.py4847Fetch and merge extensions from all active catalogs. Higher-priority (lower priority number) catalogs win on coSTRING
HIGHsrc/specify_cli/extensions/__init__.py4946Fetch extension catalog from URL or cache. Args: force_refresh: If True, bypass cache and fetch froSTRING
HIGHsrc/specify_cli/extensions/__init__.py5142Download an extension archive from a catalog. Args: extension_id: ID of the extension to download STRING
HIGHsrc/specify_cli/extensions/_commands.py265Resolve an extension argument (ID or display name) to an installed extension. Args: argument: Extension ID STRING
HIGHsrc/specify_cli/integrations/cline/__init__.py23Convert command name to Cline-compatible hyphenated format. Cline handles slash-commands optimally when they use hySTRING
HIGHsrc/specify_cli/integrations/forge/__init__.py21Convert command name to Forge-compatible hyphenated format. Forge requires command names to use hyphens instead of STRING
HIGHsrc/specify_cli/integrations/junie/__init__.py21Convert command name to Junie-compatible hyphenated format. Junie does not allow dots inside of slash-commands. STRING
HIGHsrc/specify_cli/presets/_catalog.py243Load catalog stack configuration from a YAML file. Args: config_path: Path to preset-catalogs.yml STRING
HIGHsrc/specify_cli/presets/_catalog.py454Fetch a single catalog with per-URL caching. Args: entry: PresetCatalogEntry describing the catalogSTRING
HIGHsrc/specify_cli/presets/_catalog.py647Fetch preset catalog from URL or cache. Args: force_refresh: If True, bypass cache and fetch from nSTRING
HIGHsrc/specify_cli/presets/_catalog.py849Download an already-selected release without resolving its ID again. Args: pack_info: Metadata retuSTRING
HIGHsrc/specify_cli/presets/_manager.py175Check if preset is compatible with current spec-kit version. Args: manifest: Preset manifest STRING
HIGHsrc/specify_cli/presets/_manager.py372Install preset from a local directory. Args: source_dir: Path to preset directory speckSTRING
HIGHsrc/specify_cli/presets/_manager.py575Install a preset from a supported archive. Args: archive_path: Path to a .zip, .tar.gz, or .tgz arcSTRING
Structural Annotation Overuse35 hits · 55 pts
SeverityFileLineSnippetContext
LOW⚡spec-driven.md123# Step 1: Create the feature specification (5 minutes)COMMENT
LOW⚡spec-driven.md131# Step 2: Generate implementation plan (5 minutes)COMMENT
LOW⚡spec-driven.md134# Step 3: Generate executable tasks (5 minutes)COMMENT
LOW⚡tests/test_github_workflows.py1899 source_text.split("## Step 3 - Compare Claims and Material Changes", 1)[1]STRING
LOW⚡tests/test_github_workflows.py1904 source_text.split("## Step 4 - Report and Apply the Outcome", 1)[1]STRING
LOWtests/test_github_workflows.py1994 source_text.split("## Step 4 - Report and Apply the Outcome", 1)[1]STRING
LOWdocs/install/air-gapped.md5## Step 1: Build the wheel on a connected machineCOMMENT
LOW⚡docs/install/air-gapped.md22## Step 2: Transfer the `dist/` directoryCOMMENT
LOW⚡docs/install/air-gapped.md26## Step 3: Install on the air-gapped machineCOMMENT
LOW⚡docs/install/air-gapped.md32## Step 4: Initialize a projectCOMMENT
LOWextensions/EXTENSION-API-REFERENCE.md487### Step 1: DescriptionCOMMENT
LOWextensions/EXTENSION-API-REFERENCE.md495### Step 2: Another StepCOMMENT
LOWextensions/selftest/commands/selftest.md16### Step 1: Catalog Discovery ValidationCOMMENT
LOWextensions/selftest/commands/selftest.md25### Step 2: Simulate InstallationCOMMENT
LOWextensions/selftest/commands/selftest.md40### Step 3: Registration VerificationCOMMENT
LOWextensions/selftest/commands/selftest.md49### Step 4: Verification ReportCOMMENT
LOW⚡extensions/template/EXAMPLE-README.md116# Step 1: Create specificationCOMMENT
LOW⚡extensions/template/EXAMPLE-README.md119# Step 2: Generate tasksCOMMENT
LOW⚡extensions/template/EXAMPLE-README.md122# Step 3: Use extensionCOMMENT
LOWextensions/template/commands/example.md32### Step 1: Load ConfigurationCOMMENT
LOWextensions/template/commands/example.md66### Step 2: Perform Main ActionCOMMENT
LOWextensions/template/commands/example.md81### Step 3: Process ResultsCOMMENT
LOWextensions/template/commands/example.md97### Step 4: Save Output (Optional)COMMENT
LOW.github/workflows/pr-assess.md66## Step 1 - Handle the Item Type and StateCOMMENT
LOW.github/workflows/pr-assess.md89## Step 2 - Read the Description and Complete PR ChangesCOMMENT
LOW.github/workflows/pr-assess.md118## Step 3 - Compare Claims and Material ChangesCOMMENT
LOW.github/workflows/pr-assess.md156## Step 4 - Report and Apply the OutcomeCOMMENT
LOW.github/workflows/add-community-bundle.md114## Step 1 - Read and Parse the IssueCOMMENT
LOW.github/workflows/add-community-bundle.md151## Step 2 - Validate the SubmissionCOMMENT
LOW.github/workflows/add-community-bundle.md326## Step 3 - Determine Add or UpdateCOMMENT
LOW.github/workflows/add-community-bundle.md337## Step 4 - Update the Community CatalogCOMMENT
LOW.github/workflows/add-community-bundle.md388## Step 5 - Update Community DocumentationCOMMENT
LOW.github/workflows/add-community-bundle.md407## Step 6 - Create a Draft Pull RequestCOMMENT
LOW⚡src/specify_cli/extensions/__init__.py537 # Step 1: apply any rename from the auto-correction pass.COMMENT
LOW⚡src/specify_cli/extensions/__init__.py539 # Step 2: lift alias-form '{ext_id}.cmd' to canonical 'speckit.{ext_id}.cmd'.COMMENT
Redundant / Tautological Comments26 hits · 37 pts
SeverityFileLineSnippetContext
LOWtests/test_extensions.py593 # Set ext_id to match the legacy namespace so correction is validCOMMENT
LOWextensions/git/scripts/python/auto_commit.py152 # Check if there are changes to commitCOMMENT
LOW…tensions/git/scripts/bash/create-new-feature-branch.sh287# Check if git is available at this repo rootCOMMENT
LOWextensions/git/scripts/bash/git-common.sh6# Check if we have git available at the repo rootCOMMENT
LOWextensions/git/scripts/bash/auto-commit.sh75# Check if git is availableCOMMENT
LOWextensions/git/scripts/bash/auto-commit.sh166 # Check if event section existed at allCOMMENT
LOWextensions/git/scripts/bash/auto-commit.sh180# Check if there are changes to commitCOMMENT
LOWextensions/git/scripts/bash/initialize-repo.sh37# Check if git is availableCOMMENT
LOWextensions/git/scripts/bash/initialize-repo.sh43# Check if already a git repoCOMMENT
LOWscripts/bash/common.sh240# Check if jq is available for safe JSON constructionCOMMENT
LOWscripts/bash/common.sh847 # Check if any layer uses a non-replace strategyCOMMENT
LOWscripts/bash/setup-plan.sh67# Output resultsCOMMENT
LOWscripts/bash/setup-tasks.sh62# Output resultsCOMMENT
LOWscripts/bash/check-prerequisites.sh194# Output resultsCOMMENT
LOWscripts/bash/create-new-feature.sh33 # Check if the next argument is another option (starts with --)COMMENT
LOWsrc/specify_cli/workflows/step/command_info.py46 # Check if it's a built-inCOMMENT
LOWsrc/specify_cli/workflows/step/prompt/__init__.py220 # Check if the CLI tool is actually installed.COMMENT
LOWsrc/specify_cli/workflows/step/command/__init__.py252 # Check if the CLI tool is actually installed.COMMENT
LOWsrc/specify_cli/extensions/__init__.py1678 # Check if skill already exists before creating the directoryCOMMENT
LOWsrc/specify_cli/extensions/__init__.py2468 # Check if already installedCOMMENT
LOWsrc/specify_cli/extensions/__init__.py3323 # Check if manifest is in a subdirectoryCOMMENT
LOWsrc/specify_cli/extensions/command_add.py158 # Check if extension exists in catalog (supports both ID and display name)COMMENT
LOWsrc/specify_cli/presets/command_disable.py22 # Check if preset is installedCOMMENT
LOWsrc/specify_cli/presets/command_set_priority.py26 # Check if preset is installedCOMMENT
LOWsrc/specify_cli/presets/command_enable.py22 # Check if preset is installedCOMMENT
LOWsrc/specify_cli/presets/command_info.py65 # Check if installed locally firstCOMMENT
Modern Structural Boilerplate19 hits · 18 pts
SeverityFileLineSnippetContext
LOW…s/extensions/test_update_agent_context_feature_json.py21def _setup_project(root: Path, context_file: str = "CLAUDE.md") -> None:CODE
LOWsrc/specify_cli/_console.py25logger = logging.getLogger(__name__)CODE
LOWsrc/specify_cli/bundler.py5__all__ = ["BundlerError"]CODE
LOWsrc/specify_cli/mcp_version.py15logger = logging.getLogger(__name__)CODE
LOWsrc/specify_cli/shared_infra.py18logger = logging.getLogger(__name__)CODE
LOWsrc/specify_cli/artifacts/models.py169__all__ = [CODE
LOWsrc/specify_cli/artifacts/__init__.py21__all__ = [CODE
LOWsrc/specify_cli/artifacts/mcp_list.py23logger = logging.getLogger(__name__)CODE
LOWsrc/specify_cli/artifacts/mcp_info.py29logger = logging.getLogger(__name__)CODE
LOWsrc/specify_cli/workflows/_commands.py395 def set_mode(self, mode: int) -> None:CODE
LOWsrc/specify_cli/workflows/_commands.py1486def _set_workflow_enabled(workflow_id: str, enabled: bool) -> None:CODE
LOWsrc/specify_cli/workflows/step/_helpers.py21__all__ = [CODE
LOWsrc/specify_cli/workflows/overlay/__init__.py39__all__ = ["WorkflowResolver"]CODE
LOWsrc/specify_cli/integrations/manifest.py303 def set_ownership(self, rel_path: str | Path, mode: str) -> None:CODE
LOW⚡src/specify_cli/integrations/_helpers.py358def _set_default_integration_or_exit(*args: Any, **kwargs: Any) -> None:CODE
LOWsrc/specify_cli/integrations/catalog/__init__.py22__all__ = [CODE
LOWsrc/specify_cli/events/__init__.py38logger = logging.getLogger(__name__)CODE
LOWsrc/specify_cli/mcp_server/__init__.py5__all__ = ["create_server", "run_stdio_server"]CODE
LOWsrc/specify_cli/bundles/__init__.py11__all__ = ["BundlerError"]CODE
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMtests/specify_cli/workflows/test_command_add.py1290 # assertion is robust to Rich line-wrapping at narrow terminal widths.COMMENT
MEDIUMtests/extensions/github/test_github_extension.py982 # Read the raw value from a file so the harness itself needs no quoting.COMMENT
Fake / Example Data7 hits · 6 pts
SeverityFileLineSnippetContext
LOW⚡tests/specify_cli/bundles/test_primitives.py542 archive.write_bytes(b"placeholder")CODE
LOW⚡tests/specify_cli/bundles/test_primitives.py559 archive.write_bytes(b"placeholder")CODE
LOWtests/specify_cli/bundles/test_primitives.py521 archive.write_bytes(b"placeholder")CODE
LOWtests/specify_cli/bundles/test_primitives.py587 archive.write_bytes(b"placeholder")CODE
LOWtests/specify_cli/bundles/test_primitives.py1036 archive.write_bytes(b"placeholder")CODE
LOWtests/specify_cli/bundles/test_primitives.py1065 archive.write_bytes(b"placeholder")CODE
LOWtests/specify_cli/bundles/test_primitives.py1113 archive.write_bytes(b"placeholder")CODE
Magic Placeholder Names1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHextensions/template/EXAMPLE-README.md52 api_key: "your-api-key"CODE
Verbosity Indicators2 hits · 2 pts
SeverityFileLineSnippetContext
LOW⚡src/specify_cli/extensions/__init__.py537 # Step 1: apply any rename from the auto-correction pass.COMMENT
LOW⚡src/specify_cli/extensions/__init__.py539 # Step 2: lift alias-form '{ext_id}.cmd' to canonical 'speckit.{ext_id}.cmd'.COMMENT
Dead Code1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMtests/specify_cli/authentication/test_github_http.py226CODE
AI Structural Patterns3 hits · 2 pts
SeverityFileLineSnippetContext
LOWsrc/specify_cli/command_init.py269CODE
LOWsrc/specify_cli/extensions/__init__.py3271CODE
LOWsrc/specify_cli/extensions/__init__.py3505CODE