Persistent file-based planning for AI coding agents and long-running tasks. Crash-proof markdown plans, session recovery after /clear and compaction, per-turn re-injection against context rot, deterministic completion gate. Manus-style. Install from npm, the Claude Code plugin marketplace, or npx skills. Codex, Cursor, OpenCode, 60+ agents.
This report summarizes scanner evidence for OthmanAdi/planning-with-files, a Python project with 27,379 GitHub stars. SynthScan examined 188,277 lines of code across 614 source files, recording 3399 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 42.8 (High 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.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 1912 finding(s).
Are imports declared and package/API names verified? 130 finding(s).
Are wrappers, guards, and repeated structures necessary? 2441 finding(s).
Which changes need focused human review? 3399 finding(s).
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.
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.
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.
The scanner identified 3399 distinct pattern matches across 15 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | session catchup script for planning-with-files analyzes the previous session to find unsynced context after the last pla | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | session catchup script for planning-with-files analyzes the previous session to find unsynced context after the last pla | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | session catchup script for planning-with-files analyzes the previous session to find unsynced context after the last pla | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | session catchup script for planning-with-files analyzes the previous session to find unsynced context after the last pla | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | session catchup script for planning-with-files analyzes the previous session to find unsynced context after the last pla | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | session catchup script for planning-with-files analyzes the previous session to find unsynced context after the last pla | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | session catchup script for planning-with-files analyzes the previous session to find unsynced context after the last pla | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | session catchup script for planning-with-files analyzes the previous session to find unsynced context after the last pla | STRING |
| HIGH | skills/planning-with-files/scripts/session-catchup.py | 0 | session catchup script for planning-with-files analyzes the previous session to find unsynced context after the last pla | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | session catchup script for planning-with-files analyzes the previous session to find unsynced context after the last pla | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | session catchup script for planning-with-files analyzes the previous session to find unsynced context after the last pla | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | make catchup output deterministic on windows legacy code pages. codex sessions and planning files are utf-8 and can cont | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | make catchup output deterministic on windows legacy code pages. codex sessions and planning files are utf-8 and can cont | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | make catchup output deterministic on windows legacy code pages. codex sessions and planning files are utf-8 and can cont | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | make catchup output deterministic on windows legacy code pages. codex sessions and planning files are utf-8 and can cont | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | make catchup output deterministic on windows legacy code pages. codex sessions and planning files are utf-8 and can cont | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | make catchup output deterministic on windows legacy code pages. codex sessions and planning files are utf-8 and can cont | STRING |
| HIGH | skills/planning-with-files/scripts/session-catchup.py | 0 | make catchup output deterministic on windows legacy code pages. codex sessions and planning files are utf-8 and can cont | STRING |
| HIGH | …i18n/planning-with-files-es/scripts/session-catchup.py | 0 | make catchup output deterministic on windows legacy code pages. codex sessions and planning files are utf-8 and can cont | STRING |
| HIGH | …i18n/planning-with-files-zh/scripts/session-catchup.py | 0 | make catchup output deterministic on windows legacy code pages. codex sessions and planning files are utf-8 and can cont | STRING |
| HIGH | …i18n/planning-with-files-de/scripts/session-catchup.py | 0 | make catchup output deterministic on windows legacy code pages. codex sessions and planning files are utf-8 and can cont | STRING |
| HIGH | …18n/planning-with-files-zht/scripts/session-catchup.py | 0 | make catchup output deterministic on windows legacy code pages. codex sessions and planning files are utf-8 and can cont | STRING |
| HIGH | …i18n/planning-with-files-ar/scripts/session-catchup.py | 0 | make catchup output deterministic on windows legacy code pages. codex sessions and planning files are utf-8 and can cont | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | make catchup output deterministic on windows legacy code pages. codex sessions and planning files are utf-8 and can cont | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | make catchup output deterministic on windows legacy code pages. codex sessions and planning files are utf-8 and can cont | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | prefer optional orjson while keeping the hook dependency-free. | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | prefer optional orjson while keeping the hook dependency-free. | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | prefer optional orjson while keeping the hook dependency-free. | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | prefer optional orjson while keeping the hook dependency-free. | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | prefer optional orjson while keeping the hook dependency-free. | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | prefer optional orjson while keeping the hook dependency-free. | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | prefer optional orjson while keeping the hook dependency-free. | STRING |
| HIGH | skills/planning-with-files/scripts/session-catchup.py | 0 | prefer optional orjson while keeping the hook dependency-free. | STRING |
| HIGH | …i18n/planning-with-files-es/scripts/session-catchup.py | 0 | prefer optional orjson while keeping the hook dependency-free. | STRING |
| HIGH | …i18n/planning-with-files-zh/scripts/session-catchup.py | 0 | prefer optional orjson while keeping the hook dependency-free. | STRING |
| HIGH | …i18n/planning-with-files-de/scripts/session-catchup.py | 0 | prefer optional orjson while keeping the hook dependency-free. | STRING |
| HIGH | …18n/planning-with-files-zht/scripts/session-catchup.py | 0 | prefer optional orjson while keeping the hook dependency-free. | STRING |
| HIGH | …i18n/planning-with-files-ar/scripts/session-catchup.py | 0 | prefer optional orjson while keeping the hook dependency-free. | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | prefer optional orjson while keeping the hook dependency-free. | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | prefer optional orjson while keeping the hook dependency-free. | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | normalize project path to match claude code's internal representation. claude code stores session directories using the | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | normalize project path to match claude code's internal representation. claude code stores session directories using the | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | normalize project path to match claude code's internal representation. claude code stores session directories using the | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | normalize project path to match claude code's internal representation. claude code stores session directories using the | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | normalize project path to match claude code's internal representation. claude code stores session directories using the | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | normalize project path to match claude code's internal representation. claude code stores session directories using the | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | normalize project path to match claude code's internal representation. claude code stores session directories using the | STRING |
| HIGH | skills/planning-with-files/scripts/session-catchup.py | 0 | normalize project path to match claude code's internal representation. claude code stores session directories using the | STRING |
| HIGH | …i18n/planning-with-files-es/scripts/session-catchup.py | 0 | normalize project path to match claude code's internal representation. claude code stores session directories using the | STRING |
| HIGH | …i18n/planning-with-files-zh/scripts/session-catchup.py | 0 | normalize project path to match claude code's internal representation. claude code stores session directories using the | STRING |
| HIGH | …i18n/planning-with-files-de/scripts/session-catchup.py | 0 | normalize project path to match claude code's internal representation. claude code stores session directories using the | STRING |
| HIGH | …18n/planning-with-files-zht/scripts/session-catchup.py | 0 | normalize project path to match claude code's internal representation. claude code stores session directories using the | STRING |
| HIGH | …i18n/planning-with-files-ar/scripts/session-catchup.py | 0 | normalize project path to match claude code's internal representation. claude code stores session directories using the | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | normalize project path to match claude code's internal representation. claude code stores session directories using the | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | normalize project path to match claude code's internal representation. claude code stores session directories using the | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | claude code's project-dir name for a project path. every character outside [a-za-z0-9_-] becomes '-', and the leading da | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | claude code's project-dir name for a project path. every character outside [a-za-z0-9_-] becomes '-', and the leading da | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | claude code's project-dir name for a project path. every character outside [a-za-z0-9_-] becomes '-', and the leading da | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | claude code's project-dir name for a project path. every character outside [a-za-z0-9_-] becomes '-', and the leading da | STRING |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 0 | claude code's project-dir name for a project path. every character outside [a-za-z0-9_-] becomes '-', and the leading da | STRING |
| 676 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 95 | except (OSError, ValueError): | CODE |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 38 | except (OSError, ValueError): | CODE |
| HIGH | …rsor/skills/planning-with-files/scripts/inject-plan.py | 519 | except (OSError, UnicodeError, ValueError): | CODE |
| HIGH | …rsor/skills/planning-with-files/scripts/inject-plan.py | 785 | except (ValueError, UnicodeError): | CODE |
| HIGH | …rsor/skills/planning-with-files/scripts/inject-plan.py | 863 | except (OSError, ValueError, UnicodeError): | CODE |
| HIGH | …rsor/skills/planning-with-files/scripts/inject-plan.py | 1748 | except Exception: | CODE |
| HIGH | …rsor/skills/planning-with-files/scripts/inject-plan.py | 200 | except (OSError, ValueError): | CODE |
| HIGH | …rsor/skills/planning-with-files/scripts/inject-plan.py | 540 | except FileExistsError: | CODE |
| HIGH | …rsor/skills/planning-with-files/scripts/inject-plan.py | 926 | except Bail: | CODE |
| HIGH | …rsor/skills/planning-with-files/scripts/inject-plan.py | 1152 | except OSError: | CODE |
| HIGH | …rsor/skills/planning-with-files/scripts/inject-plan.py | 1164 | except OSError: | CODE |
| HIGH | …rsor/skills/planning-with-files/scripts/inject-plan.py | 1438 | except OSError: | CODE |
| HIGH | …rsor/skills/planning-with-files/scripts/inject-plan.py | 1621 | except OSError: | CODE |
| HIGH | …rsor/skills/planning-with-files/scripts/inject-plan.py | 869 | except OSError: | CODE |
| HIGH | …rsor/skills/planning-with-files/scripts/inject-plan.py | 1648 | except OSError: | CODE |
| HIGH | …rsor/skills/planning-with-files/scripts/inject-plan.py | 639 | except OSError: | CODE |
| HIGH | …rsor/skills/planning-with-files/scripts/inject-plan.py | 645 | except OSError: | CODE |
| HIGH | …rsor/skills/planning-with-files/scripts/inject-plan.py | 1429 | except OSError: | CODE |
| HIGH | …rsor/skills/planning-with-files/scripts/inject-plan.py | 1434 | except OSError: | CODE |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 95 | except (OSError, ValueError): | CODE |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 38 | except (OSError, ValueError): | CODE |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 45 | except (OSError, ValueError): | CODE |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 291 | except json.JSONDecodeError: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 519 | except (OSError, UnicodeError, ValueError): | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 785 | except (ValueError, UnicodeError): | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 863 | except (OSError, ValueError, UnicodeError): | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 1748 | except Exception: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 200 | except (OSError, ValueError): | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 540 | except FileExistsError: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 926 | except Bail: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 1152 | except OSError: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 1164 | except OSError: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 1438 | except OSError: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 1621 | except OSError: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 869 | except OSError: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 1648 | except OSError: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 639 | except OSError: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 645 | except OSError: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 1429 | except OSError: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 1434 | except OSError: | CODE |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 95 | except (OSError, ValueError): | CODE |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 38 | except (OSError, ValueError): | CODE |
| HIGH | …/skills/planning-with-files/scripts/session-catchup.py | 71 | except (OSError, ValueError): | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 519 | except (OSError, UnicodeError, ValueError): | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 785 | except (ValueError, UnicodeError): | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 863 | except (OSError, ValueError, UnicodeError): | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 1748 | except Exception: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 200 | except (OSError, ValueError): | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 540 | except FileExistsError: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 926 | except Bail: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 1152 | except OSError: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 1164 | except OSError: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 1438 | except OSError: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 1621 | except OSError: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 869 | except OSError: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 1648 | except OSError: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 639 | except OSError: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 645 | except OSError: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 1429 | except OSError: | CODE |
| HIGH | …code/skills/planning-with-files/scripts/inject-plan.py | 1434 | except OSError: | CODE |
| 245 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 121 | def _newest_session_cwd_matches(project_dir: Path, normalized: str) -> bool: | CODE |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 346 | def find_current_codex_session(sessions: List[Path]) -> Optional[Path]: | CODE |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 449 | def _opencode_state_annotation(state: Any) -> str: | CODE |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 733 | def find_last_planning_update(messages: List[Dict[str, Any]]) -> Tuple[int, Optional[str]]: | CODE |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 806 | def collect_claude_tool_results(messages: List[Dict[str, Any]]) -> Dict[str, str]: | CODE |
| LOW⚡ | …rsor/skills/planning-with-files/scripts/inject-plan.py | 314 | def _normalized_windows_final(path): | CODE |
| LOW | …rsor/skills/planning-with-files/scripts/inject-plan.py | 1348 | def prepare_progress_snapshot(self, progress_file, root): | CODE |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 121 | def _newest_session_cwd_matches(project_dir: Path, normalized: str) -> bool: | CODE |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 346 | def find_current_codex_session(sessions: List[Path]) -> Optional[Path]: | CODE |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 449 | def _opencode_state_annotation(state: Any) -> str: | CODE |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 733 | def find_last_planning_update(messages: List[Dict[str, Any]]) -> Tuple[int, Optional[str]]: | CODE |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 806 | def collect_claude_tool_results(messages: List[Dict[str, Any]]) -> Dict[str, str]: | CODE |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 296 | def find_last_planning_update(messages: List[Dict]) -> Tuple[int, Optional[str]]: | CODE |
| LOW⚡ | …code/skills/planning-with-files/scripts/inject-plan.py | 314 | def _normalized_windows_final(path): | CODE |
| LOW | …code/skills/planning-with-files/scripts/inject-plan.py | 1348 | def prepare_progress_snapshot(self, progress_file, root): | CODE |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 121 | def _newest_session_cwd_matches(project_dir: Path, normalized: str) -> bool: | CODE |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 346 | def find_current_codex_session(sessions: List[Path]) -> Optional[Path]: | CODE |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 449 | def _opencode_state_annotation(state: Any) -> str: | CODE |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 733 | def find_last_planning_update(messages: List[Dict[str, Any]]) -> Tuple[int, Optional[str]]: | CODE |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 806 | def collect_claude_tool_results(messages: List[Dict[str, Any]]) -> Dict[str, str]: | CODE |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 97 | def _newest_session_cwd_matches(project_dir: Path, normalized: str) -> bool: | CODE |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 322 | def find_current_codex_session(sessions: List[Path]) -> Optional[Path]: | CODE |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 658 | def find_last_planning_update(messages: List[Dict[str, Any]]) -> Tuple[int, Optional[str]]: | CODE |
| LOW⚡ | …code/skills/planning-with-files/scripts/inject-plan.py | 314 | def _normalized_windows_final(path): | CODE |
| LOW | …code/skills/planning-with-files/scripts/inject-plan.py | 1348 | def prepare_progress_snapshot(self, progress_file, root): | CODE |
| LOW⚡ | tests/test_powershell_literal_paths.py | 88 | def test_active_pointer_resolves_in_a_bracketed_project_path(self) -> None: | CODE |
| LOW⚡ | tests/test_powershell_literal_paths.py | 93 | def test_plan_id_resolves_in_a_bracketed_project_path(self) -> None: | CODE |
| LOW⚡ | tests/test_powershell_literal_paths.py | 97 | def test_newest_plan_fallback_resolves_in_a_bracketed_project_path(self) -> None: | CODE |
| LOW | tests/test_powershell_literal_paths.py | 120 | def test_absolute_pin_locks_the_pinned_plan(self) -> None: | CODE |
| LOW | tests/test_powershell_literal_paths.py | 127 | def test_relative_pin_is_refused(self) -> None: | CODE |
| LOW⚡ | tests/test_seo_docs_pages.py | 63 | def test_install_section_with_both_routes(self) -> None: | CODE |
| LOW⚡ | tests/test_seo_docs_pages.py | 72 | def test_links_to_readme_and_installation_guide(self) -> None: | CODE |
| LOW⚡ | tests/test_seo_docs_pages.py | 80 | def test_pages_cross_link_each_other(self) -> None: | CODE |
| LOW⚡ | tests/test_planning_disabled_optout.py | 93 | def test_codex_user_prompt_submit_stays_silent_when_disabled(self) -> None: | CODE |
| LOW⚡ | tests/test_planning_disabled_optout.py | 100 | def test_codex_stop_emits_no_followup_when_disabled(self) -> None: | CODE |
| LOW⚡ | tests/test_planning_disabled_optout.py | 107 | def test_codex_pre_tool_use_still_allows_but_skips_context(self) -> None: | CODE |
| LOW⚡ | tests/test_planning_disabled_optout.py | 112 | def test_codex_post_tool_use_stays_silent_when_disabled(self) -> None: | CODE |
| LOW⚡ | tests/test_planning_disabled_optout.py | 116 | def test_codex_session_start_stays_silent_when_disabled(self) -> None: | CODE |
| LOW⚡ | tests/test_planning_disabled_optout.py | 120 | def test_codex_pre_compact_stays_silent_when_disabled(self) -> None: | CODE |
| LOW⚡ | tests/test_planning_disabled_optout.py | 124 | def test_codex_adapter_reports_not_attached_when_disabled(self) -> None: | CODE |
| LOW⚡ | tests/test_planning_disabled_optout.py | 142 | def test_inject_plan_stays_silent_when_disabled(self) -> None: | CODE |
| LOW⚡ | tests/test_planning_disabled_optout.py | 148 | def test_gate_stop_stays_silent_when_disabled(self) -> None: | CODE |
| LOW⚡ | tests/test_planning_disabled_optout.py | 153 | def test_check_complete_stays_silent_when_disabled(self) -> None: | CODE |
| LOW⚡ | tests/test_planning_disabled_optout.py | 161 | def test_plan_files_unchanged_after_disabled_hook_pass(self) -> None: | CODE |
| LOW | tests/test_planning_disabled_optout.py | 179 | def test_copilot_shell_hooks_skip_context_when_disabled(self) -> None: | CODE |
| LOW | tests/test_planning_disabled_optout.py | 230 | def test_all_check_complete_copies_carry_the_guard(self) -> None: | CODE |
| LOW | tests/test_planning_disabled_optout.py | 257 | def test_copilot_powershell_hooks_skip_context_when_disabled(self) -> None: | CODE |
| LOW | tests/test_planning_disabled_optout.py | 322 | def test_cursor_shell_hooks_go_inert_when_disabled(self) -> None: | CODE |
| LOW | tests/test_planning_disabled_optout.py | 348 | def test_cursor_powershell_hooks_go_inert_when_disabled(self) -> None: | CODE |
| LOW | tests/test_check_complete_resolver.py | 86 | def test_explicit_path_arg_still_works(self) -> None: | STRING |
| LOW | tests/test_check_complete_resolver.py | 97 | def test_no_args_resolves_slug_plan_via_active_pointer(self) -> None: | STRING |
| LOW | tests/test_check_complete_resolver.py | 112 | def test_no_args_resolves_via_plan_id_env(self) -> None: | STRING |
| LOW | tests/test_check_complete_resolver.py | 129 | def test_no_args_legacy_root_plan_still_works(self) -> None: | STRING |
| LOW | tests/test_check_complete_resolver.py | 140 | def test_no_args_no_plan_anywhere_clean_message(self) -> None: | STRING |
| LOW⚡ | tests/test_check_complete_resolver.py | 180 | def test_canonical_templates_contain_next_step(self) -> None: | STRING |
| LOW⚡ | tests/test_check_complete_resolver.py | 190 | def test_root_template_copy_contains_next_step(self) -> None: | STRING |
| LOW⚡ | tests/test_check_complete_resolver.py | 197 | def test_next_step_sits_between_goal_and_current_phase(self) -> None: | STRING |
| LOW | tests/test_check_complete_resolver.py | 208 | def test_template_phase_counts_unchanged(self) -> None: | STRING |
| LOW | tests/test_check_complete_resolver.py | 241 | def test_init_session_output_contains_next_step(self): | STRING |
| LOW⚡ | tests/test_nested_plan_isolation.py | 225 | def test_unattached_session_notice_does_not_repeat_per_tool_call(self) -> None: | CODE |
| 1024 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …r/skills/planning-with-files/scripts/ledger-summary.sh | 34 | # ================== | COMMENT |
| MEDIUM⚡ | …rsor/skills/planning-with-files/scripts/inject-plan.py | 310 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …rsor/skills/planning-with-files/scripts/inject-plan.py | 312 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rsor/skills/planning-with-files/scripts/inject-plan.py | 117 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rsor/skills/planning-with-files/scripts/inject-plan.py | 119 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rsor/skills/planning-with-files/scripts/inject-plan.py | 649 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rsor/skills/planning-with-files/scripts/inject-plan.py | 651 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rsor/skills/planning-with-files/scripts/inject-plan.py | 755 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rsor/skills/planning-with-files/scripts/inject-plan.py | 757 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rsor/skills/planning-with-files/scripts/inject-plan.py | 1446 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rsor/skills/planning-with-files/scripts/inject-plan.py | 1448 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rsor/skills/planning-with-files/scripts/inject-plan.py | 1553 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rsor/skills/planning-with-files/scripts/inject-plan.py | 1555 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rsor/skills/planning-with-files/scripts/inject-plan.py | 1706 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rsor/skills/planning-with-files/scripts/inject-plan.py | 1708 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …e/skills/planning-with-files/scripts/ledger-summary.sh | 34 | # ================== | COMMENT |
| MEDIUM⚡ | …code/skills/planning-with-files/scripts/inject-plan.py | 310 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …code/skills/planning-with-files/scripts/inject-plan.py | 312 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 117 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 119 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 649 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 651 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 755 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 757 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 1446 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 1448 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 1553 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 1555 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 1706 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 1708 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …e/skills/planning-with-files/scripts/ledger-summary.sh | 34 | # ================== | COMMENT |
| MEDIUM⚡ | …code/skills/planning-with-files/scripts/inject-plan.py | 310 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …code/skills/planning-with-files/scripts/inject-plan.py | 312 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 117 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 119 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 649 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 651 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 755 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 757 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 1446 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 1448 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 1553 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 1555 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 1706 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 1708 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_hook_resolver_integration.py | 265 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/test_hook_resolver_integration.py | 267 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/test_hook_resolver_integration.py | 407 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/test_hook_resolver_integration.py | 409 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/test_hook_resolver_integration.py | 430 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/test_hook_resolver_integration.py | 432 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/test_hook_resolver_integration.py | 452 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/test_hook_resolver_integration.py | 454 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/test_codex_session_isolation.py | 82 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/test_codex_session_isolation.py | 84 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/test_codex_session_isolation.py | 102 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | tests/test_codex_session_isolation.py | 104 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …s/skills/planning-with-files/scripts/ledger-summary.sh | 34 | # ================== | COMMENT |
| MEDIUM⚡ | …ents/skills/planning-with-files/scripts/inject-plan.py | 310 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …ents/skills/planning-with-files/scripts/inject-plan.py | 312 | # -------------------------------------------------------------------------- | COMMENT |
| 189 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .cursor/hooks/user-prompt-submit.sh | 1 | #!/bin/bash | COMMENT |
| LOW | …sor/skills/planning-with-files/scripts/init-session.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …sor/skills/planning-with-files/scripts/init-session.sh | 141 | # short_uuid's third-level fallback is printf '%08x' "$(date +%s)" with | COMMENT |
| LOW | …rsor/skills/planning-with-files/scripts/attest-plan.sh | 1 | #!/bin/sh | COMMENT |
| LOW | …rsor/skills/planning-with-files/scripts/attest-plan.sh | 201 | else | COMMENT |
| LOW | …r/skills/planning-with-files/scripts/ledger-summary.sh | 1 | #!/bin/sh | COMMENT |
| LOW | …r/skills/planning-with-files/scripts/ledger-summary.sh | 21 | # wins over self-resolution: inject-plan.sh passes the dir it resolved, | COMMENT |
| LOW | …rsor/skills/planning-with-files/scripts/plan-doctor.sh | 1 | #!/bin/sh | COMMENT |
| LOW | …rsor/skills/planning-with-files/scripts/plan-doctor.sh | 81 | # warning" made the doctor report a hash mismatch on a correctly | COMMENT |
| LOW | …r/skills/planning-with-files/scripts/check-complete.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …r/skills/planning-with-files/scripts/check-complete.sh | 21 | # 4. the block counter (<plan-dir>/.stop_blocks) is below cap (PWF_GATE_CAP, default 20) | COMMENT |
| LOW | …r/skills/planning-with-files/scripts/check-complete.sh | 141 | } | COMMENT |
| LOW | …/skills/planning-with-files/scripts/set-active-plan.sh | 121 | # realpath("$PWD") and realpath(relative-candidate) resolve through different | COMMENT |
| LOW | …rsor/skills/planning-with-files/scripts/inject-plan.sh | 1 | #!/bin/sh | COMMENT |
| LOW | …rsor/skills/planning-with-files/scripts/inject-plan.sh | 21 | # | COMMENT |
| LOW | …rsor/skills/planning-with-files/scripts/inject-plan.sh | 81 | CONTEXT="userprompt" | COMMENT |
| LOW | …rsor/skills/planning-with-files/scripts/inject-plan.sh | 121 | # single-session case and stays byte-identical. | COMMENT |
| LOW | …rsor/skills/planning-with-files/scripts/inject-plan.sh | 221 | # string. On some Windows/MSYS setups (8.3 short names, the /tmp mount | COMMENT |
| LOW | …rsor/skills/planning-with-files/scripts/inject-plan.sh | 281 | RESOLVED="" | COMMENT |
| LOW | …rsor/skills/planning-with-files/scripts/inject-plan.sh | 501 | # ponytail: depth 1 only — one shell glob per hook fire is the whole perf | COMMENT |
| LOW | …rsor/skills/planning-with-files/scripts/inject-plan.sh | 941 | # mode is written as "autonomous gate". Do NOT collapse whitespace with | COMMENT |
| LOW | …rsor/skills/planning-with-files/scripts/inject-plan.sh | 1241 | else | COMMENT |
| LOW | …rsor/skills/planning-with-files/scripts/inject-plan.sh | 1261 | # PROGRESS instead: checked boxes and completed phases only go up during normal | COMMENT |
| LOW | …rsor/skills/planning-with-files/scripts/inject-plan.sh | 1281 | # "plan-guard-off" token in .mode restores the old silence. | COMMENT |
| LOW | …ursor/skills/planning-with-files/scripts/skill-hook.sh | 1 | #!/bin/sh | COMMENT |
| LOW | …ursor/skills/planning-with-files/scripts/skill-hook.sh | 61 | # Locate a CPython 3 without forking (v3.17.0). Every $(...) and every | COMMENT |
| LOW | …skills/planning-with-files/scripts/resolve-plan-dir.sh | 1 | #!/bin/sh | COMMENT |
| LOW | …skills/planning-with-files/scripts/resolve-plan-dir.sh | 21 | if [ "${1:-}" = "--check-ambiguity" ]; then | COMMENT |
| LOW | …skills/planning-with-files/scripts/resolve-plan-dir.sh | 61 | # enforcing a date prefix that would break backward compatibility. | COMMENT |
| LOW | …skills/planning-with-files/scripts/resolve-plan-dir.sh | 161 | out="$("${_canonical_python}" -I -c "import os,sys;print(os.path.realpath(sys.argv[1]))" "${target}" 2>/dev/null | COMMENT |
| LOW | …skills/planning-with-files/scripts/resolve-plan-dir.sh | 321 | # followed the attestation onto it. commands/plan-attest.md already promised | COMMENT |
| LOW | .cursor/skills/planning-with-files/scripts/gate-stop.sh | 1 | #!/bin/sh | COMMENT |
| LOW | …ini/skills/planning-with-files/scripts/init-session.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …ini/skills/planning-with-files/scripts/init-session.sh | 141 | # short_uuid's third-level fallback is printf '%08x' "$(date +%s)" with | COMMENT |
| LOW | …mini/skills/planning-with-files/scripts/attest-plan.sh | 1 | #!/bin/sh | COMMENT |
| LOW | …mini/skills/planning-with-files/scripts/attest-plan.sh | 201 | else | COMMENT |
| LOW | …mini/skills/planning-with-files/scripts/plan-doctor.sh | 1 | #!/bin/sh | COMMENT |
| LOW | …mini/skills/planning-with-files/scripts/plan-doctor.sh | 81 | # warning" made the doctor report a hash mismatch on a correctly | COMMENT |
| LOW | …i/skills/planning-with-files/scripts/check-complete.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …i/skills/planning-with-files/scripts/check-complete.sh | 21 | # 4. the block counter (<plan-dir>/.stop_blocks) is below cap (PWF_GATE_CAP, default 20) | COMMENT |
| LOW | …i/skills/planning-with-files/scripts/check-complete.sh | 141 | } | COMMENT |
| LOW | …/skills/planning-with-files/scripts/set-active-plan.sh | 121 | # realpath("$PWD") and realpath(relative-candidate) resolve through different | COMMENT |
| LOW | …skills/planning-with-files/scripts/resolve-plan-dir.sh | 1 | #!/bin/sh | COMMENT |
| LOW | …skills/planning-with-files/scripts/resolve-plan-dir.sh | 21 | if [ "${1:-}" = "--check-ambiguity" ]; then | COMMENT |
| LOW | …skills/planning-with-files/scripts/resolve-plan-dir.sh | 61 | # enforcing a date prefix that would break backward compatibility. | COMMENT |
| LOW | …skills/planning-with-files/scripts/resolve-plan-dir.sh | 161 | out="$("${_canonical_python}" -I -c "import os,sys;print(os.path.realpath(sys.argv[1]))" "${target}" 2>/dev/null | COMMENT |
| LOW | …skills/planning-with-files/scripts/resolve-plan-dir.sh | 321 | # followed the attestation onto it. commands/plan-attest.md already promised | COMMENT |
| LOW | .dsh/packages/dsh-planning-with-files/src/core.ts | 261 | // | COMMENT |
| LOW | …e/skills/planning-with-files/scripts/ledger-summary.sh | 1 | #!/bin/sh | COMMENT |
| LOW | …e/skills/planning-with-files/scripts/ledger-summary.sh | 21 | # wins over self-resolution: inject-plan.sh passes the dir it resolved, | COMMENT |
| LOW | …/skills/planning-with-files/scripts/set-active-plan.sh | 121 | # realpath("$PWD") and realpath(relative-candidate) resolve through different | COMMENT |
| LOW | …code/skills/planning-with-files/scripts/inject-plan.sh | 1 | #!/bin/sh | COMMENT |
| LOW | …code/skills/planning-with-files/scripts/inject-plan.sh | 21 | # | COMMENT |
| LOW | …code/skills/planning-with-files/scripts/inject-plan.sh | 81 | CONTEXT="userprompt" | COMMENT |
| LOW | …code/skills/planning-with-files/scripts/inject-plan.sh | 121 | # single-session case and stays byte-identical. | COMMENT |
| LOW | …code/skills/planning-with-files/scripts/inject-plan.sh | 221 | # string. On some Windows/MSYS setups (8.3 short names, the /tmp mount | COMMENT |
| LOW | …code/skills/planning-with-files/scripts/inject-plan.sh | 281 | RESOLVED="" | COMMENT |
| LOW | …code/skills/planning-with-files/scripts/inject-plan.sh | 501 | # ponytail: depth 1 only — one shell glob per hook fire is the whole perf | COMMENT |
| LOW | …code/skills/planning-with-files/scripts/inject-plan.sh | 941 | # mode is written as "autonomous gate". Do NOT collapse whitespace with | COMMENT |
| LOW | …code/skills/planning-with-files/scripts/inject-plan.sh | 1241 | else | COMMENT |
| 440 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 121 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 193 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 326 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 508 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 733 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 834 | CODE | |
| LOW | …rsor/skills/planning-with-files/scripts/inject-plan.py | 433 | CODE | |
| LOW | …rsor/skills/planning-with-files/scripts/inject-plan.py | 524 | CODE | |
| LOW | …rsor/skills/planning-with-files/scripts/inject-plan.py | 790 | CODE | |
| LOW | …rsor/skills/planning-with-files/scripts/inject-plan.py | 930 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 121 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 193 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 326 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 508 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 733 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 834 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 124 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 210 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 296 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 325 | CODE | |
| LOW | …code/skills/planning-with-files/scripts/inject-plan.py | 433 | CODE | |
| LOW | …code/skills/planning-with-files/scripts/inject-plan.py | 524 | CODE | |
| LOW | …code/skills/planning-with-files/scripts/inject-plan.py | 790 | CODE | |
| LOW | …code/skills/planning-with-files/scripts/inject-plan.py | 930 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 121 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 193 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 326 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 508 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 733 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 834 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 97 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 169 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 302 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 433 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 658 | CODE | |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 731 | CODE | |
| LOW | …code/skills/planning-with-files/scripts/inject-plan.py | 433 | CODE | |
| LOW | …code/skills/planning-with-files/scripts/inject-plan.py | 524 | CODE | |
| LOW | …code/skills/planning-with-files/scripts/inject-plan.py | 790 | CODE | |
| LOW | …code/skills/planning-with-files/scripts/inject-plan.py | 930 | CODE | |
| LOW | tests/test_hook_script_modes.py | 24 | CODE | |
| LOW | tests/test_hook_resolver_integration.py | 361 | CODE | |
| LOW | tests/test_session_catchup.py | 222 | CODE | |
| LOW | tests/test_session_catchup.py | 320 | CODE | |
| LOW | tests/test_session_catchup.py | 379 | CODE | |
| LOW | tests/test_session_catchup.py | 355 | CODE | |
| LOW | tests/test_npm_package_line_endings.py | 104 | CODE | |
| LOW | tests/test_cursor_hook_schema.py | 35 | CODE | |
| LOW | tests/test_codex_hooks.py | 305 | CODE | |
| LOW | tests/test_hermes_first_class.py | 291 | CODE | |
| LOW | tests/test_codex_nested_root_isolation.py | 322 | CODE | |
| LOW | tests/test_session_plan_ambiguity.py | 280 | CODE | |
| LOW | tests/test_context_frame_security.py | 57 | CODE | |
| LOW | tests/test_context_frame_security.py | 156 | CODE | |
| LOW | tests/test_context_frame_security.py | 189 | CODE | |
| LOW | tests/test_context_frame_security.py | 202 | CODE | |
| LOW | tests/test_context_frame_security.py | 221 | CODE | |
| LOW | tests/test_context_frame_security.py | 253 | CODE | |
| LOW | tests/test_context_frame_security.py | 277 | CODE | |
| LOW | tests/test_context_frame_security.py | 326 | CODE | |
| 148 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/test_phase_status_locking.py | 98 | mkdir "$@" 2>/dev/null || true | STRING |
| HIGH | tests/test_ps1_windows_encoding.py | 114 | " $errors = $null; " | CODE |
| HIGH | tests/test_ps1_windows_encoding.py | 116 | "$f, [ref]$null, [ref]$errors); " | CODE |
| HIGH | tests/test_adapter_python_isolation.py | 45 | 'PY=$(command -v python3 || command -v python); [ -n "$PY" ] && "$PY" -I -c "import json"', | CODE |
| HIGH | tests/test_codex_hooks.py | 335 | f'python3 "$HOME/.codex/hooks/run_sh.py" {script} 2>/dev/null || true', | CODE |
| HIGH | tests/test_codex_hooks.py | 310 | (python3 alias stub, /dev/null, $HOME, the missing `true` command). Runs on | STRING |
| HIGH | tests/test_bsd_userland_sim.py | 92 | out="$("%(real_stat)s" -c '%%Y' "$@" 2>/dev/null)" && [ -n "$out" ] && { printf '%%s\\n' "$out"; exit 0; } | CODE |
| HIGH | tests/test_bsd_userland_sim.py | 93 | out="$("%(real_stat)s" -f '%%m' "$@" 2>/dev/null)" && [ -n "$out" ] && { printf '%%s\\n' "$out"; exit 0; } | CODE |
| HIGH | tests/test_gemini_hook_contract.py | 39 | 'PY=$(command -v python3 || command -v python); [ -n "$PY" ] && "$PY" -I -c "import json"', | CODE |
| HIGH | tests/test_init_session_powershell_slug.py | 366 | if ($VerifyRoot) { & $real -VerifyRoot *> $null; exit $LASTEXITCODE } | CODE |
| HIGH | tests/test_init_session_powershell_slug.py | 406 | if ($VerifyRoot) { & $real -VerifyRoot *> $null; exit $LASTEXITCODE } | CODE |
| HIGH | tests/test_init_session_powershell_slug.py | 448 | if ($VerifyRoot) { & $real -VerifyRoot *> $null; exit $LASTEXITCODE } | CODE |
| HIGH | tests/test_init_session_powershell_slug.py | 493 | if ($VerifyRoot) { & $real -VerifyRoot *> $null; exit $LASTEXITCODE } | CODE |
| HIGH | scripts/_v240_update_hook_bodies.py | 60 | "AP=$(tr -d '\\r\\n[:space:]' < .planning/.active_plan 2>/dev/null); " | CODE |
| HIGH⚡ | scripts/_v240_update_hook_bodies.py | 71 | "m=$(stat -c '%Y' \"$d\" 2>/dev/null || stat -f '%m' \"$d\" 2>/dev/null || date -r \"$d\" +%s 2>/dev/null || echo 0) | CODE |
| HIGH⚡ | scripts/_v240_update_hook_bodies.py | 72 | 'if [ "$m" -gt "$NEWEST_MT" ] 2>/dev/null; then NEWEST_MT="$m"; NEWEST="$d"; fi; ' | CODE |
| HIGH⚡ | scripts/_v240_update_hook_bodies.py | 80 | "[ -f .plan-attestation ] && ATTEST=$(tr -d '\\r\\n[:space:]' < .plan-attestation 2>/dev/null); " | CODE |
| HIGH⚡ | scripts/_v240_update_hook_bodies.py | 83 | "[ -f \"${RESOLVED}/.attestation\" ] && ATTEST=$(tr -d '\\r\\n[:space:]' < \"${RESOLVED}/.attestation\" 2>/dev/null) | CODE |
| HIGH⚡ | scripts/_v240_update_hook_bodies.py | 88 | 'CD="${TMPDIR:-/tmp}/pwf-sha"; mkdir -p "$CD" 2>/dev/null; ' | CODE |
| HIGH⚡ | scripts/_v240_update_hook_bodies.py | 89 | 'KEY=$(printf "%s" "$PLAN_FILE" | { sha256sum 2>/dev/null || shasum -a 256 2>/dev/null; } | awk \'{print $1}\' | cut | CODE |
| HIGH⚡ | scripts/_v240_update_hook_bodies.py | 89 | 'KEY=$(printf "%s" "$PLAN_FILE" | { sha256sum 2>/dev/null || shasum -a 256 2>/dev/null; } | awk \'{print $1}\' | cut | CODE |
| HIGH⚡ | scripts/_v240_update_hook_bodies.py | 90 | "MT=$(stat -c '%Y' \"$PLAN_FILE\" 2>/dev/null || stat -f '%m' \"$PLAN_FILE\" 2>/dev/null || date -r \"$PLAN_FILE\" + | CODE |
| HIGH⚡ | scripts/_v240_update_hook_bodies.py | 92 | 'if [ -f "$CF" ]; then CM=$(sed -n 1p "$CF" 2>/dev/null); CS=$(sed -n 2p "$CF" 2>/dev/null); fi; ' | CODE |
| HIGH⚡ | scripts/_v240_update_hook_bodies.py | 94 | 'else ACTUAL=$( (sha256sum "$PLAN_FILE" 2>/dev/null || shasum -a 256 "$PLAN_FILE" 2>/dev/null) | awk \'{print $1}\') | CODE |
| HIGH⚡ | scripts/_v240_update_hook_bodies.py | 94 | 'else ACTUAL=$( (sha256sum "$PLAN_FILE" 2>/dev/null || shasum -a 256 "$PLAN_FILE" 2>/dev/null) | awk \'{print $1}\') | CODE |
| HIGH⚡ | scripts/_v240_update_hook_bodies.py | 95 | '[ -n "$ACTUAL" ] && [ -n "$MT" ] && printf "%s\\n%s\\n" "$MT" "$ACTUAL" > "$CF" 2>/dev/null; fi; ' | CODE |
| HIGH | scripts/_v240_update_hook_bodies.py | 129 | 'head -30 "$PLAN_FILE" 2>/dev/null; ' | CODE |
| HIGH | scripts/_v240_update_hook_bodies.py | 173 | 'powershell.exe -NoProfile -ExecutionPolicy RemoteSigned -File \\"$TARGET_PS1\\" 2>/dev/null; ' | CODE |
| HIGH | scripts/_v240_update_hook_bodies.py | 175 | 'sh \\"$TARGET_SH\\" 2>/dev/null; ' | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …sor/skills/planning-with-files/scripts/init-session.sh | 4 | # Usage: | COMMENT |
| LOW | …rsor/skills/planning-with-files/scripts/attest-plan.sh | 16 | # Usage: | COMMENT |
| LOW | …r/skills/planning-with-files/scripts/ledger-summary.sh | 17 | # Usage: | COMMENT |
| LOW | …skills/planning-with-files/scripts/resolve-plan-dir.sh | 12 | # Usage: | COMMENT |
| LOW | …ini/skills/planning-with-files/scripts/init-session.sh | 4 | # Usage: | COMMENT |
| LOW | …mini/skills/planning-with-files/scripts/attest-plan.sh | 16 | # Usage: | COMMENT |
| LOW | …skills/planning-with-files/scripts/resolve-plan-dir.sh | 12 | # Usage: | COMMENT |
| LOW | …e/skills/planning-with-files/scripts/ledger-summary.sh | 17 | # Usage: | COMMENT |
| LOW | …skills/planning-with-files/scripts/resolve-plan-dir.sh | 12 | # Usage: | COMMENT |
| LOW | …nue/skills/planning-with-files/scripts/init-session.sh | 4 | # Usage: | COMMENT |
| LOW | …inue/skills/planning-with-files/scripts/attest-plan.sh | 16 | # Usage: | COMMENT |
| LOW | …skills/planning-with-files/scripts/resolve-plan-dir.sh | 12 | # Usage: | COMMENT |
| LOW | …e/skills/planning-with-files/scripts/ledger-summary.sh | 17 | # Usage: | COMMENT |
| LOW | …skills/planning-with-files/scripts/resolve-plan-dir.sh | 12 | # Usage: | COMMENT |
| LOW | …nts/skills/planning-with-files/scripts/init-session.sh | 4 | # Usage: | COMMENT |
| LOW | …ents/skills/planning-with-files/scripts/attest-plan.sh | 16 | # Usage: | COMMENT |
| LOW | …s/skills/planning-with-files/scripts/ledger-summary.sh | 17 | # Usage: | COMMENT |
| LOW | …nts/skills/planning-with-files/scripts/phase-status.sh | 23 | # Usage: | COMMENT |
| LOW | …skills/planning-with-files/scripts/resolve-plan-dir.sh | 12 | # Usage: | COMMENT |
| LOW | …ts/skills/planning-with-files/scripts/ledger-append.sh | 14 | # Usage: | COMMENT |
| LOW | …dex/skills/planning-with-files/scripts/init-session.sh | 4 | # Usage: | COMMENT |
| LOW | …odex/skills/planning-with-files/scripts/attest-plan.sh | 16 | # Usage: | COMMENT |
| LOW | …x/skills/planning-with-files/scripts/ledger-summary.sh | 17 | # Usage: | COMMENT |
| LOW | …skills/planning-with-files/scripts/resolve-plan-dir.sh | 12 | # Usage: | COMMENT |
| LOW | scripts/init-session.sh | 4 | # Usage: | COMMENT |
| LOW | scripts/attest-plan.sh | 16 | # Usage: | COMMENT |
| LOW | scripts/ledger-summary.sh | 17 | # Usage: | COMMENT |
| LOW | scripts/phase-status.sh | 23 | # Usage: | COMMENT |
| LOW | scripts/resolve-plan-dir.sh | 12 | # Usage: | COMMENT |
| LOW | scripts/ledger-append.sh | 14 | # Usage: | COMMENT |
| LOW | …ory/skills/planning-with-files/scripts/init-session.sh | 4 | # Usage: | COMMENT |
| LOW | …tory/skills/planning-with-files/scripts/attest-plan.sh | 16 | # Usage: | COMMENT |
| LOW | …y/skills/planning-with-files/scripts/ledger-summary.sh | 17 | # Usage: | COMMENT |
| LOW | …skills/planning-with-files/scripts/resolve-plan-dir.sh | 12 | # Usage: | COMMENT |
| LOW | skills/planning-with-files/scripts/init-session.sh | 4 | # Usage: | COMMENT |
| LOW | skills/planning-with-files/scripts/attest-plan.sh | 16 | # Usage: | COMMENT |
| LOW | skills/planning-with-files/scripts/ledger-summary.sh | 17 | # Usage: | COMMENT |
| LOW | skills/planning-with-files/scripts/phase-status.sh | 23 | # Usage: | COMMENT |
| LOW | skills/planning-with-files/scripts/resolve-plan-dir.sh | 12 | # Usage: | COMMENT |
| LOW | skills/planning-with-files/scripts/ledger-append.sh | 14 | # Usage: | COMMENT |
| LOW | …lls/i18n/planning-with-files-es/scripts/attest-plan.sh | 16 | # Usage: | COMMENT |
| LOW | …/i18n/planning-with-files-es/scripts/ledger-summary.sh | 17 | # Usage: | COMMENT |
| LOW | …ls/i18n/planning-with-files-es/scripts/phase-status.sh | 23 | # Usage: | COMMENT |
| LOW | …18n/planning-with-files-es/scripts/resolve-plan-dir.sh | 12 | # Usage: | COMMENT |
| LOW | …s/i18n/planning-with-files-es/scripts/ledger-append.sh | 14 | # Usage: | COMMENT |
| LOW | …lls/i18n/planning-with-files-zh/scripts/attest-plan.sh | 16 | # Usage: | COMMENT |
| LOW | …/i18n/planning-with-files-zh/scripts/ledger-summary.sh | 17 | # Usage: | COMMENT |
| LOW | …ls/i18n/planning-with-files-zh/scripts/phase-status.sh | 23 | # Usage: | COMMENT |
| LOW | …18n/planning-with-files-zh/scripts/resolve-plan-dir.sh | 12 | # Usage: | COMMENT |
| LOW | …s/i18n/planning-with-files-zh/scripts/ledger-append.sh | 14 | # Usage: | COMMENT |
| LOW | …lls/i18n/planning-with-files-de/scripts/attest-plan.sh | 16 | # Usage: | COMMENT |
| LOW | …/i18n/planning-with-files-de/scripts/ledger-summary.sh | 17 | # Usage: | COMMENT |
| LOW | …ls/i18n/planning-with-files-de/scripts/phase-status.sh | 23 | # Usage: | COMMENT |
| LOW | …18n/planning-with-files-de/scripts/resolve-plan-dir.sh | 12 | # Usage: | COMMENT |
| LOW | …s/i18n/planning-with-files-de/scripts/ledger-append.sh | 14 | # Usage: | COMMENT |
| LOW | …ls/i18n/planning-with-files-zht/scripts/attest-plan.sh | 16 | # Usage: | COMMENT |
| LOW | …i18n/planning-with-files-zht/scripts/ledger-summary.sh | 17 | # Usage: | COMMENT |
| LOW | …s/i18n/planning-with-files-zht/scripts/phase-status.sh | 23 | # Usage: | COMMENT |
| LOW | …8n/planning-with-files-zht/scripts/resolve-plan-dir.sh | 12 | # Usage: | COMMENT |
| LOW | …/i18n/planning-with-files-zht/scripts/ledger-append.sh | 14 | # Usage: | COMMENT |
| 15 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .qoder-plugin/hook_adapter.py | 8 | CODE | |
| LOW | tests/test_powershell_literal_paths.py | 21 | CODE | |
| LOW | tests/test_seo_docs_pages.py | 10 | CODE | |
| LOW | tests/test_planning_disabled_optout.py | 9 | CODE | |
| LOW | tests/test_check_complete_resolver.py | 15 | CODE | |
| LOW | tests/test_nested_plan_isolation.py | 32 | CODE | |
| LOW | tests/test_v238_command_files.py | 8 | CODE | |
| LOW | tests/test_hook_script_modes.py | 10 | CODE | |
| LOW | tests/test_hook_resolver_integration.py | 8 | CODE | |
| LOW | tests/test_precompact_hook.py | 18 | CODE | |
| LOW | tests/test_resolver_plan_root_pin.py | 21 | CODE | |
| LOW | tests/test_hook_body_v240.py | 24 | CODE | |
| LOW | tests/test_inject_plan_python_parity.py | 21 | CODE | |
| LOW | tests/test_plan_listing.py | 7 | CODE | |
| LOW | tests/test_dsh_plugin_core_parity.py | 12 | CODE | |
| LOW | tests/test_phase_status_locking.py | 2 | CODE | |
| LOW | tests/test_injection_determinism.py | 31 | CODE | |
| LOW | tests/test_cursor_powershell_named_plans.py | 8 | CODE | |
| LOW | tests/test_npm_package_line_endings.py | 3 | CODE | |
| LOW | tests/test_ledger_utf8.py | 20 | CODE | |
| LOW | tests/test_ps1_windows_encoding.py | 29 | CODE | |
| LOW | tests/test_catchup_i18n_security.py | 3 | CODE | |
| LOW | tests/test_quiet_completion_hooks.py | 2 | CODE | |
| LOW | tests/test_adapter_python_isolation.py | 2 | CODE | |
| LOW | tests/test_plan_listing_distribution.py | 2 | CODE | |
| LOW | tests/test_cursor_nested_root_isolation.py | 21 | CODE | |
| LOW | tests/test_bump_version.py | 2 | CODE | |
| LOW | tests/test_resolver_parity.py | 9 | CODE | |
| LOW | tests/test_verified_plan_snapshot.py | 2 | CODE | |
| LOW | tests/test_cursor_hook_schema.py | 2 | CODE | |
| LOW | tests/test_copilot_agent_stop.py | 3 | CODE | |
| LOW | tests/test_init_session_attestation_reporting.py | 2 | CODE | |
| LOW | tests/test_script_location_parity.py | 18 | CODE | |
| LOW | tests/test_bsd_userland_sim.py | 33 | CODE | |
| LOW | tests/test_qoder_hook_execution.py | 1 | CODE | |
| LOW | tests/test_plan_selector_binding.py | 18 | CODE | |
| LOW | tests/test_hermes_first_class.py | 9 | CODE | |
| LOW | tests/test_post_tool_nudge.py | 26 | CODE | |
| LOW | tests/test_resolve_plan_dir.py | 10 | CODE | |
| LOW | tests/test_plan_attestation.py | 12 | CODE | |
| LOW | tests/test_plan_attestation.py | 18 | CODE | |
| LOW | tests/test_active_pointer_bom.py | 2 | CODE | |
| LOW | tests/test_codex_nested_root_isolation.py | 29 | CODE | |
| LOW | tests/test_root_mode_floor.py | 17 | CODE | |
| LOW | tests/test_init_session_slug.py | 9 | CODE | |
| LOW | tests/test_catchup_project_dir.py | 10 | CODE | |
| LOW | tests/test_session_plan_ambiguity.py | 2 | CODE | |
| LOW | tests/test_stop_hook_dispatch.py | 25 | CODE | |
| LOW | tests/test_plan_regression_guard.py | 19 | CODE | |
| LOW | tests/test_session_catchup_opencode.py | 11 | CODE | |
| LOW | tests/test_session_catchup_opencode.py | 18 | CODE | |
| LOW | tests/test_gate.py | 21 | CODE | |
| LOW | tests/test_line_endings.py | 19 | CODE | |
| LOW | tests/test_set_active_plan.py | 7 | CODE | |
| LOW | tests/test_context_frame_security.py | 2 | CODE | |
| LOW | tests/test_context_frame_security.py | 7 | CODE | |
| LOW | tests/test_build_clawhub_upload.py | 3 | CODE | |
| LOW | tests/test_sync_ide_folders.py | 3 | CODE | |
| LOW | tests/test_pi_extension_packaging.py | 7 | CODE | |
| LOW | tests/test_standalone_post_tool_nudge.py | 9 | CODE | |
| 41 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …rsor/skills/planning-with-files/scripts/inject-plan.py | 205 | def canonicalize(target): | CODE |
| LOW | …rsor/skills/planning-with-files/scripts/inject-plan.py | 1743 | except Exception: | CODE |
| LOW | …rsor/skills/planning-with-files/scripts/inject-plan.py | 1748 | except Exception: | CODE |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 205 | def canonicalize(target): | CODE |
| LOW | …code/skills/planning-with-files/scripts/inject-plan.py | 1743 | except Exception: | CODE |
| LOW | …code/skills/planning-with-files/scripts/inject-plan.py | 1748 | except Exception: | CODE |
| MEDIUM | …code/skills/planning-with-files/scripts/inject-plan.py | 205 | def canonicalize(target): | CODE |
| LOW | …code/skills/planning-with-files/scripts/inject-plan.py | 1743 | except Exception: | CODE |
| LOW | …code/skills/planning-with-files/scripts/inject-plan.py | 1748 | except Exception: | CODE |
| LOW | tests/test_skill_frontmatter_valid.py | 87 | except Exception as exc: # noqa: BLE001 | CODE |
| MEDIUM | …ents/skills/planning-with-files/scripts/inject-plan.py | 205 | def canonicalize(target): | CODE |
| LOW | …ents/skills/planning-with-files/scripts/inject-plan.py | 1743 | except Exception: | CODE |
| LOW | …ents/skills/planning-with-files/scripts/inject-plan.py | 1748 | except Exception: | CODE |
| LOW | .codex/hooks/codex_hook_adapter.py | 388 | except Exception as exc: # pragma: no cover | CODE |
| MEDIUM | .codex/hooks/codex_hook_adapter.py | 385 | def main_guard(func) -> int: | CODE |
| LOW | .codex/hooks/context_frame.py | 163 | except Exception: | CODE |
| MEDIUM | …odex/skills/planning-with-files/scripts/inject-plan.py | 205 | def canonicalize(target): | CODE |
| LOW | …odex/skills/planning-with-files/scripts/inject-plan.py | 1743 | except Exception: | CODE |
| LOW | …odex/skills/planning-with-files/scripts/inject-plan.py | 1748 | except Exception: | CODE |
| LOW | examples/file-only-recovery/grade.py | 194 | except Exception as exc: | CODE |
| LOW | examples/file-only-recovery/grade.py | 210 | except Exception: | CODE |
| MEDIUM | scripts/bump-version.py | 165 | print(f"Error: '{new}' is not a valid semver string.", file=sys.stderr) | CODE |
| LOW | scripts/session-catchup.py | 363 | except Exception: | CODE |
| LOW | scripts/session-catchup.py | 447 | except Exception: | CODE |
| MEDIUM | scripts/inject-plan.py | 205 | def canonicalize(target): | CODE |
| LOW | scripts/inject-plan.py | 1743 | except Exception: | CODE |
| LOW | scripts/inject-plan.py | 1748 | except Exception: | CODE |
| MEDIUM | scripts/sync-ide-folders.py | 408 | print(f"Error: Canonical source not found at {CANONICAL}/") | CODE |
| MEDIUM | …tory/skills/planning-with-files/scripts/inject-plan.py | 205 | def canonicalize(target): | CODE |
| LOW | …tory/skills/planning-with-files/scripts/inject-plan.py | 1743 | except Exception: | CODE |
| LOW | …tory/skills/planning-with-files/scripts/inject-plan.py | 1748 | except Exception: | CODE |
| MEDIUM | skills/planning-with-files/scripts/inject-plan.py | 205 | def canonicalize(target): | CODE |
| LOW | skills/planning-with-files/scripts/inject-plan.py | 1743 | except Exception: | CODE |
| LOW | skills/planning-with-files/scripts/inject-plan.py | 1748 | except Exception: | CODE |
| MEDIUM | …lls/i18n/planning-with-files-es/scripts/inject-plan.py | 205 | def canonicalize(target): | CODE |
| LOW | …lls/i18n/planning-with-files-es/scripts/inject-plan.py | 1743 | except Exception: | CODE |
| LOW | …lls/i18n/planning-with-files-es/scripts/inject-plan.py | 1748 | except Exception: | CODE |
| MEDIUM | …lls/i18n/planning-with-files-zh/scripts/inject-plan.py | 205 | def canonicalize(target): | CODE |
| LOW | …lls/i18n/planning-with-files-zh/scripts/inject-plan.py | 1743 | except Exception: | CODE |
| LOW | …lls/i18n/planning-with-files-zh/scripts/inject-plan.py | 1748 | except Exception: | CODE |
| MEDIUM | …lls/i18n/planning-with-files-de/scripts/inject-plan.py | 205 | def canonicalize(target): | CODE |
| LOW | …lls/i18n/planning-with-files-de/scripts/inject-plan.py | 1743 | except Exception: | CODE |
| LOW | …lls/i18n/planning-with-files-de/scripts/inject-plan.py | 1748 | except Exception: | CODE |
| MEDIUM | …ls/i18n/planning-with-files-zht/scripts/inject-plan.py | 205 | def canonicalize(target): | CODE |
| LOW | …ls/i18n/planning-with-files-zht/scripts/inject-plan.py | 1743 | except Exception: | CODE |
| LOW | …ls/i18n/planning-with-files-zht/scripts/inject-plan.py | 1748 | except Exception: | CODE |
| MEDIUM | …lls/i18n/planning-with-files-ar/scripts/inject-plan.py | 205 | def canonicalize(target): | CODE |
| LOW | …lls/i18n/planning-with-files-ar/scripts/inject-plan.py | 1743 | except Exception: | CODE |
| LOW | …lls/i18n/planning-with-files-ar/scripts/inject-plan.py | 1748 | except Exception: | CODE |
| MEDIUM | …uddy/skills/planning-with-files/scripts/inject-plan.py | 205 | def canonicalize(target): | CODE |
| LOW | …uddy/skills/planning-with-files/scripts/inject-plan.py | 1743 | except Exception: | CODE |
| LOW | …uddy/skills/planning-with-files/scripts/inject-plan.py | 1748 | except Exception: | CODE |
| LOW | .hermes/plugins/planning-with-files/shell_hook.py | 125 | except Exception: # noqa: BLE001 - a hook bridge must never fail the turn | CODE |
| MEDIUM | .hermes/plugins/planning-with-files/shell_hook.py | 118 | def main() -> int: | CODE |
| LOW | .hermes/plugins/planning-with-files/__init__.py | 51 | except Exception: # noqa: BLE001 - any runtime failure falls back to the process cwd | CODE |
| LOW | .hermes/plugins/planning-with-files/__init__.py | 160 | except Exception: # noqa: BLE001 - a host without the pin keeps the hint | CODE |
| LOW | .hermes/plugins/planning-with-files/__init__.py | 204 | except Exception: # noqa: BLE001 - a host without slash-command support must not lose the tools | CODE |
| LOW | .hermes/plugins/planning-with-files/__init__.py | 223 | except Exception: # noqa: BLE001 - bundled skill registration is best effort | CODE |
| LOW | .hermes/plugins/planning-with-files/context_frame.py | 163 | except Exception: | CODE |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 386 | except Exception: | CODE |
| 5 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …r/skills/planning-with-files/scripts/check-complete.sh | 2 | # Check if all phases in task_plan.md are complete | COMMENT |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 933 | # Check if planning files exist (indicates active task) | COMMENT |
| LOW | …i/skills/planning-with-files/scripts/check-complete.sh | 2 | # Check if all phases in task_plan.md are complete | COMMENT |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 933 | # Check if planning files exist (indicates active task) | COMMENT |
| LOW | …e/skills/planning-with-files/scripts/check-complete.sh | 2 | # Check if all phases in task_plan.md are complete | COMMENT |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 395 | # Check if planning files exist (indicates active task) | COMMENT |
| LOW | …e/skills/planning-with-files/scripts/check-complete.sh | 2 | # Check if all phases in task_plan.md are complete | COMMENT |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 933 | # Check if planning files exist (indicates active task) | COMMENT |
| LOW | …e/skills/planning-with-files/scripts/check-complete.sh | 2 | # Check if all phases in task_plan.md are complete | COMMENT |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 824 | # Check if planning files exist (indicates active task) | COMMENT |
| LOW | …s/skills/planning-with-files/scripts/check-complete.sh | 2 | # Check if all phases in task_plan.md are complete | COMMENT |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 933 | # Check if planning files exist (indicates active task) | COMMENT |
| LOW | …x/skills/planning-with-files/scripts/check-complete.sh | 2 | # Check if all phases in task_plan.md are complete | COMMENT |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 933 | # Check if planning files exist (indicates active task) | COMMENT |
| LOW | scripts/check-complete.sh | 2 | # Check if all phases in task_plan.md are complete | COMMENT |
| LOW | …y/skills/planning-with-files/scripts/check-complete.sh | 2 | # Check if all phases in task_plan.md are complete | COMMENT |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 933 | # Check if planning files exist (indicates active task) | COMMENT |
| LOW | skills/planning-with-files/scripts/check-complete.sh | 2 | # Check if all phases in task_plan.md are complete | COMMENT |
| LOW | skills/planning-with-files/scripts/session-catchup.py | 933 | # Check if planning files exist (indicates active task) | COMMENT |
| LOW | …i18n/planning-with-files-es/scripts/session-catchup.py | 647 | # Check if planning files exist (indicates active task) | COMMENT |
| LOW | …i18n/planning-with-files-zh/scripts/session-catchup.py | 905 | # Check if planning files exist (indicates active task) | COMMENT |
| LOW | …i18n/planning-with-files-de/scripts/session-catchup.py | 640 | # Check if planning files exist (indicates active task) | COMMENT |
| LOW | …18n/planning-with-files-zht/scripts/session-catchup.py | 638 | # Check if planning files exist (indicates active task) | COMMENT |
| LOW | …i18n/planning-with-files-ar/scripts/session-catchup.py | 638 | # Check if planning files exist (indicates active task) | COMMENT |
| LOW | …y/skills/planning-with-files/scripts/check-complete.sh | 2 | # Check if all phases in task_plan.md are complete | COMMENT |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 933 | # Check if planning files exist (indicates active task) | COMMENT |
| LOW | …s/skills/planning-with-files/scripts/check-complete.sh | 2 | # Check if all phases in task_plan.md are complete | COMMENT |
| LOW | …i/skills/planning-with-files/scripts/check-complete.sh | 2 | # Check if all phases in task_plan.md are complete | COMMENT |
| LOW | …/skills/planning-with-files/scripts/session-catchup.py | 933 | # Check if planning files exist (indicates active task) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | MIGRATION.md | 43 | ### Step 1: Update the Plugin | COMMENT |
| LOW⚡ | MIGRATION.md | 54 | ### Step 2: Existing Files Continue Working | COMMENT |
| LOW⚡ | MIGRATION.md | 58 | ### Step 3: Adopt New Templates (Optional) | COMMENT |
| LOW⚡ | MIGRATION.md | 66 | ### Step 4: Update Phase Status Format (Recommended) | COMMENT |
| LOW | docs/quickstart.md | 7 | ## Step 1: Invoke the Skill and Describe Your Task | COMMENT |
| LOW | docs/quickstart.md | 31 | ## Step 2: Plan Your Phases | COMMENT |
| LOW | docs/quickstart.md | 55 | ## Step 3: Work and Document | COMMENT |
| LOW | docs/quickstart.md | 130 | ## Step 4: Re-read Before Decisions | COMMENT |
| LOW | docs/quickstart.md | 142 | ## Step 5: Complete and Verify | COMMENT |
| LOW | docs/opencode.md | 137 | ### Step 1: Install the skill | COMMENT |
| LOW | docs/opencode.md | 143 | ### Step 2: Configure oh-my-opencode | COMMENT |
| LOW | docs/opencode.md | 159 | ### Step 3: Verify loading | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | README.md | 43 | <a href="#multi-agent-runs-orchestrators-workers-and-subagents">Multi-agent</a> · | CODE |
| MEDIUM | docs/workflow.md | 119 | The behavior is consistent and intentional, though it was never stated as a rule until now (see [#14](https://github.com | CODE |
| MEDIUM | .pi/skills/planning-with-files/README.md | 43 | <a href="#multi-agent-runs-orchestrators-workers-and-subagents">Multi-agent</a> · | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_bsd_userland_sim.py | 239 | # Self-check of the harness: if a runner image change or a stub bug | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_gate.py | 66 | def set_mode(self, mode: str | None) -> None: | CODE |
| LOW | tests/test_gate.py | 71 | def set_blocks(self, n: int) -> None: | CODE |