codegraph-brain 0.13.0__tar.gz → 0.14.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- codegraph_brain-0.14.1/.pre-commit-config.yaml +45 -0
- codegraph_brain-0.14.1/.release-please-manifest.json +3 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/CHANGELOG.md +27 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/PKG-INFO +1 -1
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/guardian/CURATION.md +97 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/guardian/calibration.jsonl +236 -236
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/guardian/results.jsonl +118 -118
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/martian/README.md +11 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/pyproject.toml +1 -1
- codegraph_brain-0.14.1/scripts/backfill_calibration_fingerprint.py +246 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/scripts/backfill_review_fingerprint.py +26 -2
- codegraph_brain-0.14.1/scripts/check_pytest_raises.py +152 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/scripts/guardian_bench.py +55 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/scripts/guardian_calibrate.py +37 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/scripts/guardian_martian.py +11 -3
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/martian.py +53 -1
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/review_fingerprint.py +27 -1
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/runner.py +104 -14
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/conftest.py +11 -3
- codegraph_brain-0.14.1/tests/unit/test_backfill_calibration_fingerprint.py +776 -0
- codegraph_brain-0.14.1/tests/unit/test_check_pytest_raises.py +119 -0
- codegraph_brain-0.14.1/tests/unit/test_guardian_bench_script.py +195 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_calibrate_script.py +92 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_martian.py +2 -3
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_martian_script.py +5 -12
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_runner.py +156 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_review_fingerprint_contract.py +94 -5
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_review_fingerprint_digest.py +53 -0
- codegraph_brain-0.14.1/tests/unit/test_temperature_source.py +168 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/uv.lock +43 -46
- codegraph_brain-0.13.0/.pre-commit-config.yaml +0 -27
- codegraph_brain-0.13.0/.release-please-manifest.json +0 -3
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/.claude-plugin/marketplace.json +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/.gitattributes +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/.github/workflows/autodoc.yml +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/.github/workflows/ci.yml +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/.github/workflows/guardian.yml +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/.github/workflows/pr-title.yml +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/.github/workflows/release-please.yml +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/.gitignore +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/.python-version +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/CLAUDE.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/CONTRIBUTING.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/LICENSE +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/Makefile +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/PRIVACY.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/README.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/guardian/pr-122.yaml +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/guardian/pr-140.yaml +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/guardian/pr-141.yaml +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/guardian/pr-142.yaml +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/guardian/pr-143.yaml +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/guardian/pr-144.yaml +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/guardian/pr-278.yaml +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/guardian/pr-313.yaml +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/martian/cal_dot_com.json +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/martian/discourse.json +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/martian/grafana.json +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/martian/keycloak.json +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/martian/sentry.json +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/martian-judged.jsonl +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/martian-p3-judged-run1.jsonl +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/martian-p3-judged-run1.jsonl.corrupted-backup +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/martian-p3-run1.jsonl +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/martian-p3-run2.jsonl +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/martian-p3-run3.jsonl +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/martian-plan.json +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/martian-repeat-judged.jsonl +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/martian-repeat-reviews.jsonl +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/benchmarks/martian-reviews.jsonl +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/data/.gitkeep +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/AUDIT.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/CASE_STUDY.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/GUARDIAN_LOCAL_BENCH.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/GUARDIAN_REMOTE_OLLAMA.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/architecture/HOW_IT_WORKS.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/architecture/ONTOLOGY.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/architecture/PATTERNS_AND_TRIADS.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/architecture/SELF_PORTRAIT.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/architecture/diagrams/pipeline_flow.mermaid +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/architecture/health_badge.json +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/assets/.gitignore +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/assets/cgis-app-avatar.png +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/assets/cgis-app-avatar.svg +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/assets/generate_avatar.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/examples/.gitkeep +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/how-to/AGENT_ONBOARDING.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/how-to/CLI_USAGE.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/how-to/MCP_REFERENCE.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/lab-notes/2026-06-11-chunked-review-negative-result.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/ontology/.gitkeep +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/ontology/core.yaml +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/ontology/domains.yaml +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/ontology/patterns.yaml +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/ontology/tolerances.lock +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-06-09-domain-pattern-fingerprint-design.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-06-09-pattern-alphabet-motif-basis-design.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-06-10-guardian-sprint-design.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-06-11-fastapi-di-edges-design.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-06-11-guardian-chunked-review-design.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-06-11-guardian-chunker-design.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-06-11-mcp-drift-validate-fqn-design.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-06-11-resolver-split-design.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-06-11-symbol-import-edges-design.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-06-12-drift-empty-domains-design.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-06-12-gate-semantics-design.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-06-12-init-ontology-design.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-06-12-release-please-ci-design.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-06-13-suggest-packages-design.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-06-13-tangle-anti-pattern-design.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-07-29-guardian-skeptic-scoring-design.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-07-30-cgis-fractal-design.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-07-30-cgis-fractal-plan.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-07-30-chunk-source-filter-design.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-07-30-chunk-source-filter-plan.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-07-30-genai-client-close-design.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-07-30-genai-client-close-plan.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-07-30-guardian-precision-bench-design.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-07-30-guardian-precision-bench-plan.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-07-30-guardian-timeout-retry-design.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-07-30-guardian-timeout-retry-plan.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-07-31-finder-bug-class-taxonomy.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-08-01-aura-autoevolution-poc.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-08-11-guardian-code-review-bench.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/2026-08-14-review-fingerprint-design.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/BLUEPRINT.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/PRD.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/TDD.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/plans/2026-06-09-fingerprint-drift.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/plans/2026-06-10-guardian-context-skeptic-inline.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/plans/2026-06-10-guardian-structured-findings-bench.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/plans/2026-06-10-motif-basis-part-b.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/plans/2026-06-10-unified-pattern-alphabet.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/plans/2026-06-11-fastapi-di-edges.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/plans/2026-06-11-guardian-chunked-review.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/plans/2026-06-11-guardian-chunker.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/plans/2026-06-11-mcp-drift-validate-fqn.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/plans/2026-06-11-resolver-split.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/plans/2026-06-12-drift-empty-domains.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/plans/2026-06-12-gate-semantics.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/plans/2026-06-12-init-ontology.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/plans/2026-06-12-release-please-ci.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/plans/2026-06-12-symbol-import-edges.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/plans/2026-06-13-suggest-packages.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/plans/2026-07-29-guardian-skeptic-scoring.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/docs/specs/plans/2026-08-14-review-fingerprint.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/main.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/plugin/.claude-plugin/plugin.json +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/plugin/.mcp.json +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/plugin/README.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/plugin/skills/cgis/SKILL.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/plugin/skills/ingest/SKILL.md +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/release-please-config.json +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/scripts/colab_bench.sh +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/scripts/gen_ideal_graph.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/scripts/generate_health.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/scripts/generate_mcp_ref.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/scripts/generate_schema_docs.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/scripts/guardian_review.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/scripts/inject_readme_graph.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/scripts/ollama_visitor.sh +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/scripts/probe_closure_gap.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/scripts/probe_tier_ladder.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/__init__.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/__main__.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/api/.gitkeep +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/api/__init__.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/api/mcp_server.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/cli.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/core/.gitkeep +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/core/models.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/extractors/.gitkeep +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/extractors/_python_ast.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/extractors/_python_classes.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/extractors/_python_functions.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/extractors/_python_imports.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/extractors/_python_types.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/extractors/base.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/extractors/python_extractor.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/extractors/registry.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/extractors/typescript_extractor.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/__init__.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/axes.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/bench.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/calibrate.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/chunked.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/chunker.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/collector.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/core.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/diff_index.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/findings.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/github_poster.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/metrics.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/prompts.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/providers/__init__.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/providers/base.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/providers/gemini.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/providers/mistral.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/providers/ollama.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/recording.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/render.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/guardian/skeptic.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/pipeline.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/py.typed +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/analysis/__init__.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/analysis/analyzer.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/analysis/anomaly.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/analysis/cohesion.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/analysis/health.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/analysis/suggest_service.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/context/__init__.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/context/audit.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/context/context_service.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/context/prompt.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/context/snippet.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/drift/__init__.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/drift/_scc.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/drift/drift.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/drift/drift_service.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/drift/fingerprint.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/drift/fractal.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/drift/ontology_init.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/drift/quotient.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/drift/triads.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/engine.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/fqn.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/render/__init__.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/render/graph_json.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/render/mermaid.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/query/render/metrics.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/resolver/.gitkeep +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/resolver/__init__.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/resolver/engine.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/resolver/indices.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/resolver/symbols.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/resolver/uplift.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/storage/.gitkeep +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/src/cgis/storage/sqlite_store.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/integration/.gitkeep +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/self_parsing/.gitkeep +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/self_parsing/__init__.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/self_parsing/conftest.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/self_parsing/test_architecture.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/self_parsing/test_drift.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/self_parsing/test_fractal.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/self_parsing/test_init_ontology_roundtrip.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/self_parsing/test_self_parse.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/self_parsing/test_self_parse_ts.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/self_parsing/test_suggest.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/.gitkeep +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/guardian_stubs.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/review_path_inventory.txt +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test___main__.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_analyzer.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_audit.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_backfill_review_fingerprint.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_cli.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_cohesion.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_context_service.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_di_acceptance.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_drift.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_drift_service.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_extractor_registry.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_fingerprint.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_fqn.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_fractal.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_gen_ideal_graph.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_generate_mcp_ref.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_graph_json.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_axes.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_bench.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_calibrate.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_chunked.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_chunker.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_collector.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_core.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_diff_index.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_findings.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_martian_union.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_metrics.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_mistral_sampling.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_ollama_sampling.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_ollama_truncation.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_poster.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_providers.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_providers_name.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_recording.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_render.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_review_script.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_salvage.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_guardian_skeptic.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_health_scorer.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_import_acceptance.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_mcp_server.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_mermaid.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_metrics.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_models.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_ontology_compliance.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_ontology_init.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_patterns_yaml.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_pipeline.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_prompt.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_python_extractor.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_quotient.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_resolver.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_resolver_indices.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_resolver_symbols.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_review_fingerprint_closure.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_review_fingerprint_record.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_snippet.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_sqlite_store.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_suggest_service.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_triads.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_typescript_extractor.py +0 -0
- {codegraph_brain-0.13.0 → codegraph_brain-0.14.1}/tests/unit/test_uplift.py +0 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
repos:
|
|
2
|
+
- repo: local
|
|
3
|
+
hooks:
|
|
4
|
+
# SonarCloud's python:S5778, enforced before the push rather than after it.
|
|
5
|
+
# Sonar only decorates a pull request, so the loop was write -> push ->
|
|
6
|
+
# get told -> fix -> forget, five times over. `pass_filenames: false`
|
|
7
|
+
# because the check is a repo-wide ratchet (a stale baseline entry is a
|
|
8
|
+
# failure too), which a staged-files-only view cannot see.
|
|
9
|
+
#
|
|
10
|
+
# This hook is the fast half, not the gate: CI does not run pre-commit,
|
|
11
|
+
# so `tests/unit/test_check_pytest_raises.py` is what actually blocks a
|
|
12
|
+
# merge. Both call the same `check()`.
|
|
13
|
+
- id: pytest-raises-single-call
|
|
14
|
+
name: one throwing call per pytest.raises block (S5778)
|
|
15
|
+
entry: python scripts/check_pytest_raises.py
|
|
16
|
+
language: system
|
|
17
|
+
pass_filenames: false
|
|
18
|
+
files: ^tests/.*\.py$
|
|
19
|
+
|
|
20
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
21
|
+
rev: v0.15.16
|
|
22
|
+
hooks:
|
|
23
|
+
- id: ruff
|
|
24
|
+
args: [--fix]
|
|
25
|
+
- id: ruff-format
|
|
26
|
+
|
|
27
|
+
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
28
|
+
rev: v2.1.0
|
|
29
|
+
hooks:
|
|
30
|
+
- id: mypy
|
|
31
|
+
args: [--config-file=pyproject.toml]
|
|
32
|
+
files: ^src/
|
|
33
|
+
additional_dependencies:
|
|
34
|
+
- httpx>=0.27 # imported directly by guardian/providers/base.py (#275)
|
|
35
|
+
- pydantic>=2.13.4
|
|
36
|
+
- structlog>=25.5.0
|
|
37
|
+
- types-pyyaml>=6.0.12.20260518
|
|
38
|
+
- rich>=15.0.0
|
|
39
|
+
- typer>=0.26.7
|
|
40
|
+
- tree-sitter>=0.25.2
|
|
41
|
+
- tree-sitter-python>=0.25.0
|
|
42
|
+
- tree-sitter-typescript>=0.23.2
|
|
43
|
+
- pytest>=9.0.3
|
|
44
|
+
- "mcp[cli]>=2" # must match the pyproject bound
|
|
45
|
+
- duckdb>=1.1.0
|
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.14.1](https://github.com/zaebee/codegraph-brain/compare/codegraph-brain-v0.14.0...codegraph-brain-v0.14.1) (2026-08-16)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* **bench:** cutting a release turned the new reachability tests red ([#397](https://github.com/zaebee/codegraph-brain/issues/397)) ([efbca37](https://github.com/zaebee/codegraph-brain/commit/efbca37c13e452fdf7266619b36d86b0e11bb795))
|
|
9
|
+
|
|
10
|
+
## [0.14.0](https://github.com/zaebee/codegraph-brain/compare/codegraph-brain-v0.13.0...codegraph-brain-v0.14.0) (2026-08-16)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* **guardian:** give measured recall a reviewer it can name ([#390](https://github.com/zaebee/codegraph-brain/issues/390)) ([#391](https://github.com/zaebee/codegraph-brain/issues/391)) ([acc1887](https://github.com/zaebee/codegraph-brain/commit/acc18874b7ce67fa38b7dab41552838f9578516d))
|
|
16
|
+
* **guardian:** say whether a temperature was chosen or inherited ([#393](https://github.com/zaebee/codegraph-brain/issues/393)) ([#395](https://github.com/zaebee/codegraph-brain/issues/395)) ([1b2c3c3](https://github.com/zaebee/codegraph-brain/commit/1b2c3c3f1619f00d20c36fb315eaca3dce5661d9))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Bug Fixes
|
|
20
|
+
|
|
21
|
+
* **guardian:** close the deferred cleanups that could only narrow silently ([#385](https://github.com/zaebee/codegraph-brain/issues/385)) ([#386](https://github.com/zaebee/codegraph-brain/issues/386)) ([e7020ff](https://github.com/zaebee/codegraph-brain/commit/e7020ff237964a66728f0b437f13b70dc8bfe2f9))
|
|
22
|
+
* **guardian:** refuse a model name carrying whitespace ([#382](https://github.com/zaebee/codegraph-brain/issues/382)) ([#389](https://github.com/zaebee/codegraph-brain/issues/389)) ([45fb110](https://github.com/zaebee/codegraph-brain/commit/45fb110d3e440e858f57c28cd3e343e61218697c))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Documentation
|
|
26
|
+
|
|
27
|
+
* **bench:** a failed parse is not a draw ([#394](https://github.com/zaebee/codegraph-brain/issues/394)) ([a70b09b](https://github.com/zaebee/codegraph-brain/commit/a70b09bf1faf67ddefff2d7fdcf555aba51ced9f))
|
|
28
|
+
* **bench:** repeated rows are samples, not corrections ([#392](https://github.com/zaebee/codegraph-brain/issues/392)) ([e1fcc3f](https://github.com/zaebee/codegraph-brain/commit/e1fcc3f4728e61363d06b022b14bc66f45f3a031))
|
|
29
|
+
|
|
3
30
|
## [0.13.0](https://github.com/zaebee/codegraph-brain/compare/codegraph-brain-v0.12.0...codegraph-brain-v0.13.0) (2026-08-15)
|
|
4
31
|
|
|
5
32
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: codegraph-brain
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.14.1
|
|
4
4
|
Summary: Semantic code graph for AI agents — deterministic FQN resolution, impact analysis and architectural drift gates, exposed over MCP.
|
|
5
5
|
Project-URL: Homepage, https://github.com/zaebee/codegraph-brain
|
|
6
6
|
Project-URL: Repository, https://github.com/zaebee/codegraph-brain
|
|
@@ -54,6 +54,103 @@ carries `matched`, `noise` and `ambiguous_hits`, so either definition can be
|
|
|
54
54
|
re-derived from it. (Contrast `calibration.jsonl`, which *was* rewritten — that
|
|
55
55
|
was a scorer bug, wrong under its own stated algorithm, not a policy change.)
|
|
56
56
|
|
|
57
|
+
## Repeated rows are samples, not corrections (2026-08-16, #390)
|
|
58
|
+
|
|
59
|
+
**Do not deduplicate any corpus in this repository by "one row per subject,
|
|
60
|
+
latest wins."** Every repeat here was paid for on purpose, and collapsing to the
|
|
61
|
+
newest draw silently discards the experiment it belongs to.
|
|
62
|
+
|
|
63
|
+
Written down because a downstream consumer adopted exactly that rule — reasoning
|
|
64
|
+
that a re-run is a correction, so counting both would let a reviewer improve its
|
|
65
|
+
record by re-running — and nothing in this repository contradicted it. The
|
|
66
|
+
reasoning is sound for a corpus of corrections. It is wrong for these.
|
|
67
|
+
|
|
68
|
+
### `benchmarks/martian-*.jsonl` — 115 review rows, 83 distinct subjects
|
|
69
|
+
|
|
70
|
+
Keyed by subject and genome (`url`, `head_sha`, `review_fingerprint`,
|
|
71
|
+
`finder_model`, `had_graph`), 32 of 115 rows are repeats. Every one of them
|
|
72
|
+
comes from a registered sampling arm:
|
|
73
|
+
|
|
74
|
+
| repeat group | count | source |
|
|
75
|
+
|---|---|---|
|
|
76
|
+
| `p3-run1` + `p3-run2` | 12 | Phase 3 union arm |
|
|
77
|
+
| `p3-run1` + `p3-run2` + `p3-run3` | 7 | Phase 3 union arm |
|
|
78
|
+
| `reviews` + `repeat-reviews` | 6 | R5 repeat probe |
|
|
79
|
+
|
|
80
|
+
Phase 3 registered three runs at `temperature = 0.7` **because the runs must
|
|
81
|
+
differ** — see the spec, "Configuration under test": at temperature 0 "the three
|
|
82
|
+
runs collapse toward one and the union arm becomes identically equal to a single
|
|
83
|
+
run." Gate G8 is defined as `F₂(union) > F₂(mean of the 3 runs)`; a mean over
|
|
84
|
+
three draws is not computable from one of them.
|
|
85
|
+
|
|
86
|
+
The variance is not theoretical. **21 of the 25 repeat groups disagree on how
|
|
87
|
+
many findings the review produced**, with spreads including 8→14, 15→24, 26→38
|
|
88
|
+
and one 0→25 — the same reviewer, the same commit, the same configuration. Keep
|
|
89
|
+
one draw and the number you publish is a coin flip over that range.
|
|
90
|
+
|
|
91
|
+
### `benchmarks/guardian/results.jsonl` — 118 scored rows, 53 distinct
|
|
92
|
+
|
|
93
|
+
Repeats here carry an explicit `run` index (0/1/2) for the same reason. A row is
|
|
94
|
+
identified by `pr` + `model` + `guardian_sha` + `run`, and dropping `run` averages
|
|
95
|
+
away the per-PR sampling noise that R5 was written to measure.
|
|
96
|
+
|
|
97
|
+
### `benchmarks/guardian/calibration.jsonl` — 236 rows, 118 subjects
|
|
98
|
+
|
|
99
|
+
Exactly two rows per recorded review, one per judge (`gemini-2.5-flash` and
|
|
100
|
+
`mistral-medium-latest`). The pair *is* the measurement — inter-judge agreement
|
|
101
|
+
is the G3 statistic — so `row_key` alone is not a unique key here; `row_key` +
|
|
102
|
+
`judge_model` is.
|
|
103
|
+
|
|
104
|
+
### If you do need one row per reviewer
|
|
105
|
+
|
|
106
|
+
Aggregate over the draws (mean, or union where the arm defines one); do not
|
|
107
|
+
select among them. Selecting by recency is the one choice guaranteed to be
|
|
108
|
+
uncorrelated with quality, and it deletes 28% of this corpus.
|
|
109
|
+
|
|
110
|
+
**Aggregate over the subject's *draws*, which is not the same set as its rows.**
|
|
111
|
+
Say what a draw is rather than which rows to exclude: an exclusion list is
|
|
112
|
+
open-ended and the next entry arrives after it has already been believed, while
|
|
113
|
+
a positive definition is closed.
|
|
114
|
+
|
|
115
|
+
**A draw is a review that completed and whose output was parsed** — a row with
|
|
116
|
+
`parse_failed: false`. That is the whole test; `error` is `None` on all 115 rows,
|
|
117
|
+
because a run that failed outright never reached a record.
|
|
118
|
+
|
|
119
|
+
**A `parse_failed` row is not a draw.** Its structured output could not be read,
|
|
120
|
+
so it carries zero findings, and averaging it in charges the model for a harness
|
|
121
|
+
failure. This is exactly the distinction #374 established ("a truncated review is
|
|
122
|
+
not a review that found nothing"); before it, `parse_failed` was recorded and
|
|
123
|
+
read by nothing.
|
|
124
|
+
|
|
125
|
+
**A row with zero findings and `parse_failed: false` *is* a draw.** Three exist
|
|
126
|
+
(PRs 6, 77754 and 107534, all gemini), and each spent real tokens — 106, 117 and
|
|
127
|
+
124 completion tokens. The reviewer ran and said nothing, which is evidence about
|
|
128
|
+
the reviewer. Same output shape as the parse failure, opposite meaning; keeping
|
|
129
|
+
them and dropping the parse failure is the one combination that is right about
|
|
130
|
+
both. The `arm` field exists for the mirror of this hazard: a failure and a
|
|
131
|
+
controlled removal must not look alike in the record.
|
|
132
|
+
|
|
133
|
+
There is exactly **one** parse-failed row in the review corpora:
|
|
134
|
+
`martian-p3-run1.jsonl` for PR 11059 — the same row #374 was written about. One
|
|
135
|
+
row out of 115 sounds ignorable and is not, because of how the averaging works:
|
|
136
|
+
|
|
137
|
+
- PR 11059 has three rows. Dropping the parse-failed one leaves draws of `9/13`
|
|
138
|
+
and `8/8`, so the subject contributes mean `c = 8.5` over mean `n = 10.5` —
|
|
139
|
+
a rate of **81.0%**, which is *below* mistral/graph's pooled 86.6%.
|
|
140
|
+
- Averaging the parse failure in as a third draw keeps that 81.0% but shrinks the
|
|
141
|
+
subject to `c = 5.667` over `n = 7.0`. Its **weight** falls, not its rate.
|
|
142
|
+
- A below-average subject carrying less weight pulls the pooled figure **up**:
|
|
143
|
+
86.6% → **86.9%**.
|
|
144
|
+
|
|
145
|
+
So including the harness failure makes the reviewer look better, which is the
|
|
146
|
+
direction that makes this easy to leave in. That is how the gap was found — a
|
|
147
|
+
downstream consumer computed 86.6%, this repository computed 86.9%, and the
|
|
148
|
+
disagreement had exactly one cause.
|
|
149
|
+
|
|
150
|
+
The same applies to the `error` rows in `results.jsonl`, for the same reason and
|
|
151
|
+
by the same rule: they are already excluded there because `is_scored` requires
|
|
152
|
+
`matched` and `precision`, which a failed run never gets.
|
|
153
|
+
|
|
57
154
|
## Curation policy
|
|
58
155
|
|
|
59
156
|
- Style/idiom-only findings → `ambiguous` (guardian's PRECISION RULES forbid
|