sourcecode 1.31.15__tar.gz → 1.31.16__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.16/.continue-here.md +108 -0
- sourcecode-1.31.15/.sourcecode-cache/snapshot-02c714c-07db8d0b.json → sourcecode-1.31.16/.sourcecode-cache/snapshot-88dc388-07db8d0b.json +1 -1
- sourcecode-1.31.15/.sourcecode-cache/snapshot-02c714c-178c65fa.json → sourcecode-1.31.16/.sourcecode-cache/snapshot-88dc388-178c65fa.json +70 -30
- sourcecode-1.31.15/.sourcecode-cache/snapshot-02c714c-530bd9cf.json → sourcecode-1.31.16/.sourcecode-cache/snapshot-88dc388-530bd9cf.json +6 -2
- sourcecode-1.31.15/.sourcecode-cache/snapshot-02c714c-56888a2a.json → sourcecode-1.31.16/.sourcecode-cache/snapshot-88dc388-56888a2a.json +5 -1
- sourcecode-1.31.15/.sourcecode-cache/snapshot-02c714c-5ea1c8f1.json → sourcecode-1.31.16/.sourcecode-cache/snapshot-88dc388-5ea1c8f1.json +6 -2
- sourcecode-1.31.15/.sourcecode-cache/snapshot-02c714c-7b6dd6cc.json → sourcecode-1.31.16/.sourcecode-cache/snapshot-88dc388-7b6dd6cc.json +6 -2
- sourcecode-1.31.15/.sourcecode-cache/snapshot-02c714c-8cb41bc4.json → sourcecode-1.31.16/.sourcecode-cache/snapshot-88dc388-8cb41bc4.json +1 -1
- sourcecode-1.31.15/.sourcecode-cache/snapshot-02c714c-c9ab42a3.json → sourcecode-1.31.16/.sourcecode-cache/snapshot-88dc388-c9ab42a3.json +124 -3
- sourcecode-1.31.16/AUDIT_REAL_REPOS.md +619 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/PKG-INFO +207 -208
- sourcecode-1.31.16/README.md +348 -0
- sourcecode-1.31.16/docs/PRODUCT_TIERS.md +112 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/pyproject.toml +1 -1
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/__init__.py +1 -1
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/cli.py +395 -4
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/prepare_context.py +8 -1
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/repository_ir.py +257 -27
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/serializer.py +14 -2
- {sourcecode-1.31.15 → sourcecode-1.31.16}/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.16}/.agents/skills/source-command-gsd-join-discord/SKILL.md +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/.agents/skills/source-command-gsd-review-backlog/SKILL.md +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/.agents/skills/source-command-gsd-workstreams/SKILL.md +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/.gitignore +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/.ruff.toml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/.sourcecode-cache/snapshot-3b5997a-fa5c742c.json +0 -0
- /sourcecode-1.31.15/.sourcecode-cache/snapshot-02c714c-379aba51.json → /sourcecode-1.31.16/.sourcecode-cache/snapshot-88dc388-379aba51.json +0 -0
- /sourcecode-1.31.15/.sourcecode-cache/snapshot-02c714c-5b602060.json → /sourcecode-1.31.16/.sourcecode-cache/snapshot-88dc388-5b602060.json +0 -0
- /sourcecode-1.31.15/.sourcecode-cache/snapshot-02c714c-6934996c.json → /sourcecode-1.31.16/.sourcecode-cache/snapshot-88dc388-6934996c.json +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/CHANGELOG.md +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/CONTRIBUTING.md +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/LICENSE +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/SECURITY.md +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/docs/privacy.md +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/docs/schema.md +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/raw +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/run_cli.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/canonical_ir.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/classifier.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/flow_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/mcp/__init__.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/mcp/onboarding/applier.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/mcp/onboarding/backup.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/mcp/onboarding/detector.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/mcp/onboarding/planner.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/mcp/runner.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/mcp/server.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/output_budget.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/path_filters.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/pr_comment_renderer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/progress.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/redactor.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/scanner.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/schema.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/src/sourcecode/workspace.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/__init__.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/conftest.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/coverage.xml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/fastapi_app/pyproject.toml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/fastapi_app/src/main.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/go_service/cmd/api/main.go +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/go_service/go.mod +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/jacoco.xml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/latin1_sample.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/latin1_sample_iso.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/lcov.info +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/nextjs_app/app/page.tsx +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/nextjs_app/package.json +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/nextjs_app/pnpm-lock.yaml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/pnpm_monorepo/apps/web/app/page.tsx +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/pnpm_monorepo/apps/web/package.json +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/pnpm_monorepo/packages/api/main.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/pnpm_monorepo/pnpm-workspace.yaml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/spring_boot_minimal/pom.xml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/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.16}/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.16}/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.16}/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.16}/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.16}/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.16}/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.16}/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.16}/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.16}/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.16}/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.16}/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.16}/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.16}/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.16}/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.16}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/DemoApplication.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/config/FilterConfig.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/domain/Health.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/mapper/HealthMapper.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/repository/HealthRepository.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/service/HealthService.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/HealthRestController.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/NominaRestController.java +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/spring_boot_minimal/src/main/resources/application-dev.yml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/spring_boot_minimal/src/main/resources/application.yml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/fixtures/spring_boot_minimal/src/main/resources/mapper/HealthMapper.xml +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_architecture_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_architecture_summary.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_ast_extractor.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_audit_fixes.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_audit_sas_v2.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_block1_reliability.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_block2_coverage.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_block5_quality.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_broadleaf_fixes.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_bug_fixes_v1302.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_bug_fixes_v13115.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_bug_fixes_v1312.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_bug_fixes_v1313.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_bug_fixes_v16.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_bug_fixes_v2.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_canonical_ir.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_classifier.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_cli.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_code_notes_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_context_scorer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_contract_pipeline.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_coverage_parser.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_cross_consistency.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_dependency_analyzer_node_python.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_dependency_analyzer_polyglot.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_dependency_schema.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_detector_dotnet.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_detector_go_rust_java.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_detector_nodejs.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_detector_php_ruby_dart.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_detector_python.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_detector_universal_managed.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_detector_universal_systems.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_detectors_base.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_doc_analyzer_jsdom.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_doc_analyzer_python.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_encoding_regression.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_graph_analyzer_polyglot.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_graph_analyzer_python_node.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_graph_schema.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_hybrid_inference.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_integration.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_integration_dependencies.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_integration_detection.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_integration_docs.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_integration_graph_modules.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_integration_lqn.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_integration_metrics.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_integration_multistack.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_integration_semantics.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_integration_universal.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_java_spring_integration.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_mcp_runner.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_mcp_serve.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_mcp_tools.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_metrics_analyzer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_output_ux.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_packaging.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_phase1_improvements.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_pipeline_integrity.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_real_projects.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_redactor.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_repository_ir.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_scanner.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_schema.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_schema_normalization.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_scoring_calibration.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_semantic_analyzer_node.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_semantic_analyzer_python.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_semantic_import_resolution.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_semantic_schema.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_signal_hierarchy.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_summarizer.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_surface_honesty.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_task_differentiation.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_telemetry.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_v131_improvements.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_v1_10_regressions.py +0 -0
- {sourcecode-1.31.15 → sourcecode-1.31.16}/tests/test_workspace_analyzer.py +0 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# Continue Here — atlas-cli sesión 19
|
|
2
|
+
|
|
3
|
+
**Paused:** 2026-05-24
|
|
4
|
+
**Repo:** `/Users/user/Documents/workspace/atlas-cli`
|
|
5
|
+
**Branch:** master
|
|
6
|
+
**Working tree:** 4 archivos modificados + 3 nuevos (sin commitear)
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Objetivo de esta sesión
|
|
11
|
+
|
|
12
|
+
Auditoría adversarial real de `sourcecode` contra repos enterprise Java (Keycloak + BroadleafCommerce). Validar credibilidad, encontrar bugs reales, actualizar documentación.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Trabajo completado esta sesión
|
|
17
|
+
|
|
18
|
+
### Sesión 18 (pendiente de commit)
|
|
19
|
+
|
|
20
|
+
**P1 — compute_blast_radius** (`repository_ir.py`):
|
|
21
|
+
- Campos nuevos: `mappers_affected`, `security_surface_affected`, `cross_module_impact`, `confidence_score/level`, `explanation`, `candidates`
|
|
22
|
+
- Risk formula: mapper ×1.5, security ×2.0, module ×1.0
|
|
23
|
+
- Mapper filter: class-level only (no `#`)
|
|
24
|
+
|
|
25
|
+
**P1 — CLI top-level workflows** (`cli.py`):
|
|
26
|
+
- `sourcecode onboard`, `review-pr`, `fix-bug`, `modernize` como comandos top-level
|
|
27
|
+
- `ctx.invoke()` → `prepare_context_cmd`. `_SUBCOMMANDS` actualizado. Tier labels en `--help`.
|
|
28
|
+
|
|
29
|
+
**P1 — Benchmarks** (`tests/test_enterprise_benchmarks.py`):
|
|
30
|
+
- +72 tests (46→118). Fixture `mybatis_heavy_repo`. **1466 passed, 3 skipped.**
|
|
31
|
+
|
|
32
|
+
### Sesión 19 (nueva, pendiente de commit)
|
|
33
|
+
|
|
34
|
+
**Auditoría real adversarial** → `AUDIT_REAL_REPOS.md`:
|
|
35
|
+
- Keycloak (6363 clases) + BroadleafCommerce (2970 clases)
|
|
36
|
+
- 7 bugs encontrados (2 P1, 5 P2)
|
|
37
|
+
- Performance medido, recall medido, architecture accuracy verificada
|
|
38
|
+
|
|
39
|
+
**README reescrito** basado en evidencia real:
|
|
40
|
+
- Token counts honestos (2000-4000), benchmark table real, limitaciones documentadas, `@M3FiltroSeguridad` eliminado
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Bugs encontrados (auditoría)
|
|
45
|
+
|
|
46
|
+
| # | Sev | Bug | Fix location |
|
|
47
|
+
|---|---|---|---|
|
|
48
|
+
| BUG-01 | **P1** | `impact <Impl>`: métodos propios como "direct callers" → risk=HIGH falso | `repository_ir.py` `compute_blast_radius` — filtrar `contained_in` |
|
|
49
|
+
| BUG-02 | **P1** | BFS collapse: `KeycloakSession --depth 4` = 91s | `compute_blast_radius` — hub-class guard: `if callers>500 and depth>1: depth=1` |
|
|
50
|
+
| BUG-03 | P2 | Test stem: `RedirectUtils` ≠ `RedirectUtilsTest` → false positive | `prepare_context.py:1315` — `.removesuffix("Test").removesuffix("IT")` |
|
|
51
|
+
| BUG-04 | P2 | `bounded_contexts: ["keycloak","keycloak","keycloak"]` duplicados | serialización architecture — `list(dict.fromkeys(...))` |
|
|
52
|
+
| BUG-05 | P2 | `modernize` recomienda "Start with hotspot_candidates" cuando lista vacía | `cli.py` modernize_cmd — recommendation condicional |
|
|
53
|
+
| BUG-06 | P2 | `--format` rechazado por subcommands (`endpoints`, `repo-ir`, etc.) | documentar como main-only o añadir a subcommands |
|
|
54
|
+
| BUG-07 | P2 | `--compact` overall=`high` cuando architecture=`low`; `--agent` dice `medium` | alinear lógica de downgrade |
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Estado archivos sin commitear
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
M src/sourcecode/cli.py (+354)
|
|
62
|
+
M src/sourcecode/repository_ir.py (+257)
|
|
63
|
+
M tests/test_enterprise_benchmarks.py (+759)
|
|
64
|
+
M README.md (reescrito)
|
|
65
|
+
?? AUDIT_REAL_REPOS.md
|
|
66
|
+
?? docs/PRODUCT_TIERS.md
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Tests: **1466 passed, 3 skipped** ✅
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Primera acción al retomar
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
cd /Users/user/Documents/workspace/atlas-cli
|
|
77
|
+
|
|
78
|
+
# 1. Verificar tests
|
|
79
|
+
python3 -m pytest tests/ -q 2>&1 | tail -3
|
|
80
|
+
|
|
81
|
+
# 2. Commitear sesiones 18+19
|
|
82
|
+
git add src/sourcecode/cli.py \
|
|
83
|
+
src/sourcecode/repository_ir.py \
|
|
84
|
+
tests/test_enterprise_benchmarks.py \
|
|
85
|
+
README.md \
|
|
86
|
+
docs/PRODUCT_TIERS.md \
|
|
87
|
+
AUDIT_REAL_REPOS.md
|
|
88
|
+
git commit
|
|
89
|
+
# Mensaje preparado:
|
|
90
|
+
# feat(impact,workflows,benchmarks): monetizable change-impact layer + enterprise workflows
|
|
91
|
+
# (ver mensaje completo en sesión 19)
|
|
92
|
+
|
|
93
|
+
# 3. Fijar BUG-01 (P1) — mayor ROI de credibilidad
|
|
94
|
+
# repository_ir.py: compute_blast_radius
|
|
95
|
+
# Filtrar: direct_callers = [c for c in callers if not c.startswith(f"{target}#")]
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Próximas acciones por ROI
|
|
99
|
+
|
|
100
|
+
1. **BUG-01** — fix impl self-callers (30 min) → credibilidad inmediata
|
|
101
|
+
2. **BUG-02** — hub-class BFS guard (20 min) → performance fix crítico
|
|
102
|
+
3. **BUG-03** — test stem matching (15 min) → false positive en PR review
|
|
103
|
+
4. **BUG-04 + BUG-05** — dedup + modernize recommendation (15 min) → cosmético pero visible
|
|
104
|
+
5. **Impact caching** (1-2h) → 12s → <1s en uso repetido
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
*Pausado 2026-05-24 — gsd:pause-work (sesión 19)*
|
|
@@ -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",
|