Repository Analysis

shareAI-lab/learn-claude-code

Bash is all you need - A nano claude code–like 「agent harness」, built from 0 to 1

12.2 Low AI signal View on GitHub
12.2
Adjusted Score
12.2
Raw Score
100%
Time Factor
2026-05-29
Last Push
63,623
Stars
Python
Language
58,305
Lines of Code
259
Files
371
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 33MEDIUM 93LOW 245

Pattern Findings

371 matches across 12 categories. Click a row to expand file-level details.

Decorative Section Separators89 hits · 278 pts
SeverityFileLineSnippet
MEDIUMs05_todo_write/code.py60# ═══════════════════════════════════════════════════════════
MEDIUMs05_todo_write/code.py62# ═══════════════════════════════════════════════════════════
MEDIUMs05_todo_write/code.py120# ═══════════════════════════════════════════════════════════
MEDIUMs05_todo_write/code.py122# ═══════════════════════════════════════════════════════════
MEDIUMs05_todo_write/code.py162# ═══════════════════════════════════════════════════════════
MEDIUMs05_todo_write/code.py164# ═══════════════════════════════════════════════════════════
MEDIUMs05_todo_write/code.py214# ═══════════════════════════════════════════════════════════
MEDIUMs05_todo_write/code.py216# ═══════════════════════════════════════════════════════════
MEDIUMs01_agent_loop/code.py56# ── Tool definition: just bash ────────────────────────────
MEDIUMs01_agent_loop/code.py68# ── Tool execution ────────────────────────────────────────
MEDIUMs01_agent_loop/code.py116# ── Entry point ──────────────────────────────────────────
MEDIUMs09_memory/code.py52# ═══════════════════════════════════════════════════════════
MEDIUMs09_memory/code.py54# ═══════════════════════════════════════════════════════════
MEDIUMs09_memory/code.py356# ═══════════════════════════════════════════════════════════
MEDIUMs09_memory/code.py358# ═══════════════════════════════════════════════════════════
MEDIUMs09_memory/code.py446# ═══════════════════════════════════════════════════════════
MEDIUMs09_memory/code.py448# ═══════════════════════════════════════════════════════════
MEDIUMs09_memory/code.py520# ═══════════════════════════════════════════════════════════
MEDIUMs09_memory/code.py522# ═══════════════════════════════════════════════════════════
MEDIUMs09_memory/code.py545# ═══════════════════════════════════════════════════════════
MEDIUMs09_memory/code.py547# ═══════════════════════════════════════════════════════════
MEDIUMs07_skill_loading/code.py112# ═══════════════════════════════════════════════════════════
MEDIUMs07_skill_loading/code.py114# ═══════════════════════════════════════════════════════════
MEDIUMs07_skill_loading/code.py192# ═══════════════════════════════════════════════════════════
MEDIUMs07_skill_loading/code.py194# ═══════════════════════════════════════════════════════════
MEDIUMs07_skill_loading/code.py247# ═══════════════════════════════════════════════════════════
MEDIUMs07_skill_loading/code.py249# ═══════════════════════════════════════════════════════════
MEDIUMs07_skill_loading/code.py259# ═══════════════════════════════════════════════════════════
MEDIUMs07_skill_loading/code.py261# ═══════════════════════════════════════════════════════════
MEDIUMs07_skill_loading/code.py290# ═══════════════════════════════════════════════════════════
MEDIUMs07_skill_loading/code.py292# ═══════════════════════════════════════════════════════════
MEDIUMs07_skill_loading/code.py337# ═══════════════════════════════════════════════════════════
MEDIUMs07_skill_loading/code.py339# ═══════════════════════════════════════════════════════════
MEDIUMs06_subagent/code.py65# ═══════════════════════════════════════════════════════════
MEDIUMs06_subagent/code.py67# ═══════════════════════════════════════════════════════════
MEDIUMs06_subagent/code.py160# ═══════════════════════════════════════════════════════════
MEDIUMs06_subagent/code.py162# ═══════════════════════════════════════════════════════════
MEDIUMs06_subagent/code.py242# ═══════════════════════════════════════════════════════════
MEDIUMs06_subagent/code.py244# ═══════════════════════════════════════════════════════════
MEDIUMs06_subagent/code.py293# ═══════════════════════════════════════════════════════════
MEDIUMs06_subagent/code.py295# ═══════════════════════════════════════════════════════════
MEDIUMs04_hooks/code.py77# ═══════════════════════════════════════════════════════════
MEDIUMs04_hooks/code.py79# ═══════════════════════════════════════════════════════════
MEDIUMs04_hooks/code.py155# ═══════════════════════════════════════════════════════════
MEDIUMs04_hooks/code.py157# ═══════════════════════════════════════════════════════════
MEDIUMs04_hooks/code.py232# ═══════════════════════════════════════════════════════════
MEDIUMs04_hooks/code.py236# ═══════════════════════════════════════════════════════════
MEDIUMs08_context_compact/code.py120# ═══════════════════════════════════════════════════════════
MEDIUMs08_context_compact/code.py122# ═══════════════════════════════════════════════════════════
MEDIUMs08_context_compact/code.py188# ═══════════════════════════════════════════════════════════
MEDIUMs08_context_compact/code.py190# ═══════════════════════════════════════════════════════════
MEDIUMs08_context_compact/code.py243# ═══════════════════════════════════════════════════════════
MEDIUMs08_context_compact/code.py245# ═══════════════════════════════════════════════════════════
MEDIUMs08_context_compact/code.py339# ═══════════════════════════════════════════════════════════
MEDIUMs08_context_compact/code.py341# ═══════════════════════════════════════════════════════════
MEDIUMs08_context_compact/code.py393# ═══════════════════════════════════════════════════════════
MEDIUMs08_context_compact/code.py395# ═══════════════════════════════════════════════════════════
MEDIUMs02_tool_use/code.py42# ═══════════════════════════════════════════════════════════
MEDIUMs02_tool_use/code.py44# ═══════════════════════════════════════════════════════════
MEDIUMs02_tool_use/code.py62# ═══════════════════════════════════════════════════════════
29 more matches not shown…
Excessive Try-Catch Wrapping170 hits · 176 pts
SeverityFileLineSnippet
LOWs13_background_tasks/code.py201 except Exception as e:
LOWs13_background_tasks/code.py211 except Exception as e:
LOWs13_background_tasks/code.py417 except Exception as e:
LOWs19_mcp_plugin/code.py211 except Exception:
LOWs19_mcp_plugin/code.py299 except Exception as e:
LOWs19_mcp_plugin/code.py309 except Exception as e:
LOWs19_mcp_plugin/code.py577 except Exception:
LOWs19_mcp_plugin/code.py679 except Exception as e:
LOWs19_mcp_plugin/code.py970 except Exception as e:
LOWs05_todo_write/code.py85 except Exception as e:
LOWs05_todo_write/code.py94 except Exception as e:
LOWs05_todo_write/code.py105 except Exception as e:
LOWs05_todo_write/code.py116 except Exception as e:
LOWs15_agent_teams/code.py203 except Exception as e:
LOWs15_agent_teams/code.py213 except Exception as e:
LOWs15_agent_teams/code.py484 except Exception:
LOWs15_agent_teams/code.py541 except Exception as e:
LOWs15_agent_teams/code.py679 except Exception:
LOWs15_agent_teams/code.py861 except Exception as e:
LOWs10_system_prompt/code.py120 except Exception as e:
LOWs10_system_prompt/code.py130 except Exception as e:
LOWs17_autonomous_agents/code.py199 except Exception as e:
LOWs17_autonomous_agents/code.py209 except Exception as e:
LOWs17_autonomous_agents/code.py482 except Exception:
LOWs17_autonomous_agents/code.py761 except Exception as e:
LOWs18_worktree_isolation/code.py225 except Exception:
LOWs18_worktree_isolation/code.py327 except Exception as e:
LOWs18_worktree_isolation/code.py337 except Exception as e:
LOWs18_worktree_isolation/code.py645 except Exception:
LOWs18_worktree_isolation/code.py945 except Exception as e:
LOWs14_cron_scheduler/README.en.md129 except Exception as e:
LOWs14_cron_scheduler/code.py204 except Exception as e:
LOWs14_cron_scheduler/code.py214 except Exception as e:
LOWs14_cron_scheduler/code.py484 except Exception:
LOWs14_cron_scheduler/code.py541 except Exception as e:
LOWs14_cron_scheduler/code.py700 except Exception as e:
LOWs14_cron_scheduler/README.md129 except Exception as e:
LOWs14_cron_scheduler/README.ja.md129 except Exception as e:
LOWagents/s_full.py98 except Exception as e:
LOWagents/s_full.py107 except Exception as e:
LOWagents/s_full.py118 except Exception as e:
LOWagents/s_full.py345 except Exception as e:
LOWagents/s_full.py468 except Exception:
LOWagents/s_full.py690 except Exception as e:
LOWagents/s03_todo_write.py117 except Exception as e:
LOWagents/s03_todo_write.py126 except Exception as e:
LOWagents/s03_todo_write.py137 except Exception as e:
LOWagents/s03_todo_write.py182 except Exception as e:
LOWagents/s06_context_compact.py159 except Exception as e:
LOWagents/s06_context_compact.py168 except Exception as e:
LOWagents/s06_context_compact.py179 except Exception as e:
LOWagents/s06_context_compact.py233 except Exception as e:
LOWagents/s08_background_tasks.py78 except Exception as e:
LOWagents/s08_background_tasks.py139 except Exception as e:
LOWagents/s08_background_tasks.py148 except Exception as e:
LOWagents/s08_background_tasks.py159 except Exception as e:
LOWagents/s08_background_tasks.py210 except Exception as e:
LOWagents/s04_subagent.py73 except Exception as e:
LOWagents/s04_subagent.py82 except Exception as e:
LOWagents/s04_subagent.py93 except Exception as e:
110 more matches not shown…
Cross-File Repetition32 hits · 160 pts
SeverityFileLineSnippet
HIGHs13_background_tasks/README.en.md0model explicit request takes priority; fallback to heuristic.
HIGHs13_background_tasks/code.py0model explicit request takes priority; fallback to heuristic.
HIGHs13_background_tasks/README.md0model explicit request takes priority; fallback to heuristic.
HIGHs13_background_tasks/README.ja.md0model explicit request takes priority; fallback to heuristic.
HIGHs15_agent_teams/code.py0model explicit request takes priority; fallback to heuristic.
HIGHs14_cron_scheduler/code.py0model explicit request takes priority; fallback to heuristic.
HIGHs16_team_protocols/code.py0model explicit request takes priority; fallback to heuristic.
HIGHs13_background_tasks/README.en.md0run tool in a daemon thread. returns background task id.
HIGHs13_background_tasks/code.py0run tool in a daemon thread. returns background task id.
HIGHs13_background_tasks/README.md0run tool in a daemon thread. returns background task id.
HIGHs13_background_tasks/README.ja.md0run tool in a daemon thread. returns background task id.
HIGHs15_agent_teams/code.py0run tool in a daemon thread. returns background task id.
HIGHs14_cron_scheduler/code.py0run tool in a daemon thread. returns background task id.
HIGHs16_team_protocols/code.py0run tool in a daemon thread. returns background task id.
HIGHs13_background_tasks/README.en.md0collect completed results as task_notification messages.
HIGHs13_background_tasks/README.md0collect completed results as task_notification messages.
HIGHs13_background_tasks/README.ja.md0collect completed results as task_notification messages.
HIGHs13_background_tasks/code.py0check if all blockedby dependencies are completed. missing dependencies are treated as blocked.
HIGHs15_agent_teams/code.py0check if all blockedby dependencies are completed. missing dependencies are treated as blocked.
HIGHs14_cron_scheduler/code.py0check if all blockedby dependencies are completed. missing dependencies are treated as blocked.
HIGHs16_team_protocols/code.py0check if all blockedby dependencies are completed. missing dependencies are treated as blocked.
HIGHs12_task_system/code.py0check if all blockedby dependencies are completed. missing dependencies are treated as blocked.
HIGHs13_background_tasks/code.py0collect completed background results as task_notification messages.
HIGHs15_agent_teams/code.py0collect completed background results as task_notification messages.
HIGHs14_cron_scheduler/code.py0collect completed background results as task_notification messages.
HIGHs16_team_protocols/code.py0collect completed background results as task_notification messages.
HIGHdocs/ja/s05-skill-loading.md0you are a coding agent at {workdir}. skills available: {skill_loader.get_descriptions()}
HIGHdocs/zh/s05-skill-loading.md0you are a coding agent at {workdir}. skills available: {skill_loader.get_descriptions()}
HIGHdocs/en/s05-skill-loading.md0you are a coding agent at {workdir}. skills available: {skill_loader.get_descriptions()}
HIGHs04_hooks/README.en.md0inject current working directory info into every prompt.
HIGHs04_hooks/README.md0inject current working directory info into every prompt.
HIGHs04_hooks/README.ja.md0inject current working directory info into every prompt.
Deep Nesting46 hits · 46 pts
SeverityFileLineSnippet
LOWs19_mcp_plugin/code.py404
LOWs19_mcp_plugin/code.py437
LOWs19_mcp_plugin/code.py461
LOWs15_agent_teams/code.py519
LOWs15_agent_teams/code.py629
LOWs15_agent_teams/code.py641
LOWs17_autonomous_agents/code.py304
LOWs17_autonomous_agents/code.py351
LOWs17_autonomous_agents/code.py384
LOWs18_worktree_isolation/code.py442
LOWs18_worktree_isolation/code.py489
LOWs18_worktree_isolation/code.py521
LOWs14_cron_scheduler/code.py519
LOWagents/s_full.py230
LOWagents/s_full.py654
LOWagents/s_full.py200
LOWagents/s_full.py287
LOWagents/s_full.py441
LOWagents/s03_todo_write.py164
LOWagents/s06_context_compact.py69
LOWagents/s06_context_compact.py205
LOWagents/s08_background_tasks.py188
LOWagents/s04_subagent.py146
LOWagents/s07_task_system.py204
LOWagents/s09_agent_teams.py345
LOWagents/s05_skill_loading.py188
LOWagents/s10_team_protocols.py426
LOWagents/s10_team_protocols.py176
LOWagents/s11_autonomous_agents.py520
LOWagents/s11_autonomous_agents.py216
LOWagents/s12_worktree_task_isolation.py729
LOWs09_memory/code.py132
LOWs09_memory/code.py419
LOWs07_skill_loading/code.py211
LOWs06_subagent/code.py189
LOWs16_team_protocols/code.py440
LOWs16_team_protocols/code.py477
LOWs04_hooks/code.py176
LOWs08_context_compact/code.py207
LOWs20_comprehensive/code.py567
LOWs20_comprehensive/code.py606
LOWs20_comprehensive/code.py1168
LOWs20_comprehensive/code.py1423
LOWs20_comprehensive/code.py635
LOWs11_error_recovery/code.py182
LOWs11_error_recovery/code.py265
Hyper-Verbose Identifiers16 hits · 16 pts
SeverityFileLineSnippet
LOWs13_background_tasks/README.en.md106def collect_background_results() -> list[str]:
LOWs13_background_tasks/code.py369def collect_background_results() -> list[str]:
LOWs13_background_tasks/README.md106def collect_background_results() -> list[str]:
LOWs13_background_tasks/README.ja.md106def collect_background_results() -> list[str]:
LOWs15_agent_teams/code.py324def collect_background_results() -> list[str]:
LOW…b/src/components/visualizations/s11-error-recovery.tsx289export default function ErrorRecoveryVisualization({ title }: { title?: string }) {
LOW…b/src/components/visualizations/s14-cron-scheduler.tsx113export default function CronSchedulerVisualization({ title }: { title?: string }) {
LOWweb/src/components/visualizations/s20-comprehensive.tsx276export default function ComprehensiveVisualization({ title }: { title?: string }) {
LOWweb/src/components/visualizations/s10-system-prompt.tsx201export default function SystemPromptVisualization({ title }: { title?: string }) {
LOWtests/test_agents_smoke.py18def test_agent_scripts_compile(agent_path: Path) -> None:
LOWtests/test_s_full_background.py53 def test_check_returns_running_placeholder_when_result_is_none(self):
LOWs14_cron_scheduler/code.py323def collect_background_results() -> list[str]:
LOWs14_cron_scheduler/code.py745def print_latest_assistant_text(messages: list):
LOWs16_team_protocols/code.py311def collect_background_results() -> list[str]:
LOWs20_comprehensive/code.py1256def collect_background_results() -> list[str]:
LOWs20_comprehensive/code.py1882def inject_background_notifications(messages: list):
Verbosity Indicators7 hits · 16 pts
SeverityFileLineSnippet
LOWweb/src/components/visualizations/s03-todo-write.tsx19 // Step 0: all pending
LOWweb/src/components/visualizations/s03-todo-write.tsx26 // Step 1: still all pending (idle round 1)
LOWweb/src/components/visualizations/s03-todo-write.tsx33 // Step 2: still all pending (idle round 2)
LOWweb/src/components/visualizations/s03-todo-write.tsx40 // Step 3: NAG fires, task 1 moves to in_progress
LOWweb/src/components/visualizations/s03-todo-write.tsx47 // Step 4: task 1 done
LOWweb/src/components/visualizations/s03-todo-write.tsx54 // Step 5: task 2 self-directed to in_progress
LOWweb/src/components/visualizations/s03-todo-write.tsx61 // Step 6: tasks 2,3 done, task 4 in_progress
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippet
MEDIUMagents/s08_background_tasks.py2# Harness: background execution -- the model thinks while the harness waits.
MEDIUMagents/__init__.py3# The model is the agent. These files are the harness.
Unused Imports5 hits · 5 pts
SeverityFileLineSnippet
LOWs19_mcp_plugin/code.py26
LOWs17_autonomous_agents/code.py24
LOWs18_worktree_isolation/code.py31
LOWtests/test_agents_smoke.py1
LOWs16_team_protocols/code.py29
Magic Placeholder Names1 hit · 5 pts
SeverityFileLineSnippet
HIGHskills/mcp-builder/SKILL.md155 params={"key": "YOUR_API_KEY", "q": city}
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippet
LOWskills/agent-builder/references/subagent-pattern.py177 # Check if done
Over-Commented Block1 hit · 1 pts
SeverityFileLineSnippet
LOWagents/__init__.py1# agents/ - Harness implementations (s01-s12) + full reference (s_full)
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippet
LOWskills/agent-builder/references/subagent-pattern.py119def run_task(description: str, prompt: str, agent_type: str,