ARIS ⚔️ (Auto-Research-In-Sleep) — Lightweight Markdown-only skills for autonomous ML research: cross-model review loops, idea discovery, and experiment automation. No framework, no lock-in — works with Claude Code, Codex, OpenClaw, or any LLM agent.
This report presents the forensic synthetic code analysis of wanshuiyin/Auto-claude-code-research-in-sleep, a Python project with 13,385 GitHub stars. SynthScan v2.0 examined 249,278 lines of code across 603 source files, recording 1992 pattern matches distributed across 21 syntactic categories. The overall adjusted score of 14.2 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
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 1992 distinct pattern matches across 21 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 |
|---|---|---|---|---|
| LOW | SETUP_GUIDE.md | 11 | ## Step 1: Install Required Tools | COMMENT |
| LOW | SETUP_GUIDE.md | 57 | ## Step 2: Create a Research Project | COMMENT |
| LOW | SETUP_GUIDE.md | 69 | ## Step 3: Install Skills | COMMENT |
| LOW | SETUP_GUIDE.md | 115 | ## Step 4: Configure GPU Server | COMMENT |
| LOW | SETUP_GUIDE.md | 170 | ## Step 5: Initialize Research Wiki | COMMENT |
| LOW | SETUP_GUIDE.md | 195 | ## Step 6: Verify | COMMENT |
| LOW⚡ | tests/test_minimax_integration.py | 33 | # Step 1: Initialize | COMMENT |
| LOW⚡ | tests/test_minimax_integration.py | 42 | # Step 2: Notification (no response expected) | COMMENT |
| LOW⚡ | tests/test_minimax_integration.py | 49 | # Step 3: List tools | COMMENT |
| LOW⚡ | docs/OPENROUTER_GUIDE.md | 75 | ### Step 1: Clone ARIS | COMMENT |
| LOW⚡ | docs/OPENROUTER_GUIDE.md | 82 | ### Step 2: Install Python Dependencies | COMMENT |
| LOW⚡ | docs/OPENROUTER_GUIDE.md | 88 | ### Step 3: Install ARIS Skills with the Standard Installer | COMMENT |
| LOW⚡ | docs/OPENROUTER_GUIDE.md | 97 | ### Step 4: Deploy the llm-chat MCP Server | COMMENT |
| LOW⚡ | docs/OPENROUTER_GUIDE.md | 106 | ### Step 5: Configure `~/.claude/settings.json` | COMMENT |
| LOW | docs/integrations/FEISHU.md | 28 | ### Step 1: Create a Feishu group bot | COMMENT |
| LOW | docs/integrations/FEISHU.md | 35 | ### Step 2: Create config file | COMMENT |
| LOW | docs/integrations/FEISHU.md | 46 | ### Step 3: Test it | COMMENT |
| LOW | docs/integrations/FEISHU.md | 79 | ### Step 1: Complete Push setup above first (you'll keep both) | COMMENT |
| LOW | docs/integrations/FEISHU.md | 81 | ### Step 2: Create a Feishu app on [open.feishu.cn](https://open.feishu.cn/app) | COMMENT |
| LOW | docs/integrations/FEISHU.md | 103 | ### Step 3: Deploy the bridge | COMMENT |
| LOW | docs/integrations/FEISHU.md | 142 | ### Step 4: Save event config | COMMENT |
| LOW | docs/integrations/FEISHU.md | 148 | ### Step 5: Test private chat | COMMENT |
| LOW | docs/integrations/FEISHU.md | 164 | ### Step 6: Update ARIS config | COMMENT |
| LOW | skills/meta-apply/SKILL.md | 52 | ### Step 0: Load staging + resolve the helper | COMMENT |
| LOW | skills/meta-apply/SKILL.md | 65 | ### Step 1: Jury-at-landing for each requested patch | COMMENT |
| LOW | skills/meta-apply/SKILL.md | 76 | ### Step 2: Land the survivors (Write/Edit only — never Bash) | COMMENT |
| LOW | skills/meta-apply/SKILL.md | 96 | ### Step 3: Report | COMMENT |
| LOW | skills/paper-write/SKILL.md | 170 | ### Step 0: Backup and Clean | COMMENT |
| LOW | skills/paper-write/SKILL.md | 176 | ### Step 1: Initialize Project | COMMENT |
| LOW | skills/paper-write/SKILL.md | 191 | ### Step 2: Generate math_commands.tex | COMMENT |
| LOW | skills/paper-write/SKILL.md | 204 | ### Step 3: Write Each Section | COMMENT |
| LOW | skills/paper-write/SKILL.md | 307 | ### Step 4: Build Bibliography | COMMENT |
| LOW | skills/paper-write/SKILL.md | 459 | ### Step 5: Scientific Writing Quality Pass (5 audit passes) | COMMENT |
| LOW | skills/paper-write/SKILL.md | 520 | ### Step 6: Cross-Review with REVIEWER_MODEL | COMMENT |
| LOW | skills/paper-write/SKILL.md | 548 | ### Step 7: Reverse Outline Test (from Research-Paper-Writing-Skills) | COMMENT |
| LOW | skills/paper-write/SKILL.md | 558 | ### Step 8: Final Checks | COMMENT |
| LOW | skills/specification-writing/SKILL.md | 36 | ### Step 1: Initialize Specification Structure | COMMENT |
| LOW⚡ | skills/specification-writing/SKILL.md | 51 | ### Step 2: Write Title (发明名称) | COMMENT |
| LOW⚡ | skills/specification-writing/SKILL.md | 59 | ### Step 3: Write Technical Field (技术领域) | COMMENT |
| LOW⚡ | skills/specification-writing/SKILL.md | 65 | ### Step 4: Write Background (背景技术) | COMMENT |
| LOW | skills/specification-writing/SKILL.md | 78 | ### Step 5: Write Summary (发明内容) | COMMENT |
| LOW | skills/specification-writing/SKILL.md | 99 | ### Step 6: Write Brief Description of Drawings (附图说明) | COMMENT |
| LOW | skills/specification-writing/SKILL.md | 112 | ### Step 7: Write Detailed Description (具体实施方式) | COMMENT |
| LOW | skills/specification-writing/SKILL.md | 125 | ### Step 8: Write Abstract (摘要) | COMMENT |
| LOW | skills/specification-writing/SKILL.md | 141 | ### Step 9: Claim Support Verification | COMMENT |
| LOW | skills/specification-writing/SKILL.md | 153 | ### Step 10: Cross-Model Review | COMMENT |
| LOW | skills/specification-writing/SKILL.md | 175 | ### Step 11: Output | COMMENT |
| LOW | skills/proof-writer/SKILL.md | 40 | ### Step 1: Gather Proof Context | COMMENT |
| LOW | skills/proof-writer/SKILL.md | 57 | ### Step 2: Normalize the Claim | COMMENT |
| LOW | skills/proof-writer/SKILL.md | 72 | ### Step 3: Feasibility Triage | COMMENT |
| LOW | skills/proof-writer/SKILL.md | 87 | ### Step 4: Build a Dependency Map | COMMENT |
| LOW | skills/proof-writer/SKILL.md | 106 | ### Step 5: Write the Proof Document | COMMENT |
| LOW | skills/proof-writer/SKILL.md | 137 | ### Step 6: Final Verification | COMMENT |
| LOW | skills/paper-claim-audit/SKILL.md | 57 | ### Step 1: Collect Files (Executor — Claude) | COMMENT |
| LOW | skills/paper-claim-audit/SKILL.md | 87 | ### Step 2: Fresh Reviewer Audit (GPT-5.6-Sol — NEW thread, no reply) | COMMENT |
| LOW | skills/paper-claim-audit/SKILL.md | 166 | ### Step 3: Write Report (Executor — Claude) | COMMENT |
| LOW | skills/paper-claim-audit/SKILL.md | 206 | ### Step 4: Print Summary | COMMENT |
| LOW | skills/serverless-modal/SKILL.md | 92 | ### Step 1: Analyze Task → Estimate Cost → Choose GPU | COMMENT |
| LOW | skills/serverless-modal/SKILL.md | 105 | ### Step 2: Generate Modal Launcher | COMMENT |
| LOW⚡ | skills/serverless-modal/SKILL.md | 242 | ### Step 3: Run | COMMENT |
| 663 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/smart_update_copilot.sh | 156 | # ─── New-skill confirmation state (declined list + group catalog lookup) ────── | COMMENT |
| MEDIUM⚡ | tools/overleaf_setup.sh | 17 | # ── Refuse to run from a non-interactive context (i.e. inside an agent) ──────── | COMMENT |
| MEDIUM⚡ | tools/overleaf_setup.sh | 25 | # ── Args ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/overleaf_setup.sh | 51 | # ── Read token securely (no echo, never enters shell history) ───────────────── | COMMENT |
| MEDIUM⚡ | tools/overleaf_setup.sh | 67 | # ── Clone with token in URL (transient) ─────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/overleaf_setup.sh | 76 | # ── Immediately strip token from remote URL ─────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/overleaf_setup.sh | 80 | # ── Configure credential helper ─────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/overleaf_setup.sh | 90 | # ── Prime credential storage so future pull/push is auth-free ───────────────── | COMMENT |
| MEDIUM⚡ | tools/overleaf_setup.sh | 99 | # ── Clear token from memory ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/overleaf_setup.sh | 102 | # ── Install hard-block pre-commit hook ──────────────────────────────────────── | COMMENT |
| MEDIUM | tools/overleaf_setup.sh | 120 | # ── Verify token was actually stripped from remote ──────────────────────────── | COMMENT |
| MEDIUM | tools/overleaf_setup.sh | 128 | # ── Set local commit identity (best-effort) ─────────────────────────────────── | COMMENT |
| MEDIUM | tools/overleaf_setup.sh | 139 | # ── Final report ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/watchdog.py | 60 | # ── Task registration ──────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/watchdog.py | 135 | # ── Session checks (tmux + screen) ────────────────────────────── | COMMENT |
| MEDIUM | tools/watchdog.py | 153 | # ── GPU checks ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/watchdog.py | 168 | # ── File size checks ───────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tools/watchdog.py | 182 | # ── Task checking logic ───────────────────────────────────────── | COMMENT |
| MEDIUM | tools/watchdog.py | 270 | # ── Loop-liveness check (detect-only) ─────────────────────────── | COMMENT |
| MEDIUM | tools/watchdog.py | 337 | # ── Status output ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/watchdog.py | 388 | # ── Main loop ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/watchdog.py | 438 | # ── CLI ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/smart_update.sh | 39 | # ─── Parse arguments ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/smart_update.sh | 94 | # ─── Resolve paths ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/smart_update.sh | 227 | # ─── Stale-pristine detection ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/smart_update.sh | 241 | # ─── New-skill confirmation state (declined list + group catalog lookup) ────── | COMMENT |
| MEDIUM | tools/convert_skills_to_llm_chat.py | 29 | # ── Codex → llm-chat text replacements ────────────────────────────────── | COMMENT |
| MEDIUM | tools/extract_paper_style.py | 139 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/extract_paper_style.py | 141 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/extract_paper_style.py | 234 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/extract_paper_style.py | 236 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/extract_paper_style.py | 437 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/extract_paper_style.py | 439 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/extract_paper_style.py | 449 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/extract_paper_style.py | 451 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/verify_paper_audits.sh | 37 | # ─── Constants ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/verify_paper_audits.sh | 52 | # ─── Args ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/verify_paper_audits.sh | 90 | # ─── Helpers ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/verify_paper_audits.sh | 135 | # ─── Per-audit verification ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/verify_paper_audits.sh | 419 | # ─── Run all checks ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/verify_paper_audits.sh | 426 | # ─── Write report ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/verify_paper_audits.sh | 454 | # ─── Human-readable summary to stderr ───────────────────────────────────────── | COMMENT |
| MEDIUM | tools/verify_paper_audits.sh | 476 | # ─── Exit ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/overleaf_audit.sh | 19 | # 1. Working tree (excluding .git/ and node_modules/) ───────────────────────── | COMMENT |
| MEDIUM | tools/overleaf_audit.sh | 39 | # 2. Git remote URLs of all sub-repos ───────────────────────────────────────── | COMMENT |
| MEDIUM | tools/overleaf_audit.sh | 58 | # 3. Git history (current repo only — full --all scan can be expensive) ─────── | COMMENT |
| MEDIUM | tools/overleaf_audit.sh | 76 | # 4. Common credential-storage files ────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/verify_papers.py | 102 | # ────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/verify_papers.py | 104 | # ────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/verify_papers.py | 126 | # ────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/verify_papers.py | 128 | # ────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/verify_papers.py | 148 | # ────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/verify_papers.py | 150 | # ────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/verify_papers.py | 189 | # ────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/verify_papers.py | 191 | # ────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/verify_papers.py | 223 | # ────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/verify_papers.py | 225 | # ────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/verify_papers.py | 247 | # ────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/verify_papers.py | 249 | # ────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/verify_papers.py | 290 | # ────────────────────────────────────────────────────────────────────────── | COMMENT |
| 229 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/deepxiv_fetch.py | 39 | def _raise_for_failed_process(proc: subprocess.CompletedProcess[str]) -> None: | CODE |
| LOW | tools/verify_papers.py | 262 | def _verify_arxiv_batch_with_retry(batch: list[str]) -> dict[str, str]: | CODE |
| LOW | tools/research_wiki.py | 563 | def fetch_arxiv_metadata_batch(arxiv_ids: list[str], timeout: float = 30.0) -> dict: | CODE |
| LOW | tools/research_wiki.py | 616 | def _find_existing_page_by_arxiv(wiki_root: Path, arxiv_id: str) -> Path | None: | CODE |
| LOW | tests/test_watchdog_loop.py | 32 | def test_register_loop_requires_fields(self): | CODE |
| LOW | tests/test_watchdog_loop.py | 38 | def test_register_loop_normalizes_and_stamps(self): | CODE |
| LOW | tests/test_watchdog_loop.py | 50 | def test_training_still_requires_session_backcompat(self): | CODE |
| LOW⚡ | tests/test_watchdog_loop.py | 90 | def test_absent_within_grace_pending(self): | CODE |
| LOW⚡ | tests/test_watchdog_loop.py | 97 | def test_absent_past_grace_missing(self): | CODE |
| LOW⚡ | tests/test_watchdog_loop.py | 104 | def test_missing_epoch_failsafe_missing_not_pending(self): | CODE |
| LOW⚡ | tests/test_watchdog_loop.py | 111 | def test_completed_status_suppresses_stale(self): | CODE |
| LOW⚡ | tests/test_watchdog_loop.py | 119 | def test_runstate_all_phases_accepted_completed(self): | CODE |
| LOW⚡ | tests/test_watchdog_loop.py | 128 | def test_unparseable_json_fresh_is_ok_not_stale(self): | CODE |
| LOW⚡ | tests/test_watchdog_loop.py | 134 | def test_detect_only_no_subprocess(self): | CODE |
| LOW | tests/test_codex_install_update.py | 41 | def test_install_aris_codex_dry_run_has_no_project_writes(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_codex_install_update.py | 68 | def test_install_aris_codex_reconcile_and_uninstall(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_codex_install_update.py | 154 | def test_install_aris_codex_uninstall_uses_manifest_repo_root(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_codex_install_update.py | 194 | def test_install_aris_codex_reconcile_removes_stale_links_from_manifest_repo(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_codex_install_update.py | 246 | def test_install_aris_codex_reconcile_accepts_already_deleted_stale_link(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_codex_install_update.py | 286 | def test_smart_update_codex_copy_install_and_symlink_refusal(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_codex_install_update.py | 351 | def test_smart_update_codex_local_uses_default_upstream(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_codex_install_update.py | 362 | def test_smart_update_codex_allows_unrelated_symlinked_skills(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_codex_install_update.py | 375 | def test_smart_update_codex_refuses_aris_symlinked_skills(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_codex_install_update.py | 388 | def test_smart_update_codex_ignores_local_only_shared_reference_failures(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_codex_install_update.py | 415 | def test_smart_update_codex_local_respects_overlay(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_codex_install_update.py | 446 | def test_smart_update_codex_overlay_updates_existing_base_copy(tmp_path: Path) -> None: | CODE |
| LOW | tests/test_codex_install_update.py | 489 | def test_smart_update_codex_overlay_preserves_custom_local_copy(tmp_path: Path) -> None: | CODE |
| LOW⚡ | tests/test_research_wiki_claims.py | 33 | def test_creates_page_with_proof_status_and_provenance(self): | CODE |
| LOW⚡ | tests/test_research_wiki_claims.py | 43 | def test_slug_honored_verbatim(self): | CODE |
| LOW⚡ | tests/test_research_wiki_claims.py | 47 | def test_empirical_status_rejected(self): | CODE |
| LOW⚡ | tests/test_research_wiki_claims.py | 57 | def test_all_proof_statuses_accepted(self): | CODE |
| LOW⚡ | tests/test_research_wiki_claims.py | 62 | def test_dedup_skips_without_update_flag(self): | CODE |
| LOW⚡ | tests/test_research_wiki_claims.py | 67 | def test_update_on_exist_refreshes_status(self): | CODE |
| LOW | tests/test_research_wiki_claims.py | 80 | def test_uninitialized_wiki_raises(self): | CODE |
| LOW | tests/test_reviewer_pins.py | 79 | def test_all_fresh_reviewer_blocks_pin_model_and_floor_effort(): | CODE |
| LOW | tests/test_provenance.py | 16 | def test_model_family_mapping(): | CODE |
| LOW | tests/test_provenance.py | 36 | def test_collision_fails_closed(): | CODE |
| LOW | tests/test_provenance.py | 49 | def test_assert_cross_family_accepts_different(): | CODE |
| LOW | tests/test_provenance.py | 56 | def test_assert_cross_family_rejects_same(): | CODE |
| LOW | tests/test_provenance.py | 71 | def test_assert_cross_family_deterministic_always_ok(): | CODE |
| LOW | tests/test_provenance.py | 78 | def test_assert_cross_family_fails_closed_on_unknown(): | CODE |
| LOW | tests/test_provenance.py | 92 | def test_stamp_refuses_same_family(): | CODE |
| LOW | tests/test_provenance.py | 106 | def test_stamp_refuses_empty_verdict(): | CODE |
| LOW | tests/test_provenance.py | 117 | def test_stamp_and_read_roundtrip(): | CODE |
| LOW | tests/test_provenance.py | 137 | def test_stamp_provisional_records_same_family_without_auto_curation_authority(): | CODE |
| LOW | tests/test_provenance.py | 158 | def test_stamp_provisional_refuses_cross_family_and_unknown_models(): | CODE |
| LOW | tests/test_provenance.py | 174 | def test_stamp_dir_hashes_skill_md(): | CODE |
| LOW | tests/test_provenance.py | 212 | def test_spoofed_sidecar_status_cannot_authorize_curation(): | CODE |
| LOW | tests/test_provenance.py | 235 | def test_stale_stamp_after_edit_is_not_curatable(): | CODE |
| LOW | tests/test_provenance.py | 245 | def test_provisional_cannot_overwrite_accepted(): | CODE |
| LOW | tests/test_provenance.py | 258 | def test_legitimate_deterministic_stamp_still_curatable(): | CODE |
| LOW | tests/test_research_wiki_fetch_arxiv_metadata.py | 100 | def test_retries_on_rate_exceeded_body_then_succeeds(monkeypatch): | CODE |
| LOW | tests/test_research_wiki_fetch_arxiv_metadata.py | 121 | def test_raises_after_three_rate_exceeded_bodies(monkeypatch): | CODE |
| LOW | tests/test_research_wiki_fetch_arxiv_metadata.py | 145 | def test_malformed_xml_raises(monkeypatch): | CODE |
| LOW | tests/test_research_wiki_fetch_arxiv_metadata.py | 193 | def test_sends_descriptive_user_agent(monkeypatch): | CODE |
| LOW⚡ | tests/test_research_wiki_fetch_arxiv_metadata.py | 206 | def test_user_agent_includes_contact_when_env_set(monkeypatch): | CODE |
| LOW⚡ | tests/test_research_wiki_fetch_arxiv_metadata.py | 219 | def test_batch_fetch_one_request_many_entries(monkeypatch): | CODE |
| LOW | tests/test_research_wiki_fetch_arxiv_metadata.py | 237 | def test_batch_fetch_empty_input_no_request(monkeypatch): | CODE |
| LOW⚡ | tests/test_research_wiki_experiments.py | 33 | def test_creates_page_with_verdict_and_confidence(self): | CODE |
| LOW⚡ | tests/test_research_wiki_experiments.py | 42 | def test_invalid_verdict_rejected(self): | CODE |
| 418 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | tools/verify_papers.py | 41 | {"id": "p1", "arxiv_id": "2307.03172", "doi": null, "title": "Lost in the Middle"}, | STRING |
| HIGH⚡ | tools/verify_papers.py | 42 | {"id": "p2", "arxiv_id": null, "doi": "10.1016/...", "title": "AgentAI"}, | STRING |
| HIGH⚡ | tools/verify_papers.py | 43 | {"id": "p3", "arxiv_id": null, "doi": null, "title": "Some Paper"} | STRING |
| HIGH | tools/verify_papers.py | 56 | {"id": "p3", "status": "unverified", "method": null, "reason": "no_arxiv_no_doi_no_s2_match"}, | STRING |
| HIGH | tools/verify_papers.py | 57 | {"id": "p4", "status": "verify_pending", "method": null, "reason": "transient_api_failure"} | STRING |
| HIGH⚡ | tests/test_research_wiki_helper_resolution.py | 42 | cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1 | CODE |
| HIGH⚡ | tests/test_research_wiki_helper_resolution.py | 43 | ARIS_REPO="${ARIS_REPO:-$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null)}" | CODE |
| HIGH⚡ | tests/test_research_wiki_helper_resolution.py | 45 | ARIS_REPO=$(cat "$HOME/.aris/repo" 2>/dev/null) || true | CODE |
| HIGH⚡ | tests/test_research_wiki_helper_resolution.py | 52 | python3 "$WIKI_SCRIPT" init research-wiki || exit 1 | CODE |
| HIGH⚡ | tests/test_research_wiki_helper_resolution.py | 53 | test -f research-wiki/query_pack.md || exit 1 | CODE |
| HIGH⚡ | tests/test_research_wiki_helper_resolution.py | 54 | test -f research-wiki/log.md || exit 1 | CODE |
| HIGH⚡ | tests/test_research_wiki_helper_resolution.py | 55 | test -f research-wiki/graph/edges.jsonl || exit 1 | CODE |
| HIGH | tests/test_install_aris_replace_link.py | 7 | `2>/dev/null || true`), and the pattern matched the name against field 2 (kind) | STRING |
| HIGH⚡ | tests/test_iteration_log.py | 78 | # omitted direction → field absent (not null) | COMMENT |
| HIGH | tests/test_codex_image2_server.py | 82 | < "processId": null, | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/style_check.py | 873 | while (n && n.nodeType === 1) { | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/style_check.py | 876 | if (n.hasAttribute && n.hasAttribute('data-color-exempt')) return true; | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/style_check.py | 877 | if (n.getAttribute && n.getAttribute('data-source') === 'paper') | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/style_check.py | 879 | const comp = n.getAttribute && n.getAttribute('data-component'); | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/style_check.py | 881 | if (n.classList && n.classList.contains('qr-block')) return true; | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/style_check.py | 920 | colors.push({prop: 'color', rgba: cs.color}); | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/style_check.py | 921 | colors.push({prop: 'background-color', rgba: cs.backgroundColor}); | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/style_check.py | 922 | colors.push({prop: 'border-top-color', rgba: cs.borderTopColor}); | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/style_check.py | 923 | colors.push({prop: 'border-right-color', rgba: cs.borderRightColor}); | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/style_check.py | 924 | colors.push({prop: 'border-bottom-color', rgba: cs.borderBottomColor}); | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/style_check.py | 925 | colors.push({prop: 'border-left-color', rgba: cs.borderLeftColor}); | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/style_check.py | 926 | colors.push({prop: 'fill', rgba: cs.fill}); | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/style_check.py | 927 | colors.push({prop: 'stroke', rgba: cs.stroke}); | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/style_check.py | 932 | if (!m || m.a < 0.5) return null; // transparent-ish: not a dark slab | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/style_check.py | 932 | if (!m || m.a < 0.5) return null; // transparent-ish: not a dark slab | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/style_check.py | 938 | if (!mm) return null; | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/style_check.py | 940 | if (p.length < 3) return null; | CODE |
| HIGH | skills/paper-poster-html/scripts/style_check.py | 900 | const onscreen = r.width > 0 && r.height > 0; | CODE |
| HIGH | skills/paper-poster-html/scripts/style_check.py | 908 | if (L !== null && L < 0.18) { | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/_posterly/render.py | 97 | "|| (window.MathJax && Object.keys(window.MathJax).length > 0))" | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/_posterly/render.py | 105 | "() => !!(window.MathJax && window.MathJax.startup " | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/_posterly/render.py | 121 | f" ? MathJax.typesetPromise() : null))" | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/_posterly/render.py | 136 | "() => document.fonts && document.fonts.ready " | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/_posterly/render.py | 159 | " const txt = document.body && document.body.innerText || '';" | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/_posterly/render.py | 164 | " return {has_mjx, has_tex: has_dollar || has_ddollar " | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/_posterly/render.py | 165 | " || has_paren || has_brack};" | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/_posterly/polish.py | 62 | figures.push({ | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/_posterly/polish.py | 71 | natural_w: img.naturalWidth || 0, | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/_posterly/polish.py | 72 | natural_h: img.naturalHeight || 0, | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/_posterly/polish.py | 87 | figures.push({ | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/_posterly/polish.py | 96 | natural_w: img.naturalWidth || 0, | CODE |
| HIGH⚡ | skills/paper-poster-html/scripts/_posterly/polish.py | 97 | natural_h: img.naturalHeight || 0, | CODE |
| HIGH | skills/paper-poster-html/scripts/_posterly/polish.py | 111 | if (!txt || txt.length > 80) return; | CODE |
| HIGH | skills/paper-poster-html/scripts/_posterly/polish.py | 113 | orphans.push({ | CODE |
| HIGH | skills/paper-poster-html/scripts/_posterly/polish.py | 133 | const gapPx = parseFloat(cs.rowGap || cs.gap || '0') || 0; | CODE |
| HIGH | skills/paper-poster-html/scripts/_posterly/polish.py | 144 | cols.push({ | CODE |
| HIGH | skills/paper-poster-html/scripts/_posterly/polish.py | 164 | if (jc.indexOf('space') !== -1 || jc === 'center' | CODE |
| HIGH | skills/paper-poster-html/scripts/_posterly/polish.py | 178 | while (el && el !== card) { | CODE |
| HIGH | skills/paper-poster-html/scripts/_posterly/polish.py | 202 | if (r && r.height > 0 && r.bottom > maxB) maxB = r.bottom; | CODE |
| HIGH | skills/paper-poster-html/scripts/_posterly/polish.py | 224 | cards.push({ | CODE |
| HIGH | skills/paper-poster-html/scripts/_posterly/polish.py | 244 | if (!parent || seenFlexBr.has(parent)) return; | CODE |
| HIGH | skills/paper-poster-html/scripts/_posterly/polish.py | 248 | flexbr.push({ | CODE |
| HIGH | skills/experiment-queue/scripts/queue_manager.py | 34 | "completed": null, | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | README.md | 331 | - **2026-05-02** —  🛠️🔗 **Tools-infrastructure migration s | CODE |
| MEDIUM | tools/arxiv_fetch.py | 245 | # Defensive aliases — models frequently hallucinate `get` / `fetch` | COMMENT |
| MEDIUM | tools/meta_opt/check_ready.sh | 58 | # Model-delta trigger (harness diet): a model bump makes existing scaffolding a | COMMENT |
| MEDIUM | docs/tutorials/agentic_rl_tutorial.html | 328 | <li><a href="#1-直觉从-rlhf-到-agentic-rl">§1 直觉:从 RLHF 到 Agentic RL</a> | CODE |
| MEDIUM | docs/tutorials/agentic_rl_tutorial.html | 332 | <li><a href="#13-agentic-rl-与三类-rl-邻居的关系">1.3 Agentic RL 与三类 RL 邻居的关系</a></li> | CODE |
| MEDIUM | docs/tutorials/agentic_rl_tutorial.html | 370 | <li><a href="#6-specific-algorithms代表性-agentic-rl-papers">§6 Specific algorithms(代表性 Agentic RL papers)</a> | CODE |
| MEDIUM | docs/tutorials/agentic_rl_tutorial.html | 412 | <li><a href="#91-agentic-rl-的七宗罪">9.1 Agentic RL 的"七宗罪"</a></li> | CODE |
| MEDIUM | docs/tutorials/kl_divergence_rlhf_tutorial_en.html | 744 | <pre><code class="language-python"># Per-token KL with action mask (chat / agentic RL setting) | CODE |
| MEDIUM | docs/tutorials/self_evolving_agents_tutorial.html | 417 | <li><a href="#127-hallucination-compounding独立-reviewer-也可能共幻觉">12.7 Hallucination Compounding(独立 reviewer 也可能共幻觉)</a></l | CODE |
| MEDIUM | docs/tutorials/self_evolving_agents_tutorial_en.md | 900 | ### 12.7 Hallucination Compounding (independent reviewers can co-hallucinate) | COMMENT |
| MEDIUM⚡ | …cs/tutorials/multi_agent_long_horizon_tutorial_en.html | 331 | <li><a href="#12-multi-agent-vs-long-horizon-vs-agentic">1.2 multi-agent vs long-horizon vs agentic</a></li> | CODE |
| MEDIUM⚡ | …cs/tutorials/multi_agent_long_horizon_tutorial_en.html | 335 | <li><a href="#2-core-multi-agent-collaboration-paradigms">§2 Core multi-agent collaboration paradigms</a> | CODE |
| MEDIUM⚡ | …cs/tutorials/multi_agent_long_horizon_tutorial_en.html | 338 | <li><a href="#22-autogen-groupchat--a-general-multi-agent-framework">2.2 AutoGen: GroupChat / a general multi-agent fram | CODE |
| MEDIUM⚡ | …cs/tutorials/multi_agent_long_horizon_tutorial_en.html | 344 | <li><a href="#3-multi-agent-debate-from-society-of-mind-to-modern-implementations">§3 Multi-agent debate: from Society o | CODE |
| MEDIUM⚡ | …cs/tutorials/multi_agent_long_horizon_tutorial_en.html | 405 | <li><a href="#10-engineering-practice-subagent-orchestration--budget-tracking">§10 Engineering practice: subagent orches | CODE |
| MEDIUM⚡ | …cs/tutorials/multi_agent_long_horizon_tutorial_en.html | 409 | <li><a href="#111-cost-model-for-multi-agent-collaboration">11.1 Cost model for multi-agent collaboration</a></li> | CODE |
| MEDIUM⚡ | …cs/tutorials/multi_agent_long_horizon_tutorial_en.html | 416 | <li><a href="#121-multi-agent-vs-single-agent--reflection">12.1 Multi-agent vs single-agent + reflection</a></li> | CODE |
| MEDIUM | docs/tutorials/multi_agent_long_horizon_tutorial.md | 50 | ### 1.2 multi-agent vs long-horizon vs agentic | COMMENT |
| MEDIUM | docs/tutorials/multi_agent_long_horizon_tutorial.md | 73 | ## §2 multi-agent 协作核心范式 | COMMENT |
| MEDIUM | docs/tutorials/multi_agent_long_horizon_tutorial.md | 95 | ### 2.2 AutoGen:GroupChat / 通用 multi-agent 框架 | COMMENT |
| MEDIUM | docs/tutorials/multi_agent_long_horizon_tutorial.md | 198 | ## §3 multi-agent debate:从 Society of Mind 到现代实现 | COMMENT |
| MEDIUM | docs/tutorials/multi_agent_long_horizon_tutorial.md | 945 | ## §10 工程实践:subagent orchestration + budget tracking | COMMENT |
| MEDIUM | docs/tutorials/multi_agent_long_horizon_tutorial.md | 1008 | ### 11.1 multi-agent 协作 cost 模型 | COMMENT |
| MEDIUM | docs/tutorials/multi_agent_long_horizon_tutorial.md | 1060 | ### 12.1 multi-agent vs single-agent + reflection | COMMENT |
| MEDIUM | docs/tutorials/kl_divergence_rlhf_tutorial_en.md | 676 | # Per-token KL with action mask (chat / agentic RL setting) | COMMENT |
| MEDIUM⚡ | docs/tutorials/multi_agent_long_horizon_tutorial.html | 331 | <li><a href="#12-multi-agent-vs-long-horizon-vs-agentic">1.2 multi-agent vs long-horizon vs agentic</a></li> | CODE |
| MEDIUM⚡ | docs/tutorials/multi_agent_long_horizon_tutorial.html | 335 | <li><a href="#2-multi-agent-协作核心范式">§2 multi-agent 协作核心范式</a> | CODE |
| MEDIUM⚡ | docs/tutorials/multi_agent_long_horizon_tutorial.html | 338 | <li><a href="#22-autogengroupchat--通用-multi-agent-框架">2.2 AutoGen:GroupChat / 通用 multi-agent 框架</a></li> | CODE |
| MEDIUM⚡ | docs/tutorials/multi_agent_long_horizon_tutorial.html | 344 | <li><a href="#3-multi-agent-debate从-society-of-mind-到现代实现">§3 multi-agent debate:从 Society of Mind 到现代实现</a> | CODE |
| MEDIUM⚡ | docs/tutorials/multi_agent_long_horizon_tutorial.html | 405 | <li><a href="#10-工程实践subagent-orchestration--budget-tracking">§10 工程实践:subagent orchestration + budget tracking</a> | CODE |
| MEDIUM⚡ | docs/tutorials/multi_agent_long_horizon_tutorial.html | 409 | <li><a href="#111-multi-agent-协作-cost-模型">11.1 multi-agent 协作 cost 模型</a></li> | CODE |
| MEDIUM⚡ | docs/tutorials/multi_agent_long_horizon_tutorial.html | 416 | <li><a href="#121-multi-agent-vs-single-agent--reflection">12.1 multi-agent vs single-agent + reflection</a></li> | CODE |
| MEDIUM | docs/tutorials/agent_foundations_tutorial.html | 375 | <li><a href="#71-subagent-orchestration">7.1 Subagent orchestration</a></li> | CODE |
| MEDIUM | docs/tutorials/agentic_rl_tutorial_en.html | 328 | <li><a href="#1-intuition-from-rlhf-to-agentic-rl">§1 Intuition: from RLHF to Agentic RL</a> | CODE |
| MEDIUM | docs/tutorials/agentic_rl_tutorial_en.html | 332 | <li><a href="#13-agentic-rl-relative-to-three-rl-neighbors">1.3 Agentic RL relative to three RL neighbors</a></li> | CODE |
| MEDIUM | docs/tutorials/agentic_rl_tutorial_en.html | 370 | <li><a href="#6-specific-algorithms-representative-agentic-rl-papers">§6 Specific algorithms (representative Agentic RL | CODE |
| MEDIUM | docs/tutorials/agentic_rl_tutorial_en.html | 412 | <li><a href="#91-the-seven-deadly-sins-of-agentic-rl">9.1 The "seven deadly sins" of Agentic RL</a></li> | CODE |
| MEDIUM | docs/tutorials/multi_agent_long_horizon_tutorial_en.md | 50 | ### 1.2 multi-agent vs long-horizon vs agentic | COMMENT |
| MEDIUM | docs/tutorials/multi_agent_long_horizon_tutorial_en.md | 73 | ## §2 Core multi-agent collaboration paradigms | COMMENT |
| MEDIUM | docs/tutorials/multi_agent_long_horizon_tutorial_en.md | 97 | ### 2.2 AutoGen: GroupChat / a general multi-agent framework | COMMENT |
| MEDIUM | docs/tutorials/multi_agent_long_horizon_tutorial_en.md | 949 | ## §10 Engineering practice: subagent orchestration + budget tracking | COMMENT |
| MEDIUM | docs/tutorials/multi_agent_long_horizon_tutorial_en.md | 1012 | ### 11.1 Cost model for multi-agent collaboration | COMMENT |
| MEDIUM | docs/tutorials/agent_foundations_tutorial.md | 609 | ### 7.1 Subagent orchestration | COMMENT |
| MEDIUM | docs/tutorials/kl_divergence_rlhf_tutorial.md | 676 | # Per-token KL with action mask (chat / agentic RL setting) | COMMENT |
| MEDIUM | docs/tutorials/agent_foundations_tutorial_en.html | 375 | <li><a href="#71-subagent-orchestration">7.1 Subagent orchestration</a></li> | CODE |
| MEDIUM | docs/tutorials/reasoning_models_tutorial_en.html | 336 | <li><a href="#21-chain-of-thought-wei-et-al-neurips-2022-arxiv-220111903">2.1 Chain-of-Thought (Wei et al., NeurIPS 2022 | CODE |
| MEDIUM | docs/tutorials/reasoning_models_tutorial_en.html | 758 | state: str # partial reasoning trace | CODE |
| MEDIUM | docs/tutorials/agent_foundations_tutorial_en.md | 609 | ### 7.1 Subagent orchestration | COMMENT |
| MEDIUM | docs/tutorials/reasoning_models_tutorial.html | 336 | <li><a href="#21-chain-of-thought-wei-et-al-neurips-2022-arxiv-220111903">2.1 Chain-of-Thought (Wei et al., NeurIPS 2022 | CODE |
| MEDIUM | docs/tutorials/kl_divergence_rlhf_tutorial.html | 744 | <pre><code class="language-python"># Per-token KL with action mask (chat / agentic RL setting) | CODE |
| MEDIUM | docs/tutorials/reasoning_models_tutorial_en.md | 570 | state: str # partial reasoning trace | CODE |
| MEDIUM | docs/tutorials/self_evolving_agents_tutorial_en.html | 402 | <li><a href="#11-inference-time-orchestration-like-aris-vs-training-time-meta-learning-like-native-evolution">§11 Infere | CODE |
| MEDIUM | docs/tutorials/self_evolving_agents_tutorial_en.html | 417 | <li><a href="#127-hallucination-compounding-independent-reviewers-can-co-hallucinate">12.7 Hallucination Compounding (in | CODE |
| MEDIUM | skills/paper-poster-html/scripts/run_gates.py | 59 | # Canonical gate order. The orchestration depends on this list order, so | COMMENT |
| MEDIUM | skills/meta-optimize/SKILL.md | 402 | Inspired by [Meta-Harness](https://arxiv.org/abs/2603.28052) (Lee et al., 2026) — end-to-end optimization of model harne | CODE |
| MEDIUM | skills/skills-codex/meta-optimize/SKILL.md | 313 | Inspired by [Meta-Harness](https://arxiv.org/abs/2603.28052) (Lee et al., 2026) — end-to-end optimization of model harne | CODE |
| MEDIUM | skills/skills-codex/render-html/SKILL.md | 39 | - **Defense-in-depth XSS sanitization.** The helper strips `<script>`/`<style>`/`<iframe>`/`<object>`/`<embed>`/`<form>` | CODE |
| MEDIUM | skills/skills-codex/render-html/scripts/render_html.py | 85 | # Even if the workflow LLM hallucinates these, they never reach output. | COMMENT |
| MEDIUM | skills/render-html/SKILL.md | 39 | - **Defense-in-depth XSS sanitization.** The helper strips `<script>`/`<style>`/`<iframe>`/`<object>`/`<embed>`/`<form>` | CODE |
| MEDIUM | skills/render-html/scripts/render_html.py | 90 | # Even if the workflow LLM hallucinates these, they never reach output. | COMMENT |
| 1 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/forensics_gate.py | 227 | except Exception as e: | CODE |
| LOW⚡ | tools/watchdog.py | 164 | except Exception: | CODE |
| LOW⚡ | tools/watchdog.py | 178 | except Exception: | CODE |
| LOW | tools/watchdog.py | 213 | except Exception: | CODE |
| LOW | tools/watchdog.py | 380 | except Exception: | CODE |
| LOW | tools/watchdog.py | 427 | except Exception as e: | CODE |
| LOW | tools/semantic_scholar_fetch.py | 99 | except Exception: | CODE |
| LOW | tools/semantic_scholar_fetch.py | 432 | except Exception as exc: | CODE |
| MEDIUM | tools/semantic_scholar_fetch.py | 433 | print(f"Error: {exc}", file=sys.stderr) | CODE |
| LOW | tools/skill_picker.py | 219 | except Exception as exc: # curses import/terminal failures → fallback | CODE |
| LOW | tools/openalex_fetch.py | 114 | except Exception as e: | CODE |
| MEDIUM | tools/openalex_fetch.py | 115 | print(f"Error fetching from OpenAlex: {e}", file=sys.stderr) | CODE |
| LOW | tools/openalex_fetch.py | 320 | except Exception as e: | STRING |
| MEDIUM | tools/openalex_fetch.py | 321 | print(f"Error: {e}", file=sys.stderr) | STRING |
| MEDIUM | tools/convert_skills_to_llm_chat.py | 241 | print("Error: refusing to convert the repo's canonical skills/ tree in place.") | CODE |
| MEDIUM | tools/convert_skills_to_llm_chat.py | 246 | print(f"Error: source directory not found: {source_dir}") | CODE |
| LOW | tools/extract_paper_style.py | 170 | except Exception: | CODE |
| LOW | tools/extract_paper_style.py | 201 | except Exception as e: | CODE |
| LOW | tools/extract_paper_style.py | 215 | except Exception as e: | CODE |
| LOW | tools/extract_paper_style.py | 533 | except Exception as e: | CODE |
| LOW | tools/exa_search.py | 419 | except Exception as exc: | CODE |
| MEDIUM | tools/exa_search.py | 420 | print(f"Error: {exc}", file=sys.stderr) | CODE |
| LOW | tools/verify_paper_audits.sh | 211 | except Exception: | CODE |
| LOW | tools/verify_paper_audits.sh | 306 | except Exception as e: | CODE |
| LOW⚡ | tools/verify_paper_audits.sh | 318 | except Exception as e: | CODE |
| LOW⚡ | tools/verify_paper_audits.sh | 326 | except Exception as e: | CODE |
| LOW⚡ | tools/verify_paper_audits.sh | 333 | except Exception as e: # any analysis crash is a BLOCKING schema failure, never fail-open | CODE |
| LOW | tools/verify_papers.py | 565 | except Exception as e: | CODE |
| LOW⚡ | aris-monitor/scanner.py | 135 | except Exception: | CODE |
| LOW⚡ | aris-monitor/scanner.py | 138 | except Exception: | CODE |
| LOW | aris-monitor/scanner.py | 156 | except Exception: | CODE |
| LOW | aris-monitor/scanner.py | 180 | except Exception: | CODE |
| LOW | aris-monitor/scanner.py | 203 | except Exception: | CODE |
| LOW | aris-monitor/scanner.py | 225 | except Exception: | CODE |
| LOW | aris-monitor/scanner.py | 241 | except Exception: | CODE |
| LOW | aris-monitor/scanner.py | 378 | except Exception: | CODE |
| LOW | aris-monitor/scanner.py | 384 | except Exception: | CODE |
| LOW | aris-monitor/widget.py | 145 | except Exception: | CODE |
| LOW | aris-monitor/widget.py | 150 | except Exception: | CODE |
| LOW | aris-monitor/widget.py | 189 | except Exception: | CODE |
| LOW | aris-monitor/widget.py | 226 | except Exception: | CODE |
| LOW | aris-monitor/widget.py | 243 | except Exception: | CODE |
| LOW | aris-monitor/widget.py | 308 | except Exception as e: # never let a focus attempt crash the panel | CODE |
| LOW | aris-monitor/widget.py | 363 | except Exception as ex: | CODE |
| MEDIUM | aris-monitor/widget.py | 305 | def work(): | CODE |
| LOW | aris-monitor/ticker.py | 73 | except Exception: | CODE |
| LOW | aris-monitor/focus.py | 51 | except Exception: | CODE |
| LOW | aris-monitor/focus.py | 73 | except Exception: | CODE |
| LOW | aris-monitor/focus.py | 87 | except Exception as e: # noqa: BLE001 -- best-effort, never raise to the UI | CODE |
| LOW | tests/test_provenance.py | 281 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | tests/test_verify_paper_audits.py | 194 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | tests/test_corpus_write_guard.py | 73 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | tests/test_manual_review_integration.py | 131 | except Exception as e: | CODE |
| LOW | tests/test_capture_filter.py | 83 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | tests/test_threat_scan.py | 136 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | tests/_llm_chat_helpers.py | 69 | except Exception as e: | CODE |
| LOW | tests/test_run_state.py | 284 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | tests/_minimax_helpers.py | 70 | except Exception as e: | CODE |
| LOW | tests/test_evidence_check.py | 186 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | docs/tutorials/self_evolving_agents_tutorial.html | 1307 | except Exception: | CODE |
| 57 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/evidence_check.py | 32 | CODE | |
| LOW | tools/evidence_check.py | 37 | CODE | |
| LOW | tools/iteration_log.py | 27 | CODE | |
| LOW | tools/run_state.py | 39 | CODE | |
| LOW | tools/paper_illustration_image2.py | 30 | CODE | |
| LOW | tools/check_skills_inventory.py | 4 | CODE | |
| LOW | tools/semantic_scholar_fetch.py | 45 | CODE | |
| LOW | tools/convert_skills_to_llm_chat.py | 20 | CODE | |
| LOW | tools/convert_skills_to_llm_chat.py | 24 | CODE | |
| LOW | tools/extract_paper_style.py | 110 | CODE | |
| LOW | tools/extract_paper_style.py | 115 | CODE | |
| LOW | tools/exa_search.py | 59 | CODE | |
| LOW | tools/deepxiv_fetch.py | 4 | CODE | |
| LOW | tools/capture_filter.py | 29 | CODE | |
| LOW | tools/verify_papers.py | 84 | CODE | |
| LOW | tools/figure_renderer.py | 36 | CODE | |
| LOW | tools/research_wiki.py | 45 | CODE | |
| LOW | tools/provenance.py | 20 | CODE | |
| LOW | tools/generate_codex_claude_review_overrides.py | 4 | CODE | |
| LOW | tools/threat_scan.py | 36 | CODE | |
| LOW | tools/arxiv_fetch.py | 18 | CODE | |
| LOW | tools/experiment_queue/build_manifest.py | 17 | CODE | |
| LOW | tools/experiment_queue/queue_manager.py | 17 | CODE | |
| LOW | aris-monitor/scanner.py | 49 | CODE | |
| LOW | aris-monitor/widget.py | 35 | CODE | |
| LOW | aris-monitor/ticker.py | 18 | CODE | |
| LOW | aris-monitor/focus.py | 26 | CODE | |
| LOW | tests/test_watchdog_loop.py | 8 | CODE | |
| LOW | tests/test_codex_install_update.py | 1 | CODE | |
| LOW | tests/test_research_wiki_claims.py | 9 | CODE | |
| LOW | tests/test_research_wiki_experiments.py | 9 | CODE | |
| LOW | tests/test_minimax_chat_server.py | 6 | CODE | |
| LOW | tests/test_research_wiki_ideas.py | 9 | CODE | |
| LOW | tests/test_install_aris_ps1.py | 1 | CODE | |
| LOW | tests/test_iteration_log.py | 2 | CODE | |
| LOW | tests/test_verify_paper_audits.py | 3 | CODE | |
| LOW | tests/test_codex_image2_server.py | 3 | CODE | |
| LOW | tests/test_codex_skill_mirror.py | 1 | CODE | |
| LOW | tests/test_manual_review_integration.py | 16 | CODE | |
| LOW | tests/test_llm_chat_server.py | 13 | CODE | |
| LOW | tests/test_claude_review_parse.py | 13 | CODE | |
| LOW | tests/test_watchdog.py | 14 | CODE | |
| LOW | tests/test_feishu_bridge_server.py | 16 | CODE | |
| LOW | tests/test_copilot_install.py | 2 | CODE | |
| LOW | tests/test_trigger_eval.py | 11 | CODE | |
| LOW | tests/test_trigger_eval.py | 12 | CODE | |
| LOW | tests/_feishu_bridge_helpers.py | 9 | CODE | |
| LOW | tests/test_mainline_large_payload_prompts.py | 1 | CODE | |
| LOW | templates/claude-hooks/corpus_write_guard.py | 32 | CODE | |
| LOW | skills/paper-poster-html/scripts/extract_pdf_figures.py | 34 | CODE | |
| LOW | skills/paper-poster-html/scripts/preprocess_figures.py | 24 | CODE | |
| LOW | skills/paper-poster-html/scripts/render_preview.py | 18 | CODE | |
| LOW | skills/paper-poster-html/scripts/asset_check.py | 45 | CODE | |
| LOW | skills/paper-poster-html/scripts/run_gates.py | 36 | CODE | |
| LOW | skills/paper-poster-html/scripts/poster_check.py | 24 | CODE | |
| LOW | skills/paper-poster-html/scripts/style_check.py | 38 | CODE | |
| LOW | skills/paper-poster-html/scripts/_posterly/measure.py | 17 | CODE | |
| LOW | skills/paper-poster-html/scripts/_posterly/render.py | 20 | CODE | |
| LOW | skills/paper-poster-html/scripts/_posterly/render.py | 24 | CODE | |
| LOW | …ls/paper-poster-html/scripts/_posterly/verify_final.py | 20 | CODE | |
| 15 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/run_state.py | 324 | CODE | |
| LOW | tools/watchdog.py | 357 | CODE | |
| LOW | tools/watchdog.py | 391 | CODE | |
| LOW | tools/skill_picker.py | 33 | CODE | |
| LOW | tools/skill_picker.py | 139 | CODE | |
| LOW | tools/skill_picker.py | 142 | CODE | |
| LOW | tools/openalex_fetch.py | 212 | CODE | |
| LOW | tools/extract_paper_style.py | 462 | CODE | |
| LOW | tools/exa_search.py | 109 | CODE | |
| LOW | tools/verify_papers.py | 262 | CODE | |
| LOW | tools/verify_papers.py | 315 | CODE | |
| LOW | tools/verify_papers.py | 358 | CODE | |
| LOW | tools/research_wiki.py | 108 | CODE | |
| LOW | tools/research_wiki.py | 137 | CODE | |
| LOW | tools/research_wiki.py | 206 | CODE | |
| LOW | tools/research_wiki.py | 706 | CODE | |
| LOW | tools/research_wiki.py | 889 | CODE | |
| LOW | tools/research_wiki.py | 1107 | CODE | |
| LOW | tools/research_wiki.py | 1278 | CODE | |
| LOW | tools/research_wiki.py | 1455 | CODE | |
| LOW | tools/research_wiki.py | 234 | CODE | |
| LOW | tools/provenance.py | 253 | CODE | |
| LOW | tools/threat_scan.py | 116 | CODE | |
| LOW | tools/meta_opt/trigger_eval.py | 116 | CODE | |
| LOW | tools/meta_opt/trigger_eval.py | 216 | CODE | |
| LOW | tests/test_reviewer_pins.py | 54 | CODE | |
| LOW | tests/test_argument_hint_lint.py | 55 | CODE | |
| LOW | tests/test_codex_skill_mirror.py | 49 | CODE | |
| LOW | tests/test_manual_review_integration.py | 136 | CODE | |
| LOW | tests/test_claude_review_overlay.py | 32 | CODE | |
| LOW | tests/_llm_chat_helpers.py | 27 | CODE | |
| LOW | tests/_llm_chat_helpers.py | 76 | CODE | |
| LOW | tests/test_manual_review.py | 279 | CODE | |
| LOW | tests/test_manual_review.py | 350 | CODE | |
| LOW | tests/test_manual_review.py | 502 | CODE | |
| LOW | tests/test_manual_review.py | 566 | CODE | |
| LOW | tests/test_manual_review.py | 645 | CODE | |
| LOW | tests/test_manual_review.py | 702 | CODE | |
| LOW | tests/_minimax_helpers.py | 74 | CODE | |
| LOW | skills/paper-poster-html/scripts/extract_pdf_figures.py | 339 | CODE | |
| LOW | skills/paper-poster-html/scripts/preprocess_figures.py | 153 | CODE | |
| LOW | skills/paper-poster-html/scripts/style_check.py | 274 | CODE | |
| LOW | skills/paper-poster-html/scripts/style_check.py | 337 | CODE | |
| LOW | skills/paper-poster-html/scripts/style_check.py | 427 | CODE | |
| LOW | skills/paper-poster-html/scripts/style_check.py | 1136 | CODE | |
| LOW | skills/paper-poster-html/scripts/style_check.py | 351 | CODE | |
| LOW | skills/paper-poster-html/scripts/_posterly/measure.py | 140 | CODE | |
| LOW | skills/paper-poster-html/scripts/_posterly/polish.py | 261 | CODE | |
| LOW | skills/paper-poster-html/scripts/_posterly/canvas.py | 112 | CODE | |
| LOW | skills/figure-spec/scripts/figure_renderer.py | 115 | CODE | |
| LOW | skills/figure-spec/scripts/figure_renderer.py | 162 | CODE | |
| LOW | skills/figure-spec/scripts/figure_renderer.py | 340 | CODE | |
| LOW | skills/skills-codex/render-html/scripts/render_html.py | 252 | CODE | |
| LOW | skills/skills-codex/render-html/scripts/render_html.py | 489 | CODE | |
| LOW | skills/skills-codex/render-html/scripts/render_html.py | 555 | CODE | |
| LOW | skills/skills-codex/render-html/scripts/render_html.py | 638 | CODE | |
| LOW | skills/experiment-queue/scripts/build_manifest.py | 74 | CODE | |
| LOW | skills/experiment-queue/scripts/queue_manager.py | 187 | CODE | |
| LOW | skills/experiment-queue/scripts/queue_manager.py | 303 | CODE | |
| LOW | skills/render-html/scripts/render_html.py | 272 | CODE | |
| 17 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/tutorials/vlm_multimodal_tutorial_en.md | 11 | 4. **LLaVA = projector + 2-stage train**: Liu et al. 2023 (NeurIPS) use a **lightweight MLP projector** to project froze | CODE |
| HIGH | docs/tutorials/vlm_multimodal_tutorial_en.md | 446 | - Use 158K visual instructions generated by GPT-4 (LLaVA-Instruct) | CODE |
| HIGH | docs/tutorials/vlm_multimodal_tutorial_en.md | 1206 | <summary>Q18. Why is much visual instruction-tuning data generated by GPT-4?</summary> | CODE |
| HIGH | docs/tutorials/reasoning_models_tutorial_en.html | 722 | <ul><li>Filtered by three criteria: difficulty, diversity, quality</li><li>Each sample: question + reasoning trace (gene | CODE |
| HIGH | docs/tutorials/vlm_multimodal_tutorial_en.html | 462 | <ol><li><strong>Vision encoder = ViT-dominated</strong>: Dosovitskiy et al. 2021 (ICLR) slice images into $P\times P$ pa | CODE |
| HIGH | docs/tutorials/vlm_multimodal_tutorial_en.html | 703 | <ul><li>Use 158K visual instructions generated by GPT-4 (LLaVA-Instruct)</li><li>Unfreeze projector + LLM; <strong>visio | CODE |
| HIGH | docs/tutorials/vlm_multimodal_tutorial_en.html | 1091 | <summary>Q18. Why is much visual instruction-tuning data generated by GPT-4?</summary> | CODE |
| HIGH | docs/tutorials/reasoning_models_tutorial_en.md | 496 | - Each sample: question + reasoning trace (generated by Gemini Thinking) + answer | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/evidence_check.py | 41 | COMMENT | |
| LOW | tools/install_aris_copilot.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tools/install_aris_copilot.sh | 21 | # | COMMENT |
| LOW | tools/install_aris_copilot.sh | 41 | # --quiet no prompts; abort on any condition that would prompt | COMMENT |
| LOW | tools/smart_update_copilot.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tools/smart_update_copilot.sh | 21 | # | COMMENT |
| LOW | tools/overleaf_setup.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tools/smart_update.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tools/smart_update.sh | 21 | # must be a relative path | COMMENT |
| LOW | tools/save_trace.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tools/save_trace.sh | 21 | # --thread-id "019d8fe0-..." \ | COMMENT |
| LOW | tools/install_aris_codex.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tools/install_aris_codex.sh | 21 | # default install if no manifest, else reconcile | COMMENT |
| LOW | tools/verify_paper_audits.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tools/verify_paper_audits.sh | 21 | # | COMMENT |
| LOW | tools/verify_wiki_coverage.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tools/smart_update_codex.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tools/smart_update_codex.sh | 21 | # one [y/N]; a decline is remembered in | COMMENT |
| LOW | tools/install_aris.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tools/install_aris.sh | 21 | # --exclude X,Y never install these skills (recorded as declined) | COMMENT |
| LOW | tools/install_aris.sh | 41 | # --replace-link NAME replace an upstream-internal symlink that points to | COMMENT |
| LOW | tools/install_aris.sh | 281 | # support directories (existing only) | COMMENT |
| LOW | tools/lint_skills_helpers.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tools/meta_opt/check_ready.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tools/meta_opt/check_ready.sh | 21 | # comparison. Use `|| true` to absorb the non-zero exit and keep the | COMMENT |
| LOW | tools/meta_opt/log_event.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | aris-monitor/run.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | aris-monitor/focus-tty.sh | 1 | #!/bin/bash | COMMENT |
| LOW | tests/test_research_wiki_helper_resolution.py | 21 | from pathlib import Path | COMMENT |
| LOW | skills/paper-poster-html/scripts/style_check.py | 81 | #: one of these via `var(--fs-N)` (rule 8); the count gate (rule 9) warns | COMMENT |
| LOW | skills/paper-poster-html/scripts/_posterly/measure.py | 301 | # it directly by comparing scroll-size to client-size on the alignment | COMMENT |
| LOW | skills/paper-poster-html/scripts/_posterly/polish.py | 181 | el = el.parentElement; | COMMENT |
| LOW | skills/paper-poster-html/scripts/_posterly/preflight.py | 41 | } | COMMENT |
| LOW | skills/paper-poster-html/scripts/_posterly/preflight.py | 61 | "body": ("poster",), | COMMENT |
| LOW | skills/paper-poster-html/scripts/_posterly/preflight.py | 341 | for pat, desc in LATEX_PATTERNS: | COMMENT |
| LOW | skills/paper-poster-html/scripts/_posterly/preflight.py | 421 | # role per ROLE_PARENTS. The precipitating bug was a misplaced | COMMENT |
| LOW | skills/interview-cheatsheet/SKILL.md | 21 | ### Section skeleton (12-14 sections) | COMMENT |
| LOW | skills/research-wiki/SKILL.md | 381 | COMMENT | |
| LOW | skills/skills-codex/interview-cheatsheet/SKILL.md | 21 | ### Section skeleton (12-14 sections) | COMMENT |
| LOW | skills/skills-codex/research-wiki/SKILL.md | 341 | # index + query_pack, logs. Default skip-on-exist (won't clobber an idea enriched | COMMENT |
| LOW | skills/shared-references/review-tracing.md | 61 | --thread-id "<threadId from response>" \ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/LLM_API_MIX_MATCH_GUIDE.md | 100 | "LLM_API_KEY": "your-api-key", | CODE |
| HIGH | docs/integrations/VAST_GPU_GUIDE_CN.md | 30 | vastai set api-key YOUR_API_KEY | CODE |
| HIGH | docs/integrations/VAST_GPU_GUIDE.md | 30 | vastai set api-key YOUR_API_KEY | CODE |
| HIGH | skills/vast-gpu/SKILL.md | 21 | vastai set api-key YOUR_API_KEY | CODE |
| HIGH | skills/auto-review-loop-llm/SKILL.md | 45 | "LLM_API_KEY": "your-api-key", | CODE |
| HIGH | skills/skills-codex/vast-gpu/SKILL.md | 21 | vastai set api-key YOUR_API_KEY | CODE |
| HIGH | skills/skills-codex/auto-review-loop-llm/SKILL.md | 33 | "LLM_API_KEY": "your-api-key", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | mcp-servers/gemini-review/server.py | 0 | rebind stdio to raw unbuffered binary streams for mcp framing. deferred into a function (called at the top of main()) so | STRING |
| HIGH | mcp-servers/minimax-chat/server.py | 0 | rebind stdio to raw unbuffered binary streams for mcp framing. deferred into a function (called at the top of main()) so | STRING |
| HIGH | mcp-servers/codex-image2/server.py | 0 | rebind stdio to raw unbuffered binary streams for mcp framing. deferred into a function (called at the top of main()) so | STRING |
| HIGH | mcp-servers/llm-chat/server.py | 0 | rebind stdio to raw unbuffered binary streams for mcp framing. deferred into a function (called at the top of main()) so | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/meta_opt/check_ready.sh | 58 | # Model-delta trigger (harness diet): a model bump makes existing scaffolding a | COMMENT |
| MEDIUM⚡ | tests/test_research_wiki_helper_resolution.py | 211 | # Helper-missing case: chain exits 42 (test harness sentinel) | STRING |
| MEDIUM | …cs/tutorials/multi_agent_long_horizon_tutorial_en.html | 371 | <li><a href="#61-plan-then-execute-paradigm">6.1 Plan-then-execute paradigm</a></li> | CODE |
| MEDIUM | docs/tutorials/rlhf_dpo_grpo_ppo_tutorial_en.html | 342 | <li><a href="#3-rlhf-pipeline-instructgpt-paradigm">§3 RLHF Pipeline (InstructGPT Paradigm)</a> | CODE |
| MEDIUM | docs/tutorials/3d_generation_tutorial_en.html | 382 | <li><a href="#71-zero-1-to-3-paradigm-novel-view-via-diffusion">7.1 Zero-1-to-3 paradigm (novel view via diffusion)</a>< | CODE |
| MEDIUM | docs/tutorials/agent_foundations_tutorial_en.html | 381 | <li><a href="#8-computer-use-paradigm-agent-as-os-user">§8 Computer-Use paradigm: agent as OS-user</a> | CODE |
| MEDIUM | docs/tutorials/reasoning_models_tutorial_en.html | 328 | <li><a href="#1-why-this-is-the-biggest-paradigm-shift-of-2024-2026">§1 Why This Is the Biggest Paradigm Shift of 2024-2 | CODE |
| MEDIUM | docs/tutorials/self_evolving_agents_tutorial_en.html | 335 | <li><a href="#24-three-paradigm-comparison-memorize">2.4 Three-paradigm comparison (memorize)</a></li> | CODE |
| MEDIUM | mcp-servers/minimax-chat/server.py | 2 | """MiniMax Chat MCP Server - A robust MCP server that calls MiniMax Chat Completions API""" | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/install_aris_copilot.sh | 14 | # Usage: | COMMENT |
| LOW⚡ | tools/overleaf_setup.sh | 9 | # Usage: | COMMENT |
| LOW | tools/smart_update.sh | 6 | # Usage: | COMMENT |
| LOW | tools/install_aris_codex.sh | 17 | # Usage: | COMMENT |
| LOW | tools/verify_paper_audits.sh | 8 | # Usage: | COMMENT |
| LOW | tools/verify_wiki_coverage.sh | 14 | # Usage: | COMMENT |
| LOW | tools/install_aris.sh | 10 | # Usage: | COMMENT |
| LOW | aris-monitor/run.sh | 14 | # Usage: | COMMENT |
| LOW | docs/tutorials/vae_vqvae_vqgan_tutorial_en.html | 946 | # Usage example: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/smart_update_copilot.sh | 208 | # Check if local differs from upstream | COMMENT |
| LOW | tools/smart_update.sh | 355 | # Check if the LOCAL version has lines matching personal patterns | COMMENT |
| LOW | tools/save_trace.sh | 85 | # Check if this run dir was created in the last 2 hours (same session) | COMMENT |
| LOW | tools/research_wiki.py | 163 | # Check if edge already exists | COMMENT |
| LOW | tools/install_aris.sh | 1162 | # Check if any can be auto-resolved by --adopt-existing (where current target == expected) | COMMENT |
| LOW | mcp-servers/minimax-chat/server.py | 292 | # Check if it's a Content-Length header or direct JSON | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/test_research_wiki_fetch_arxiv_metadata.py | 208 | monkeypatch.setenv("ARIS_VERIFY_EMAIL", "dev@example.org") | CODE |
| LOW⚡ | tests/test_research_wiki_fetch_arxiv_metadata.py | 214 | assert "mailto:dev@example.org" in ua | CODE |
| LOW⚡ | tests/test_exa_search.py | 89 | author="John Doe", | CODE |
| LOW⚡ | tests/test_exa_search.py | 97 | assert entry["author"] == "John Doe" | CODE |
| LOW⚡ | tests/test_arxiv_fetch.py | 198 | monkeypatch.setenv("ARIS_VERIFY_EMAIL", "dev@example.org") | CODE |
| LOW⚡ | tests/test_arxiv_fetch.py | 204 | assert "mailto:dev@example.org" in ua | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/semantic_scholar_fetch.py | 172 | CODE | |
| LOW | tools/semantic_scholar_fetch.py | 215 | CODE | |
| LOW | tools/exa_search.py | 140 | CODE | |
| LOW | tools/research_wiki.py | 706 | CODE | |
| LOW | tools/research_wiki.py | 889 | CODE | |
| LOW | tools/research_wiki.py | 1107 | CODE | |
| LOW | tools/research_wiki.py | 1278 | CODE | |
| LOW | tests/test_install_aris_tools_symlink.py | 48 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/_llm_chat_helpers.py | 76 | def handle_request(request): | CODE |
| LOW | tests/_minimax_helpers.py | 74 | def handle_request(request): | CODE |
| LOW | mcp-servers/gemini-review/server.py | 1631 | def handle_request(request: dict[str, Any]) -> dict[str, Any] | None: | CODE |
| LOW | mcp-servers/minimax-chat/server.py | 149 | def handle_request(request): | CODE |
| LOW | mcp-servers/codex-image2/server.py | 743 | def handle_request(request: dict[str, Any]) -> dict[str, Any] | None: | CODE |
| LOW | mcp-servers/manual-review/server.py | 616 | def handle_request(request: dict[str, Any]) -> dict[str, Any] | None: | STRING |
| LOW | mcp-servers/claude-review/server.py | 506 | def handle_request(request: dict[str, Any]) -> dict[str, Any] | None: | CODE |
| LOW | mcp-servers/llm-chat/server.py | 151 | def handle_request(request): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/test_minimax_integration.py | 33 | # Step 1: Initialize | COMMENT |
| LOW⚡ | tests/test_minimax_integration.py | 42 | # Step 2: Notification (no response expected) | COMMENT |
| LOW⚡ | tests/test_minimax_integration.py | 49 | # Step 3: List tools | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/evidence_check.py | 188 | __all__ = ["check_claim", "check_batch"] | CODE |
| LOW | tools/capture_filter.py | 107 | __all__ = ["screen", "reason_detail"] | CODE |
| LOW | tools/provenance.py | 247 | __all__ = [ | CODE |
| LOW | tools/threat_scan.py | 197 | __all__ = ["INVISIBLE_CHARS", "scan_for_threats", "first_threat_message", "quarantine"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_feishu_bridge_server.py | 220 | # Create a handler with mocked request infrastructure | COMMENT |