Repository Analysis

OthmanAdi/planning-with-files

Claude Code skill implementing Manus-style persistent markdown planning — the workflow pattern behind the $2B acquisition.

30.6 Strong AI signal View on GitHub
30.6
Adjusted Score
30.6
Raw Score
100%
Time Factor
2026-05-26
Last Push
22,362
Stars
Python
Language
45,324
Lines of Code
299
Files
553
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 173MEDIUM 26LOW 354

Pattern Findings

553 matches across 10 categories. Click a row to expand file-level details.

Cross-File Repetition157 hits · 785 pts
SeverityFileLineSnippet
HIGH…/skills/planning-with-files/scripts/session-catchup.py0session catchup script for planning-with-files analyzes the previous session to find unsynced context after the last pla
HIGH…/skills/planning-with-files/scripts/session-catchup.py0session catchup script for planning-with-files analyzes the previous session to find unsynced context after the last pla
HIGH…/skills/planning-with-files/scripts/session-catchup.py0session catchup script for planning-with-files analyzes the previous session to find unsynced context after the last pla
HIGH…/skills/planning-with-files/scripts/session-catchup.py0session catchup script for planning-with-files analyzes the previous session to find unsynced context after the last pla
HIGH…/skills/planning-with-files/scripts/session-catchup.py0session catchup script for planning-with-files analyzes the previous session to find unsynced context after the last pla
HIGH…/skills/planning-with-files/scripts/session-catchup.py0session catchup script for planning-with-files analyzes the previous session to find unsynced context after the last pla
HIGHskills/planning-with-files/scripts/session-catchup.py0session catchup script for planning-with-files analyzes the previous session to find unsynced context after the last pla
HIGH…/skills/planning-with-files/scripts/session-catchup.py0session catchup script for planning-with-files analyzes the previous session to find unsynced context after the last pla
HIGH…/skills/planning-with-files/scripts/session-catchup.py0session catchup script for planning-with-files analyzes the previous session to find unsynced context after the last pla
HIGH…/skills/planning-with-files/scripts/session-catchup.py0prefer optional orjson while keeping the hook dependency-free.
HIGH…/skills/planning-with-files/scripts/session-catchup.py0prefer optional orjson while keeping the hook dependency-free.
HIGH…/skills/planning-with-files/scripts/session-catchup.py0prefer optional orjson while keeping the hook dependency-free.
HIGH…/skills/planning-with-files/scripts/session-catchup.py0prefer optional orjson while keeping the hook dependency-free.
HIGH…/skills/planning-with-files/scripts/session-catchup.py0prefer optional orjson while keeping the hook dependency-free.
HIGHskills/planning-with-files/scripts/session-catchup.py0prefer optional orjson while keeping the hook dependency-free.
HIGH…ills/planning-with-files-es/scripts/session-catchup.py0prefer optional orjson while keeping the hook dependency-free.
HIGH…ills/planning-with-files-zh/scripts/session-catchup.py0prefer optional orjson while keeping the hook dependency-free.
HIGH…ills/planning-with-files-de/scripts/session-catchup.py0prefer optional orjson while keeping the hook dependency-free.
HIGH…lls/planning-with-files-zht/scripts/session-catchup.py0prefer optional orjson while keeping the hook dependency-free.
HIGH…ills/planning-with-files-ar/scripts/session-catchup.py0prefer optional orjson while keeping the hook dependency-free.
HIGH…/skills/planning-with-files/scripts/session-catchup.py0prefer optional orjson while keeping the hook dependency-free.
HIGH…/skills/planning-with-files/scripts/session-catchup.py0prefer optional orjson while keeping the hook dependency-free.
HIGH…/skills/planning-with-files/scripts/session-catchup.py0normalize project path to match claude code's internal representation. claude code stores session directories using the
HIGH…/skills/planning-with-files/scripts/session-catchup.py0normalize project path to match claude code's internal representation. claude code stores session directories using the
HIGH…/skills/planning-with-files/scripts/session-catchup.py0normalize project path to match claude code's internal representation. claude code stores session directories using the
HIGH…/skills/planning-with-files/scripts/session-catchup.py0normalize project path to match claude code's internal representation. claude code stores session directories using the
HIGH…/skills/planning-with-files/scripts/session-catchup.py0normalize project path to match claude code's internal representation. claude code stores session directories using the
HIGHskills/planning-with-files/scripts/session-catchup.py0normalize project path to match claude code's internal representation. claude code stores session directories using the
HIGH…ills/planning-with-files-es/scripts/session-catchup.py0normalize project path to match claude code's internal representation. claude code stores session directories using the
HIGH…ills/planning-with-files-zh/scripts/session-catchup.py0normalize project path to match claude code's internal representation. claude code stores session directories using the
HIGH…ills/planning-with-files-de/scripts/session-catchup.py0normalize project path to match claude code's internal representation. claude code stores session directories using the
HIGH…lls/planning-with-files-zht/scripts/session-catchup.py0normalize project path to match claude code's internal representation. claude code stores session directories using the
HIGH…ills/planning-with-files-ar/scripts/session-catchup.py0normalize project path to match claude code's internal representation. claude code stores session directories using the
HIGH…/skills/planning-with-files/scripts/session-catchup.py0normalize project path to match claude code's internal representation. claude code stores session directories using the
HIGH…/skills/planning-with-files/scripts/session-catchup.py0normalize project path to match claude code's internal representation. claude code stores session directories using the
HIGH…/skills/planning-with-files/scripts/session-catchup.py0resolve claude code's project-specific session storage path.
HIGH…/skills/planning-with-files/scripts/session-catchup.py0resolve claude code's project-specific session storage path.
HIGH…/skills/planning-with-files/scripts/session-catchup.py0resolve claude code's project-specific session storage path.
HIGH…/skills/planning-with-files/scripts/session-catchup.py0resolve claude code's project-specific session storage path.
HIGH…/skills/planning-with-files/scripts/session-catchup.py0resolve claude code's project-specific session storage path.
HIGHskills/planning-with-files/scripts/session-catchup.py0resolve claude code's project-specific session storage path.
HIGH…ills/planning-with-files-es/scripts/session-catchup.py0resolve claude code's project-specific session storage path.
HIGH…ills/planning-with-files-zh/scripts/session-catchup.py0resolve claude code's project-specific session storage path.
HIGH…ills/planning-with-files-de/scripts/session-catchup.py0resolve claude code's project-specific session storage path.
HIGH…lls/planning-with-files-zht/scripts/session-catchup.py0resolve claude code's project-specific session storage path.
HIGH…ills/planning-with-files-ar/scripts/session-catchup.py0resolve claude code's project-specific session storage path.
HIGH…/skills/planning-with-files/scripts/session-catchup.py0resolve claude code's project-specific session storage path.
HIGH…/skills/planning-with-files/scripts/session-catchup.py0resolve claude code's project-specific session storage path.
HIGH…/skills/planning-with-files/scripts/session-catchup.py0get all session files sorted by modification time (newest first).
HIGH…/skills/planning-with-files/scripts/session-catchup.py0get all session files sorted by modification time (newest first).
HIGH…/skills/planning-with-files/scripts/session-catchup.py0get all session files sorted by modification time (newest first).
HIGH…/skills/planning-with-files/scripts/session-catchup.py0get all session files sorted by modification time (newest first).
HIGH…/skills/planning-with-files/scripts/session-catchup.py0get all session files sorted by modification time (newest first).
HIGHscripts/session-catchup.py0get all session files sorted by modification time (newest first).
HIGH…/skills/planning-with-files/scripts/session-catchup.py0get all session files sorted by modification time (newest first).
HIGHskills/planning-with-files/scripts/session-catchup.py0get all session files sorted by modification time (newest first).
HIGH…ills/planning-with-files-es/scripts/session-catchup.py0get all session files sorted by modification time (newest first).
HIGH…ills/planning-with-files-zh/scripts/session-catchup.py0get all session files sorted by modification time (newest first).
HIGH…ills/planning-with-files-de/scripts/session-catchup.py0get all session files sorted by modification time (newest first).
HIGH…lls/planning-with-files-zht/scripts/session-catchup.py0get all session files sorted by modification time (newest first).
97 more matches not shown…
Hyper-Verbose Identifiers165 hits · 182 pts
SeverityFileLineSnippet
LOW…/skills/planning-with-files/scripts/session-catchup.py127def find_current_codex_session(sessions: List[Path]) -> Optional[Path]:
LOW…/skills/planning-with-files/scripts/session-catchup.py402def find_last_planning_update(messages: List[Dict[str, Any]]) -> Tuple[int, Optional[str]]:
LOW…/skills/planning-with-files/scripts/session-catchup.py64def find_last_planning_update(messages: List[Dict]) -> Tuple[int, Optional[str]]:
LOW…/skills/planning-with-files/scripts/session-catchup.py127def find_current_codex_session(sessions: List[Path]) -> Optional[Path]:
LOW…/skills/planning-with-files/scripts/session-catchup.py402def find_last_planning_update(messages: List[Dict[str, Any]]) -> Tuple[int, Optional[str]]:
LOW…/skills/planning-with-files/scripts/session-catchup.py127def find_current_codex_session(sessions: List[Path]) -> Optional[Path]:
LOW…/skills/planning-with-files/scripts/session-catchup.py402def find_last_planning_update(messages: List[Dict[str, Any]]) -> Tuple[int, Optional[str]]:
LOWtests/test_check_complete_resolver.py78 def test_explicit_path_arg_still_works(self) -> None:
LOWtests/test_check_complete_resolver.py89 def test_no_args_resolves_slug_plan_via_active_pointer(self) -> None:
LOWtests/test_check_complete_resolver.py104 def test_no_args_resolves_via_plan_id_env(self) -> None:
LOWtests/test_check_complete_resolver.py121 def test_no_args_legacy_root_plan_still_works(self) -> None:
LOWtests/test_check_complete_resolver.py132 def test_no_args_no_plan_anywhere_clean_message(self) -> None:
LOWtests/test_v238_command_files.py45 def test_loop_template_exists(self) -> None:
LOWtests/test_v238_command_files.py48 def test_plan_goal_frontmatter(self) -> None:
LOWtests/test_v238_command_files.py56 def test_plan_loop_frontmatter(self) -> None:
LOWtests/test_v238_command_files.py61 def test_plan_goal_mentions_goal_command(self) -> None:
LOWtests/test_v238_command_files.py67 def test_plan_loop_mentions_loop_command(self) -> None:
LOWtests/test_v238_command_files.py72 def test_loop_template_mentions_planning_files(self) -> None:
LOWtests/test_hook_resolver_integration.py52 def test_user_prompt_submit_silent_with_no_plan(self) -> None:
LOWtests/test_hook_resolver_integration.py58 def test_user_prompt_submit_injects_from_planning_subdir(self) -> None:
LOWtests/test_hook_resolver_integration.py71 def test_user_prompt_submit_legacy_root_still_works(self) -> None:
LOWtests/test_hook_resolver_integration.py84 def test_user_prompt_submit_env_plan_id_pins_correct_plan(self) -> None:
LOWtests/test_hook_resolver_integration.py100 def test_pre_tool_use_allows_with_no_plan(self) -> None:
LOWtests/test_hook_resolver_integration.py106 def test_pre_tool_use_surfaces_plan_from_subdir_on_stderr(self) -> None:
LOWtests/test_hook_resolver_integration.py123 def test_stop_silent_with_no_plan(self) -> None:
LOWtests/test_hook_resolver_integration.py129 def test_stop_reports_incomplete_from_subdir_plan(self) -> None:
LOWtests/test_hook_resolver_integration.py145 def test_post_tool_use_silent_with_no_plan(self) -> None:
LOWtests/test_hook_resolver_integration.py151 def test_post_tool_use_reminds_when_plan_in_subdir(self) -> None:
LOWtests/test_precompact_hook.py26def extract_precompact_command(text: str) -> str:
LOWtests/test_precompact_hook.py56 def test_precompact_is_declared(self) -> None:
LOWtests/test_precompact_hook.py59 def test_precompact_uses_wildcard_matcher(self) -> None:
LOWtests/test_precompact_hook.py92 def test_emits_reminder_when_plan_exists(self) -> None:
LOWtests/test_hook_body_v240.py83 def test_slug_plan_beats_root_task_plan(self) -> None:
LOWtests/test_hook_body_v240.py102 def test_legacy_root_only_still_works(self) -> None:
LOWtests/test_hook_body_v240.py111 def test_no_plan_anywhere_silent_exit_zero(self) -> None:
LOWtests/test_hook_body_v240.py117 def test_corrupt_active_plan_falls_through_to_newest(self) -> None:
LOWtests/test_hook_body_v240.py129 def test_sha_cache_populates_after_attested_fire(self) -> None:
LOWtests/test_hook_body_v240.py161 def test_tamper_still_blocks_with_inverted_order(self) -> None:
LOWtests/test_hook_body_v240.py185 def test_progress_tail_timestamps_normalized(self) -> None:
LOWtests/test_hook_body_v240.py210 def test_pretooluse_injects_plan_data(self) -> None:
LOWtests/test_session_catchup.py100 def test_codex_variant_finds_matching_project_sessions(self):
LOWtests/test_session_catchup.py110 def test_codex_variant_prefers_current_thread_for_same_project(self):
LOWtests/test_session_catchup.py125 def test_codex_variant_skips_small_sessions_and_subagents(self):
LOWtests/test_session_catchup.py146 def test_codex_structured_patch_event_marks_planning_update(self):
LOWtests/test_session_catchup.py164 def test_messages_without_line_numbers_are_ignored(self):
LOWtests/test_session_catchup.py187 def test_codex_main_prints_catchup_from_matching_session(self):
LOWtests/test_script_permissions.py24 def test_shell_scripts_are_executable(self) -> None:
LOWtests/test_script_permissions.py28 def test_session_catchup_is_executable(self) -> None:
LOWtests/test_codex_hooks.py38 def test_hooks_json_declares_all_expected_codex_events(self) -> None:
LOWtests/test_codex_hooks.py54 def test_permission_request_adapter_emits_plan_reminder(self) -> None:
LOWtests/test_codex_hooks.py73 def test_permission_request_silent_without_plan(self) -> None:
LOWtests/test_codex_hooks.py85 def test_session_start_reuses_plan_context(self) -> None:
LOWtests/test_codex_hooks.py110 def test_pre_tool_use_adapter_emits_system_message(self) -> None:
LOWtests/test_codex_hooks.py135 def test_post_tool_use_adapter_emits_progress_reminder(self) -> None:
LOWtests/test_codex_hooks.py150 def test_stop_adapter_blocks_once_then_allows_reentry(self) -> None:
LOWtests/test_resolve_plan_dir.py39 def test_resolver_script_exists(self) -> None:
LOWtests/test_resolve_plan_dir.py42 def test_empty_repo_returns_nothing(self) -> None:
LOWtests/test_resolve_plan_dir.py48 def test_env_plan_id_takes_precedence(self) -> None:
LOWtests/test_resolve_plan_dir.py58 def test_active_plan_used_when_env_missing(self) -> None:
LOWtests/test_resolve_plan_dir.py68 def test_falls_back_to_newest_dir(self) -> None:
105 more matches not shown…
Cross-Language Confusion16 hits · 110 pts
SeverityFileLineSnippet
HIGHscripts/_v240_update_hook_bodies.py60 "AP=$(tr -d '\\r\\n[:space:]' < .planning/.active_plan 2>/dev/null); "
HIGHscripts/_v240_update_hook_bodies.py71 "m=$(stat -c '%Y' \"$d\" 2>/dev/null || stat -f '%m' \"$d\" 2>/dev/null || date -r \"$d\" +%s 2>/dev/null || echo 0)
HIGHscripts/_v240_update_hook_bodies.py72 'if [ "$m" -gt "$NEWEST_MT" ] 2>/dev/null; then NEWEST_MT="$m"; NEWEST="$d"; fi; '
HIGHscripts/_v240_update_hook_bodies.py80 "[ -f .plan-attestation ] && ATTEST=$(tr -d '\\r\\n[:space:]' < .plan-attestation 2>/dev/null); "
HIGHscripts/_v240_update_hook_bodies.py83 "[ -f \"${RESOLVED}/.attestation\" ] && ATTEST=$(tr -d '\\r\\n[:space:]' < \"${RESOLVED}/.attestation\" 2>/dev/null)
HIGHscripts/_v240_update_hook_bodies.py88 'CD="${TMPDIR:-/tmp}/pwf-sha"; mkdir -p "$CD" 2>/dev/null; '
HIGHscripts/_v240_update_hook_bodies.py89 'KEY=$(printf "%s" "$PLAN_FILE" | { sha256sum 2>/dev/null || shasum -a 256 2>/dev/null; } | awk \'{print $1}\' | cut
HIGHscripts/_v240_update_hook_bodies.py89 'KEY=$(printf "%s" "$PLAN_FILE" | { sha256sum 2>/dev/null || shasum -a 256 2>/dev/null; } | awk \'{print $1}\' | cut
HIGHscripts/_v240_update_hook_bodies.py90 "MT=$(stat -c '%Y' \"$PLAN_FILE\" 2>/dev/null || stat -f '%m' \"$PLAN_FILE\" 2>/dev/null || date -r \"$PLAN_FILE\" +
HIGHscripts/_v240_update_hook_bodies.py92 'if [ -f "$CF" ]; then CM=$(sed -n 1p "$CF" 2>/dev/null); CS=$(sed -n 2p "$CF" 2>/dev/null); fi; '
HIGHscripts/_v240_update_hook_bodies.py94 'else ACTUAL=$( (sha256sum "$PLAN_FILE" 2>/dev/null || shasum -a 256 "$PLAN_FILE" 2>/dev/null) | awk \'{print $1}\')
HIGHscripts/_v240_update_hook_bodies.py94 'else ACTUAL=$( (sha256sum "$PLAN_FILE" 2>/dev/null || shasum -a 256 "$PLAN_FILE" 2>/dev/null) | awk \'{print $1}\')
HIGHscripts/_v240_update_hook_bodies.py95 '[ -n "$ACTUAL" ] && [ -n "$MT" ] && printf "%s\\n%s\\n" "$MT" "$ACTUAL" > "$CF" 2>/dev/null; fi; '
HIGHscripts/_v240_update_hook_bodies.py129 'head -30 "$PLAN_FILE" 2>/dev/null; '
HIGHscripts/_v240_update_hook_bodies.py173 'powershell.exe -NoProfile -ExecutionPolicy RemoteSigned -File \\"$TARGET_PS1\\" 2>/dev/null; '
HIGHscripts/_v240_update_hook_bodies.py175 'sh \\"$TARGET_SH\\" 2>/dev/null; '
Decorative Section Separators22 hits · 84 pts
SeverityFileLineSnippet
MEDIUMtests/test_hook_resolver_integration.py48 # ------------------------------------------------------------------
MEDIUMtests/test_hook_resolver_integration.py50 # ------------------------------------------------------------------
MEDIUMtests/test_hook_resolver_integration.py96 # ------------------------------------------------------------------
MEDIUMtests/test_hook_resolver_integration.py98 # ------------------------------------------------------------------
MEDIUMtests/test_hook_resolver_integration.py119 # ------------------------------------------------------------------
MEDIUMtests/test_hook_resolver_integration.py121 # ------------------------------------------------------------------
MEDIUMtests/test_hook_resolver_integration.py141 # ------------------------------------------------------------------
MEDIUMtests/test_hook_resolver_integration.py143 # ------------------------------------------------------------------
MEDIUMtests/test_codex_session_isolation.py55 # ------------------------------------------------------------------
MEDIUMtests/test_codex_session_isolation.py57 # ------------------------------------------------------------------
MEDIUMtests/test_codex_session_isolation.py74 # ------------------------------------------------------------------
MEDIUMtests/test_codex_session_isolation.py76 # ------------------------------------------------------------------
MEDIUMscripts/sync-ide-folders.py28# ─── Canonical source ──────────────────────────────────────────────
MEDIUMscripts/sync-ide-folders.py31# ─── Shared source files (relative to CANONICAL) ──────────────────
MEDIUMscripts/sync-ide-folders.py57# ─── IDE sync manifests ───────────────────────────────────────────
MEDIUMscripts/sync-ide-folders.py168# ─── Utility functions ─────────────────────────────────────────────
MEDIUMscripts/sync-ide-folders.py201# ─── Main ──────────────────────────────────────────────────────────
MEDIUM…skills/planning-with-files/scripts/sync-ide-folders.py28# ─── Canonical source ──────────────────────────────────────────────
MEDIUM…skills/planning-with-files/scripts/sync-ide-folders.py31# ─── Shared source files (relative to CANONICAL) ──────────────────
MEDIUM…skills/planning-with-files/scripts/sync-ide-folders.py51# ─── IDE sync manifests ───────────────────────────────────────────
MEDIUM…skills/planning-with-files/scripts/sync-ide-folders.py162# ─── Utility functions ─────────────────────────────────────────────
MEDIUM…skills/planning-with-files/scripts/sync-ide-folders.py195# ─── Main ──────────────────────────────────────────────────────────
Deep Nesting53 hits · 53 pts
SeverityFileLineSnippet
LOW…/skills/planning-with-files/scripts/session-catchup.py107
LOW…/skills/planning-with-files/scripts/session-catchup.py402
LOW…/skills/planning-with-files/scripts/session-catchup.py475
LOW…/skills/planning-with-files/scripts/session-catchup.py64
LOW…/skills/planning-with-files/scripts/session-catchup.py93
LOW…/skills/planning-with-files/scripts/session-catchup.py107
LOW…/skills/planning-with-files/scripts/session-catchup.py402
LOW…/skills/planning-with-files/scripts/session-catchup.py475
LOW…/skills/planning-with-files/scripts/session-catchup.py107
LOW…/skills/planning-with-files/scripts/session-catchup.py402
LOW…/skills/planning-with-files/scripts/session-catchup.py475
LOWtests/test_session_catchup.py187
LOW…/skills/planning-with-files/scripts/session-catchup.py107
LOW…/skills/planning-with-files/scripts/session-catchup.py402
LOW…/skills/planning-with-files/scripts/session-catchup.py475
LOWscripts/session-catchup.py99
LOWscripts/session-catchup.py116
LOWscripts/session-catchup.py160
LOWscripts/sync-ide-folders.py224
LOW…/skills/planning-with-files/scripts/session-catchup.py107
LOW…/skills/planning-with-files/scripts/session-catchup.py402
LOW…/skills/planning-with-files/scripts/session-catchup.py475
LOW…/planning-with-files/assets/scripts/session-catchup.py51
LOWskills/planning-with-files/scripts/session-catchup.py107
LOWskills/planning-with-files/scripts/session-catchup.py402
LOWskills/planning-with-files/scripts/session-catchup.py475
LOW…ills/planning-with-files-es/scripts/session-catchup.py107
LOW…ills/planning-with-files-es/scripts/session-catchup.py217
LOW…ills/planning-with-files-es/scripts/session-catchup.py290
LOW…ills/planning-with-files-zh/scripts/session-catchup.py107
LOW…ills/planning-with-files-zh/scripts/session-catchup.py217
LOW…ills/planning-with-files-zh/scripts/session-catchup.py290
LOW…ills/planning-with-files-de/scripts/session-catchup.py107
LOW…ills/planning-with-files-de/scripts/session-catchup.py217
LOW…ills/planning-with-files-de/scripts/session-catchup.py290
LOW…lls/planning-with-files-zht/scripts/session-catchup.py107
LOW…lls/planning-with-files-zht/scripts/session-catchup.py217
LOW…lls/planning-with-files-zht/scripts/session-catchup.py290
LOW…ills/planning-with-files-ar/scripts/session-catchup.py107
LOW…ills/planning-with-files-ar/scripts/session-catchup.py217
LOW…ills/planning-with-files-ar/scripts/session-catchup.py290
LOW…/skills/planning-with-files/scripts/session-catchup.py107
LOW…/skills/planning-with-files/scripts/session-catchup.py402
LOW…/skills/planning-with-files/scripts/session-catchup.py475
LOW.hermes/plugins/planning-with-files/planning_files.py50
LOW.hermes/plugins/planning-with-files/planning_files.py107
LOW…/skills/planning-with-files/scripts/session-catchup.py99
LOW…/skills/planning-with-files/scripts/session-catchup.py116
LOW…/skills/planning-with-files/scripts/session-catchup.py160
LOW…skills/planning-with-files/scripts/sync-ide-folders.py218
LOW…/skills/planning-with-files/scripts/session-catchup.py107
LOW…/skills/planning-with-files/scripts/session-catchup.py402
LOW…/skills/planning-with-files/scripts/session-catchup.py475
Example Usage Blocks33 hits · 50 pts
SeverityFileLineSnippet
LOW…ini/skills/planning-with-files/scripts/init-session.sh4# Usage:
LOW…mini/skills/planning-with-files/scripts/attest-plan.sh14# Usage:
LOW…/skills/planning-with-files/scripts/set-active-plan.sh4# Usage:
LOW…skills/planning-with-files/scripts/resolve-plan-dir.sh12# Usage:
LOW…nue/skills/planning-with-files/scripts/init-session.sh4# Usage:
LOW…inue/skills/planning-with-files/scripts/attest-plan.sh14# Usage:
LOW…/skills/planning-with-files/scripts/set-active-plan.sh4# Usage:
LOW…skills/planning-with-files/scripts/resolve-plan-dir.sh12# Usage:
LOW.codex/hooks/resolve-plan-dir.sh12# Usage:
LOW…dex/skills/planning-with-files/scripts/init-session.sh4# Usage:
LOW…odex/skills/planning-with-files/scripts/attest-plan.sh14# Usage:
LOW…/skills/planning-with-files/scripts/set-active-plan.sh4# Usage:
LOW…skills/planning-with-files/scripts/resolve-plan-dir.sh12# Usage:
LOWscripts/init-session.sh4# Usage:
LOWscripts/attest-plan.sh14# Usage:
LOWscripts/set-active-plan.sh4# Usage:
LOWscripts/resolve-plan-dir.sh12# Usage:
LOW…ory/skills/planning-with-files/scripts/init-session.sh4# Usage:
LOW…tory/skills/planning-with-files/scripts/attest-plan.sh14# Usage:
LOW…/skills/planning-with-files/scripts/set-active-plan.sh4# Usage:
LOW…skills/planning-with-files/scripts/resolve-plan-dir.sh12# Usage:
LOWskills/planning-with-files/scripts/init-session.sh4# Usage:
LOWskills/planning-with-files/scripts/attest-plan.sh14# Usage:
LOWskills/planning-with-files/scripts/set-active-plan.sh4# Usage:
LOWskills/planning-with-files/scripts/resolve-plan-dir.sh12# Usage:
LOW…ddy/skills/planning-with-files/scripts/init-session.sh4# Usage:
LOW…uddy/skills/planning-with-files/scripts/attest-plan.sh14# Usage:
LOW…/skills/planning-with-files/scripts/set-active-plan.sh4# Usage:
LOW…skills/planning-with-files/scripts/resolve-plan-dir.sh12# Usage:
LOW.pi/skills/planning-with-files/scripts/init-session.sh4# Usage:
LOW.pi/skills/planning-with-files/scripts/attest-plan.sh14# Usage:
LOW…/skills/planning-with-files/scripts/set-active-plan.sh4# Usage:
LOW…skills/planning-with-files/scripts/resolve-plan-dir.sh12# Usage:
Over-Commented Block42 hits · 42 pts
SeverityFileLineSnippet
LOW…ini/skills/planning-with-files/scripts/init-session.sh1#!/usr/bin/env bash
LOW…mini/skills/planning-with-files/scripts/attest-plan.sh1#!/bin/sh
LOW…mini/skills/planning-with-files/scripts/attest-plan.sh101 hash_val="$(compute_hash "${plan_file}")" || exit 1
LOW…i/skills/planning-with-files/scripts/check-complete.sh1#!/usr/bin/env bash
LOW…skills/planning-with-files/scripts/resolve-plan-dir.sh1#!/bin/sh
LOW…nue/skills/planning-with-files/scripts/init-session.sh1#!/usr/bin/env bash
LOW…inue/skills/planning-with-files/scripts/attest-plan.sh1#!/bin/sh
LOW…inue/skills/planning-with-files/scripts/attest-plan.sh101 hash_val="$(compute_hash "${plan_file}")" || exit 1
LOW…e/skills/planning-with-files/scripts/check-complete.sh1#!/usr/bin/env bash
LOW…skills/planning-with-files/scripts/resolve-plan-dir.sh1#!/bin/sh
LOWtests/test_clear_recovery.sh1#!/usr/bin/env bash
LOW.codex/hooks/resolve-plan-dir.sh1#!/bin/sh
LOW…dex/skills/planning-with-files/scripts/init-session.sh1#!/usr/bin/env bash
LOW…odex/skills/planning-with-files/scripts/attest-plan.sh1#!/bin/sh
LOW…odex/skills/planning-with-files/scripts/attest-plan.sh101 hash_val="$(compute_hash "${plan_file}")" || exit 1
LOW…x/skills/planning-with-files/scripts/check-complete.sh1#!/usr/bin/env bash
LOW…skills/planning-with-files/scripts/resolve-plan-dir.sh1#!/bin/sh
LOWscripts/init-session.sh1#!/usr/bin/env bash
LOWscripts/attest-plan.sh1#!/bin/sh
LOWscripts/attest-plan.sh101 hash_val="$(compute_hash "${plan_file}")" || exit 1
LOWscripts/check-complete.sh1#!/usr/bin/env bash
LOWscripts/resolve-plan-dir.sh1#!/bin/sh
LOW…ory/skills/planning-with-files/scripts/init-session.sh1#!/usr/bin/env bash
LOW…tory/skills/planning-with-files/scripts/attest-plan.sh1#!/bin/sh
LOW…tory/skills/planning-with-files/scripts/attest-plan.sh101 hash_val="$(compute_hash "${plan_file}")" || exit 1
LOW…y/skills/planning-with-files/scripts/check-complete.sh1#!/usr/bin/env bash
LOW…skills/planning-with-files/scripts/resolve-plan-dir.sh1#!/bin/sh
LOWskills/planning-with-files/scripts/init-session.sh1#!/usr/bin/env bash
LOWskills/planning-with-files/scripts/attest-plan.sh1#!/bin/sh
LOWskills/planning-with-files/scripts/attest-plan.sh101 hash_val="$(compute_hash "${plan_file}")" || exit 1
LOWskills/planning-with-files/scripts/check-complete.sh1#!/usr/bin/env bash
LOWskills/planning-with-files/scripts/resolve-plan-dir.sh1#!/bin/sh
LOW…ddy/skills/planning-with-files/scripts/init-session.sh1#!/usr/bin/env bash
LOW…uddy/skills/planning-with-files/scripts/attest-plan.sh1#!/bin/sh
LOW…uddy/skills/planning-with-files/scripts/attest-plan.sh101 hash_val="$(compute_hash "${plan_file}")" || exit 1
LOW…y/skills/planning-with-files/scripts/check-complete.sh1#!/usr/bin/env bash
LOW…skills/planning-with-files/scripts/resolve-plan-dir.sh1#!/bin/sh
LOW.pi/skills/planning-with-files/scripts/init-session.sh1#!/usr/bin/env bash
LOW.pi/skills/planning-with-files/scripts/attest-plan.sh1#!/bin/sh
LOW.pi/skills/planning-with-files/scripts/attest-plan.sh101 hash_val="$(compute_hash "${plan_file}")" || exit 1
LOW…i/skills/planning-with-files/scripts/check-complete.sh1#!/usr/bin/env bash
LOW…skills/planning-with-files/scripts/resolve-plan-dir.sh1#!/bin/sh
Redundant / Tautological Comments25 hits · 38 pts
SeverityFileLineSnippet
LOW…i/skills/planning-with-files/scripts/check-complete.sh2# Check if all phases in task_plan.md are complete
LOW…/skills/planning-with-files/scripts/session-catchup.py562 # Check if planning files exist (indicates active task)
LOW…e/skills/planning-with-files/scripts/check-complete.sh2# Check if all phases in task_plan.md are complete
LOW…/skills/planning-with-files/scripts/session-catchup.py157 # Check if planning files exist (indicates active task)
LOW…e/skills/planning-with-files/scripts/check-complete.sh2# Check if all phases in task_plan.md are complete
LOW…/skills/planning-with-files/scripts/session-catchup.py562 # Check if planning files exist (indicates active task)
LOW…e/skills/planning-with-files/scripts/check-complete.sh2# Check if all phases in task_plan.md are complete
LOW…/skills/planning-with-files/scripts/session-catchup.py562 # Check if planning files exist (indicates active task)
LOW…x/skills/planning-with-files/scripts/check-complete.sh2# Check if all phases in task_plan.md are complete
LOW…/skills/planning-with-files/scripts/session-catchup.py562 # Check if planning files exist (indicates active task)
LOWscripts/check-complete.sh2# Check if all phases in task_plan.md are complete
LOW…y/skills/planning-with-files/scripts/check-complete.sh2# Check if all phases in task_plan.md are complete
LOW…/skills/planning-with-files/scripts/session-catchup.py562 # Check if planning files exist (indicates active task)
LOWskills/planning-with-files/scripts/check-complete.sh2# Check if all phases in task_plan.md are complete
LOWskills/planning-with-files/scripts/session-catchup.py562 # Check if planning files exist (indicates active task)
LOW…ills/planning-with-files-es/scripts/session-catchup.py377 # Check if planning files exist (indicates active task)
LOW…ills/planning-with-files-zh/scripts/session-catchup.py377 # Check if planning files exist (indicates active task)
LOW…ills/planning-with-files-de/scripts/session-catchup.py377 # Check if planning files exist (indicates active task)
LOW…lls/planning-with-files-zht/scripts/session-catchup.py377 # Check if planning files exist (indicates active task)
LOW…ills/planning-with-files-ar/scripts/session-catchup.py377 # Check if planning files exist (indicates active task)
LOW…y/skills/planning-with-files/scripts/check-complete.sh2# Check if all phases in task_plan.md are complete
LOW…/skills/planning-with-files/scripts/session-catchup.py562 # Check if planning files exist (indicates active task)
LOW…s/skills/planning-with-files/scripts/check-complete.sh2# Check if all phases in task_plan.md are complete
LOW…i/skills/planning-with-files/scripts/check-complete.sh2# Check if all phases in task_plan.md are complete
LOW…/skills/planning-with-files/scripts/session-catchup.py562 # Check if planning files exist (indicates active task)
Unused Imports31 hits · 31 pts
SeverityFileLineSnippet
LOWtests/test_check_complete_resolver.py15
LOWtests/test_v238_command_files.py8
LOWtests/test_hook_resolver_integration.py8
LOWtests/test_precompact_hook.py11
LOWtests/test_precompact_hook.py13
LOWtests/test_hook_body_v240.py18
LOWtests/test_resolve_plan_dir.py10
LOWtests/test_plan_attestation.py12
LOWtests/test_plan_attestation.py18
LOWtests/test_init_session_slug.py9
LOWtests/test_init_session_slug.py11
LOWtests/test_session_catchup_opencode.py11
LOWtests/test_session_catchup_opencode.py18
LOWtests/test_set_active_plan.py7
LOWtests/test_pi_extension_packaging.py7
LOWtests/test_skill_md_version_parity.py16
LOWtests/test_canonical_script_sync.py18
LOWtests/test_codex_session_isolation.py11
LOWtests/test_pi_docs_hook_support.py5
LOWtests/test_pi_extension_capabilities.py6
LOW.codex/hooks/post_tool_use.py2
LOW.codex/hooks/permission_request.py8
LOW.codex/hooks/codex_hook_adapter.py2
LOW.codex/hooks/stop.py2
LOW.codex/hooks/pre_tool_use.py2
LOWscripts/_v240_update_hook_bodies.py25
LOWscripts/bump-version.py27
LOW…/planning-with-files/assets/scripts/session-catchup.py12
LOW.hermes/plugins/planning-with-files/hooks.py1
LOW.hermes/plugins/planning-with-files/__init__.py1
LOW.hermes/plugins/planning-with-files/hook_state.py1
Excessive Try-Catch Wrapping9 hits · 13 pts
SeverityFileLineSnippet
LOW.codex/hooks/codex_hook_adapter.py87 except Exception as exc: # pragma: no cover
MEDIUM.codex/hooks/codex_hook_adapter.py84def main_guard(func) -> int:
MEDIUMscripts/bump-version.py143 print(f"Error: '{new}' is not a valid semver string.", file=sys.stderr)
LOWscripts/session-catchup.py154 except Exception:
LOWscripts/session-catchup.py238 except Exception:
MEDIUMscripts/sync-ide-folders.py231 print(f"Error: Canonical source not found at {CANONICAL}/")
LOW…/skills/planning-with-files/scripts/session-catchup.py154 except Exception:
LOW…/skills/planning-with-files/scripts/session-catchup.py238 except Exception:
MEDIUM…skills/planning-with-files/scripts/sync-ide-folders.py225 print(f"Error: Canonical source not found at {CANONICAL}/")