Repository Analysis

bmad-code-org/BMAD-METHOD

Breakthrough Method for Agile Ai Driven Development

13.2 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of bmad-code-org/BMAD-METHOD, a JavaScript project with 52,418 GitHub stars. SynthScan v2.0 examined 94,895 lines of code across 544 source files, recording 765 pattern matches distributed across 13 syntactic categories. The overall adjusted score of 13.2 places this repository in the Low AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

13.2
Adjusted Score
13.2
Raw Score
100%
Time Factor
2026-08-28
Last Push
52.4K
Stars
JavaScript
Language
94.9K
Lines of Code
544
Files
765
Pattern Hits
2026-08-29
Scan Date
0.05
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 26MEDIUM 108LOW 631

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 765 distinct pattern matches across 13 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Structural Annotation Overuse182 hits · 362 pts
SeverityFileLineSnippetContext
LOWtools/docs/fix-refs.md16## Step 1: Establish Target AudienceCOMMENT
LOWdocs/how-to/project-context.md24## Step 1: Run itCOMMENT
LOWdocs/how-to/project-context.md34## Step 2: Tell it what you bringCOMMENT
LOWdocs/how-to/project-context.md42## Step 3: It verifies the restCOMMENT
LOWdocs/how-to/project-context.md48## Step 4: Approve the blockCOMMENT
LOWdocs/how-to/established-projects.md19## Step 1: Clean Up Completed Planning ArtifactsCOMMENT
LOWdocs/how-to/established-projects.md27## Step 2: Create Project ContextCOMMENT
LOWdocs/how-to/established-projects.md43## Step 3: Maintain Quality Project DocumentationCOMMENT
LOWdocs/how-to/established-projects.md54## Step 3: Get HelpCOMMENT
LOWsrc/bmm-skills/plan/bmad-prfaq/SKILL.md31### Step 1: Resolve the Workflow BlockCOMMENT
LOWsrc/bmm-skills/plan/bmad-prfaq/SKILL.md43### Step 2: Execute Prepend StepsCOMMENT
LOWsrc/bmm-skills/plan/bmad-prfaq/SKILL.md47### Step 3: Load Persistent FactsCOMMENT
LOWsrc/bmm-skills/plan/bmad-prfaq/SKILL.md51### Step 4: Load ConfigCOMMENT
LOWsrc/bmm-skills/plan/bmad-prfaq/SKILL.md60### Step 5: Greet the UserCOMMENT
LOWsrc/bmm-skills/plan/bmad-prfaq/SKILL.md64### Step 6: Execute Append StepsCOMMENT
LOW…bmm-skills/plan/bmad-create-epics-and-stories/SKILL.md52### Step 1: Resolve the Workflow BlockCOMMENT
LOW…bmm-skills/plan/bmad-create-epics-and-stories/SKILL.md64### Step 2: Execute Prepend StepsCOMMENT
LOW…bmm-skills/plan/bmad-create-epics-and-stories/SKILL.md68### Step 3: Load Persistent FactsCOMMENT
LOW…bmm-skills/plan/bmad-create-epics-and-stories/SKILL.md72### Step 4: Load ConfigCOMMENT
LOW…bmm-skills/plan/bmad-create-epics-and-stories/SKILL.md81### Step 5: Greet the UserCOMMENT
LOW…bmm-skills/plan/bmad-create-epics-and-stories/SKILL.md85### Step 6: Execute Append StepsCOMMENT
LOW…create-epics-and-stories/steps/step-02-design-epics.md1# Step 2: Design Epic ListCOMMENT
LOW…eate-epics-and-stories/steps/step-03-create-stories.md1# Step 3: Generate Epics and StoriesCOMMENT
LOW…cs-and-stories/steps/step-01-validate-prerequisites.md1# Step 1: Validate Prerequisites and Extract RequirementsCOMMENT
LOW…te-epics-and-stories/steps/step-04-final-validation.md1# Step 4: Final ValidationCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-pm/SKILL.md21### Step 1: Resolve the Agent BlockCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-pm/SKILL.md33### Step 2: Execute Prepend StepsCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-pm/SKILL.md37### Step 3: Adopt PersonaCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-pm/SKILL.md43### Step 4: Load Persistent FactsCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-pm/SKILL.md47### Step 5: Load ConfigCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-pm/SKILL.md56### Step 6: Greet the UserCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-pm/SKILL.md62### Step 7: Execute Append StepsCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-pm/SKILL.md68### Step 8: Dispatch or Present the MenuCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-ux-designer/SKILL.md21### Step 1: Resolve the Agent BlockCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-ux-designer/SKILL.md33### Step 2: Execute Prepend StepsCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-ux-designer/SKILL.md37### Step 3: Adopt PersonaCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-ux-designer/SKILL.md43### Step 4: Load Persistent FactsCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-ux-designer/SKILL.md47### Step 5: Load ConfigCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-ux-designer/SKILL.md56### Step 6: Greet the UserCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-ux-designer/SKILL.md62### Step 7: Execute Append StepsCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-ux-designer/SKILL.md68### Step 8: Dispatch or Present the MenuCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-analyst/SKILL.md21### Step 1: Resolve the Agent BlockCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-analyst/SKILL.md33### Step 2: Execute Prepend StepsCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-analyst/SKILL.md37### Step 3: Adopt PersonaCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-analyst/SKILL.md43### Step 4: Load Persistent FactsCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-analyst/SKILL.md47### Step 5: Load ConfigCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-analyst/SKILL.md56### Step 6: Greet the UserCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-analyst/SKILL.md62### Step 7: Execute Append StepsCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-analyst/SKILL.md68### Step 8: Dispatch or Present the MenuCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-architect/SKILL.md21### Step 1: Resolve the Agent BlockCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-architect/SKILL.md33### Step 2: Execute Prepend StepsCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-architect/SKILL.md37### Step 3: Adopt PersonaCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-architect/SKILL.md43### Step 4: Load Persistent FactsCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-architect/SKILL.md47### Step 5: Load ConfigCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-architect/SKILL.md56### Step 6: Greet the UserCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-architect/SKILL.md62### Step 7: Execute Append StepsCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-architect/SKILL.md68### Step 8: Dispatch or Present the MenuCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-dev/SKILL.md21### Step 1: Resolve the Agent BlockCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-dev/SKILL.md33### Step 2: Execute Prepend StepsCOMMENT
LOWsrc/bmm-skills/agents/bmad-agent-dev/SKILL.md37### Step 3: Adopt PersonaCOMMENT
122 more matches not shown…
Hyper-Verbose Identifiers296 hits · 253 pts
SeverityFileLineSnippetContext
LOWtools/validate-skills.js107function parseFrontmatterMultiline(content) {CODE
LOWtools/installer/prompts.js242function defaultAutocompleteFilter(search, option) {CODE
LOWtools/installer/project-root.js79function getExternalModuleCachePath(moduleName, ...segments) {CODE
LOWtools/installer/project-root.js102async function resolveInstalledModuleYaml(moduleName) {CODE
LOWtools/installer/list-options.js34async function discoverOfficialModuleYamls() {CODE
LOWtools/installer/core/wsl-node-check.js74function formatWindowsNodeFromWslMessage(detection) {CODE
LOWtools/installer/core/legacy-warnings.js111async function warnPreNativeSkillsLegacy({ projectRoot, existingVersion } = {}) {CODE
LOWtools/installer/modules/version-resolver.js222async function normalizeExistingDirectory(candidate) {CODE
LOWtools/installer/modules/version-resolver.js259function extractMarketplaceVersion(data, moduleName, marketplacePluginNames = []) {CODE
LOWtools/installer/modules/version-resolver.js302function compareVersionsDescending(left, right) {CODE
LOWtest/test-installation-components.js89async function createSkillCollisionFixture() {CODE
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py202def test_set_rejects_unknown_key_and_illegal_status(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py212def test_action_items_carried_verbatim(tmp_path):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py219def test_story_file_on_disk_floors_ready_for_dev(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py228def test_story_file_never_downgrades_done(tmp_path):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py234def test_illegal_existing_status_warns_and_resets(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py244def test_fenced_code_blocks_are_not_parsed(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py254def test_non_ascii_titles_keep_distinct_keys(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py262def test_suspect_heading_is_reported(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py269def test_dry_run_writes_nothing_and_reports_drift(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py376def test_status_counts_and_recommendation(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py386def test_status_maps_legacy_values(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py391def test_status_open_action_items(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py397def test_status_malformed_action_items_are_flagged_not_dropped(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py405def test_status_review_beats_ready(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py413def test_status_in_progress_beats_all(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py421def test_status_staleness_and_orphan_risks(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py431def test_status_unparseable_timestamp_warns_instead_of_silence(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py437def test_status_iso_and_date_typed_stamps_do_not_crash(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py447def test_status_all_done_recommends_retro_then_nothing(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py75def test_fresh_generate_orders_and_defaults(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py95def test_header_comment_matches_template():STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py131def test_merge_preserves_and_never_downgrades(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py143def test_legacy_statuses_merge_by_meaning_not_reset(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py157def test_metadata_preserved_when_flags_omitted(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py170def test_unknown_keys_and_comments_survive_regenerate(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py179def test_fresh_rebuild_ignores_existing_statuses(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py190def test_set_applies_explicit_statuses_even_downgrades(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py287def test_dry_run_in_sync_after_generate(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py300def test_no_epics_fails_with_json(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py312def test_non_mapping_yaml_fails_with_json(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py329def test_argument_errors_emit_json(capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py460def test_status_odd_retro_key_reports_instead_of_crashing(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py473def test_status_illegal_status_reported(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py479def test_status_missing_file_fails_json(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py500def test_validate_reports_problems_without_crashing(tmp_path, capsys):STRING
LOW…bmad-sprint-planning/scripts/tests/test_sprint_plan.py514def test_validate_missing_file_and_bad_yaml(tmp_path, capsys):STRING
LOW…mm-skills/plan/bmad-architecture/scripts/lint_spine.py91def find_frontmatter_placeholders(frontmatter: str) -> list[dict]:CODE
LOW…lan/bmad-architecture/scripts/tests/test_lint_spine.py69def test_mermaid_braces_not_flagged():STRING
LOW…lan/bmad-architecture/scripts/tests/test_lint_spine.py75def test_placeholder_markers_caught():STRING
LOW…lan/bmad-architecture/scripts/tests/test_lint_spine.py87def test_unfilled_template_token_caught():STRING
LOW…lan/bmad-architecture/scripts/tests/test_lint_spine.py93def test_duplicate_ad_id_caught():STRING
LOW…lan/bmad-architecture/scripts/tests/test_lint_spine.py99def test_non_monotonic_ad_id_caught():STRING
LOW…lan/bmad-architecture/scripts/tests/test_lint_spine.py107def test_missing_field_caught():STRING
LOW…lan/bmad-architecture/scripts/tests/test_lint_spine.py131def test_stack_skeleton_row_not_version_pinned():STRING
LOW…lan/bmad-architecture/scripts/tests/test_lint_spine.py138def test_stack_html_comment_not_parsed_as_row():STRING
LOW…lan/bmad-architecture/scripts/tests/test_lint_spine.py144def test_template_token_is_low_severity():STRING
LOW…lan/bmad-architecture/scripts/tests/test_lint_spine.py153def test_no_frontmatter_body_still_scanned():STRING
LOW…lan/bmad-architecture/scripts/tests/test_lint_spine.py159def test_frontmatter_value_with_dashes_not_truncated():STRING
LOW…lan/bmad-architecture/scripts/tests/test_lint_spine.py167def test_ad_heading_in_fence_not_counted():STRING
236 more matches not shown…
Decorative Section Separators76 hits · 228 pts
SeverityFileLineSnippetContext
MEDIUMtools/validate-sidebar-order.js27// ── Main ─────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/validate-sidebar-order.js101// ── Directory classification ─────────────────────────────────────────────COMMENT
MEDIUMtools/validate-sidebar-order.js121// ── Per-directory validation ─────────────────────────────────────────────COMMENT
MEDIUMtools/validate-sidebar-order.js200// ── Cross-language drift ─────────────────────────────────────────────────COMMENT
MEDIUMtools/validate-sidebar-order.js257// ── Output ───────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/validate-sidebar-order.js315// ── Leaf helpers ─────────────────────────────────────────────────────────COMMENT
MEDIUMtools/installer/ui.js650 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/installer/ui.js652 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/installer/ui.js719 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/installer/ui.js721 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/installer/ui.js776 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/installer/ui.js778 // ─────────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/installer/core/manifest-generator.js504 '# ─────────────────────────────────────────────────────────────────',CODE
MEDIUMtools/installer/core/manifest-generator.js514 '# ─────────────────────────────────────────────────────────────────',CODE
MEDIUMtools/installer/core/manifest-generator.js519 '# ─────────────────────────────────────────────────────────────────',CODE
MEDIUMtools/installer/core/manifest-generator.js528 '# ─────────────────────────────────────────────────────────────────',CODE
MEDIUMtools/installer/modules/custom-module-manager.js40 // ─── Source Parsing ───────────────────────────────────────────────────────COMMENT
MEDIUMtools/installer/modules/custom-module-manager.js286 // ─── Marketplace JSON ─────────────────────────────────────────────────────COMMENT
MEDIUMtools/installer/modules/custom-module-manager.js303 // ─── Discovery ────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/installer/modules/custom-module-manager.js321 // ─── Source Resolution ────────────────────────────────────────────────────COMMENT
MEDIUMtools/installer/modules/custom-module-manager.js357 // ─── Clone ────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/installer/modules/custom-module-manager.js578 // ─── Plugin Resolution ────────────────────────────────────────────────────COMMENT
MEDIUMtools/installer/modules/custom-module-manager.js629 // ─── Source Finding ───────────────────────────────────────────────────────COMMENT
MEDIUMtools/installer/modules/custom-module-manager.js895 // ─── Normalization ────────────────────────────────────────────────────────COMMENT
MEDIUMtools/installer/modules/plugin-resolver.js67 // ─── Strategy 1: Root Module Files ──────────────────────────────────────────COMMENT
MEDIUMtools/installer/modules/plugin-resolver.js101 // ─── Strategy 2: Setup Skill ────────────────────────────────────────────────COMMENT
MEDIUMtools/installer/modules/plugin-resolver.js141 // ─── Strategy 3: Single Standalone Skill ────────────────────────────────────COMMENT
MEDIUMtools/installer/modules/plugin-resolver.js177 // ─── Strategy 4: Multiple Standalone Skills ─────────────────────────────────COMMENT
MEDIUMtools/installer/modules/plugin-resolver.js223 // ─── Strategy 5: Fallback (Synthesized) ─────────────────────────────────────COMMENT
MEDIUMtools/installer/modules/plugin-resolver.js271 // ─── Helpers ────────────────────────────────────────────────────────────────COMMENT
MEDIUMtools/installer/modules/external-manager.js251 // ─── Resolve channel plan ─────────────────────────────────────────────COMMENT
MEDIUMtools/installer/modules/external-manager.js355 // ─── Clone or update cache by resolved channel ────────────────────────COMMENT
MEDIUMtest/test-parse-source-urls.js40// ─── Deep path shapes (4+ segments) ─────────────────────────────────────────COMMENT
MEDIUMtest/test-parse-source-urls.js86// ─── Azure DevOps URLs (Issue #2268) ────────────────────────────────────────COMMENT
MEDIUMtest/test-parse-source-urls.js86// ─── Azure DevOps URLs (Issue #2268) ────────────────────────────────────────COMMENT
MEDIUMtest/test-parse-source-urls.js170// ─── Subdomain hosts ────────────────────────────────────────────────────────COMMENT
MEDIUMtest/test-parse-source-urls.js191// ─── Simple owner/repo URLs (regression) ────────────────────────────────────COMMENT
MEDIUMtest/test-parse-source-urls.js215// ─── Windows local paths ────────────────────────────────────────────────────COMMENT
MEDIUMtest/test-parse-source-urls.js249// ─── Generic URL handling (any host, any path depth) ────────────────────────COMMENT
MEDIUMtest/test-parse-source-urls.js325// ─── Summary ────────────────────────────────────────────────────────────────COMMENT
MEDIUMtest/test-installer-channels.js60 // ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtest/test-installer-channels.js62 // ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtest/test-installer-channels.js82 // ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtest/test-installer-channels.js84 // ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtest/test-installer-channels.js163 // ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtest/test-installer-channels.js165 // ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtest/test-installer-channels.js209 // ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtest/test-installer-channels.js211 // ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtest/test-installer-channels.js249 // ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtest/test-installer-channels.js251 // ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtest/test-installer-channels.js279 // ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtest/test-installer-channels.js281 // ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtest/test-installer-channels.js294 // ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtest/test-installer-channels.js296 // ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtest/test-installer-channels.js309 // ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtest/test-installer-channels.js311 // ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtest/test-installer-channels.js323 // ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUMtest/test-installer-channels.js325 // ─────────────────────────────────────────────────────────────────────────COMMENT
MEDIUM.augment/code_review_guidelines.yaml51 # ============================================COMMENT
MEDIUM.augment/code_review_guidelines.yaml53 # ============================================COMMENT
16 more matches not shown…
Over-Commented Block114 hits · 114 pts
SeverityFileLineSnippetContext
LOWremovals.txt61# DESIGN.md and EXPERIENCE.md outputs).COMMENT
LOWbmad-modules.yaml1# Official module registry — the single source of truth for which modulesCOMMENT
LOWbmad-modules.yaml21# folders. module-definition should still point at the real module.yaml soCOMMENT
LOWtools/installer/ui.js241 const { MessageLoader } = require('./message-loader');COMMENT
LOWtools/installer/set-overrides.js1// `--set <module>.<key>=<value>` is a post-install patch. The installer runsCOMMENT
LOWtools/installer/ide/platform-codes.yaml1# BMAD Platform Codes ConfigurationCOMMENT
LOWtools/installer/ide/_config-driven.js61// Used by platforms that surface only persona agents (e.g. Copilot's CustomCOMMENT
LOWtools/installer/core/uv-check.js1const { spawnSync } = require('node:child_process');COMMENT
LOWtools/installer/modules/custom-module-manager.js81 // Semver-valid characters: letters, digits, dot, hyphen, underscore, plus, slash.COMMENT
LOWsrc/bmm-skills/plan/bmad-prd/customize.toml1# DO NOT EDIT -- overwritten on every update.COMMENT
LOWsrc/bmm-skills/plan/bmad-prd/customize.toml21COMMENT
LOWsrc/bmm-skills/plan/bmad-prd/customize.toml41# to the product, project type, and domain. Override the path in team/user TOMLCOMMENT
LOWsrc/bmm-skills/plan/bmad-prd/customize.toml61COMMENT
LOWsrc/bmm-skills/plan/bmad-prd/customize.toml81#COMMENT
LOWsrc/bmm-skills/plan/bmad-prd/customize.toml101# a registry consulted on demand and only when the conversation surfaces aCOMMENT
LOWsrc/bmm-skills/plan/bmad-prd/customize.toml121# Fired once at Finalize step 6, never during Discovery or drafting.COMMENT
LOWsrc/bmm-skills/plan/bmad-prd/customize.toml141# subagent applying that prompt to prd.mdCOMMENT
LOWsrc/bmm-skills/plan/bmad-ux/customize.toml1# DO NOT EDIT -- overwritten on every update.COMMENT
LOWsrc/bmm-skills/plan/bmad-ux/customize.toml41# visual identity work. The user runs the tool externally and saves outputsCOMMENT
LOWsrc/bmm-skills/plan/bmad-ux/customize.toml61COMMENT
LOWsrc/bmm-skills/plan/bmad-ux/customize.toml81# names them; drop it to let bmad-review pick what fits the content.COMMENT
LOWsrc/bmm-skills/plan/bmad-product-brief/customize.toml1# DO NOT EDIT -- overwritten on every update.COMMENT
LOWsrc/bmm-skills/plan/bmad-product-brief/customize.toml21COMMENT
LOWsrc/bmm-skills/plan/bmad-product-brief/customize.toml41# to the product, purpose, and domain. Override the path in team/user TOMLCOMMENT
LOWsrc/bmm-skills/plan/bmad-product-brief/customize.toml61# 2. Content/voice/conventions (org standards, tone, terminology, compliance)COMMENT
LOWsrc/bmm-skills/plan/bmad-product-brief/customize.toml81# Examples (set in team/user override TOML):COMMENT
LOW…/plan/bmad-sprint-planning/sprint-status-template.yaml1# Sprint Status TemplateCOMMENT
LOW…/plan/bmad-sprint-planning/sprint-status-template.yaml21# - in-progress: Developer actively working on implementationCOMMENT
LOWsrc/bmm-skills/plan/bmad-sprint-planning/customize.toml1# DO NOT EDIT -- overwritten on every update.COMMENT
LOWsrc/bmm-skills/plan/bmad-sprint-planning/customize.toml21activation_steps_append = []COMMENT
LOWsrc/bmm-skills/plan/bmad-spec/customize.toml1# DO NOT EDIT -- overwritten on every update.COMMENT
LOWsrc/bmm-skills/plan/bmad-spec/customize.toml21# Each entry is either a literal sentence, a skill prefixed with `skill:`,COMMENT
LOWsrc/bmm-skills/plan/bmad-spec/customize.toml41# Output path for spec folders. Lands directly under {output_folder},COMMENT
LOWsrc/bmm-skills/plan/bmad-prfaq/customize.toml1# DO NOT EDIT -- overwritten on every update.COMMENT
LOWsrc/bmm-skills/plan/bmad-prfaq/customize.toml21activation_steps_append = []COMMENT
LOWsrc/bmm-skills/plan/bmad-project-context/customize.toml1# DO NOT EDIT -- overwritten on every update.COMMENT
LOWsrc/bmm-skills/plan/bmad-project-context/customize.toml21# Append-only. Entries: "file:{project-root}/..." or "file:/abs/path" forCOMMENT
LOWsrc/bmm-skills/plan/bmad-architecture/customize.toml1# DO NOT EDIT -- overwritten on every update.COMMENT
LOWsrc/bmm-skills/plan/bmad-architecture/customize.toml21COMMENT
LOWsrc/bmm-skills/plan/bmad-architecture/customize.toml41# need. Override the path in team/user TOML to enforce a different spine shape.COMMENT
LOWsrc/bmm-skills/plan/bmad-architecture/customize.toml61# The default entry runs bmad-review's two editorial lenses in order:COMMENT
LOWsrc/bmm-skills/plan/bmad-architecture/customize.toml81# Runs after polish; returned URLs/IDs are surfaced. Unavailable tools are skipped and flagged;COMMENT
LOW…ills/plan/bmad-create-epics-and-stories/customize.toml1# DO NOT EDIT -- overwritten on every update.COMMENT
LOW…ills/plan/bmad-create-epics-and-stories/customize.toml21activation_steps_append = []COMMENT
LOWsrc/bmm-skills/agents/bmad-agent-pm/customize.toml1# DO NOT EDIT -- overwritten on every update.COMMENT
LOWsrc/bmm-skills/agents/bmad-agent-pm/customize.toml21activation_steps_prepend = []COMMENT
LOW…mm-skills/agents/bmad-agent-ux-designer/customize.toml1# DO NOT EDIT -- overwritten on every update.COMMENT
LOW…mm-skills/agents/bmad-agent-ux-designer/customize.toml21activation_steps_prepend = []COMMENT
LOWsrc/bmm-skills/agents/bmad-agent-analyst/customize.toml1# DO NOT EDIT -- overwritten on every update.COMMENT
LOWsrc/bmm-skills/agents/bmad-agent-analyst/customize.toml21activation_steps_prepend = []COMMENT
LOW…/bmm-skills/agents/bmad-agent-architect/customize.toml1# DO NOT EDIT -- overwritten on every update.COMMENT
LOW…/bmm-skills/agents/bmad-agent-architect/customize.toml21activation_steps_prepend = []COMMENT
LOWsrc/bmm-skills/agents/bmad-agent-dev/customize.toml1# DO NOT EDIT -- overwritten on every update.COMMENT
LOWsrc/bmm-skills/agents/bmad-agent-dev/customize.toml21activation_steps_prepend = []COMMENT
LOW…c/bmm-skills/v6-shims/bmad-create-story/customize.toml1# DO NOT EDIT -- overwritten on every update.COMMENT
LOW…c/bmm-skills/v6-shims/bmad-create-story/customize.toml21activation_steps_append = []COMMENT
LOWsrc/bmm-skills/v6-shims/bmad-edit-prd/customize.toml1# DO NOT EDIT -- overwritten on every update.COMMENT
LOWsrc/bmm-skills/v6-shims/bmad-edit-prd/customize.toml21activation_steps_append = []COMMENT
LOW…/bmm-skills/v6-shims/bmad-sprint-status/customize.toml1# DO NOT EDIT -- overwritten on every update.COMMENT
LOW…/bmm-skills/v6-shims/bmad-sprint-status/customize.toml21activation_steps_append = []COMMENT
54 more matches not shown…
Cross-Language Confusion17 hits · 112 pts
SeverityFileLineSnippetContext
HIGH…bmad-retrospective/scripts/tests/test_sprint_status.py1008 "--add-action", '[{"action":null,"owner":"x"}]']CODE
HIGHsrc/core-skills/bmad-brainstorming/scripts/brain.py245 if (!t) { t = (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) ? 'dark' : 'light'; }CODE
HIGHsrc/core-skills/bmad-brainstorming/scripts/brain.py418 var sec = null;CODE
HIGHsrc/core-skills/bmad-brainstorming/scripts/brain.py433 if (!b.checked || seen[b.dataset.name]) { return; }CODE
HIGHsrc/core-skills/bmad-brainstorming/scripts/brain.py435 out.push(b);CODE
HIGHsrc/core-skills/bmad-brainstorming/scripts/brain.py463 var show = !act.length || act.some(function(g){ return good.indexOf(g) >= 0; });CODE
HIGHsrc/core-skills/bmad-brainstorming/scripts/brain.py478 while (out.length < n && a.length){ out.push(a.splice(Math.floor(Math.random() * a.length), 1)[0]); }CODE
HIGHsrc/core-skills/bmad-brainstorming/scripts/brain.py478 while (out.length < n && a.length){ out.push(a.splice(Math.floor(Math.random() * a.length), 1)[0]); }CODE
HIGHsrc/core-skills/bmad-brainstorming/scripts/brain.py488 L.push("", 'Techniques to use:');CODE
HIGHsrc/core-skills/bmad-brainstorming/scripts/brain.py490 L.push((i + 1) + '.' + (t.r ? ' (random pick)' : '') + ' ' + t.n + ' · ' + t.c);CODE
HIGHsrc/core-skills/bmad-brainstorming/scripts/brain.py491 L.push(' ' + t.d);CODE
HIGHsrc/core-skills/bmad-brainstorming/scripts/brain.py495 if (state.inv > 0){ extra.push('invent ' + state.inv + ' brand-new technique' + (state.inv > 1 ? 's' : '') + ' on thCODE
HIGHsrc/core-skills/bmad-brainstorming/scripts/brain.py496 checkedInvent().forEach(function(b){ extra.push('invent 1 new technique in the spirit of ' + b.dataset.invent); });CODE
HIGHsrc/core-skills/bmad-brainstorming/scripts/brain.py497 if (state.ai > 0){ extra.push('you choose ' + state.ai + ' more technique' + (state.ai > 1 ? 's' : '') + ' that fit CODE
HIGHsrc/core-skills/bmad-brainstorming/scripts/brain.py498 if (extra.length){ L.push("", 'Then: ' + extra.join('; and ') + '.'); }CODE
HIGHsrc/core-skills/bmad-brainstorming/scripts/brain.py500 L.push("", state.mode === 'Ideate for me'CODE
HIGHsrc/core-skills/bmad-brainstorming/scripts/brain.py531 if (navigator.clipboard && navigator.clipboard.writeText){CODE
Modern AI Meta-Vocabulary23 hits · 68 pts
SeverityFileLineSnippetContext
MEDIUMCHANGELOG.md153* **Pass diff inline to the blind-hunter reviewer** (#2463). Diff output is passed inline in the subagent prompt rather COMMENT
MEDIUMdocs/reference/core-tools.md32| [`bmad-party-mode`](#bmad-party-mode) | Orchestrate multi-agent group discussions |CODE
MEDIUMsrc/bmm-skills/plan/bmad-prd/customize.toml23# (standards, compliance constraints, stylistic guardrails).COMMENT
MEDIUMsrc/bmm-skills/plan/bmad-product-brief/customize.toml23# (standards, compliance constraints, stylistic guardrails).COMMENT
MEDIUMsrc/bmm-skills/plan/bmad-sprint-planning/customize.toml24# (standards, compliance constraints, stylistic guardrails).COMMENT
MEDIUMsrc/bmm-skills/plan/bmad-prfaq/customize.toml24# (standards, compliance constraints, stylistic guardrails).COMMENT
MEDIUMsrc/bmm-skills/plan/bmad-architecture/customize.toml23# (approved stacks, banned dependencies, platform constraints, compliance guardrails).COMMENT
MEDIUM…ills/plan/bmad-create-epics-and-stories/customize.toml24# (standards, compliance constraints, stylistic guardrails).COMMENT
MEDIUM…c/bmm-skills/v6-shims/bmad-create-story/customize.toml24# (standards, compliance constraints, stylistic guardrails).COMMENT
MEDIUMsrc/bmm-skills/v6-shims/bmad-edit-prd/customize.toml24# (standards, compliance constraints, stylistic guardrails).COMMENT
MEDIUM…/bmm-skills/v6-shims/bmad-sprint-status/customize.toml24# (standards, compliance constraints, stylistic guardrails).COMMENT
MEDIUM…kills/v6-shims/bmad-create-architecture/customize.toml24# (standards, compliance constraints, stylistic guardrails).COMMENT
MEDIUMsrc/bmm-skills/v6-shims/bmad-create-prd/customize.toml24# (standards, compliance constraints, stylistic guardrails).COMMENT
MEDIUMsrc/bmm-skills/v6-shims/bmad-dev-story/customize.toml24# (standards, compliance constraints, stylistic guardrails).COMMENT
MEDIUM…c/bmm-skills/v6-shims/bmad-validate-prd/customize.toml24# (standards, compliance constraints, stylistic guardrails).COMMENT
MEDIUMsrc/bmm-skills/ship/bmad-retrospective/customize.toml24# (standards, compliance constraints, stylistic guardrails).COMMENT
MEDIUM…-skills/ship/bmad-qa-generate-e2e-tests/customize.toml24# (standards, compliance constraints, stylistic guardrails).COMMENT
MEDIUMsrc/bmm-skills/ship/bmad-correct-course/customize.toml24# (standards, compliance constraints, stylistic guardrails).COMMENT
MEDIUMsrc/bmm-skills/ship/bmad-build-auto/spec-template.md9warnings: [] # optional: machine-readable warnings for orchestration, e.g. oversized, multiple-goalsCODE
MEDIUMsrc/bmm-skills/ship/bmad-walkthrough/customize.toml24# (standards, compliance constraints, stylistic guardrails).COMMENT
MEDIUMsrc/bmm-skills/ship/bmad-code-review/customize.toml24# (standards, compliance constraints, stylistic guardrails).COMMENT
MEDIUMsrc/core-skills/bmad-deep-recon/customize.toml86# orchestration when it offers one (e.g. workflows): "off", "offer"COMMENT
MEDIUMsrc/core-skills/bmad-brainstorming/customize.toml23# (domain constraints, house rules, stylistic guardrails). Each entry is aCOMMENT
Cross-File Repetition9 hits · 45 pts
SeverityFileLineSnippetContext
HIGHsrc/bmm-skills/ship/bmad-build-auto/customize.toml0launch a context-free subagent with this prompt: conduct a review of content. look for what's missing, not only what's wSTRING
HIGHsrc/bmm-skills/ship/bmad-build/customize.toml0launch a context-free subagent with this prompt: conduct a review of content. look for what's missing, not only what's wSTRING
HIGHsrc/bmm-skills/ship/bmad-code-review/customize.toml0launch a context-free subagent with this prompt: conduct a review of content. look for what's missing, not only what's wSTRING
HIGHsrc/bmm-skills/ship/bmad-build-auto/customize.toml0launch a context-free subagent with this prompt: read `{skill-root}/review-prompts/edge-case-hunter.md` completely and fSTRING
HIGHsrc/bmm-skills/ship/bmad-build/customize.toml0launch a context-free subagent with this prompt: read `{skill-root}/review-prompts/edge-case-hunter.md` completely and fSTRING
HIGHsrc/bmm-skills/ship/bmad-code-review/customize.toml0launch a context-free subagent with this prompt: read `{skill-root}/review-prompts/edge-case-hunter.md` completely and fSTRING
HIGHsrc/bmm-skills/ship/bmad-build-auto/customize.toml0launch a context-free subagent with this prompt: read `{skill-root}/review-prompts/verification-gap.md` completely and fSTRING
HIGHsrc/bmm-skills/ship/bmad-build/customize.toml0launch a context-free subagent with this prompt: read `{skill-root}/review-prompts/verification-gap.md` completely and fSTRING
HIGHsrc/bmm-skills/ship/bmad-code-review/customize.toml0launch a context-free subagent with this prompt: read `{skill-root}/review-prompts/verification-gap.md` completely and fSTRING
AI Slop Vocabulary9 hits · 28 pts
SeverityFileLineSnippetContext
MEDIUM.github/workflows/quality.yaml3# Runs comprehensive quality checks on all PRs and pushes to main:COMMENT
MEDIUMsrc/bmm-skills/plan/bmad-project-context/customize.toml15# harness, not through this array. Users append their own standing facts.COMMENT
MEDIUM…lan/bmad-architecture/scripts/tests/test_lint_spine.py247 # an unfilled {scope}/{paradigm}/{date} in frontmatter is part of the contract and must lintSTRING
MEDIUMsrc/core-skills/bmad-deep-recon/customize.toml85# Run the acquisition fan-out through the harness's deterministicCOMMENT
MEDIUMsrc/core-skills/bmad-deep-recon/customize.toml92# harness can provide wins; [] lets the harness/skill choose (lead stays onCOMMENT
MEDIUM…e-skills/bmad-brainstorming/assets/brain-selector.html134<section data-cat="Proven &amp; Professional" style="--c:#3d4f73"><h2>Proven &amp; Professional<span class="cnt">29</spaCODE
MEDIUM…e-skills/bmad-brainstorming/assets/brain-selector.html134<section data-cat="Proven &amp; Professional" style="--c:#3d4f73"><h2>Proven &amp; Professional<span class="cnt">29</spaCODE
MEDIUM…e-skills/bmad-brainstorming/assets/brain-selector.html137<section data-cat="Deep" style="--c:#4658c9"><h2>Deep<span class="cnt">13</span></h2><div class="grid"><label class="tecCODE
MEDIUM…e-skills/bmad-brainstorming/assets/brain-selector.html137<section data-cat="Deep" style="--c:#4658c9"><h2>Deep<span class="cnt">13</span></h2><div class="grid"><label class="tecCODE
Deep Nesting10 hits · 10 pts
SeverityFileLineSnippetContext
LOW…kills/plan/bmad-sprint-planning/scripts/sprint_plan.py172CODE
LOW…kills/plan/bmad-sprint-planning/scripts/sprint_plan.py484CODE
LOW…kills/plan/bmad-sprint-planning/scripts/sprint_plan.py596CODE
LOW…mm-skills/plan/bmad-architecture/scripts/lint_spine.py153CODE
LOW…kills/ship/bmad-retrospective/scripts/sprint_status.py329CODE
LOW…lls/bmad-customize/scripts/list_customizable_skills.py91CODE
LOWsrc/core-skills/bmad-review/scripts/word_metrics.py34CODE
LOWsrc/core-skills/bmad-brainstorming/scripts/brain.py712CODE
LOW…ills/bmad-advanced-elicitation/scripts/pick_methods.py171CODE
LOWsrc/scripts/config_utils.py37CODE
Fake / Example Data11 hits · 10 pts
SeverityFileLineSnippetContext
LOWtest/adversarial-review-tests/sample-content.md16 "email": "user@example.com",CODE
LOWtest/adversarial-review-tests/sample-content.md27 "email": "user@example.com"CODE
LOW…mm-skills/plan/bmad-architecture/scripts/lint_spine.py83 "category": "placeholder",CODE
LOW…mm-skills/plan/bmad-architecture/scripts/lint_spine.py101 "category": "placeholder",CODE
LOW…lan/bmad-architecture/scripts/tests/test_lint_spine.py72 assert "placeholder" not in cats(result)STRING
LOW…lan/bmad-architecture/scripts/tests/test_lint_spine.py78 assert "placeholder" in cats(result)STRING
LOW…lan/bmad-architecture/scripts/tests/test_lint_spine.py90 assert any(f["category"] == "placeholder" for f in result["findings"])STRING
LOW…lan/bmad-architecture/scripts/tests/test_lint_spine.py149 toks = [f for f in result["findings"] if f["category"] == "placeholder" and "template token" in f["detail"]]STRING
LOW…lan/bmad-architecture/scripts/tests/test_lint_spine.py156 assert "placeholder" in cats(result) # TBD caught even with no frontmatterSTRING
LOW…lan/bmad-architecture/scripts/tests/test_lint_spine.py250 fm = [f for f in result["findings"] if f["category"] == "placeholder" and "frontmatter" in f["detail"]]STRING
LOW…lan/bmad-architecture/scripts/tests/test_lint_spine.py257 assert any(f["category"] == "placeholder" and "frontmatter" in f["detail"] and "TBD" in f["detail"]STRING
Excessive Try-Catch Wrapping9 hits · 9 pts
SeverityFileLineSnippetContext
LOW…kills/plan/bmad-sprint-planning/scripts/sprint_plan.py232 except Exception as exc:CODE
LOW…kills/plan/bmad-sprint-planning/scripts/sprint_plan.py458 except Exception as exc:CODE
LOW…kills/plan/bmad-sprint-planning/scripts/sprint_plan.py463 except Exception:CODE
LOW…kills/plan/bmad-sprint-planning/scripts/sprint_plan.py610 except Exception as exc:CODE
LOW…skills/ship/bmad-retrospective/scripts/git_evidence.py108 except Exception as exc: # noqa: BLE001CODE
LOW…kills/ship/bmad-retrospective/scripts/sprint_status.py174 except Exception as exc: # noqa: BLE001 - report any parse error as JSONCODE
LOW…kills/ship/bmad-retrospective/scripts/sprint_status.py562 except Exception as exc: # noqa: BLE001CODE
LOW…kills/ship/bmad-retrospective/scripts/sprint_status.py576 except Exception as exc: # noqa: BLE001CODE
LOW…kills/ship/bmad-retrospective/scripts/sprint_status.py655 except Exception as exc: # noqa: BLE001 - best-effort restoreCODE
Unused Imports8 hits · 8 pts
SeverityFileLineSnippetContext
LOW…mm-skills/plan/bmad-architecture/scripts/lint_spine.py24CODE
LOW…lls/bmad-customize/scripts/list_customizable_skills.py29CODE
LOW…stomize/scripts/tests/test_list_customizable_skills.py19CODE
LOW…bmad-forge-idea/scripts/tests/test_resolve_personas.py122CODE
LOWsrc/core-skills/bmad-deep-recon/scripts/recon_kit.py31CODE
LOWsrc/scripts/render_skill.py7CODE
LOWsrc/scripts/memlog.py69CODE
LOWsrc/scripts/config_utils.py3CODE
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOWtools/validate-svg-changes.sh19# Check if file existsCOMMENT