Fast, small, and fully autonomous AI personal assistant infrastructure, any OS, any platform — deploy anywhere, swap anything 🦀
This report presents the forensic synthetic code analysis of zeroclaw-labs/zeroclaw, a Rust project with 32,255 GitHub stars. SynthScan v2.0 examined 754,108 lines of code across 1595 source files, recording 3474 pattern matches distributed across 18 syntactic categories. The overall adjusted score of 9.8 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 3474 distinct pattern matches across 18 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | install.sh | 4 | # ── ZeroClaw installer ─────────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 11 | # ── Output helpers (terminal-aware) ────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 35 | # ── Parse Cargo.toml (source of truth) ──────────────────────────── | COMMENT |
| MEDIUM | install.sh | 89 | # ── App registry ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 128 | # ── Feature validation ──────────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 156 | # ── List features ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 193 | # ── Version comparison ──────────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 212 | # ── Detect user's shell ────────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 233 | # ── Platform / target triple detection ─────────────────────────── | COMMENT |
| MEDIUM | install.sh | 277 | # ── Pre-built binary install ────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 382 | # ── Usage ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 434 | # ── Uninstall ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 506 | # ── Quickstart-needed status check ─────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 524 | # ── Interactive feature picker ─────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 681 | # ── Web dashboard build for source installs ────────────────────── | COMMENT |
| MEDIUM | install.sh | 724 | # ── Low-memory build heuristic ──────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 750 | # ── Parse arguments ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 843 | # ── Derive paths from prefix ───────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 854 | # ── List features (can run without cloning if in repo) ──────────── | COMMENT |
| MEDIUM | install.sh | 867 | # ── Decide: pre-built or source ─────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 926 | # ── Locate source ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 960 | # ── Parse Cargo.toml ────────────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 966 | # ── Preflight: Rust ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 994 | # ── Preflight: 32-bit ARM ──────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 1009 | # ── Build feature flags ────────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 1095 | # ── Detect existing installs ────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 1125 | # ── Build profile RAM heuristic (Linux low-mem hosts) ───────────── | COMMENT |
| MEDIUM | install.sh | 1129 | # ── Build and install ───────────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 1165 | # ── Web dashboard (gateway feature only) ────────────────────────── | COMMENT |
| MEDIUM | install.sh | 1193 | # ── Apps (standalone binaries under apps/<dir>) ────────────────── | COMMENT |
| MEDIUM | install.sh | 1253 | # ── Summary ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 1285 | # ── PATH setup ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | install.sh | 1332 | # ── Quickstart prompt ───────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/zeroclaw-tool-call-parser/src/lib.rs | 1816 | // ── Tool-Call Parsing ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | crates/zeroclaw-tool-call-parser/src/lib.rs | 4099 | // ═══════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | crates/zeroclaw-tool-call-parser/src/lib.rs | 4101 | // ═══════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | crates/zeroclaw-tool-call-parser/src/lib.rs | 4104 | // ═══════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | crates/zeroclaw-memory/src/sqlite.rs | 134 | // ── Production-grade PRAGMA tuning ────────────────────── | COMMENT |
| MEDIUM | crates/zeroclaw-memory/src/sqlite.rs | 2535 | // ── FTS5 search tests ──────────────────────────────────────── | COMMENT |
| MEDIUM | crates/zeroclaw-memory/src/sqlite.rs | 2636 | // ── Embedding cache tests ──────────────────────────────────── | COMMENT |
| MEDIUM | crates/zeroclaw-memory/src/sqlite.rs | 2652 | // ── Schema tests ───────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/zeroclaw-memory/src/sqlite.rs | 2692 | // ── FTS5 sync trigger tests ────────────────────────────────── | COMMENT |
| MEDIUM | crates/zeroclaw-memory/src/sqlite.rs | 2778 | // ── Open timeout tests ──────────────────────────────────────── | COMMENT |
| MEDIUM | crates/zeroclaw-memory/src/sqlite.rs | 2827 | // ── Graceful degrade on embedding failure ──────────────────── | COMMENT |
| MEDIUM | crates/zeroclaw-memory/src/sqlite.rs | 2879 | // ── Embedder hot-swap (#8359) ──────────────────────────────── | COMMENT |
| MEDIUM | crates/zeroclaw-memory/src/sqlite.rs | 2879 | // ── Embedder hot-swap (#8359) ──────────────────────────────── | COMMENT |
| MEDIUM | crates/zeroclaw-memory/src/sqlite.rs | 3014 | // ── With-embedder constructor test ─────────────────────────── | COMMENT |
| MEDIUM | crates/zeroclaw-memory/src/sqlite.rs | 3034 | // ── Reindex test ───────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/zeroclaw-memory/src/sqlite.rs | 3055 | // ── Embedding identity primitives (issue #7948) ────────────── | COMMENT |
| MEDIUM | crates/zeroclaw-memory/src/sqlite.rs | 3055 | // ── Embedding identity primitives (issue #7948) ────────────── | COMMENT |
| MEDIUM | crates/zeroclaw-memory/src/sqlite.rs | 3182 | // ── Recall limit test ──────────────────────────────────────── | COMMENT |
| MEDIUM | crates/zeroclaw-memory/src/sqlite.rs | 3205 | // ── Score presence test ────────────────────────────────────── | COMMENT |
| MEDIUM | crates/zeroclaw-memory/src/sqlite.rs | 3221 | // ── Edge cases: FTS5 special characters ────────────────────── | COMMENT |
| MEDIUM | crates/zeroclaw-memory/src/sqlite.rs | 3357 | // ── Edge cases: store ──────────────────────────────────────── | COMMENT |
| MEDIUM | crates/zeroclaw-memory/src/sqlite.rs | 3416 | // ── Edge cases: recall ─────────────────────────────────────── | COMMENT |
| MEDIUM | crates/zeroclaw-memory/src/sqlite.rs | 3482 | // ── Edge cases: schema idempotency ─────────────────────────── | COMMENT |
| MEDIUM | crates/zeroclaw-memory/src/sqlite.rs | 3514 | // ── Edge cases: forget + FTS5 consistency ──────────────────── | COMMENT |
| MEDIUM | crates/zeroclaw-memory/src/sqlite.rs | 3553 | // ── Edge cases: reindex ────────────────────────────────────── | COMMENT |
| MEDIUM | crates/zeroclaw-memory/src/sqlite.rs | 3576 | // ── Edge cases: content_hash ───────────────────────────────── | COMMENT |
| MEDIUM | crates/zeroclaw-memory/src/sqlite.rs | 3601 | // ── Edge cases: category helpers ───────────────────────────── | COMMENT |
| 1888 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Cargo.toml | 401 | COMMENT | |
| LOW | deny.toml | 1 | # cargo-deny configuration -- v2 schema | COMMENT |
| LOW | deny.toml | 21 | # rand -- re-entrancy unsoundness via custom global logger; fixed in rand 0.8.6 | COMMENT |
| LOW | install.sh | 521 | return 0 # config exists but empty → run quickstart | COMMENT |
| LOW | clippy.toml | 1 | # Clippy configuration for ZeroClaw. | COMMENT |
| LOW | clippy.toml | 41 | # `anyhow::Error::msg`, or a typed error. Do not sidestep this by | COMMENT |
| LOW | clippy.toml | 61 | # `::zeroclaw_log::record!` so it flows through the structured log pipeline. | COMMENT |
| LOW | docker-compose.yml | 1 | # ZeroClaw Docker Compose Example | COMMENT |
| LOW | docker-compose.yml | 21 | # dockerfile: Dockerfile.debian | COMMENT |
| LOW | demo/docker-compose.yml | 21 | # - smartroom named-device tools (set_device / read_device) | COMMENT |
| LOW | crates/zeroclaw-tool-call-parser/src/lib.rs | 1 | //! Tool call parsing for LLM responses. | COMMENT |
| LOW | crates/zeroclaw-tool-call-parser/src/lib.rs | 1381 | arguments: serde_json::Value::Object(arguments), | COMMENT |
| LOW | crates/zeroclaw-tool-call-parser/src/lib.rs | 1661 | /// Parse GLM-style shortened tool call bodies found inside `<tool_call>` tags. | COMMENT |
| LOW | crates/zeroclaw-tool-call-parser/src/lib.rs | 1821 | // 3. Markdown code blocks with `tool_call` language | COMMENT |
| LOW | crates/zeroclaw-memory/tests/agent_migration.rs | 1 | //! Integration tests for the SQLite multi-agent DB migration. | COMMENT |
| LOW | crates/zeroclaw-memory/src/sqlite.rs | 41 | /// - **Safe Reindex**: temp DB → seed → sync → atomic swap → rollback | COMMENT |
| LOW | crates/zeroclaw-memory/src/sqlite.rs | 1581 | } | COMMENT |
| LOW | crates/zeroclaw-memory/src/sqlite.rs | 1661 | tokio::task::spawn_blocking(move || conn.lock().execute_batch("SELECT 1").is_ok()) | COMMENT |
| LOW | crates/zeroclaw-memory/src/sqlite.rs | 4901 | // And every row must carry the session metadata we asked for. | COMMENT |
| LOW | crates/zeroclaw-memory/src/sqlite.rs | 4921 | /// | COMMENT |
| LOW | crates/zeroclaw-memory/src/agent_scoped.rs | 1 | //! Runtime memory wrapper bound to one agent. | COMMENT |
| LOW | crates/zeroclaw-memory/src/agent_scoped.rs | 21 | //! `allowed_agent_ids` set. | COMMENT |
| LOW | crates/zeroclaw-memory/src/agent_scoped.rs | 41 | /// The bound agent's UUID (from `agents.id`). Stamped on every | COMMENT |
| LOW | crates/zeroclaw-memory/src/agent_scoped_markdown.rs | 1 | //! Cross-agent path-walk variant for Markdown-backed agents. | COMMENT |
| LOW | crates/zeroclaw-memory/src/chunker.rs | 1 | // Line-based markdown chunker — splits documents into semantic chunks. | COMMENT |
| LOW | crates/zeroclaw-memory/src/lib.rs | 1 | #![allow(clippy::to_string_in_format_args)] | COMMENT |
| LOW | crates/zeroclaw-memory/src/lib.rs | 361 | /// which passes config validation but matches none of those arms — so without | COMMENT |
| LOW | crates/zeroclaw-memory/src/lib.rs | 501 | /// Factory: create memory with a resolved active storage backend and embedding routes. | COMMENT |
| LOW | crates/zeroclaw-memory/src/lib.rs | 721 | /// Reconciliation failed; the store is untouched and the error was | COMMENT |
| LOW | crates/zeroclaw-memory/src/qdrant.rs | 21 | base_url: String, | COMMENT |
| LOW | crates/zeroclaw-config/tests/migration.rs | 1361 | // Pre-fix the migration used the raw colon-URL string as the V3 outer | COMMENT |
| LOW | crates/zeroclaw-config/tests/migration.rs | 1881 | // `ChannelsConfig` must appear in the migration walker's alias-wrap | COMMENT |
| LOW | crates/zeroclaw-config/tests/migration.rs | 2161 | .and_then(|h| h.get("agent")) | COMMENT |
| LOW | crates/zeroclaw-config/tests/migration.rs | 2181 | // - V3 `Config::validate()` grows a new check that the V1 fixture | COMMENT |
| LOW | crates/zeroclaw-config/tests/migration.rs | 2461 | } | COMMENT |
| LOW | crates/zeroclaw-config/tests/migration.rs | 2541 | // Map-shaped `#[secret]` fields (e.g. `mcp.servers[*].headers: | COMMENT |
| LOW | crates/zeroclaw-config/tests/migration.rs | 2841 | } | COMMENT |
| LOW | crates/zeroclaw-config/src/policy.rs | 81 | /// | COMMENT |
| LOW | crates/zeroclaw-config/src/policy.rs | 181 | /// `AccessMode::ReadWrite` grants in `agent.workspace.access`. | COMMENT |
| LOW | crates/zeroclaw-config/src/policy.rs | 201 | /// risk profile. Empty when constructed outside the profile path. | COMMENT |
| LOW | crates/zeroclaw-config/src/policy.rs | 221 | pub data_dir: Option<PathBuf>, | COMMENT |
| LOW | crates/zeroclaw-config/src/policy.rs | 261 | /// `RiskProfileConfig.always_ask`. | COMMENT |
| LOW | crates/zeroclaw-config/src/policy.rs | 421 | /// is canonicalized when possible so symlinked roots match the on-disk | COMMENT |
| LOW | crates/zeroclaw-config/src/policy.rs | 461 | /// `child.allowed_roots` contains a path the parent cannot rw. | COMMENT |
| LOW | crates/zeroclaw-config/src/policy.rs | 481 | /// parent declined to forward. | COMMENT |
| LOW | crates/zeroclaw-config/src/policy.rs | 761 | /// - `;` and newline | COMMENT |
| LOW | crates/zeroclaw-config/src/policy.rs | 1541 | /// | COMMENT |
| LOW | crates/zeroclaw-config/src/policy.rs | 1941 | } | COMMENT |
| LOW | crates/zeroclaw-config/src/policy.rs | 1961 | /// Write-side tools (`file_write`, `file_edit`, | COMMENT |
| LOW | crates/zeroclaw-config/src/policy.rs | 2081 | COMMENT | |
| LOW | crates/zeroclaw-config/src/policy.rs | 2121 | || file_name == "config.toml.bak" | COMMENT |
| LOW | crates/zeroclaw-config/src/policy.rs | 2261 | /// Check whether the given raw path (before canonicalization) | COMMENT |
| LOW | crates/zeroclaw-config/src/policy.rs | 2281 | /// Check whether the given raw path falls under a read-only allowed | COMMENT |
| LOW | crates/zeroclaw-config/src/policy.rs | 2301 | /// [`Self::is_resolved_path_readable`] for the resolved-path form, | COMMENT |
| LOW | crates/zeroclaw-config/src/policy.rs | 2321 | /// a parent's rw root to read-only, but it cannot grant read | COMMENT |
| LOW | crates/zeroclaw-config/src/policy.rs | 2581 | // directory holding `config.toml`. Record the real config path so | COMMENT |
| LOW | crates/zeroclaw-config/src/policy.rs | 5581 | // previous revision of this PR protected `otp-state.json`, which | COMMENT |
| LOW | crates/zeroclaw-config/src/policy.rs | 5601 | assert!(!policy.is_runtime_config_path(&config_dir.join("otp-state.json"))); | COMMENT |
| LOW | crates/zeroclaw-config/src/skill_bundles.rs | 1 | //! Skill-bundle directory rules and helpers. | COMMENT |
| LOW | crates/zeroclaw-config/src/presets.rs | 1 | //! Quickstart preset tables and submission shape. | COMMENT |
| 1100 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/fill-translations/src/main.rs | 735 | // Step 1: Run the production leak-repair path via the shared helper. | COMMENT |
| LOW | tools/fill-translations/src/main.rs | 753 | // Step 2: Simulate the trailing-`\n` pre-pass (same logic as main()). | COMMENT |
| LOW | tools/fill-translations/src/main.rs | 771 | // Step 3: write_po end-to-end — the final output must contain the | COMMENT |
| LOW | crates/zeroclaw-memory/src/sqlite.rs | 1678 | // Step 1: Rebuild FTS5 (always safe, cheap) | COMMENT |
| LOW | crates/zeroclaw-memory/src/sqlite.rs | 1689 | // Step 2: Re-embed memories with NULL vectors, if embedder is configured | COMMENT |
| LOW | crates/zeroclaw-tools/src/linkedin_client.rs | 607 | // Step 1: Register upload | COMMENT |
| LOW | crates/zeroclaw-tools/src/linkedin_client.rs | 659 | // Step 2: Upload binary | COMMENT |
| LOW⚡ | crates/zeroclaw-providers/src/bedrock.rs | 224 | // Step 1: get IMDSv2 token | COMMENT |
| LOW⚡ | crates/zeroclaw-providers/src/bedrock.rs | 233 | // Step 2: get IAM role name | COMMENT |
| LOW | crates/zeroclaw-providers/src/bedrock.rs | 244 | // Step 3: get credentials for that role | COMMENT |
| LOW | crates/zeroclaw-providers/src/bedrock.rs | 291 | // Step 4: get region from instance identity document | COMMENT |
| LOW | crates/zeroclaw-channels/src/lark.rs | 6905 | // Step 1: fast-ack POSTs 👀 and writes (om_dedupe, "👀") → R1. | COMMENT |
| LOW | crates/zeroclaw-channels/src/lark.rs | 6922 | // Step 2: generic orchestrator path tries to add 👀 again. | COMMENT |
| LOW | crates/zeroclaw-channels/src/lark.rs | 6945 | // Step 3: cleanup. DELETE must hit the cached fast-ack reaction_id. | COMMENT |
| LOW | crates/zeroclaw-channels/src/matrix.rs | 909 | // Step 1: restore an existing session, or fresh-login. | COMMENT |
| LOW | crates/zeroclaw-channels/src/matrix.rs | 991 | // Step 2: import existing cross-signing + room keys from the | COMMENT |
| LOW | crates/zeroclaw-channels/src/transcription.rs | 466 | // Step 1: Upload the audio file. | COMMENT |
| LOW | crates/zeroclaw-channels/src/transcription.rs | 492 | // Step 2: Create transcription job. | COMMENT |
| LOW | crates/zeroclaw-channels/src/transcription.rs | 525 | // Step 3: Poll for completion. | COMMENT |
| LOW | crates/zeroclaw-runtime/src/sop/engine.rs | 4303 | // Step 1: WaitApproval | COMMENT |
| LOW⚡ | crates/zeroclaw-runtime/src/agent/agent.rs | 7811 | // Step 1: filter excluded tools (mirrors from_config logic) | COMMENT |
| LOW⚡ | crates/zeroclaw-runtime/src/agent/agent.rs | 7815 | // Step 2: register skill tools (mirrors from_config logic) | COMMENT |
| LOW⚡ | tests/integration/memory_loop_continuity.rs | 218 | // Step 1: tool call | COMMENT |
| LOW⚡ | tests/integration/memory_loop_continuity.rs | 225 | // Step 2: another tool call | COMMENT |
| LOW⚡ | tests/integration/memory_loop_continuity.rs | 232 | // Step 3: final text | COMMENT |
| LOW | .claude/skills/github-pr/SKILL.md | 46 | ### Step 1: Gather Context | COMMENT |
| LOW | .claude/skills/github-pr/SKILL.md | 85 | ### Step 2: Pre-Fill the Template | COMMENT |
| LOW | .claude/skills/github-pr/SKILL.md | 99 | ### Step 3: Present Draft for Review | COMMENT |
| LOW | .claude/skills/github-pr/SKILL.md | 115 | ### Step 4: Push and Create | COMMENT |
| LOW | .claude/skills/github-pr/SKILL.md | 141 | ### Step 1: Identify the PR | COMMENT |
| LOW | .claude/skills/github-pr/SKILL.md | 157 | ### Step 2: Fetch Current State | COMMENT |
| LOW | .claude/skills/github-pr/SKILL.md | 173 | ### Step 3: Determine What to Update | COMMENT |
| LOW | .claude/skills/github-pr/SKILL.md | 188 | ### Step 4: Handle Body Section Edits | COMMENT |
| LOW | .claude/skills/github-pr/SKILL.md | 197 | ### Step 5: Smart Update After New Commits | COMMENT |
| LOW | .claude/skills/github-pr/SKILL.md | 217 | ### Step 6: Apply Updates | COMMENT |
| LOW | .claude/skills/github-pr/SKILL.md | 237 | ### Step 7: Confirm | COMMENT |
| LOW | .claude/skills/squash-merge/SKILL.md | 45 | ### Step 1: Resolve the PR and Run Pre-flight Checks | COMMENT |
| LOW | .claude/skills/squash-merge/SKILL.md | 151 | ### Step 2: Get Commit History | COMMENT |
| LOW | .claude/skills/squash-merge/SKILL.md | 184 | ### Step 3: Derive the Squash Commit Subject | COMMENT |
| LOW | .claude/skills/squash-merge/SKILL.md | 206 | ### Step 4: Confirm — MANDATORY, NO EXCEPTIONS | COMMENT |
| LOW | .claude/skills/squash-merge/SKILL.md | 242 | ### Step 5: Execute | COMMENT |
| LOW | .claude/skills/squash-merge/SKILL.md | 255 | ### Step 6: Verify | COMMENT |
| LOW | .claude/skills/squash-merge/SKILL.md | 273 | ### Step 7: Public Tracker Follow-Through | COMMENT |
| LOW | .claude/skills/github-issue/SKILL.md | 13 | ### Step 1: Route the Request and Read the Template | COMMENT |
| LOW | .claude/skills/github-issue/SKILL.md | 37 | ### Step 2: Auto-Gather Context | COMMENT |
| LOW | .claude/skills/github-issue/SKILL.md | 57 | ### Step 3: Pre-Fill and Present the Form | COMMENT |
| LOW | .claude/skills/github-issue/SKILL.md | 87 | ### Step 4: Scope Guard | COMMENT |
| LOW | .claude/skills/github-issue/SKILL.md | 102 | ### Step 5: Construct Issue Body | COMMENT |
| LOW | .claude/skills/github-issue/SKILL.md | 131 | ### Step 6: Final Preview and Submit | COMMENT |
| LOW | .claude/skills/feature-matrix-parity/SKILL.md | 74 | ### Step 1: Read the live page for ground truth | COMMENT |
| LOW | .claude/skills/feature-matrix-parity/SKILL.md | 90 | ### Step 2: Shallow-clone both competitors | COMMENT |
| LOW | .claude/skills/feature-matrix-parity/SKILL.md | 107 | ### Step 3: Walk every row against real modules | COMMENT |
| LOW | .claude/skills/feature-matrix-parity/SKILL.md | 127 | ### Step 4: Check the issue tracker for `planned` verdicts | COMMENT |
| LOW | .claude/skills/feature-matrix-parity/SKILL.md | 151 | ### Step 5: Write the TOML | COMMENT |
| LOW | .claude/skills/feature-matrix-parity/SKILL.md | 161 | ### Step 6: Verify with the guard test | COMMENT |
| LOW | .claude/skills/feature-matrix-parity/SKILL.md | 173 | ### Step 7: Regenerate and confirm live | COMMENT |
| LOW | .claude/skills/feature-matrix-parity/SKILL.md | 185 | ### Step 8: Clean up and commit | COMMENT |
| LOW | .claude/skills/skill-creator/SKILL.md | 169 | ### Step 1: Spawn all runs (with-skill AND baseline) in the same turn | COMMENT |
| LOW | .claude/skills/skill-creator/SKILL.md | 199 | ### Step 2: While runs are in progress, draft assertions | COMMENT |
| LOW | .claude/skills/skill-creator/SKILL.md | 207 | ### Step 3: As runs complete, capture timing data | COMMENT |
| 52 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | firmware/esp32-ui/src/main.rs | 1 | //! ZeroClaw ESP32 UI firmware scaffold. | COMMENT |
| MEDIUM | crates/zeroclaw-config/src/skill_bundles.rs | 58 | /// Reject directories that escape `<install>/shared/`. Run at scaffold time | COMMENT |
| MEDIUM | crates/zeroclaw-config/src/schema/v2.rs | 1488 | /// - `agentic` / `allowed_tools` / `timeout_secs` / `agentic_timeout_secs` | COMMENT |
| MEDIUM | crates/zeroclaw-config/src/schema/v2.rs | 1600 | // runtime: agentic, max_delegation_depth (from V2 max_depth), | COMMENT |
| MEDIUM | crates/zeroclaw-tools/src/model_routing_config.rs | 955 | // synthesize runtime_profiles[name] from agentic/max_iterations/max_depth. | COMMENT |
| MEDIUM | crates/zeroclaw-providers/src/compatible.rs | 5593 | let json = r#"{"content":null,"reasoning":"chain-of-thought via vllm","tool_calls":null}"#; | CODE |
| MEDIUM⚡ | crates/zeroclaw-runtime/src/tools/delegate.rs | 776 | /// Build the full target-owned registry for an independent agentic child. | COMMENT |
| MEDIUM⚡ | crates/zeroclaw-runtime/src/tools/delegate.rs | 778 | /// Bounded agentic delegation starts from the caller's already-filtered | COMMENT |
| MEDIUM⚡ | crates/zeroclaw-runtime/src/tools/delegate.rs | 785 | /// here is stripping `delegate` itself, because recursive agentic delegation is | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/tools/delegate.rs | 131 | /// Parent tool registry for agentic sub-agents. | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/tools/delegate.rs | 134 | /// agentic delegation. | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/tools/delegate.rs | 150 | /// named runtime profiles for agentic/tools/iteration resolution. | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/tools/delegate.rs | 357 | /// independent agentic delegation. | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/tools/delegate.rs | 434 | /// Attach runtime profiles for agentic/tools/iteration resolution. | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/tools/delegate.rs | 470 | /// agentic tools from the caller's registry and intersecting with the | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/tools/delegate.rs | 967 | /// Resolve agentic run timeout from the named runtime profile. | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/tools/delegate.rs | 977 | /// Resolve agentic mode flag from the named runtime profile (default: false). | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/tools/delegate.rs | 1349 | /// sync/background/agentic variants from each inventing a different bypass. | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/tools/delegate.rs | 1469 | // Build enriched system prompt for non-agentic sub-agent. | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/tools/delegate.rs | 2000 | // agentic loop; the preflight above only | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/tools/delegate.rs | 4505 | // still a valid agentic run. The fallback is a tool-less loop, not a | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/tools/delegate.rs | 4531 | // filters every candidate out, agentic execution should continue without | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/tools/delegate.rs | 4735 | // rebuilds a delegate tool instance before entering the agentic loop. | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/tools/delegate.rs | 5053 | // Recursive agentic delegation is still unsupported. Even if the target | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/tools/delegate.rs | 5575 | /// agentic delegate even though it matches the `__` auto-admit | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/tools/delegate.rs | 5610 | /// `excluded_tools` entirely on the agentic path; this pins the fix | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/tools/delegate.rs | 7132 | // has a wider runtime policy. Bounded agentic execution applies the | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/tools/delegate.rs | 7221 | // the caller's filtered tool registry still remains the agentic ceiling. | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/tools/delegate.rs | 7644 | // agentic delegation must ignore that parent ceiling and build the | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/tools/mod.rs | 4 | //! agentic loops. Each tool implements the [`Tool`] trait defined in the | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/tools/mod.rs | 620 | // Independent agentic delegates use it later to build the target-owned tool | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/agent/parity.rs | 33 | //! this scaffold ships the framework plus the tool-surface (Epic A) rows. | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/agent/personality.rs | 28 | /// first-run scaffold the agent reads once and deletes, not a file | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/agent/tests.rs | 4 | //! covering every edge case an agentic tool loop must handle: | COMMENT |
| MEDIUM | …eroclaw-runtime/src/agent/personality_templates/mod.rs | 73 | /// scaffold the agent reads once and deletes; the dashboard editor | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/agent/turn/execution.rs | 58 | /// not full agentic turns (skill reflection today; the reply-intent | COMMENT |
| MEDIUM⚡ | crates/zeroclaw-runtime/src/agent/turn/mod.rs | 132 | /// Default maximum agentic tool-use iterations per user message to prevent runaway loops. | COMMENT |
| MEDIUM⚡ | crates/zeroclaw-runtime/src/agent/turn/mod.rs | 137 | // Core agentic iteration: send conversation to the LLM, parse any tool | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/skills/constants.rs | 1 | //! Canonical filenames + scaffold subdirs for the Agent Skills spec. | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/skills/constants.rs | 3 | //! Every literal that names a skill-file or scaffold-subdir lives here. Any | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/skills/service.rs | 105 | /// writes go through the matching helpers in [`super::scaffold`], | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/skills/scaffold.rs | 43 | #[error("failed to write skill scaffold: {0}")] | COMMENT |
| MEDIUM | web/src/components/sections/PersonalityEditor.tsx | 7 | // `agent` is reserved for #5890 (multi-agent workspaces). Today it is | COMMENT |
| MEDIUM | web/src/components/sections/SkillsBundleEditor.tsx | 2 | // bundle's resolved directory, scaffold new ones (strict-spec: name + | COMMENT |
| MEDIUM | docs/book/src/hardware/adding-boards-and-tools.md | 37 | ## Adding a Datasheet (RAG) | COMMENT |
| MEDIUM | docs/book/src/hardware/hardware-peripherals-design.md | 115 | ### RAG Pipeline (Datasheet Retrieval) | COMMENT |
| MEDIUM | docs/book/src/contributing/rfcs.md | 83 | - **#7218**: A2A agent discovery (`.well-known/agent-card.json`) for multi-agent installs | CODE |
| MEDIUM | docs/book/src/agents/overview.md | 8 | {{#include ../_snippets/concept-multi-agent.md}} | CODE |
| MEDIUM | …ok/src/foundations/fnd-001-intentional-architecture.md | 37 | | 3 | 2026-04-10 | Terminology correction per implementation feedback from PR #5559: "kernel" → "runtime" for the agent | CODE |
| MEDIUM | docs/book/src/getting-started/concepts.md | 13 | {{#include ../_snippets/concept-multi-agent.md}} | CODE |
| MEDIUM | src/lib.rs | 480 | /// Open SKILL.md in $EDITOR after scaffold. | COMMENT |
| MEDIUM | src/skills/mod.rs | 757 | // Slash options are authored in the dashboard editor, not at scaffold time. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | crates/zeroclaw-providers/src/auth/mod.rs | 1638 | let alias_cfg = ctx.config.providers.models.gemini.get(alias_name); | CODE |
| CRITICAL | crates/zeroclaw-runtime/src/agent/cost.rs | 77 | for (provider_type, _model_id, _rates) in config.cost.rates.providers.models.iter_entries() { | CODE |
| CRITICAL | crates/zeroclaw-runtime/src/agent/cost.rs | 130 | for (rate_provider_type, model_id, rates) in config.cost.rates.providers.models.iter_entries() { | CODE |
| CRITICAL | crates/zeroclaw-runtime/src/agent/cost.rs | 650 | config.cost.rates.providers.models.deepseek.insert( | CODE |
| CRITICAL | crates/zeroclaw-runtime/src/agent/cost.rs | 734 | config.cost.rates.providers.models.deepseek.insert( | CODE |
| CRITICAL | docs/book/src/ops/cost-tracking.md | 62 | `config.cost.rates.providers.models.iter_entries()` and merges the | CODE |
| CRITICAL | apps/zerocode/src/config/mod.rs | 841 | assert!(c.connection.wss.tls.skip_verify_routes.is_empty()); | CODE |
| CRITICAL | apps/zerocode/src/config/mod.rs | 844 | assert!(parsed.connection.wss.tls.skip_verify_routes.is_empty()); | CODE |
| CRITICAL | src/main.rs | 9080 | config.cost.rates.providers.models.openai.is_empty(), | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/zeroclaw-tools/src/image_gen.rs | 479 | unsafe { std::env::set_var("FAL_API_KEY_TEST_SIZE", "dummy_key") }; | CODE |
| LOW | crates/zeroclaw-tools/src/image_gen.rs | 523 | unsafe { std::env::set_var("FAL_API_KEY_TEST_MODEL", "dummy_key") }; | CODE |
| LOW | crates/zeroclaw-tools/src/git_operations.rs | 1082 | &["config", "user.email", "test@test.com"], | CODE |
| LOW | crates/zeroclaw-tools/src/jira_tool.rs | 2223 | ("acc-123".to_string(), "John Doe".to_string()), | CODE |
| LOW | crates/zeroclaw-tools/src/browser.rs | 1139 | "enum": ["role", "text", "label", "placeholder", "testid"], | CODE |
| LOW | crates/zeroclaw-tools/src/browser.rs | 1710 | "placeholder" => format!("[placeholder=\"{escaped}\"]"), | CODE |
| LOW | crates/zeroclaw-tools/src/browser.rs | 1956 | let sel = selector_for_find("placeholder", "Search"); | CODE |
| LOW | crates/zeroclaw-tools/src/microsoft365/graph_client.rs | 472 | let base = user_path("user@example.com"); | CODE |
| LOW | crates/zeroclaw-tools/src/helpers/domain_guard.rs | 216 | assert!(normalize_domain("user@example.com").is_none()); | CODE |
| LOW⚡ | crates/zeroclaw-api/src/channel.rs | 804 | reply_target: "user@example.com".into(), | CODE |
| LOW⚡ | crates/zeroclaw-api/src/channel.rs | 807 | ..ChannelMessage::new("msg-001", "alice", "user@example.com", "", "email", 0) | CODE |
| LOW⚡ | crates/zeroclaw-api/src/channel.rs | 810 | assert_eq!(reply.recipient, "user@example.com"); | CODE |
| LOW | crates/zeroclaw-api/src/channel.rs | 821 | ..ChannelMessage::new("msg-002", "alice", "user@example.com", "", "email", 0) | CODE |
| LOW | crates/zeroclaw-hardware/src/uf2.rs | 370 | msg.contains("placeholder") || msg.contains("UF2"), | CODE |
| LOW | crates/zeroclaw-providers/src/gemini.rs | 2475 | let model_provider = test_model_provider(Some(test_oauth_auth("fake_token"))); | CODE |
| LOW | crates/zeroclaw-channels/src/imessage.rs | 642 | assert!(is_valid_imessage_target("user@example.com")); | CODE |
| LOW | crates/zeroclaw-channels/src/imessage.rs | 847 | "INSERT INTO handle (ROWID, id) VALUES (2, 'user@example.com')", | CODE |
| LOW | crates/zeroclaw-channels/src/imessage.rs | 871 | "user@example.com".to_string(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 4367 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 4416 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 4492 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 4518 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 4583 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 4596 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 4621 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 4646 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 4654 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 4667 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 4684 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 4700 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 4718 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 4738 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 5259 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 5286 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 5305 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 5327 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 5346 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 5368 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 5384 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 5400 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 5416 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 5550 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 5580 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 5626 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 5649 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 5668 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 7082 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 7369 | Some("fake_key"), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 7800 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 7830 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 7963 | "fake-token".into(), | CODE |
| LOW | crates/zeroclaw-channels/src/telegram.rs | 8007 | "fake-token".into(), | CODE |
| LOW⚡ | crates/zeroclaw-channels/src/gmail_push.rs | 878 | "emailAddress": "user@example.com", | CODE |
| LOW | crates/zeroclaw-channels/src/gmail_push.rs | 890 | assert_eq!(notification.email_address, "user@example.com"); | CODE |
| LOW | crates/zeroclaw-channels/src/gmail_push.rs | 959 | extract_email_from_header("user@example.com"), | CODE |
| LOW | crates/zeroclaw-channels/src/gmail_push.rs | 960 | "user@example.com" | CODE |
| LOW | crates/zeroclaw-channels/src/gmail_push.rs | 1172 | resolver_from(vec!["user@example.com".into()]), | CODE |
| LOW | crates/zeroclaw-channels/src/gmail_push.rs | 1174 | assert!(ch.is_sender_allowed("user@example.com")); | CODE |
| LOW | crates/zeroclaw-channels/src/gmail_push.rs | 1185 | assert!(ch.is_sender_allowed("user@example.com")); | CODE |
| LOW | crates/zeroclaw-channels/src/gmail_push.rs | 1186 | assert!(ch.is_sender_allowed("admin@example.com")); | CODE |
| 18 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | demo/docker-compose.yml | 18 | # This harness completes the split of the original #6148 bundle. | COMMENT |
| MEDIUM | crates/zeroclaw-hardware/src/serial.rs | 149 | // Match on the error kind for robust cross-platform disconnect detection. | COMMENT |
| MEDIUM | crates/zeroclaw-channels/src/matrix.rs | 6179 | // Construct via Default + struct update so we stay robust to | COMMENT |
| MEDIUM | crates/zeroclaw-runtime/src/agent/loop_.rs | 14805 | // assert each field == scrub_for_export(raw) (robust regardless of exact regex). | COMMENT |
| LOW | .github/workflows/release-stable-manual.yml | 798 | # For tag push, the tag already exists — just create the release. | COMMENT |
| MEDIUM⚡ | dev/test-harness.sh | 5 | # Validates the 9-phase harness implementation: | COMMENT |
| MEDIUM⚡ | dev/test-harness.sh | 13 | # docker exec zeroclaw-dev bash /zeroclaw-data/workspace/test-harness.sh | COMMENT |
| MEDIUM⚡ | dev/test-harness.sh | 14 | # or: ./dev/test-harness.sh (if running on host with gateway at localhost:42617) | COMMENT |
| MEDIUM⚡ | dev/test-harness.sh | 141 | # TEST 6: Tools List (verify harness tools present) | COMMENT |
| MEDIUM⚡ | dev/test-harness.sh | 183 | # TEST 8: Config Verification (harness features enabled) | COMMENT |
| MEDIUM | dev/run-tauri-dev.sh | 21 | # Prefer the Tauri CLI (hot-reload, proper dev harness). Fall back to a plain | COMMENT |
| MEDIUM | dev/ci.sh | 96 | # harness's default process model). Keep this delta explicit so a | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/fill-translations/src/main.rs | 735 | // Step 1: Run the production leak-repair path via the shared helper. | COMMENT |
| LOW | tools/fill-translations/src/main.rs | 753 | // Step 2: Simulate the trailing-`\n` pre-pass (same logic as main()). | COMMENT |
| LOW | tools/fill-translations/src/main.rs | 771 | // Step 3: write_po end-to-end — the final output must contain the | COMMENT |
| LOW | crates/zeroclaw-memory/src/sqlite.rs | 1678 | // Step 1: Rebuild FTS5 (always safe, cheap) | COMMENT |
| LOW | crates/zeroclaw-memory/src/sqlite.rs | 1689 | // Step 2: Re-embed memories with NULL vectors, if embedder is configured | COMMENT |
| LOW | crates/zeroclaw-tools/src/linkedin_client.rs | 607 | // Step 1: Register upload | COMMENT |
| LOW | crates/zeroclaw-tools/src/linkedin_client.rs | 659 | // Step 2: Upload binary | COMMENT |
| LOW⚡ | crates/zeroclaw-providers/src/bedrock.rs | 224 | // Step 1: get IMDSv2 token | COMMENT |
| LOW⚡ | crates/zeroclaw-providers/src/bedrock.rs | 233 | // Step 2: get IAM role name | COMMENT |
| LOW | crates/zeroclaw-providers/src/bedrock.rs | 244 | // Step 3: get credentials for that role | COMMENT |
| LOW | crates/zeroclaw-providers/src/bedrock.rs | 291 | // Step 4: get region from instance identity document | COMMENT |
| LOW | crates/zeroclaw-channels/src/lark.rs | 6905 | // Step 1: fast-ack POSTs 👀 and writes (om_dedupe, "👀") → R1. | COMMENT |
| LOW | crates/zeroclaw-channels/src/lark.rs | 6922 | // Step 2: generic orchestrator path tries to add 👀 again. | COMMENT |
| LOW | crates/zeroclaw-channels/src/lark.rs | 6945 | // Step 3: cleanup. DELETE must hit the cached fast-ack reaction_id. | COMMENT |
| LOW | crates/zeroclaw-channels/src/matrix.rs | 909 | // Step 1: restore an existing session, or fresh-login. | COMMENT |
| LOW | crates/zeroclaw-channels/src/matrix.rs | 991 | // Step 2: import existing cross-signing + room keys from the | COMMENT |
| LOW | crates/zeroclaw-channels/src/transcription.rs | 466 | // Step 1: Upload the audio file. | COMMENT |
| LOW | crates/zeroclaw-channels/src/transcription.rs | 492 | // Step 2: Create transcription job. | COMMENT |
| LOW | crates/zeroclaw-channels/src/transcription.rs | 525 | // Step 3: Poll for completion. | COMMENT |
| LOW | crates/zeroclaw-runtime/src/sop/engine.rs | 4303 | // Step 1: WaitApproval | COMMENT |
| LOW⚡ | crates/zeroclaw-runtime/src/agent/agent.rs | 7811 | // Step 1: filter excluded tools (mirrors from_config logic) | COMMENT |
| LOW⚡ | crates/zeroclaw-runtime/src/agent/agent.rs | 7815 | // Step 2: register skill tools (mirrors from_config logic) | COMMENT |
| LOW⚡ | tests/integration/memory_loop_continuity.rs | 218 | // Step 1: tool call | COMMENT |
| LOW⚡ | tests/integration/memory_loop_continuity.rs | 225 | // Step 2: another tool call | COMMENT |
| LOW⚡ | tests/integration/memory_loop_continuity.rs | 232 | // Step 3: final text | COMMENT |
| LOW | xtask/src/cmd/mdbook/sync.rs | 31 | // Step 1: extract English msgids | COMMENT |
| LOW | src/main.rs | 1643 | // Step 1: pick Existing or Fresh, when there are | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/src/components/sections/CostRatesEditor.tsx | 72 | async function applyCatalogPricingToResource( | CODE |
| LOW | web/src/components/sections/FieldForm.tsx | 657 | export function clearFieldFormCatalogCaches() { | CODE |
| LOW | web/src/lib/configuredModels.ts | 11 | export async function walkConfiguredModelBindings( | CODE |
| LOW | web/src/lib/configuredModels.ts | 53 | export async function resolveModelToProviderType( | CODE |
| LOW | web/src/lib/api.ts | 1288 | export function createAgentWorkspaceDirectory( | CODE |
| LOW | web/src/lib/ws.ts | 33 | export function getOrCreateSessionId(agentAlias: string): string { | CODE |
| LOW | web/src/lib/chatHistoryStorage.ts | 46 | export function mapServerMessagesToPersisted(rows: SessionMessageRow[]): PersistedChatBubble[] { | CODE |
| LOW | web/src/lib/modelProviders.ts | 20 | export function primeModelProviderCatalog(): Promise<void> { | CODE |
| LOW | web/src/pages/Cron.tsx | 67 | function describeCronSettingsError(err: unknown) { | CODE |
| LOW⚡ | tests/manual/telegram/generate_test_messages.py | 21 | def generate_exact_limit_message(): | CODE |
| LOW⚡ | tests/manual/telegram/generate_test_messages.py | 26 | def generate_over_limit_message(): | CODE |
| LOW⚡ | tests/manual/telegram/generate_test_messages.py | 30 | def generate_multi_chunk_message(): | CODE |
| LOW⚡ | tests/manual/telegram/generate_test_messages.py | 38 | def generate_word_boundary_message(): | CODE |
| LOW⚡ | scripts/github/project_dashboard_plan_test.py | 32 | def test_contract_rules_emit_only_fnd_project_status_values(self) -> None: | CODE |
| LOW⚡ | scripts/github/project_dashboard_plan_test.py | 38 | def test_load_issue_from_event_accepts_event_and_issue_json(self) -> None: | CODE |
| LOW⚡ | scripts/github/project_dashboard_plan_test.py | 48 | def test_label_names_accepts_string_and_object_labels(self) -> None: | CODE |
| LOW⚡ | scripts/github/project_dashboard_plan_test.py | 52 | def test_not_planned_closed_issue_maps_to_wont_do_before_open_conflicts(self) -> None: | CODE |
| LOW⚡ | scripts/github/project_dashboard_plan_test.py | 63 | def test_closed_issue_without_terminal_signal_maps_to_done(self) -> None: | CODE |
| LOW⚡ | scripts/github/project_dashboard_plan_test.py | 67 | def test_in_progress_label_maps_to_in_review(self) -> None: | CODE |
| LOW⚡ | scripts/github/project_dashboard_plan_test.py | 71 | def test_blocked_no_stale_issue_is_a_conflict(self) -> None: | CODE |
| LOW⚡ | scripts/github/project_dashboard_plan_test.py | 77 | def test_open_conflict_uses_backlog_with_low_confidence(self) -> None: | CODE |
| LOW⚡ | scripts/github/project_dashboard_plan_test.py | 83 | def test_no_stale_with_in_progress_is_a_conflict(self) -> None: | CODE |
| LOW⚡ | scripts/github/project_dashboard_plan_test.py | 89 | def test_blocked_pickup_labels_are_a_conflict(self) -> None: | CODE |
| LOW⚡ | scripts/github/project_dashboard_plan_test.py | 95 | def test_contract_rejects_unknown_status(self) -> None: | CODE |
| LOW⚡ | scripts/github/project_dashboard_plan_test.py | 101 | def test_contract_requires_open_and_closed_catchalls(self) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | firmware/uno-q-bridge/python/main.py | 33 | except Exception as e: | CODE |
| LOW | firmware/uno-q-bridge/python/main.py | 36 | except Exception: | CODE |
| LOW | firmware/uno-q-bridge/python/main.py | 48 | except Exception: | CODE |
| MEDIUM | firmware/uno-q-bridge/python/main.py | 10 | def handle_client(conn): | CODE |
| MEDIUM | tests/manual/telegram/generate_test_messages.py | 94 | print(f"Error: Unknown type '{test_type}'") | CODE |
| MEDIUM | …de/skills/skill-creator/eval-viewer/generate_review.py | 408 | print(f"Error: {workspace} is not a directory", file=sys.stderr) | CODE |
| LOW | .claude/skills/skill-creator/scripts/run_eval.py | 223 | except Exception as e: | CODE |
| MEDIUM | .claude/skills/skill-creator/scripts/run_eval.py | 276 | print(f"Error: No SKILL.md found at {skill_path}", file=sys.stderr) | CODE |
| LOW | .claude/skills/skill-creator/scripts/package_skill.py | 106 | except Exception as e: | CODE |
| MEDIUM | …de/skills/skill-creator/scripts/improve_description.py | 205 | print(f"Error: No SKILL.md found at {skill_path}", file=sys.stderr) | CODE |
| MEDIUM | .claude/skills/skill-creator/scripts/run_loop.py | 265 | print(f"Error: No SKILL.md found at {skill_path}", file=sys.stderr) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/deploy-rpi.sh | 14 | # Usage: | COMMENT |
| LOW | scripts/desktop/prepare-kernel.sh | 14 | # Usage: | COMMENT |
| LOW | scripts/release/bump-version.sh | 6 | # Usage: | COMMENT |
| LOW | scripts/release/refresh-translations.sh | 9 | # Usage: | COMMENT |
| LOW | scripts/dev/act-local.sh | 33 | # Usage: | COMMENT |
| LOW | scripts/dev/refresh-nix-hashes.sh | 9 | # Usage: | COMMENT |
| LOW | dev/test-termux-release.sh | 5 | # Usage: | COMMENT |
| LOW | dev/test-quickstart.sh | 4 | # Usage: | COMMENT |
| LOW⚡ | dev/test-harness.sh | 12 | # Usage: | COMMENT |
| LOW | dev/docker-compose.yml | 8 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | crates/zeroclaw-tools/src/web_search_tool.rs | 725 | /// We always pass `summary: true` so each result carries an AI-generated | COMMENT |
| HIGH | docs/book/src/getting-started/quickstart.md | 67 | or a token generated by Claude Max: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …de/skills/skill-creator/eval-viewer/generate_review.py | 85 | CODE | |
| LOW | …de/skills/skill-creator/eval-viewer/generate_review.py | 149 | CODE | |
| LOW | …de/skills/skill-creator/eval-viewer/generate_review.py | 288 | CODE | |
| LOW | .claude/skills/skill-creator/scripts/run_eval.py | 35 | CODE | |
| LOW | .claude/skills/skill-creator/scripts/package_skill.py | 42 | CODE | |
| LOW | …de/skills/skill-creator/scripts/improve_description.py | 50 | CODE | |
| LOW | …de/skills/skill-creator/scripts/aggregate_benchmark.py | 67 | CODE | |
| LOW | .claude/skills/skill-creator/scripts/generate_report.py | 16 | CODE | |
| LOW | .claude/skills/skill-creator/scripts/utils.py | 7 | CODE | |
| LOW | scripts/migrate-skill-toml.py | 138 | CODE | |
| LOW | scripts/migrate-skill-toml.py | 308 | CODE | |
| LOW | scripts/ci/collect_changed_links.py | 231 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | install.sh | 490 | # Check if another zeroclaw still lurks in PATH | COMMENT |
| LOW | tests/manual/test_dockerignore.sh | 136 | # Check if .git would be excluded | COMMENT |
| LOW | tests/manual/test_dockerignore.sh | 145 | # Check if any .db files exist and would be excluded | COMMENT |
| LOW | scripts/browser/start-browser.sh | 12 | # Check if display is running | COMMENT |
| LOW | .github/workflows/tweet-release.yml | 183 | # Check if we already have a cache hit for this exact tweet | COMMENT |
| LOW | dev/test-termux-release.sh | 167 | # Check if it's glibc or bionic | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | crates/zeroclaw-providers/src/telnyx.rs | 36 | /// let model_provider = TelnyxModelProvider::new("test", Some("your-api-key")); | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .claude/skills/skill-creator/scripts/quick_validate.py | 7 | CODE | |
| LOW | scripts/migrate-skill-toml.py | 73 | CODE | |
| LOW | scripts/ci/collect_changed_links.py | 3 | CODE | |
| LOW | scripts/ci/list_git_dep_keys.py | 7 | CODE | |
| LOW | scripts/github/project_dashboard_plan.py | 9 | CODE | |
| LOW | scripts/github/project_dashboard_plan_test.py | 4 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | firmware/pico/src/main.rs | 82 | // TODO: implement dynamic GPIO pin drivers | COMMENT |
| LOW | firmware/esp32/src/main.rs | 141 | // TODO: implement input pin read — requires storing InputPin drivers per pin | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | benches/agent_benchmarks.rs | 174 | Let me know if you need more."# | CODE |