sourcecode 1.12.0__tar.gz → 1.16.0__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.
Potentially problematic release.
This version of sourcecode might be problematic. Click here for more details.
- sourcecode-1.16.0/.continue-here.md +125 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/PKG-INFO +140 -49
- sourcecode-1.16.0/README.md +205 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/pyproject.toml +1 -1
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/__init__.py +1 -1
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/architecture_analyzer.py +146 -1
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/architecture_summary.py +20 -24
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/classifier.py +12 -3
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/cli.py +79 -43
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/code_notes_analyzer.py +3 -2
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/confidence_analyzer.py +54 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/detectors/java.py +7 -6
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/doc_analyzer.py +2 -2
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/git_analyzer.py +29 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/prepare_context.py +56 -9
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/schema.py +5 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/serializer.py +276 -20
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/summarizer.py +24 -2
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/tree_utils.py +19 -0
- sourcecode-1.16.0/tests/fixtures/latin1_sample.java +8 -0
- sourcecode-1.16.0/tests/fixtures/latin1_sample_iso.java +2 -0
- sourcecode-1.16.0/tests/test_encoding_regression.py +62 -0
- sourcecode-1.16.0/tests/test_task_differentiation.py +82 -0
- sourcecode-1.12.0/.continue-here.md +0 -105
- sourcecode-1.12.0/README.md +0 -114
- {sourcecode-1.12.0 → sourcecode-1.16.0}/.agents/skills/source-command-gsd-join-discord/SKILL.md +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/.agents/skills/source-command-gsd-review-backlog/SKILL.md +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/.agents/skills/source-command-gsd-workstreams/SKILL.md +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/.gitignore +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/.ruff.toml +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/CONTRIBUTING.md +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/LICENSE +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/SECURITY.md +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/docs/privacy.md +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/docs/schema.md +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/raw +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/run_cli.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/progress.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/redactor.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/scanner.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/src/sourcecode/workspace.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/__init__.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/conftest.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/coverage.xml +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/fastapi_app/pyproject.toml +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/fastapi_app/src/main.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/go_service/cmd/api/main.go +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/go_service/go.mod +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/jacoco.xml +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/lcov.info +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/nextjs_app/app/page.tsx +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/nextjs_app/package.json +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/nextjs_app/pnpm-lock.yaml +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/pnpm_monorepo/apps/web/app/page.tsx +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/pnpm_monorepo/apps/web/package.json +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/pnpm_monorepo/packages/api/main.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/pnpm_monorepo/packages/api/pyproject.toml +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/pnpm_monorepo/pnpm-workspace.yaml +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/pom.xml +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/application/service/FindAusenteService.java +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/domain/entities/Ausente.java +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/ausente/infrastructure/rest/AusenteRestController.java +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/application/service/FindAutocoberturasService.java +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/domain/entities/Autocoberturas.java +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/autocoberturas/infrastructure/rest/AutocoberturasRestController.java +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/application/service/FindCalendarioTrabajadorService.java +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/domain/entities/CalendarioTrabajador.java +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/calendarioTrabajador/infrastructure/rest/CalendarioTrabajadorRestController.java +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/application/service/FindDepartamentoService.java +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/domain/entities/Departamento.java +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/departamento/infrastructure/rest/DepartamentoRestController.java +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/application/service/FindEmpleadoService.java +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/domain/entities/Empleado.java +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/ddd/empleado/infrastructure/rest/EmpleadoRestController.java +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/DemoApplication.java +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/config/FilterConfig.java +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/domain/Health.java +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/mapper/HealthMapper.java +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/repository/HealthRepository.java +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/service/HealthService.java +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/HealthRestController.java +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/java/com/example/demo/web/NominaRestController.java +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/resources/application-dev.yml +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/resources/application.yml +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/fixtures/spring_boot_minimal/src/main/resources/mapper/HealthMapper.xml +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_architecture_analyzer.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_architecture_summary.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_ast_extractor.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_block1_reliability.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_block2_coverage.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_block5_quality.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_bug_fixes_v16.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_classifier.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_cli.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_code_notes_analyzer.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_context_scorer.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_contract_pipeline.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_coverage_parser.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_cross_consistency.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_dependency_analyzer_node_python.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_dependency_analyzer_polyglot.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_dependency_schema.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_detector_dotnet.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_detector_go_rust_java.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_detector_nodejs.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_detector_php_ruby_dart.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_detector_python.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_detector_universal_managed.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_detector_universal_systems.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_detectors_base.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_doc_analyzer_jsdom.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_doc_analyzer_python.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_graph_analyzer_polyglot.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_graph_analyzer_python_node.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_graph_schema.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_hybrid_inference.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_integration.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_integration_dependencies.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_integration_detection.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_integration_docs.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_integration_graph_modules.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_integration_lqn.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_integration_metrics.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_integration_multistack.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_integration_semantics.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_integration_universal.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_java_spring_integration.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_metrics_analyzer.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_packaging.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_phase1_improvements.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_pipeline_integrity.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_real_projects.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_redactor.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_scanner.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_schema.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_schema_normalization.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_semantic_analyzer_node.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_semantic_analyzer_python.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_semantic_import_resolution.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_semantic_schema.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_signal_hierarchy.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_summarizer.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_surface_honesty.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_telemetry.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_v1_10_regressions.py +0 -0
- {sourcecode-1.12.0 → sourcecode-1.16.0}/tests/test_workspace_analyzer.py +0 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# Continue Here — atlas-cli v1.14.0 defect patch (saint-server)
|
|
2
|
+
|
|
3
|
+
**Paused:** 2026-05-13
|
|
4
|
+
**Repo:** `/Users/user/Downloads/atlas-cli`
|
|
5
|
+
**Branch:** master
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Estado actual
|
|
10
|
+
|
|
11
|
+
Sesión: patch de 15 defectos contra saint-server (Spring Boot 2.7 / Java 8 / 100 módulos DDD / 467 controllers). **Sin commit** (instrucción explícita: "no hagas commit"). 10 ficheros fuente modificados + 4 ficheros nuevos de test/fixtures.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Defectos corregidos esta sesión
|
|
16
|
+
|
|
17
|
+
### CRITICAL
|
|
18
|
+
| ID | Fix | Fichero |
|
|
19
|
+
|----|-----|---------|
|
|
20
|
+
| C1 | `_extract_first_useful_paragraph()` rechaza snippets de startup via `_STARTUP_RE` (≥2 hits) | `summarizer.py` |
|
|
21
|
+
| C2 | `_bootstrap_structured()` emite `modules` (todos los DDD modules) en vez de `sample` (5 primeros) | `serializer.py` |
|
|
22
|
+
| C3 | `safe_read_text()` con fallback UTF-8→ISO-8859-1→UTF-8/replace — elimina double-encoding de chars españoles | `tree_utils.py` + 3 consumidores |
|
|
23
|
+
| C4 | `_scan_java_patterns()` escanea Java para `@interface` + `extends`, emite `custom_annotations[]` + `base_classes[]` | `architecture_analyzer.py` + `schema.py` |
|
|
24
|
+
|
|
25
|
+
### HIGH
|
|
26
|
+
| ID | Fix | Fichero |
|
|
27
|
+
|----|-----|---------|
|
|
28
|
+
| H1 | `_spring_profiles_context()` → `{detected, per_profile_variants, note}` | `serializer.py` |
|
|
29
|
+
| H2 | `_is_dto_mapper()` separa `@Mapper` reales de DtoMapper. Añade `dto_mappers[]`, elimina falsos positivos en `missing_xml` | `serializer.py` |
|
|
30
|
+
| H3 | `_transactional_summary()` emite todas las clases; trunca a 10 con `truncated: true` + `note` | `serializer.py` |
|
|
31
|
+
| H4 | `_TASK_CONTENT_MAP` per-task filter en prepare-context. Fix `review-pr` suspected_areas filtrado a root | `cli.py` + `prepare_context.py` |
|
|
32
|
+
| H5 | Fallback `git log -n 100` cuando scan por fecha retorna 0. Nuevo campo `hotspot_method` | `git_analyzer.py` + `schema.py` |
|
|
33
|
+
|
|
34
|
+
### MEDIUM
|
|
35
|
+
| ID | Fix | Fichero |
|
|
36
|
+
|----|-----|---------|
|
|
37
|
+
| M1 | `_security_surface_from_eps()` añade campo `schema` descriptor. Mantiene `resource_names` (compat) | `serializer.py` |
|
|
38
|
+
| M2 | `_jndi_datasources()` escanea `application.yml` / `persistence.xml` para JNDI names | `serializer.py` |
|
|
39
|
+
| M3 | `_file_relevance()` scoring: +10 entry points, +8 base classes, +6 security config, +2 utils | `serializer.py` |
|
|
40
|
+
| M4 | `--agent` auto-habilita `architecture = True` | `cli.py` |
|
|
41
|
+
| M5 | Help `--compact` actualizado: "1000–3000 tokens" (era "600–800") | `cli.py` |
|
|
42
|
+
|
|
43
|
+
### LOW
|
|
44
|
+
| ID | Fix | Fichero |
|
|
45
|
+
|----|-----|---------|
|
|
46
|
+
| L1 | `analysis_gaps` expandido: ADRs missing, OpenAPI missing, profile YAMLs sin comentarios | `confidence_analyzer.py` |
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Ficheros modificados
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
src/sourcecode/architecture_analyzer.py +147 líneas — C4
|
|
54
|
+
src/sourcecode/cli.py +90 líneas — H4, M4, M5
|
|
55
|
+
src/sourcecode/code_notes_analyzer.py +5 líneas — C3
|
|
56
|
+
src/sourcecode/confidence_analyzer.py +54 líneas — L1
|
|
57
|
+
src/sourcecode/doc_analyzer.py +4 líneas — C3
|
|
58
|
+
src/sourcecode/git_analyzer.py +29 líneas — H5
|
|
59
|
+
src/sourcecode/schema.py +5 líneas — C4, H5
|
|
60
|
+
src/sourcecode/serializer.py +245 líneas — C2, H1-H3, M1-M3
|
|
61
|
+
src/sourcecode/summarizer.py +26 líneas — C1, C3
|
|
62
|
+
src/sourcecode/tree_utils.py +19 líneas — C3 utility
|
|
63
|
+
src/sourcecode/prepare_context.py +5 líneas — H4
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Ficheros nuevos
|
|
67
|
+
```
|
|
68
|
+
tests/test_encoding_regression.py — 4 tests C3
|
|
69
|
+
tests/test_task_differentiation.py — 6 tests H4
|
|
70
|
+
tests/fixtures/latin1_sample.java — fixture UTF-8
|
|
71
|
+
tests/fixtures/latin1_sample_iso.java — fixture Latin-1
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Tests
|
|
77
|
+
|
|
78
|
+
- **743 passed, 3 skipped** — 0 regresiones
|
|
79
|
+
- Fallos pre-existentes excluidos:
|
|
80
|
+
- `test_block2_coverage.py::test_java_marked_unsupported` — bug pre-existente en test (`name` vs `symbol`)
|
|
81
|
+
- `test_dependency_analyzer_node_python.py::test_python_requirements_without_lockfile_keeps_declared_versions` — versión fixture incorrecta
|
|
82
|
+
- `test_pipeline_integrity.py::TestBenchmarkContamination::test_agent_splits_development_and_auxiliary_eps` — pre-existente
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Pendientes para próxima sesión
|
|
87
|
+
|
|
88
|
+
1. **Smoke test en saint-server real:**
|
|
89
|
+
```bash
|
|
90
|
+
python3 run_cli.py /path/to/saint-server --compact --agent --git-context 2>/dev/null | python3 -c "
|
|
91
|
+
import json,sys; d=json.load(sys.stdin)
|
|
92
|
+
print('profiles:', d.get('spring_profiles'))
|
|
93
|
+
print('arch method:', d.get('architecture',{}).get('method'))
|
|
94
|
+
print('custom_annotations:', len(d.get('architecture',{}).get('custom_annotations',[])))
|
|
95
|
+
print('hotspot_method:', d.get('git_context',{}).get('hotspot_method'))
|
|
96
|
+
"
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
2. **Commit** cuando listo:
|
|
100
|
+
```bash
|
|
101
|
+
git add src/sourcecode/ tests/test_encoding_regression.py tests/test_task_differentiation.py tests/fixtures/latin1_sample*.java
|
|
102
|
+
git commit -m "fix: 15 saint-server defects — C1-C4 critical, H1-H5 high, M1-M5 medium, L1 low"
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
3. **Pre-existing bugs** (no tocados):
|
|
106
|
+
- `_OPTIONAL_LABEL_MAP` en `architecture_summary.py` tiene valores en español
|
|
107
|
+
- `lombok` / `sqlite-jdbc` clasificados `role: runtime` incorrectamente
|
|
108
|
+
- `test_pipeline_integrity::test_agent_splits_development_and_auxiliary_eps` — `agent_view()` no emite `auxiliary_entry_points`
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Para retomar
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
cd /Users/user/Downloads/atlas-cli
|
|
116
|
+
git diff --stat # verificar 10 ficheros modificados
|
|
117
|
+
python3 -m pytest tests/ \
|
|
118
|
+
--ignore=tests/test_block2_coverage.py \
|
|
119
|
+
--ignore=tests/test_dependency_analyzer_node_python.py \
|
|
120
|
+
--ignore=tests/test_pipeline_integrity.py -q
|
|
121
|
+
# Expected: 743 passed, 3 skipped
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
*Pausado 2026-05-13 — gsd:pause-work*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sourcecode
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.16.0
|
|
4
4
|
Summary: Deterministic codebase context for AI coding agents
|
|
5
5
|
License: Apache License
|
|
6
6
|
Version 2.0, January 2004
|
|
@@ -219,115 +219,206 @@ Description-Content-Type: text/markdown
|
|
|
219
219
|
|
|
220
220
|
# sourcecode
|
|
221
221
|
|
|
222
|
-
**
|
|
222
|
+
**Compressed AI-ready context for Java/Spring enterprise codebases.**
|
|
223
223
|
|
|
224
|
-

|
|
224
|
+

|
|
226
225
|

|
|
227
226
|
|
|
228
227
|
---
|
|
229
228
|
|
|
230
229
|
## What is it?
|
|
231
230
|
|
|
232
|
-
`sourcecode` analyzes a repository and produces
|
|
231
|
+
`sourcecode` analyzes a repository and produces structured JSON or YAML designed to be fed directly to AI agents or language models. It solves the "stuff the whole repo into the prompt" problem by extracting a deterministic, high-signal summary: stack detection, entry points, dependencies, git hotspots, inline annotations, and confidence metadata.
|
|
232
|
+
|
|
233
|
+
Optimized for Java/Spring Boot monorepos. Works on any codebase.
|
|
233
234
|
|
|
234
235
|
---
|
|
235
236
|
|
|
236
237
|
## Installation
|
|
237
238
|
|
|
238
|
-
|
|
239
|
+
### Homebrew (macOS / Linux)
|
|
240
|
+
|
|
241
|
+
```bash
|
|
242
|
+
brew tap haroundominique/sourcecode
|
|
243
|
+
brew install sourcecode
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### pip / pipx
|
|
239
247
|
|
|
240
248
|
```bash
|
|
241
249
|
pip install sourcecode
|
|
242
|
-
# or with
|
|
250
|
+
# or with isolation:
|
|
243
251
|
pipx install sourcecode
|
|
244
252
|
```
|
|
245
253
|
|
|
246
|
-
Verify
|
|
254
|
+
### Verify
|
|
247
255
|
|
|
248
256
|
```bash
|
|
249
257
|
sourcecode version
|
|
250
|
-
# sourcecode 1.
|
|
258
|
+
# sourcecode 1.16.0
|
|
251
259
|
```
|
|
252
260
|
|
|
253
261
|
---
|
|
254
262
|
|
|
255
263
|
## Quickstart
|
|
256
264
|
|
|
257
|
-
The primary command — a high-signal, low-noise summary for Java/Spring codebases:
|
|
258
|
-
|
|
259
265
|
```bash
|
|
266
|
+
# High-signal summary (~600-800 tokens) — recommended starting point
|
|
260
267
|
sourcecode --compact
|
|
261
|
-
# ~600-800 tokens: stack, entry points, dependencies, risk flags, confidence.
|
|
262
268
|
|
|
269
|
+
# Add git hotspots and uncommitted file count
|
|
263
270
|
sourcecode --compact --git-context
|
|
264
|
-
# Adds git hotspots and uncommitted file count.
|
|
265
271
|
|
|
272
|
+
# Analyze a specific path
|
|
273
|
+
sourcecode /path/to/repo --compact
|
|
274
|
+
|
|
275
|
+
# Copy result to clipboard
|
|
266
276
|
sourcecode --compact --copy
|
|
267
|
-
|
|
277
|
+
|
|
278
|
+
# Structured output for AI agents (identity, entry points, dependencies, confidence)
|
|
279
|
+
sourcecode --agent
|
|
280
|
+
|
|
281
|
+
# Only process git-modified files (forces compact output)
|
|
282
|
+
sourcecode --changed-only
|
|
268
283
|
```
|
|
269
284
|
|
|
270
|
-
Example output for a Spring Boot project:
|
|
285
|
+
Example output for a Spring Boot project (`--compact`):
|
|
271
286
|
|
|
272
287
|
```json
|
|
273
288
|
{
|
|
274
289
|
"project_type": "api",
|
|
275
|
-
"stacks": [{ "stack": "java", "
|
|
290
|
+
"stacks": [{ "stack": "java", "detection_method": "manifest", "confidence": "high",
|
|
291
|
+
"primary": true, "frameworks": ["Spring Boot", "MyBatis"] }],
|
|
276
292
|
"entry_points": {
|
|
277
293
|
"bootstrap": ["src/main/java/io/spring/RealWorldApplication.java"],
|
|
278
|
-
"security":
|
|
279
|
-
"controllers": { "count": 8, "sample": [
|
|
294
|
+
"security": ["src/main/java/io/spring/api/security/WebSecurityConfig.java"],
|
|
295
|
+
"controllers": { "count": 8, "sample": ["src/main/java/io/spring/api/ArticleApi.java"] }
|
|
280
296
|
},
|
|
281
297
|
"key_dependencies": [
|
|
282
298
|
{ "name": "org.mybatis.spring.boot:mybatis-spring-boot-starter",
|
|
283
299
|
"version": "2.2.2", "risk_flags": ["spring-boot-2.x-eol"] }
|
|
284
300
|
],
|
|
285
301
|
"language_version": "11",
|
|
286
|
-
"deployment": { "spring_boot_version": "2.6.3" },
|
|
302
|
+
"deployment": { "spring_boot_version": "2.6.3", "packaging": "jar" },
|
|
287
303
|
"mybatis": { "mapper_interfaces": 4, "xml_files": 4 },
|
|
288
|
-
"confidence_summary": { "overall": "high" }
|
|
304
|
+
"confidence_summary": { "overall": "high", "stack": "high", "entry_points": "high" }
|
|
289
305
|
}
|
|
290
306
|
```
|
|
291
307
|
|
|
292
|
-
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## Flags reference
|
|
311
|
+
|
|
312
|
+
| Flag | Alias | Default | Description |
|
|
313
|
+
|------|-------|---------|-------------|
|
|
314
|
+
| `--compact` | | off | **Recommended.** ~600-800 token summary: stack, entry points, dependencies, risk flags, confidence, gaps. Optimized for agent context windows. |
|
|
315
|
+
| `--agent` | | off | Structured noise-free JSON for AI agents: identity, entry points, dependencies, confidence, gaps. Auto-enables dependency, env-var, and code-notes analysis. |
|
|
316
|
+
| `--git-context` | `-g` | off | Include git activity: recent commits, change hotspots, and uncommitted changes. |
|
|
317
|
+
| `--changed-only` | | off | Limit output to git-modified files (staged, unstaged, untracked). Forces compact output. |
|
|
318
|
+
| `--depth` | | `4` | File tree traversal depth (1–20). Java/Maven projects auto-adjust to 12. |
|
|
319
|
+
| `--format` | `-f` | `json` | Output format: `json` or `yaml`. |
|
|
320
|
+
| `--output` | `-o` | stdout | Write output to a file instead of stdout. |
|
|
321
|
+
| `--copy` | `-c` | off | Copy output to clipboard after a successful run. No-op when `--output` is set or clipboard is unavailable. |
|
|
322
|
+
| `--no-redact` | | off | Disable automatic secret redaction. Output may contain sensitive values. |
|
|
323
|
+
| `--version` | `-v` | — | Show version and exit. |
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## `prepare-context` — task-specific context
|
|
328
|
+
|
|
329
|
+
Generates a focused context bundle for a specific AI coding task. More targeted than `--compact`: each task re-ranks files according to its own signal priorities.
|
|
293
330
|
|
|
294
331
|
```bash
|
|
295
|
-
sourcecode
|
|
332
|
+
sourcecode prepare-context TASK [PATH] [OPTIONS]
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### Tasks
|
|
336
|
+
|
|
337
|
+
| Task | What it surfaces | Primary use |
|
|
338
|
+
|------|-----------------|-------------|
|
|
339
|
+
| `explain` | Architecture, entry points, key dependencies | Onboarding an LLM to a new project |
|
|
340
|
+
| `onboard` | Full structural context: entry points, architecture, key files, dependencies | New developer or agent joining the codebase |
|
|
341
|
+
| `fix-bug` | Files ranked by risk (annotations, churn, uncommitted changes), suspected areas | Debugging session |
|
|
342
|
+
| `refactor` | Structural problems, improvement opportunities, high-annotation files | Code quality review |
|
|
343
|
+
| `generate-tests` | Source files without test pairs, coverage gap analysis | Writing missing tests |
|
|
344
|
+
| `review-pr` | Uncommitted/changed files + architectural impact | Pre-merge review |
|
|
345
|
+
| `delta` | Only files changed in a git range (`--since`), affected entry points | Incremental CI context |
|
|
346
|
+
|
|
347
|
+
### Options
|
|
348
|
+
|
|
349
|
+
| Option | Description |
|
|
350
|
+
|--------|-------------|
|
|
351
|
+
| `--since REF` | Git ref for `delta` task (e.g. `HEAD~3`, `main`, `v1.2.0`). Required for `delta`; ignored for other tasks. |
|
|
352
|
+
| `--llm-prompt` | Append a ready-to-use LLM prompt to the output. |
|
|
353
|
+
| `--dry-run` | Show what would be analyzed without running it. |
|
|
354
|
+
| `--copy` / `-c` | Copy output to clipboard after a successful run. |
|
|
355
|
+
| `--task-help` | List all tasks with descriptions and exit. |
|
|
356
|
+
|
|
357
|
+
### Examples
|
|
358
|
+
|
|
359
|
+
```bash
|
|
360
|
+
# Explain the current repo
|
|
361
|
+
sourcecode prepare-context explain
|
|
362
|
+
|
|
363
|
+
# Analyze a specific repo path
|
|
364
|
+
sourcecode prepare-context explain /path/to/repo
|
|
365
|
+
|
|
366
|
+
# Focus on bug-prone files
|
|
367
|
+
sourcecode prepare-context fix-bug
|
|
368
|
+
|
|
369
|
+
# Incremental context: files changed since branch diverged from main
|
|
370
|
+
sourcecode prepare-context delta . --since main
|
|
371
|
+
|
|
372
|
+
# Onboard with a ready-to-paste LLM prompt
|
|
373
|
+
sourcecode prepare-context onboard --llm-prompt
|
|
374
|
+
|
|
375
|
+
# List all tasks
|
|
376
|
+
sourcecode prepare-context --task-help
|
|
296
377
|
```
|
|
297
378
|
|
|
298
379
|
---
|
|
299
380
|
|
|
300
|
-
##
|
|
381
|
+
## Output schema
|
|
382
|
+
|
|
383
|
+
All outputs include a `confidence_summary` block with `overall`, `stack`, and `entry_points` confidence levels (`high` / `medium` / `low`), plus an `analysis_gaps` list describing what could not be analyzed and why.
|
|
384
|
+
|
|
385
|
+
### Java/Spring-specific fields
|
|
386
|
+
|
|
387
|
+
When a Java manifest (`pom.xml` or `build.gradle`) is detected, the output includes additional fields:
|
|
301
388
|
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
|
305
|
-
|
|
306
|
-
|
|
|
307
|
-
|
|
|
308
|
-
|
|
|
309
|
-
|
|
|
310
|
-
|
|
|
311
|
-
|
|
|
312
|
-
| `--output` | `-o` | `PATH` | stdout | Write output to a file instead of stdout. |
|
|
313
|
-
| `--copy` | `-c` | flag | off | Copy output to clipboard after a successful run. |
|
|
314
|
-
| `--no-redact` | | flag | off | Disable automatic secret redaction. Output may contain sensitive values. |
|
|
315
|
-
| `--version` | `-v` | flag | — | Show version and exit. |
|
|
389
|
+
| Field | Description |
|
|
390
|
+
|-------|-------------|
|
|
391
|
+
| `language_version` | Java version from `maven.compiler.source` or equivalent |
|
|
392
|
+
| `deployment.spring_boot_version` | Spring Boot version |
|
|
393
|
+
| `deployment.packaging` | `jar` or `war` |
|
|
394
|
+
| `deployment.app_server_hint` | `weblogic`, `wildfly`, etc. (when detectable) |
|
|
395
|
+
| `security_surface.resource_names` | Values of `@M3FiltroSeguridad(nombreRecurso=...)` annotations across all controllers |
|
|
396
|
+
| `mybatis` | Mapper interface / XML file pairing summary |
|
|
397
|
+
| `transactional_boundaries` | Classes annotated with `@Transactional` |
|
|
398
|
+
| `deployment_risks` | Static risk flags: `spring-boot-2.x-eol`, `legacy-java-runtime`, `legacy-app-server-deployment` |
|
|
316
399
|
|
|
317
400
|
---
|
|
318
401
|
|
|
319
|
-
##
|
|
402
|
+
## Telemetry
|
|
320
403
|
|
|
321
|
-
|
|
404
|
+
Anonymous, opt-in telemetry collects: version, OS, commands used, flags, duration, repo size range, and errors. No source code, paths, secrets, or output content is ever collected.
|
|
322
405
|
|
|
323
|
-
|
|
406
|
+
```bash
|
|
407
|
+
sourcecode telemetry status # current setting
|
|
408
|
+
sourcecode telemetry enable # opt in
|
|
409
|
+
sourcecode telemetry disable # opt out (permanent)
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
Alternatively, set the environment variable:
|
|
413
|
+
|
|
414
|
+
```bash
|
|
415
|
+
export SOURCECODE_TELEMETRY=0
|
|
416
|
+
```
|
|
324
417
|
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
| `generate-tests` | Files without tests, coverage gap analysis | 🧪 EXP |
|
|
333
|
-
| `review-pr` | Changed files + architectural impact | 🧪 EXP |
|
|
418
|
+
---
|
|
419
|
+
|
|
420
|
+
## Configuration
|
|
421
|
+
|
|
422
|
+
```bash
|
|
423
|
+
sourcecode config # show version, config file path, telemetry status
|
|
424
|
+
```
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# sourcecode
|
|
2
|
+
|
|
3
|
+
**Compressed AI-ready context for Java/Spring enterprise codebases.**
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+

|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## What is it?
|
|
11
|
+
|
|
12
|
+
`sourcecode` analyzes a repository and produces structured JSON or YAML designed to be fed directly to AI agents or language models. It solves the "stuff the whole repo into the prompt" problem by extracting a deterministic, high-signal summary: stack detection, entry points, dependencies, git hotspots, inline annotations, and confidence metadata.
|
|
13
|
+
|
|
14
|
+
Optimized for Java/Spring Boot monorepos. Works on any codebase.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Installation
|
|
19
|
+
|
|
20
|
+
### Homebrew (macOS / Linux)
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
brew tap haroundominique/sourcecode
|
|
24
|
+
brew install sourcecode
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### pip / pipx
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
pip install sourcecode
|
|
31
|
+
# or with isolation:
|
|
32
|
+
pipx install sourcecode
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Verify
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
sourcecode version
|
|
39
|
+
# sourcecode 1.16.0
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Quickstart
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# High-signal summary (~600-800 tokens) — recommended starting point
|
|
48
|
+
sourcecode --compact
|
|
49
|
+
|
|
50
|
+
# Add git hotspots and uncommitted file count
|
|
51
|
+
sourcecode --compact --git-context
|
|
52
|
+
|
|
53
|
+
# Analyze a specific path
|
|
54
|
+
sourcecode /path/to/repo --compact
|
|
55
|
+
|
|
56
|
+
# Copy result to clipboard
|
|
57
|
+
sourcecode --compact --copy
|
|
58
|
+
|
|
59
|
+
# Structured output for AI agents (identity, entry points, dependencies, confidence)
|
|
60
|
+
sourcecode --agent
|
|
61
|
+
|
|
62
|
+
# Only process git-modified files (forces compact output)
|
|
63
|
+
sourcecode --changed-only
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Example output for a Spring Boot project (`--compact`):
|
|
67
|
+
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"project_type": "api",
|
|
71
|
+
"stacks": [{ "stack": "java", "detection_method": "manifest", "confidence": "high",
|
|
72
|
+
"primary": true, "frameworks": ["Spring Boot", "MyBatis"] }],
|
|
73
|
+
"entry_points": {
|
|
74
|
+
"bootstrap": ["src/main/java/io/spring/RealWorldApplication.java"],
|
|
75
|
+
"security": ["src/main/java/io/spring/api/security/WebSecurityConfig.java"],
|
|
76
|
+
"controllers": { "count": 8, "sample": ["src/main/java/io/spring/api/ArticleApi.java"] }
|
|
77
|
+
},
|
|
78
|
+
"key_dependencies": [
|
|
79
|
+
{ "name": "org.mybatis.spring.boot:mybatis-spring-boot-starter",
|
|
80
|
+
"version": "2.2.2", "risk_flags": ["spring-boot-2.x-eol"] }
|
|
81
|
+
],
|
|
82
|
+
"language_version": "11",
|
|
83
|
+
"deployment": { "spring_boot_version": "2.6.3", "packaging": "jar" },
|
|
84
|
+
"mybatis": { "mapper_interfaces": 4, "xml_files": 4 },
|
|
85
|
+
"confidence_summary": { "overall": "high", "stack": "high", "entry_points": "high" }
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Flags reference
|
|
92
|
+
|
|
93
|
+
| Flag | Alias | Default | Description |
|
|
94
|
+
|------|-------|---------|-------------|
|
|
95
|
+
| `--compact` | | off | **Recommended.** ~600-800 token summary: stack, entry points, dependencies, risk flags, confidence, gaps. Optimized for agent context windows. |
|
|
96
|
+
| `--agent` | | off | Structured noise-free JSON for AI agents: identity, entry points, dependencies, confidence, gaps. Auto-enables dependency, env-var, and code-notes analysis. |
|
|
97
|
+
| `--git-context` | `-g` | off | Include git activity: recent commits, change hotspots, and uncommitted changes. |
|
|
98
|
+
| `--changed-only` | | off | Limit output to git-modified files (staged, unstaged, untracked). Forces compact output. |
|
|
99
|
+
| `--depth` | | `4` | File tree traversal depth (1–20). Java/Maven projects auto-adjust to 12. |
|
|
100
|
+
| `--format` | `-f` | `json` | Output format: `json` or `yaml`. |
|
|
101
|
+
| `--output` | `-o` | stdout | Write output to a file instead of stdout. |
|
|
102
|
+
| `--copy` | `-c` | off | Copy output to clipboard after a successful run. No-op when `--output` is set or clipboard is unavailable. |
|
|
103
|
+
| `--no-redact` | | off | Disable automatic secret redaction. Output may contain sensitive values. |
|
|
104
|
+
| `--version` | `-v` | — | Show version and exit. |
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## `prepare-context` — task-specific context
|
|
109
|
+
|
|
110
|
+
Generates a focused context bundle for a specific AI coding task. More targeted than `--compact`: each task re-ranks files according to its own signal priorities.
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
sourcecode prepare-context TASK [PATH] [OPTIONS]
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Tasks
|
|
117
|
+
|
|
118
|
+
| Task | What it surfaces | Primary use |
|
|
119
|
+
|------|-----------------|-------------|
|
|
120
|
+
| `explain` | Architecture, entry points, key dependencies | Onboarding an LLM to a new project |
|
|
121
|
+
| `onboard` | Full structural context: entry points, architecture, key files, dependencies | New developer or agent joining the codebase |
|
|
122
|
+
| `fix-bug` | Files ranked by risk (annotations, churn, uncommitted changes), suspected areas | Debugging session |
|
|
123
|
+
| `refactor` | Structural problems, improvement opportunities, high-annotation files | Code quality review |
|
|
124
|
+
| `generate-tests` | Source files without test pairs, coverage gap analysis | Writing missing tests |
|
|
125
|
+
| `review-pr` | Uncommitted/changed files + architectural impact | Pre-merge review |
|
|
126
|
+
| `delta` | Only files changed in a git range (`--since`), affected entry points | Incremental CI context |
|
|
127
|
+
|
|
128
|
+
### Options
|
|
129
|
+
|
|
130
|
+
| Option | Description |
|
|
131
|
+
|--------|-------------|
|
|
132
|
+
| `--since REF` | Git ref for `delta` task (e.g. `HEAD~3`, `main`, `v1.2.0`). Required for `delta`; ignored for other tasks. |
|
|
133
|
+
| `--llm-prompt` | Append a ready-to-use LLM prompt to the output. |
|
|
134
|
+
| `--dry-run` | Show what would be analyzed without running it. |
|
|
135
|
+
| `--copy` / `-c` | Copy output to clipboard after a successful run. |
|
|
136
|
+
| `--task-help` | List all tasks with descriptions and exit. |
|
|
137
|
+
|
|
138
|
+
### Examples
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
# Explain the current repo
|
|
142
|
+
sourcecode prepare-context explain
|
|
143
|
+
|
|
144
|
+
# Analyze a specific repo path
|
|
145
|
+
sourcecode prepare-context explain /path/to/repo
|
|
146
|
+
|
|
147
|
+
# Focus on bug-prone files
|
|
148
|
+
sourcecode prepare-context fix-bug
|
|
149
|
+
|
|
150
|
+
# Incremental context: files changed since branch diverged from main
|
|
151
|
+
sourcecode prepare-context delta . --since main
|
|
152
|
+
|
|
153
|
+
# Onboard with a ready-to-paste LLM prompt
|
|
154
|
+
sourcecode prepare-context onboard --llm-prompt
|
|
155
|
+
|
|
156
|
+
# List all tasks
|
|
157
|
+
sourcecode prepare-context --task-help
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## Output schema
|
|
163
|
+
|
|
164
|
+
All outputs include a `confidence_summary` block with `overall`, `stack`, and `entry_points` confidence levels (`high` / `medium` / `low`), plus an `analysis_gaps` list describing what could not be analyzed and why.
|
|
165
|
+
|
|
166
|
+
### Java/Spring-specific fields
|
|
167
|
+
|
|
168
|
+
When a Java manifest (`pom.xml` or `build.gradle`) is detected, the output includes additional fields:
|
|
169
|
+
|
|
170
|
+
| Field | Description |
|
|
171
|
+
|-------|-------------|
|
|
172
|
+
| `language_version` | Java version from `maven.compiler.source` or equivalent |
|
|
173
|
+
| `deployment.spring_boot_version` | Spring Boot version |
|
|
174
|
+
| `deployment.packaging` | `jar` or `war` |
|
|
175
|
+
| `deployment.app_server_hint` | `weblogic`, `wildfly`, etc. (when detectable) |
|
|
176
|
+
| `security_surface.resource_names` | Values of `@M3FiltroSeguridad(nombreRecurso=...)` annotations across all controllers |
|
|
177
|
+
| `mybatis` | Mapper interface / XML file pairing summary |
|
|
178
|
+
| `transactional_boundaries` | Classes annotated with `@Transactional` |
|
|
179
|
+
| `deployment_risks` | Static risk flags: `spring-boot-2.x-eol`, `legacy-java-runtime`, `legacy-app-server-deployment` |
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Telemetry
|
|
184
|
+
|
|
185
|
+
Anonymous, opt-in telemetry collects: version, OS, commands used, flags, duration, repo size range, and errors. No source code, paths, secrets, or output content is ever collected.
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
sourcecode telemetry status # current setting
|
|
189
|
+
sourcecode telemetry enable # opt in
|
|
190
|
+
sourcecode telemetry disable # opt out (permanent)
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Alternatively, set the environment variable:
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
export SOURCECODE_TELEMETRY=0
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## Configuration
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
sourcecode config # show version, config file path, telemetry status
|
|
205
|
+
```
|