sourcecode 1.31.15__tar.gz → 1.31.17__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.
- sourcecode-1.31.17/.continue-here.md +145 -0
- sourcecode-1.31.15/.sourcecode-cache/snapshot-02c714c-07db8d0b.json → sourcecode-1.31.17/.sourcecode-cache/snapshot-88dc388-07db8d0b.json +1 -1
- sourcecode-1.31.15/.sourcecode-cache/snapshot-02c714c-178c65fa.json → sourcecode-1.31.17/.sourcecode-cache/snapshot-88dc388-178c65fa.json +70 -30
- sourcecode-1.31.15/.sourcecode-cache/snapshot-02c714c-530bd9cf.json → sourcecode-1.31.17/.sourcecode-cache/snapshot-88dc388-530bd9cf.json +6 -2
- sourcecode-1.31.15/.sourcecode-cache/snapshot-02c714c-56888a2a.json → sourcecode-1.31.17/.sourcecode-cache/snapshot-88dc388-56888a2a.json +5 -1
- sourcecode-1.31.15/.sourcecode-cache/snapshot-02c714c-5ea1c8f1.json → sourcecode-1.31.17/.sourcecode-cache/snapshot-88dc388-5ea1c8f1.json +6 -2
- sourcecode-1.31.15/.sourcecode-cache/snapshot-02c714c-7b6dd6cc.json → sourcecode-1.31.17/.sourcecode-cache/snapshot-88dc388-7b6dd6cc.json +6 -2
- sourcecode-1.31.15/.sourcecode-cache/snapshot-02c714c-8cb41bc4.json → sourcecode-1.31.17/.sourcecode-cache/snapshot-88dc388-8cb41bc4.json +1 -1
- sourcecode-1.31.15/.sourcecode-cache/snapshot-02c714c-c9ab42a3.json → sourcecode-1.31.17/.sourcecode-cache/snapshot-88dc388-c9ab42a3.json +124 -3
- sourcecode-1.31.17/.sourcecode-cache/snapshot-bc358fa-06d2f793.json +129 -0
- sourcecode-1.31.17/.sourcecode-cache/snapshot-bc358fa-0bed428d.json +406 -0
- sourcecode-1.31.17/.sourcecode-cache/snapshot-bc358fa-1457dd37.json +129 -0
- sourcecode-1.31.17/.sourcecode-cache/snapshot-bc358fa-1da953a8.json +122 -0
- sourcecode-1.31.17/.sourcecode-cache/snapshot-bc358fa-218f2312.json +570 -0
- sourcecode-1.31.17/.sourcecode-cache/snapshot-bc358fa-2ab2bdd3.json +390 -0
- sourcecode-1.31.17/.sourcecode-cache/snapshot-bc358fa-3077fe4e.json +4012 -0
- sourcecode-1.31.17/.sourcecode-cache/snapshot-bc358fa-30daccea.json +266 -0
- sourcecode-1.31.17/.sourcecode-cache/snapshot-bc358fa-542cb39a.json +244 -0
- sourcecode-1.31.17/.sourcecode-cache/snapshot-bc358fa-6d9137f2.json +351 -0
- sourcecode-1.31.17/.sourcecode-cache/snapshot-bc358fa-72866fd0.json +570 -0
- sourcecode-1.31.17/.sourcecode-cache/snapshot-bc358fa-8afce878.json +122 -0
- sourcecode-1.31.17/.sourcecode-cache/snapshot-bc358fa-9d0d48c4.json +244 -0
- sourcecode-1.31.17/.sourcecode-cache/snapshot-bc358fa-9d1f2878.json +406 -0
- sourcecode-1.31.17/.sourcecode-cache/snapshot-bc358fa-a071a9df.json +266 -0
- sourcecode-1.31.17/.sourcecode-cache/snapshot-bc358fa-a1077d85.json +390 -0
- sourcecode-1.31.17/.sourcecode-cache/snapshot-bc358fa-a72aa41f.json +351 -0
- sourcecode-1.31.17/.sourcecode-cache/snapshot-bc358fa-b9ee8ffa.json +4012 -0
- sourcecode-1.31.17/.sourcecode-cache/snapshot-bc358fa-c5fc7db0.json +266 -0
- sourcecode-1.31.17/.sourcecode-cache/snapshot-bc358fa-cf823b7a.json +266 -0
- sourcecode-1.31.17/.sourcecode-cache/snapshot-bc358fa-d2d141a4.json +13534 -0
- sourcecode-1.31.17/.sourcecode-cache/snapshot-bc358fa-fc0985b2.json +13534 -0
- sourcecode-1.31.17/AUDIT_REAL_REPOS.md +539 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/PKG-INFO +278 -208
- sourcecode-1.31.17/README.md +419 -0
- sourcecode-1.31.17/docs/PRODUCT_TIERS.md +112 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/pyproject.toml +1 -1
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/__init__.py +1 -1
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/cli.py +395 -4
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/prepare_context.py +8 -1
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/repository_ir.py +398 -28
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/serializer.py +14 -2
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_enterprise_benchmarks.py +759 -0
- sourcecode-1.31.15/.continue-here.md +0 -180
- sourcecode-1.31.15/README.md +0 -349
- {sourcecode-1.31.15 → sourcecode-1.31.17}/.agents/skills/source-command-gsd-join-discord/SKILL.md +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/.agents/skills/source-command-gsd-review-backlog/SKILL.md +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/.agents/skills/source-command-gsd-workstreams/SKILL.md +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/.gitignore +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/.ruff.toml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/.sourcecode-cache/snapshot-3b5997a-fa5c742c.json +0 -0
- /sourcecode-1.31.15/.sourcecode-cache/snapshot-02c714c-379aba51.json → /sourcecode-1.31.17/.sourcecode-cache/snapshot-88dc388-379aba51.json +0 -0
- /sourcecode-1.31.15/.sourcecode-cache/snapshot-02c714c-5b602060.json → /sourcecode-1.31.17/.sourcecode-cache/snapshot-88dc388-5b602060.json +0 -0
- /sourcecode-1.31.15/.sourcecode-cache/snapshot-02c714c-6934996c.json → /sourcecode-1.31.17/.sourcecode-cache/snapshot-88dc388-6934996c.json +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/CHANGELOG.md +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/CONTRIBUTING.md +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/LICENSE +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/SECURITY.md +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/docs/privacy.md +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/docs/schema.md +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/raw +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/run_cli.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/canonical_ir.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/classifier.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/flow_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/mcp/__init__.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/mcp/onboarding/applier.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/mcp/onboarding/backup.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/mcp/onboarding/detector.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/mcp/onboarding/planner.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/mcp/runner.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/mcp/server.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/output_budget.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/path_filters.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/pr_comment_renderer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/progress.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/redactor.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/scanner.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/schema.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/src/sourcecode/workspace.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/__init__.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/conftest.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/coverage.xml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/fastapi_app/pyproject.toml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/fastapi_app/src/main.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/go_service/cmd/api/main.go +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/go_service/go.mod +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/jacoco.xml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/latin1_sample.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/latin1_sample_iso.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/lcov.info +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/nextjs_app/app/page.tsx +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/nextjs_app/package.json +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/nextjs_app/pnpm-lock.yaml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/pnpm_monorepo/apps/web/app/page.tsx +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/pnpm_monorepo/apps/web/package.json +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/pnpm_monorepo/packages/api/main.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/pnpm_monorepo/pnpm-workspace.yaml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/pom.xml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/application/service/FindAusenteService.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/domain/entities/Ausente.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/infrastructure/rest/AusenteRestController.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/application/service/FindAutocoberturasService.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/domain/entities/Autocoberturas.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/infrastructure/rest/AutocoberturasRestController.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/application/service/FindCalendarioTrabajadorService.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/domain/entities/CalendarioTrabajador.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/infrastructure/rest/CalendarioTrabajadorRestController.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/application/service/FindDepartamentoService.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/domain/entities/Departamento.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/infrastructure/rest/DepartamentoRestController.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/application/service/FindEmpleadoService.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/domain/entities/Empleado.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/infrastructure/rest/EmpleadoRestController.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/DemoApplication.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/config/FilterConfig.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/domain/Health.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/mapper/HealthMapper.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/repository/HealthRepository.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/service/HealthService.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/HealthRestController.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/NominaRestController.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/resources/application-dev.yml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/resources/application.yml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/fixtures/spring_boot_minimal/src/main/resources/mapper/HealthMapper.xml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_architecture_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_architecture_summary.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_ast_extractor.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_audit_fixes.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_audit_sas_v2.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_block1_reliability.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_block2_coverage.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_block5_quality.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_broadleaf_fixes.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_bug_fixes_v1302.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_bug_fixes_v13115.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_bug_fixes_v1312.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_bug_fixes_v1313.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_bug_fixes_v16.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_bug_fixes_v2.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_canonical_ir.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_classifier.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_cli.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_code_notes_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_context_scorer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_contract_pipeline.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_coverage_parser.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_cross_consistency.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_dependency_analyzer_node_python.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_dependency_analyzer_polyglot.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_dependency_schema.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_detector_dotnet.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_detector_go_rust_java.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_detector_nodejs.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_detector_php_ruby_dart.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_detector_python.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_detector_universal_managed.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_detector_universal_systems.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_detectors_base.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_doc_analyzer_jsdom.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_doc_analyzer_python.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_encoding_regression.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_graph_analyzer_polyglot.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_graph_analyzer_python_node.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_graph_schema.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_hybrid_inference.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_integration.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_integration_dependencies.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_integration_detection.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_integration_docs.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_integration_graph_modules.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_integration_lqn.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_integration_metrics.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_integration_multistack.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_integration_semantics.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_integration_universal.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_java_spring_integration.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_mcp_runner.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_mcp_serve.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_mcp_tools.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_metrics_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_output_ux.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_packaging.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_phase1_improvements.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_pipeline_integrity.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_real_projects.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_redactor.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_repository_ir.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_scanner.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_schema.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_schema_normalization.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_scoring_calibration.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_semantic_analyzer_node.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_semantic_analyzer_python.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_semantic_import_resolution.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_semantic_schema.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_signal_hierarchy.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_summarizer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_surface_honesty.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_task_differentiation.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_telemetry.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_v131_improvements.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_v1_10_regressions.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.17}/tests/test_workspace_analyzer.py +0 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# Continue Here — atlas-cli sesión 20
|
|
2
|
+
|
|
3
|
+
**Paused:** 2026-05-24
|
|
4
|
+
**Repo:** `/Users/user/Documents/workspace/atlas-cli`
|
|
5
|
+
**Branch:** master
|
|
6
|
+
**Version audited:** sourcecode 1.31.16
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Objetivo de esta sesión
|
|
11
|
+
|
|
12
|
+
Auditoría adversarial REAL y profunda de `sourcecode` v1.31.16 contra repos enterprise Java reales.
|
|
13
|
+
Validar credibilidad post-fixes de sesiones anteriores. Encontrar nuevos bugs. Actualizar docs.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Trabajo completado esta sesión (sin commitear)
|
|
18
|
+
|
|
19
|
+
### `AUDIT_REAL_REPOS.md` — reescrito (22 secciones, auditoría completa)
|
|
20
|
+
|
|
21
|
+
Repos auditados:
|
|
22
|
+
- `~/Documents/workspace/keycloak` — 7,885 Java files, 18K+ commits, Quarkus/Jakarta EE
|
|
23
|
+
- `~/Documents/workspace/BroadleafCommerce` — 2,985 Java files, 18K+ commits, Spring Boot
|
|
24
|
+
|
|
25
|
+
Comandos probados: `--compact`, `--agent`, `--format yaml`, `endpoints`, `impact` (múltiples targets),
|
|
26
|
+
`onboard`, `fix-bug`, `modernize`, `review-pr`, `repo-ir --summary-only`, `repo-ir --max-nodes/edges`,
|
|
27
|
+
`prepare-context` vs aliases, cache cold/warm, error handling, flag consistency.
|
|
28
|
+
|
|
29
|
+
### `README.md` — actualizado basado en evidencia real
|
|
30
|
+
|
|
31
|
+
- Benchmarks reales (no inventados): cold/cached times, token sizes medidos
|
|
32
|
+
- `repo-ir` size warning (nueva sección)
|
|
33
|
+
- `impact` best practices expandidas (interface vs impl explicit)
|
|
34
|
+
- `What sourcecode does NOT do` — honesto sobre filter security + impl classes + project_summary
|
|
35
|
+
- `How to use` sección completamente reescrita con patrones correctos
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Bugs encontrados esta sesión (v1.31.16)
|
|
40
|
+
|
|
41
|
+
### P0 — Críticos
|
|
42
|
+
|
|
43
|
+
| # | Bug | Evidencia |
|
|
44
|
+
|---|-----|-----------|
|
|
45
|
+
| **P0-01** | `impact OrderServiceImpl` → `direct_callers:[], risk:low, confidence:HIGH` — WRONG | `OrderService` interface → 30 callers. Spring DI injects interface, not impl. Tool reports high-confidence garbage. |
|
|
46
|
+
| **P0-02** | `repo-ir --max-nodes 200 --max-edges 500` → 3.85MB / 987K tokens | `reverse_graph` (3MB) not bounded by flags. Only `graph.nodes/edges` bounded. |
|
|
47
|
+
|
|
48
|
+
### P1 — Altos
|
|
49
|
+
|
|
50
|
+
| # | Bug | Fix direction |
|
|
51
|
+
|---|-----|---------------|
|
|
52
|
+
| P1-01 | Risk score inconsistente: `OrderServiceImpl`→low vs `OrderDaoImpl`→high (mismo 0 callers, distinta heurística) | Cuando `direct_callers=0` y clase es `@Service`/`@Repository` impl: bajar confidence, añadir gap |
|
|
53
|
+
| P1-02 | `project_summary` = primera línea del README (license/marketing, no arquitectura) | Generar de código: "N-module Spring Boot — M classes, K endpoints, J txn boundaries" |
|
|
54
|
+
| P1-03 | `fix-bug` devuelve 426 archivos para NPE genérico (14% de todo el repo, sin score field) | Cap en 20 archivos cuando symptom tiene baja especificidad. Añadir `score` field. |
|
|
55
|
+
| P1-04 | `indirect_callers:0` para KeycloakSession con 1992 direct callers — BFS para en nivel 1 | BFS muestreado para targets muy grandes, o documentar el comportamiento |
|
|
56
|
+
| P1-05 | fix-bug 23s cold en Keycloak — demasiado lento para CI | Profiling needed |
|
|
57
|
+
|
|
58
|
+
### P2 — Medios
|
|
59
|
+
|
|
60
|
+
- `bounded_contexts: ["dto","file"]` Broadleaf, `["keycloak"]` Keycloak — ambos WRONG. Fix: usar Maven module names.
|
|
61
|
+
- `role: unknown` para todos los `high_coupling_nodes` en modernize — nunca clasifica annotation/interface/entity
|
|
62
|
+
- `no_security_signal: 100%` en ambos repos — ambos usan filter-based security; métrica siempre vacía para el patrón enterprise más común
|
|
63
|
+
- JAX-RS sub-resource paths no compuestos con parent `@Path` → paths incompletos
|
|
64
|
+
- `hotspot_candidates: []` siempre — 18K commits ignorados; git churn no usado
|
|
65
|
+
- `--format`/`--no-cache` ausentes en `impact`, `endpoints`, `fix-bug`, `onboard`, `modernize`, `review-pr`
|
|
66
|
+
- Architecture confidence diferente entre `--compact` y `--agent` mismo repo
|
|
67
|
+
- `entry_points.controllers.methods: 21` vs `endpoints` finding 130 — discrepancia inexplicada
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Estado actual archivos
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
M README.md — benchmarks reales, limitaciones honestas
|
|
75
|
+
?? AUDIT_REAL_REPOS.md — auditoría 22 secciones (NUEVA, reemplaza anterior)
|
|
76
|
+
?? docs/PRODUCT_TIERS.md — de sesión anterior (sin tocar esta sesión)
|
|
77
|
+
?? .sourcecode-cache/ — cache artifacts (ignorar)
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**No hay cambios en código fuente esta sesión** — auditoría pura.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Contexto de versión: qué estaba ya fixeado
|
|
85
|
+
|
|
86
|
+
Los bugs de sesiones 18-19 (BUG-01 a BUG-07 del `.continue-here.md` anterior)
|
|
87
|
+
fueron fixeados en commit `308f2f0` ("fix(impact,serializer,prepare_context): fix all 7 audit bugs").
|
|
88
|
+
|
|
89
|
+
Los P0/P1/P2 listados arriba son **nuevos**, encontrados en v1.31.16 post-fix.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Primera acción al retomar
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
cd /Users/user/Documents/workspace/atlas-cli
|
|
97
|
+
|
|
98
|
+
# 1. Commitear docs de esta sesión
|
|
99
|
+
git add README.md AUDIT_REAL_REPOS.md
|
|
100
|
+
git commit -m "docs(audit,readme): P1.5 adversarial audit v1.31.16 — real benchmarks, P0/P1 bugs, honest limitations"
|
|
101
|
+
|
|
102
|
+
# 2. Fix P0-01 — mayor ROI de credibilidad
|
|
103
|
+
# En repository_ir.py → compute_blast_radius (o equivalente):
|
|
104
|
+
# Cuando target es @Service/@Repository impl con 0 direct_callers:
|
|
105
|
+
# a) Detectar interfaces que implementa
|
|
106
|
+
# b) Run impact en las interfaces, merge resultados
|
|
107
|
+
# c) O mínimo: emitir warning en 'explanation' con nombre de interface y su caller count
|
|
108
|
+
# Verificar con:
|
|
109
|
+
sourcecode impact OrderServiceImpl ~/Documents/workspace/BroadleafCommerce
|
|
110
|
+
# Esperado: warning o callers via OrderService interface
|
|
111
|
+
|
|
112
|
+
# 3. Fix P0-02 — reverse_graph unbounded
|
|
113
|
+
# repo-ir: cuando --max-nodes N dado, limitar reverse_graph a N hubs también
|
|
114
|
+
# O añadir flag --max-reverse-hubs N
|
|
115
|
+
# Verificar con:
|
|
116
|
+
sourcecode repo-ir ~/Documents/workspace/BroadleafCommerce --max-nodes 200 --max-edges 500 | wc -c
|
|
117
|
+
# Esperado: <500KB (no 4MB)
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Próximas acciones por ROI
|
|
121
|
+
|
|
122
|
+
1. **P0-01** — impl → interface caller resolution (1-2h) → core claim becomes defensible
|
|
123
|
+
2. **P0-02** — reverse_graph size control (30min) → LLM safety
|
|
124
|
+
3. **P1-01** — risk score consistency for 0-caller impls (30min) → credibility
|
|
125
|
+
4. **P1-02** — project_summary generation from code (1h) → first impression
|
|
126
|
+
5. **P1-03** — fix-bug file cap + score field (30min) → LLM readiness
|
|
127
|
+
6. **P2 batch** — bounded_contexts, security_model, role detection (2h)
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Archivos clave del codebase
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
src/sourcecode/
|
|
135
|
+
cli.py — top-level commands + subcommands
|
|
136
|
+
repository_ir.py — impact analysis + graph traversal (fix P0-01 aquí)
|
|
137
|
+
prepare_context.py — fix-bug, onboard, review-pr output generation
|
|
138
|
+
serializer.py — compact/agent output serialization
|
|
139
|
+
tests/
|
|
140
|
+
test_enterprise_benchmarks.py
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
*Pausado 2026-05-24 — gsd:pause-work (sesión 20)*
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"metadata": {
|
|
3
3
|
"schema_version": "1.0",
|
|
4
|
-
"generated_at": "2026-05-
|
|
4
|
+
"generated_at": "2026-05-24T18:49:36.513369+00:00",
|
|
5
5
|
"sourcecode_version": "1.31.15",
|
|
6
6
|
"analyzed_path": "/Users/user/Documents/workspace/atlas-cli",
|
|
7
7
|
"analyzer_fingerprints": {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"metadata": {
|
|
3
3
|
"schema_version": "1.0",
|
|
4
|
-
"generated_at": "2026-05-
|
|
4
|
+
"generated_at": "2026-05-24T18:49:36.411691+00:00",
|
|
5
5
|
"sourcecode_version": "1.31.15",
|
|
6
6
|
"analyzed_path": "/Users/user/Documents/workspace/atlas-cli",
|
|
7
7
|
"analyzer_fingerprints": {
|
|
@@ -121,13 +121,13 @@
|
|
|
121
121
|
],
|
|
122
122
|
"metrics_summary": {
|
|
123
123
|
"requested": true,
|
|
124
|
-
"file_count":
|
|
124
|
+
"file_count": 186,
|
|
125
125
|
"test_file_count": 82,
|
|
126
126
|
"languages": [
|
|
127
127
|
"java",
|
|
128
128
|
"python"
|
|
129
129
|
],
|
|
130
|
-
"total_loc":
|
|
130
|
+
"total_loc": 49580,
|
|
131
131
|
"coverage_records": [],
|
|
132
132
|
"coverage_sources_found": [],
|
|
133
133
|
"limitations": [],
|
|
@@ -345,15 +345,15 @@
|
|
|
345
345
|
"language": "python",
|
|
346
346
|
"is_test": false,
|
|
347
347
|
"production_target": null,
|
|
348
|
-
"total_lines":
|
|
349
|
-
"code_lines":
|
|
350
|
-
"blank_lines":
|
|
351
|
-
"comment_lines":
|
|
348
|
+
"total_lines": 3492,
|
|
349
|
+
"code_lines": 2974,
|
|
350
|
+
"blank_lines": 319,
|
|
351
|
+
"comment_lines": 199,
|
|
352
352
|
"loc_availability": "measured",
|
|
353
|
-
"function_count":
|
|
353
|
+
"function_count": 45,
|
|
354
354
|
"class_count": 1,
|
|
355
355
|
"symbol_availability": "measured",
|
|
356
|
-
"cyclomatic_complexity": 13.
|
|
356
|
+
"cyclomatic_complexity": 13.044444444444444,
|
|
357
357
|
"complexity_availability": "measured",
|
|
358
358
|
"line_rate": null,
|
|
359
359
|
"branch_rate": null,
|
|
@@ -1497,15 +1497,15 @@
|
|
|
1497
1497
|
"language": "python",
|
|
1498
1498
|
"is_test": false,
|
|
1499
1499
|
"production_target": null,
|
|
1500
|
-
"total_lines":
|
|
1501
|
-
"code_lines":
|
|
1502
|
-
"blank_lines":
|
|
1503
|
-
"comment_lines":
|
|
1500
|
+
"total_lines": 3298,
|
|
1501
|
+
"code_lines": 2580,
|
|
1502
|
+
"blank_lines": 441,
|
|
1503
|
+
"comment_lines": 277,
|
|
1504
1504
|
"loc_availability": "measured",
|
|
1505
|
-
"function_count":
|
|
1505
|
+
"function_count": 64,
|
|
1506
1506
|
"class_count": 4,
|
|
1507
1507
|
"symbol_availability": "measured",
|
|
1508
|
-
"cyclomatic_complexity":
|
|
1508
|
+
"cyclomatic_complexity": 11.265625,
|
|
1509
1509
|
"complexity_availability": "measured",
|
|
1510
1510
|
"line_rate": null,
|
|
1511
1511
|
"branch_rate": null,
|
|
@@ -2630,15 +2630,15 @@
|
|
|
2630
2630
|
"language": "python",
|
|
2631
2631
|
"is_test": true,
|
|
2632
2632
|
"production_target": null,
|
|
2633
|
-
"total_lines":
|
|
2634
|
-
"code_lines":
|
|
2635
|
-
"blank_lines":
|
|
2636
|
-
"comment_lines":
|
|
2633
|
+
"total_lines": 1726,
|
|
2634
|
+
"code_lines": 1363,
|
|
2635
|
+
"blank_lines": 251,
|
|
2636
|
+
"comment_lines": 112,
|
|
2637
2637
|
"loc_availability": "measured",
|
|
2638
|
-
"function_count":
|
|
2639
|
-
"class_count":
|
|
2638
|
+
"function_count": 112,
|
|
2639
|
+
"class_count": 13,
|
|
2640
2640
|
"symbol_availability": "measured",
|
|
2641
|
-
"cyclomatic_complexity":
|
|
2641
|
+
"cyclomatic_complexity": 4.053571428571429,
|
|
2642
2642
|
"complexity_availability": "measured",
|
|
2643
2643
|
"line_rate": null,
|
|
2644
2644
|
"branch_rate": null,
|
|
@@ -3728,6 +3728,26 @@
|
|
|
3728
3728
|
"coverage_availability": "unavailable",
|
|
3729
3729
|
"workspace": null
|
|
3730
3730
|
},
|
|
3731
|
+
{
|
|
3732
|
+
"path": "AUDIT_REAL_REPOS.md",
|
|
3733
|
+
"language": "unknown",
|
|
3734
|
+
"is_test": false,
|
|
3735
|
+
"production_target": null,
|
|
3736
|
+
"total_lines": 619,
|
|
3737
|
+
"code_lines": 386,
|
|
3738
|
+
"blank_lines": 175,
|
|
3739
|
+
"comment_lines": 58,
|
|
3740
|
+
"loc_availability": "measured",
|
|
3741
|
+
"function_count": 0,
|
|
3742
|
+
"class_count": 0,
|
|
3743
|
+
"symbol_availability": "unavailable",
|
|
3744
|
+
"complexity_availability": "unavailable",
|
|
3745
|
+
"line_rate": null,
|
|
3746
|
+
"branch_rate": null,
|
|
3747
|
+
"coverage_source": null,
|
|
3748
|
+
"coverage_availability": "unavailable",
|
|
3749
|
+
"workspace": null
|
|
3750
|
+
},
|
|
3731
3751
|
{
|
|
3732
3752
|
"path": "CHANGELOG.md",
|
|
3733
3753
|
"language": "unknown",
|
|
@@ -3793,10 +3813,10 @@
|
|
|
3793
3813
|
"language": "unknown",
|
|
3794
3814
|
"is_test": false,
|
|
3795
3815
|
"production_target": null,
|
|
3796
|
-
"total_lines":
|
|
3797
|
-
"code_lines":
|
|
3798
|
-
"blank_lines":
|
|
3799
|
-
"comment_lines":
|
|
3816
|
+
"total_lines": 348,
|
|
3817
|
+
"code_lines": 194,
|
|
3818
|
+
"blank_lines": 107,
|
|
3819
|
+
"comment_lines": 47,
|
|
3800
3820
|
"loc_availability": "measured",
|
|
3801
3821
|
"function_count": 0,
|
|
3802
3822
|
"class_count": 0,
|
|
@@ -3828,6 +3848,26 @@
|
|
|
3828
3848
|
"coverage_availability": "unavailable",
|
|
3829
3849
|
"workspace": null
|
|
3830
3850
|
},
|
|
3851
|
+
{
|
|
3852
|
+
"path": "docs/PRODUCT_TIERS.md",
|
|
3853
|
+
"language": "unknown",
|
|
3854
|
+
"is_test": false,
|
|
3855
|
+
"production_target": null,
|
|
3856
|
+
"total_lines": 112,
|
|
3857
|
+
"code_lines": 77,
|
|
3858
|
+
"blank_lines": 28,
|
|
3859
|
+
"comment_lines": 7,
|
|
3860
|
+
"loc_availability": "measured",
|
|
3861
|
+
"function_count": 0,
|
|
3862
|
+
"class_count": 0,
|
|
3863
|
+
"symbol_availability": "unavailable",
|
|
3864
|
+
"complexity_availability": "unavailable",
|
|
3865
|
+
"line_rate": null,
|
|
3866
|
+
"branch_rate": null,
|
|
3867
|
+
"coverage_source": null,
|
|
3868
|
+
"coverage_availability": "unavailable",
|
|
3869
|
+
"workspace": null
|
|
3870
|
+
},
|
|
3831
3871
|
{
|
|
3832
3872
|
"path": "docs/privacy.md",
|
|
3833
3873
|
"language": "unknown",
|
|
@@ -3933,10 +3973,10 @@
|
|
|
3933
3973
|
"language": "unknown",
|
|
3934
3974
|
"is_test": false,
|
|
3935
3975
|
"production_target": null,
|
|
3936
|
-
"total_lines":
|
|
3937
|
-
"code_lines":
|
|
3938
|
-
"blank_lines":
|
|
3939
|
-
"comment_lines":
|
|
3976
|
+
"total_lines": 108,
|
|
3977
|
+
"code_lines": 61,
|
|
3978
|
+
"blank_lines": 30,
|
|
3979
|
+
"comment_lines": 17,
|
|
3940
3980
|
"loc_availability": "measured",
|
|
3941
3981
|
"function_count": 0,
|
|
3942
3982
|
"class_count": 0,
|
|
@@ -60,17 +60,21 @@
|
|
|
60
60
|
"analyze_cmd(path: Path) -> None",
|
|
61
61
|
"config_cmd() -> None",
|
|
62
62
|
"endpoints_cmd(path: Path, output_path: Optional[Path]) ->...",
|
|
63
|
-
"
|
|
64
|
-
"
|
|
63
|
+
"fix_bug_cmd(ctx: typer.Context, path: Path, symptom: Opti...",
|
|
64
|
+
"impact_cmd(target: str, path: Path, depth: int, output_pa..."
|
|
65
65
|
],
|
|
66
66
|
"exports": [
|
|
67
|
+
"main",
|
|
67
68
|
"main_entry",
|
|
68
69
|
"mcp_init",
|
|
69
70
|
"mcp_remove",
|
|
70
71
|
"mcp_serve",
|
|
71
72
|
"mcp_status",
|
|
73
|
+
"modernize_cmd",
|
|
74
|
+
"onboard_cmd",
|
|
72
75
|
"prepare_context_cmd",
|
|
73
76
|
"repo_ir_cmd",
|
|
77
|
+
"review_pr_cmd",
|
|
74
78
|
"telemetry_disable",
|
|
75
79
|
"telemetry_enable",
|
|
76
80
|
"telemetry_status",
|
|
@@ -47,16 +47,20 @@ contracts:
|
|
|
47
47
|
- 'analyze_cmd(path: Path) -> None'
|
|
48
48
|
- config_cmd() -> None
|
|
49
49
|
- 'endpoints_cmd(path: Path, output_path: Optional[Path]) ->...'
|
|
50
|
+
- 'fix_bug_cmd(ctx: typer.Context, path: Path, symptom: Opti...'
|
|
50
51
|
- 'impact_cmd(target: str, path: Path, depth: int, output_pa...'
|
|
51
|
-
- 'main(ctx: typer.Context, format: str, output: Optional[Pa...'
|
|
52
52
|
exports:
|
|
53
|
+
- main
|
|
53
54
|
- main_entry
|
|
54
55
|
- mcp_init
|
|
55
56
|
- mcp_remove
|
|
56
57
|
- mcp_serve
|
|
57
58
|
- mcp_status
|
|
59
|
+
- modernize_cmd
|
|
60
|
+
- onboard_cmd
|
|
58
61
|
- prepare_context_cmd
|
|
59
62
|
- repo_ir_cmd
|
|
63
|
+
- review_pr_cmd
|
|
60
64
|
- telemetry_disable
|
|
61
65
|
- telemetry_enable
|
|
62
66
|
- telemetry_status
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"metadata": {
|
|
3
3
|
"schema_version": "1.0",
|
|
4
|
-
"generated_at": "2026-05-
|
|
4
|
+
"generated_at": "2026-05-24T18:49:33.532165+00:00",
|
|
5
5
|
"sourcecode_version": "1.31.15",
|
|
6
6
|
"analyzed_path": "/Users/user/Documents/workspace/atlas-cli",
|
|
7
7
|
"analyzer_fingerprints": {
|
|
@@ -120,6 +120,7 @@
|
|
|
120
120
|
}
|
|
121
121
|
],
|
|
122
122
|
"file_tree": {
|
|
123
|
+
"AUDIT_REAL_REPOS.md": null,
|
|
123
124
|
"run_cli.py": null,
|
|
124
125
|
"LICENSE": null,
|
|
125
126
|
"CHANGELOG.md": null,
|
|
@@ -253,7 +254,8 @@
|
|
|
253
254
|
},
|
|
254
255
|
"docs": {
|
|
255
256
|
"schema.md": null,
|
|
256
|
-
"privacy.md": null
|
|
257
|
+
"privacy.md": null,
|
|
258
|
+
"PRODUCT_TIERS.md": null
|
|
257
259
|
},
|
|
258
260
|
".github": {
|
|
259
261
|
"workflows": {
|
|
@@ -351,6 +353,7 @@
|
|
|
351
353
|
}
|
|
352
354
|
},
|
|
353
355
|
"file_paths": [
|
|
356
|
+
"AUDIT_REAL_REPOS.md",
|
|
354
357
|
"run_cli.py",
|
|
355
358
|
"LICENSE",
|
|
356
359
|
"CHANGELOG.md",
|
|
@@ -476,6 +479,7 @@
|
|
|
476
479
|
"docs",
|
|
477
480
|
"docs/schema.md",
|
|
478
481
|
"docs/privacy.md",
|
|
482
|
+
"docs/PRODUCT_TIERS.md",
|
|
479
483
|
".github",
|
|
480
484
|
".github/workflows",
|
|
481
485
|
".github/workflows/build-windows.yml",
|
|
@@ -60,17 +60,21 @@
|
|
|
60
60
|
"analyze_cmd(path: Path) -> None",
|
|
61
61
|
"config_cmd() -> None",
|
|
62
62
|
"endpoints_cmd(path: Path, output_path: Optional[Path]) ->...",
|
|
63
|
-
"
|
|
64
|
-
"
|
|
63
|
+
"fix_bug_cmd(ctx: typer.Context, path: Path, symptom: Opti...",
|
|
64
|
+
"impact_cmd(target: str, path: Path, depth: int, output_pa..."
|
|
65
65
|
],
|
|
66
66
|
"exports": [
|
|
67
|
+
"main",
|
|
67
68
|
"main_entry",
|
|
68
69
|
"mcp_init",
|
|
69
70
|
"mcp_remove",
|
|
70
71
|
"mcp_serve",
|
|
71
72
|
"mcp_status",
|
|
73
|
+
"modernize_cmd",
|
|
74
|
+
"onboard_cmd",
|
|
72
75
|
"prepare_context_cmd",
|
|
73
76
|
"repo_ir_cmd",
|
|
77
|
+
"review_pr_cmd",
|
|
74
78
|
"telemetry_disable",
|
|
75
79
|
"telemetry_enable",
|
|
76
80
|
"telemetry_status",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"metadata": {
|
|
3
3
|
"schema_version": "1.0",
|
|
4
|
-
"generated_at": "2026-05-
|
|
4
|
+
"generated_at": "2026-05-24T18:49:35.059569+00:00",
|
|
5
5
|
"sourcecode_version": "1.31.15",
|
|
6
6
|
"analyzed_path": "/Users/user/Documents/workspace/atlas-cli",
|
|
7
7
|
"analyzer_fingerprints": {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"metadata": {
|
|
3
3
|
"schema_version": "1.0",
|
|
4
|
-
"generated_at": "2026-05-
|
|
4
|
+
"generated_at": "2026-05-24T18:49:34.076959+00:00",
|
|
5
5
|
"sourcecode_version": "1.31.15",
|
|
6
6
|
"analyzed_path": "/Users/user/Documents/workspace/atlas-cli",
|
|
7
7
|
"analyzer_fingerprints": {
|
|
@@ -121,8 +121,8 @@
|
|
|
121
121
|
],
|
|
122
122
|
"doc_summary": {
|
|
123
123
|
"requested": true,
|
|
124
|
-
"total_count":
|
|
125
|
-
"symbol_count":
|
|
124
|
+
"total_count": 1217,
|
|
125
|
+
"symbol_count": 1155,
|
|
126
126
|
"languages": [
|
|
127
127
|
"python"
|
|
128
128
|
],
|
|
@@ -1980,6 +1980,83 @@
|
|
|
1980
1980
|
"importance": "high",
|
|
1981
1981
|
"workspace": null
|
|
1982
1982
|
},
|
|
1983
|
+
{
|
|
1984
|
+
"symbol": "TestBlastRadiusEnhanced",
|
|
1985
|
+
"kind": "class",
|
|
1986
|
+
"language": "python",
|
|
1987
|
+
"path": "tests/test_enterprise_benchmarks.py",
|
|
1988
|
+
"doc_text": "New impact fields: mappers, security surface, cross-module, confidence, explanation.",
|
|
1989
|
+
"signature": null,
|
|
1990
|
+
"source": "docstring",
|
|
1991
|
+
"importance": "high",
|
|
1992
|
+
"workspace": null
|
|
1993
|
+
},
|
|
1994
|
+
{
|
|
1995
|
+
"symbol": "TestTargetResolution",
|
|
1996
|
+
"kind": "class",
|
|
1997
|
+
"language": "python",
|
|
1998
|
+
"path": "tests/test_enterprise_benchmarks.py",
|
|
1999
|
+
"doc_text": "Target resolution: exact, ambiguous, partial, not_found all handled correctly.",
|
|
2000
|
+
"signature": null,
|
|
2001
|
+
"source": "docstring",
|
|
2002
|
+
"importance": "high",
|
|
2003
|
+
"workspace": null
|
|
2004
|
+
},
|
|
2005
|
+
{
|
|
2006
|
+
"symbol": "mybatis_heavy_repo",
|
|
2007
|
+
"kind": "function",
|
|
2008
|
+
"language": "python",
|
|
2009
|
+
"path": "tests/test_enterprise_benchmarks.py",
|
|
2010
|
+
"doc_text": "MyBatis-heavy enterprise repo: 3 mappers, 3 services, 2 controllers, XML mappers.",
|
|
2011
|
+
"signature": "def mybatis_heavy_repo(tmp_path: Path) -> Generator[Path, None, None]",
|
|
2012
|
+
"source": "docstring",
|
|
2013
|
+
"importance": "high",
|
|
2014
|
+
"workspace": null
|
|
2015
|
+
},
|
|
2016
|
+
{
|
|
2017
|
+
"symbol": "TestMyBatisHeavyBlastRadius",
|
|
2018
|
+
"kind": "class",
|
|
2019
|
+
"language": "python",
|
|
2020
|
+
"path": "tests/test_enterprise_benchmarks.py",
|
|
2021
|
+
"doc_text": "Blast radius on MyBatis-heavy repos: persistence paths detected correctly.",
|
|
2022
|
+
"signature": null,
|
|
2023
|
+
"source": "docstring",
|
|
2024
|
+
"importance": "high",
|
|
2025
|
+
"workspace": null
|
|
2026
|
+
},
|
|
2027
|
+
{
|
|
2028
|
+
"symbol": "TestEnterpriseWorkflows",
|
|
2029
|
+
"kind": "class",
|
|
2030
|
+
"language": "python",
|
|
2031
|
+
"path": "tests/test_enterprise_benchmarks.py",
|
|
2032
|
+
"doc_text": "Top-level workflow commands produce bounded, structured output.",
|
|
2033
|
+
"signature": null,
|
|
2034
|
+
"source": "docstring",
|
|
2035
|
+
"importance": "high",
|
|
2036
|
+
"workspace": null
|
|
2037
|
+
},
|
|
2038
|
+
{
|
|
2039
|
+
"symbol": "TestRuntimeBenchmarks",
|
|
2040
|
+
"kind": "class",
|
|
2041
|
+
"language": "python",
|
|
2042
|
+
"path": "tests/test_enterprise_benchmarks.py",
|
|
2043
|
+
"doc_text": "IR build and impact analysis stay within reasonable wall-clock limits.\n\nThese are NOT hard CI gates — they characterise performance degradation.\nThresholds are generous (10s/5s) to avoid false failures on CI machines.",
|
|
2044
|
+
"signature": null,
|
|
2045
|
+
"source": "docstring",
|
|
2046
|
+
"importance": "high",
|
|
2047
|
+
"workspace": null
|
|
2048
|
+
},
|
|
2049
|
+
{
|
|
2050
|
+
"symbol": "TestMultiRepoComparisonMatrix",
|
|
2051
|
+
"kind": "class",
|
|
2052
|
+
"language": "python",
|
|
2053
|
+
"path": "tests/test_enterprise_benchmarks.py",
|
|
2054
|
+
"doc_text": "Cross-repo consistency: all repos must satisfy the same baseline contract.",
|
|
2055
|
+
"signature": null,
|
|
2056
|
+
"source": "docstring",
|
|
2057
|
+
"importance": "high",
|
|
2058
|
+
"workspace": null
|
|
2059
|
+
},
|
|
1983
2060
|
{
|
|
1984
2061
|
"symbol": "test_console_script_reports_version",
|
|
1985
2062
|
"kind": "function",
|
|
@@ -9713,6 +9790,50 @@
|
|
|
9713
9790
|
"importance": "high",
|
|
9714
9791
|
"workspace": null
|
|
9715
9792
|
},
|
|
9793
|
+
{
|
|
9794
|
+
"symbol": "onboard_cmd",
|
|
9795
|
+
"kind": "function",
|
|
9796
|
+
"language": "python",
|
|
9797
|
+
"path": "src/sourcecode/cli.py",
|
|
9798
|
+
"doc_text": "[OSS Core] Onboard an unfamiliar codebase: architecture, entry points, hotspots, risks.\n\n\b\nAnswers: \"What is this repo and where do I start?\"\n\nBuilds full project context optimised for a new developer or agent that\nhas never seen this codebase. Surfaces architecture summary, subsystems,\nkey entry points, hotspots, and tech-debt signals.\n\n\b\nWorkflow:\n sourcecode onboard .\n sourcecode onboard /path/to/repo --llm-prompt\n sourcecode onboard . --output onboard.json\n\n\b\nRelated workflows:\n sourcecode impact <target> — What breaks if I touch this?\n sourcecode review-pr — Risk-rank a pending PR\n sourcecode modernize . — Where should I refactor first?\n sourcecode fix-bug — Where does this symptom live?",
|
|
9799
|
+
"signature": "def onboard_cmd(ctx: typer.Context, path: Path=typer.Argument(Path('.'), help='Repository root to onboard (default: current directory)'), output_path: Optional[Path]=typer.Option(None, '--output', '-o', help='Write output to a file instead of stdout.'), llm_prompt: bool=typer.Option(False, '--llm-prompt', help='Append a ready-to-use LLM prompt to the output.'), copy: bool=typer.Option(False, '--copy', '-c', help='Copy output to clipboard after a successful run.')) -> None",
|
|
9800
|
+
"source": "docstring",
|
|
9801
|
+
"importance": "high",
|
|
9802
|
+
"workspace": null
|
|
9803
|
+
},
|
|
9804
|
+
{
|
|
9805
|
+
"symbol": "review_pr_cmd",
|
|
9806
|
+
"kind": "function",
|
|
9807
|
+
"language": "python",
|
|
9808
|
+
"path": "src/sourcecode/cli.py",
|
|
9809
|
+
"doc_text": "[Pro] PR review: blast radius, risk ranking, execution paths, security/txn impact.\n\n\b\nAnswers: \"What does this PR break and how risky is it?\"\n\nComputes a diff-based change impact report: changed symbols, BFS propagation\nthrough the call graph, affected endpoints, transactional boundaries,\nsecurity surface, and a per-file risk ranking.\n\n\b\nRequires either --since or a git diff to be present.\n\n\b\nWorkflow:\n sourcecode review-pr --since origin/main\n sourcecode review-pr . --since main --format github-comment\n sourcecode review-pr . --since HEAD~3 --output review.json\n\n\b\nRelated workflows:\n sourcecode impact <target> — Single-symbol blast radius\n sourcecode onboard . — Full architecture onboarding",
|
|
9810
|
+
"signature": "def review_pr_cmd(ctx: typer.Context, path: Path=typer.Argument(Path('.'), help='Repository root (default: current directory)'), since: Optional[str]=typer.Option(None, '--since', help='Git ref baseline for diff (e.g. origin/main, HEAD~3).'), output_path: Optional[Path]=typer.Option(None, '--output', '-o', help='Write output to a file instead of stdout.'), format: Optional[str]=typer.Option(None, '--format', help='Output format: json (default) | github-comment'), copy: bool=typer.Option(False, '--copy', '-c', help='Copy output to clipboard after a successful run.')) -> None",
|
|
9811
|
+
"source": "docstring",
|
|
9812
|
+
"importance": "high",
|
|
9813
|
+
"workspace": null
|
|
9814
|
+
},
|
|
9815
|
+
{
|
|
9816
|
+
"symbol": "fix_bug_cmd",
|
|
9817
|
+
"kind": "function",
|
|
9818
|
+
"language": "python",
|
|
9819
|
+
"path": "src/sourcecode/cli.py",
|
|
9820
|
+
"doc_text": "[Pro] Bug triage: risk-ranked files, suspected areas, related annotations.\n\n\b\nAnswers: \"Where in this codebase should I look to fix this symptom?\"\n\nSurfaces the most likely files/classes related to a bug symptom.\nRanks by risk score, annotation signals (@Transactional, security annotations),\nand structural coupling. Output is bounded and LLM-ready.\n\n\b\nWorkflow:\n sourcecode fix-bug --symptom \"NullPointerException in UserService\"\n sourcecode fix-bug . --symptom \"401 on /api/orders\"\n sourcecode fix-bug . --output bug-context.json\n\n\b\nRelated workflows:\n sourcecode impact <target> — Propagate impact from a specific class\n sourcecode onboard . — Full architecture context first",
|
|
9821
|
+
"signature": "def fix_bug_cmd(ctx: typer.Context, path: Path=typer.Argument(Path('.'), help='Repository root (default: current directory)'), symptom: Optional[str]=typer.Option(None, '--symptom', '-s', help='Keyword hint for the bug (boosts matching files and surfaces related annotations).'), output_path: Optional[Path]=typer.Option(None, '--output', '-o', help='Write output to a file instead of stdout.'), copy: bool=typer.Option(False, '--copy', '-c', help='Copy output to clipboard after a successful run.')) -> None",
|
|
9822
|
+
"source": "docstring",
|
|
9823
|
+
"importance": "high",
|
|
9824
|
+
"workspace": null
|
|
9825
|
+
},
|
|
9826
|
+
{
|
|
9827
|
+
"symbol": "modernize_cmd",
|
|
9828
|
+
"kind": "function",
|
|
9829
|
+
"language": "python",
|
|
9830
|
+
"path": "src/sourcecode/cli.py",
|
|
9831
|
+
"doc_text": "[Pro] Modernization planning: coupling, dead zones, risky modules, refactor candidates.\n\n\b\nAnswers: \"Where should I refactor first, and what's safest to touch?\"\n\nAnalyzes the repo for:\n - High-coupling modules (high in-degree + out-degree nodes)\n - Dead zones (isolated symbols with no callers)\n - Risk hotspots (high fan-in + security annotations + transaction boundaries)\n - Cross-module dependency tangles\n - Subsystem summary with member counts\n\nOutput is bounded and structured for both human review and LLM planning.\n\n\b\nWorkflow:\n sourcecode modernize .\n sourcecode modernize /path/to/repo --output modernize.json\n\n\b\nRelated workflows:\n sourcecode onboard . — Architecture overview first\n sourcecode impact <target> — Verify impact before touching a hotspot",
|
|
9832
|
+
"signature": "def modernize_cmd(path: Path=typer.Argument(Path('.'), help='Repository root to analyze (default: current directory)'), output_path: Optional[Path]=typer.Option(None, '--output', '-o', help='Write output to a file instead of stdout.'), copy: bool=typer.Option(False, '--copy', '-c', help='Copy output to clipboard after a successful run.')) -> None",
|
|
9833
|
+
"source": "docstring",
|
|
9834
|
+
"importance": "high",
|
|
9835
|
+
"workspace": null
|
|
9836
|
+
},
|
|
9716
9837
|
{
|
|
9717
9838
|
"symbol": "version_cmd",
|
|
9718
9839
|
"kind": "function",
|