sourcecode 5.8.31__tar.gz → 5.8.32__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-5.8.31 → sourcecode-5.8.32}/CHANGELOG.md +8 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/PKG-INFO +20 -8
- {sourcecode-5.8.31 → sourcecode-5.8.32}/README.md +19 -7
- sourcecode-5.8.32/docs/AUDIT-2026-08-26-EXTERNAL-5.8.31.md +87 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/DEFECT-LEDGER.md +19 -1
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/DEVELOPMENT-ROADMAP.md +17 -5
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/EXECUTIVE-ROADMAP.md +20 -5
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/MANUAL-USUARIO.md +22 -2
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/PRODUCT-ROUTE.md +19 -1
- sourcecode-5.8.32/docs/STRATEGY-2026-08-26-AGENT-CONTEXT.md +83 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/USER_GUIDE.md +37 -4
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-pack-gate-ci.md +14 -5
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-pack-mcp-api.md +12 -2
- {sourcecode-5.8.31 → sourcecode-5.8.32}/pyproject.toml +1 -1
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/__init__.py +1 -1
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/cli.py +15 -5
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp/server.py +66 -8
- {sourcecode-5.8.31 → sourcecode-5.8.32}/.github/workflows/build-windows.yml +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/.github/workflows/perf-gate.yml +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/.github/workflows/windows-battery.yml +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/.gitignore +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/.ruff.toml +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/CLAUDE.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/CODE_OF_CONDUCT.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/CONTRIBUTING.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/LICENSE +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/NOTICE +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/SECURITY.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-2026-08-22-5.8.22.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-2026-08-23-5.8.24.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-2026-08-23-COMMERCIAL.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-2026-08-23-CORPUS-AMPLIADO.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-2026-08-23-EXTERNAL-5.8.25.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-2026-08-23-EXTERNAL-5.8.26.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-2026-08-23-THINGSBOARD-FINDINGS.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.26.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.27.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.28.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-TESTING-CORPUS-2026-08-22.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/CACHE.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/COMMERCIAL-OFFER.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/CUSTOMER-VALIDATION.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/DEMO-5MIN.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/DOCUMENTATION-HYGIENE-2026-08-23.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/EXECUTION-PLAN-12MO.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/MODERNIZATION.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/PRODUCT_AUDIT.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/PRODUCT_IDENTITY.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/PRODUCT_TIERS.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/RC1-CHECKLIST.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/RELEASE-CHECKLIST.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/CATALOG-retrieval-intents.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-assessment-deployment-evidence.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-assessment-report.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-build-closure-provenance.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-knowledge-provider-integration.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-p5.3b-statement-surface.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-p5.5-span-index.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-p6-semantic-impact-engine.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-p6-semantic-integration-engine.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-p7-semantic-services.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-pack-manifest.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-robustness-security-inference.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-semantic-retrieval.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/EPV-p6-class-typeref.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/REPORT-p6-flow-analyzer-comparison.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/REPORT-p6-integration-detector-comparison.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/REPORT-p8-flow-analyzer-migration.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/REPORT-p9-integration-detector-migration.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/adr/0001-semantic-ir.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/adr/0002-source-evidence-boundary.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/adr/0003-architectural-characterization.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/adr/0004-semantic-retrieval.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/adr/0005-evidence-reconciliation.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/adr/0006-performance-harness.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/adr/0007-composition-semantics.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/adr/0008-answer-coherence.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/consumer-disposition-inventory.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/overview.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/product-architecture-review.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/product-strategy-layering.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/semantic-ir-consumer-matrix.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/semantic-ir-roadmap.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/baseline-ci.yml +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/commercial-pipeline-audit.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/contracts-ci.yml +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/contracts.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/eval/2026-06-15-petclinic-rest-issue11-vets-pagination.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/eval/2026-06-15-petclinic-rest-issue147-validation.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/eval/2026-06-15-petclinic-rest-workflow.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/eval/2026-06-15-phase18-openapi-surface.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/eval/2026-06-15-phase20-validation-surface.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/eval/2026-06-16-broadleaf-checkout-impact-fieldtest.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/eval/2026-06-16-petclinic-rest-issue11-weakness2-closed.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/eval/2026-06-16-spring-petclinic-issue2333-dead-vets.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/licensing-schema.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/migrate-check.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/pack-gate-github-actions.yml +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/pack-gate-gitlab.yml +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/README.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/REGRESSION-GATE.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/SUMMARY.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/alfresco__ask__cold.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/alfresco__ask__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/eureka__ask__cold.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/eureka__ask__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/jenkins__ask__cold.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/jenkins__ask__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/keycloak__ask__cold.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/keycloak__ask__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/neo4j__ask__cold.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/neo4j__ask__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/openmrs__ask__cold.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/openmrs__ask__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/petclinic__ask__cold.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/petclinic__ask__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/SUMMARY.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/alfresco__ask__cold.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/alfresco__ask__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/broadleaf__ask__cold.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/eureka__ask__cold.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/eureka__ask__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/jenkins__ask__cold.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/jenkins__ask__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/jobrunr__ask__cold.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/jobrunr__ask__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/keycloak__ask__cold.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/keycloak__ask__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/neo4j__ask__cold.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/neo4j__ask__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/ofbiz__ask__cold.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/ofbiz__ask__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/openmrs__ask__cold.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/openmrs__ask__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/petclinic__ask__cold.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/petclinic__ask__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/gate-latest/README.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/gate-latest/broadleaf__ask__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/gate-latest/broadleaf__endpoints__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/gate-latest/broadleaf__migrate-check__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/gate-latest/broadleaf__posture__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/gate-latest/broadleaf__spring-audit__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/gate-latest/broadleaf__validation__warm.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/reference-best/README.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/corpus-testing-2026-08-22.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/posture.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/privacy.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/pro-experience-audit.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/schema.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/spec/envelope-v1.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/spring-audit-ci.yml +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/hatch_build.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/scripts/compare_integration_engines.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/scripts/customer_smoke_test.sh +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/scripts/generate_jdk_exports.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/scripts/perf_gate.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/scripts/perf_harness.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/scripts/sync_gate_anchors.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/scripts/test_fast.sh +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/__main__.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/adaptive_scanner.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/analysis_budget.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/answer_bounds.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/archetype.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/architectural_baseline.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/architectural_delta.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/architecture_analyzer.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/architecture_summary.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/ast_extractor.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/audit_clusters.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/audit_recipe.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/audit_report.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/audit_since.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/baseline_autocapture.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/breaking_changes.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/build_modules.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/build_stamp.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/bundled_docs.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/cache.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/cache_model.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/cache_observation.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/call_surface.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/caller_metrics.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/caller_reach.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/canonical_ir.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/chain_rules.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/change_plan.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/ci_output.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/cir_graphs.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/classifier.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/client_calls.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/code_notes_analyzer.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/compare.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/confidence_analyzer.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/constraint_diff.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/consumer_join.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/container_wiring.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/context_cache.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/context_graph.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/context_scorer.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/context_summarizer.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/contract_diff.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/contract_init.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/contract_model.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/contract_pipeline.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/coverage_parser.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/data_exposure.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/data_labels.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/declarations.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/defect_classes/__init__.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/defect_classes/registry.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/defect_identity.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/degradation.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/dependency_analyzer.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/deployment_prefix.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detach.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/__init__.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/base.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/csproj_parser.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/dart.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/dotnet.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/elixir.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/go.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/heuristic.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/hybrid.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/java.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/jvm_ext.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/nodejs.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/parsers.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/php.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/project.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/python.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/ruby.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/rust.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/systems.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/terraform.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/tooling.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/doc_analyzer.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/dynamic_argument_surface.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/empty_reach.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/endpoint_disposition.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/endpoint_literals.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/endpoint_metrics.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/entrypoint_classifier.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/env_analyzer.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/envelope.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/environment_resolution.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/error_schema.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/evidence_provider.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/execution_plan.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/explain.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/explain_endpoint.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/facts/__init__.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/facts/registry.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/field_deprecations.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/file_chunker.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/file_classifier.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/filter_surface.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/format_contract.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/fqn_utils.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/functional_routes.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/gate_anchors.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/git_analyzer.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/git_checkout.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/github_diff.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/graph_analyzer.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/graph_evidence.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/hibernate_strat.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/identity_fallback.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/integration_coordinates.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/jdk_exports.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/license.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/manifest_cache.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp/__init__.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp/dependency_import.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp/onboarding/applier.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp/onboarding/backup.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp/onboarding/detector.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp/onboarding/planner.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp/orchestrator.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp/registry.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp/runner.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp_nudge.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/metrics_analyzer.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/migrate_check.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/migration_apply.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/migration_blast.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/non_coverage.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/openapi_surface.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/openrewrite_recipe.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/output_bounds.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/output_budget.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/output_ceiling.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/output_encoding.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/output_sink.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/pack_manifest.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/packs.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/parallel.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/parse_cache.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/partial_contract.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/path_admission.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/path_display.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/path_filters.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/perf.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/phased_run.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/pipe_contract.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/posture.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/pr_comment_renderer.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/pr_impact.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/prepare_context.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/product_info.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/progress.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/provenance.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/ranking_engine.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/readiness_timeline.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/readonly.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/reconciliation.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/redactor.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/reference_facts.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/regress.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/release_info.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/relevance_scorer.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/remediation_diff.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/remedies.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/rename_refactor.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/repo_classifier.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/repository_ir.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/resource_budget.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/__init__.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/context.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/errors.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/executor.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/planner.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/query.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/request.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/resolution.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/result.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/retriever.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/runtime.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/steps.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/steps_endpoint.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/steps_graph.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/steps_impact.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/steps_intf.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/steps_struct.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/steps_txsec.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/ris.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/risk.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/risk_model.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/rule_catalog.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/rule_pass.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/runs.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/runtime_classifier.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/sarif.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/sarif_emit.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/scanner.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/schema.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/schema_producers.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/schema_registry.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/schemas/core-analysis-v1.schema.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/schemas/endpoints-v1.schema.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/schemas/envelope-v1.schema.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/schemas/pr-impact-v1.schema.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/schemas/verify-edit-v1.schema.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/schemas/verify-v1.schema.json +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/security_chain.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/security_config.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/security_config_scan.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/security_posture.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/selection_contract.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/selftest.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/semantic_analyzer.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/semantic_impact_engine.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/semantic_integration_engine.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/semantic_services.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/serializer.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/servlet_surface.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/source_text.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/spring_event_topology.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/spring_findings.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/spring_impact.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/spring_model.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/spring_profiles.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/spring_properties.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/spring_security_audit.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/spring_semantic.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/spring_tx_analyzer.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/sql_taint.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/summarizer.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/target_admission.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/telemetry/__init__.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/telemetry/config.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/telemetry/consent.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/telemetry/events.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/telemetry/filters.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/telemetry/transport.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/test_gap_ranking.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/test_sources.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/text_input.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/timeline.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/timeline_cache.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/token_estimate.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/tree_utils.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/type_usage_surface.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/validation_inference.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/validation_surface.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/verify_edit.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/verify_repo.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/verify_rules.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/version_check.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/waivers.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/wired_surface.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/workspace.py +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/supabase/functions/README.md +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/supabase/functions/get-license/index.ts +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/supabase/functions/telemetry/index.ts +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/supabase/sql/license_event_ordering.sql +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/supabase/sql/licensing_schema.sql +0 -0
- {sourcecode-5.8.31 → sourcecode-5.8.32}/supabase/sql/telemetry_events.sql +0 -0
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [5.8.32] — 2026-08-26
|
|
4
|
+
|
|
5
|
+
*MCP and documentation alignment release. MCP assessment packs now support
|
|
6
|
+
validated selective component execution through `only`, with omitted coverage
|
|
7
|
+
and a reproducible CLI command recorded in the projection. MCP pull-request
|
|
8
|
+
gates, pack guidance and the public roadmap are synchronized with the current
|
|
9
|
+
release state.*
|
|
10
|
+
|
|
3
11
|
## [5.8.31] — 2026-08-26
|
|
4
12
|
|
|
5
13
|
*Windows portability and release-evidence remediation. Cache and licensing test
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sourcecode
|
|
3
|
-
Version: 5.8.
|
|
3
|
+
Version: 5.8.32
|
|
4
4
|
Summary: Persistent structural context and ultra-fast repeated analysis for AI coding agents
|
|
5
5
|
Project-URL: Homepage, https://github.com/HarounDominique/sourcecode
|
|
6
6
|
Project-URL: Repository, https://github.com/HarounDominique/sourcecode
|
|
@@ -59,7 +59,7 @@ Description-Content-Type: text/markdown
|
|
|
59
59
|
> question. All analysis is local and deterministic; see [Privacy](#configuration--privacy)
|
|
60
60
|
> before inspecting a repository whose telemetry policy you need to control.
|
|
61
61
|
|
|
62
|
-

|
|
63
63
|

|
|
64
64
|
|
|
65
65
|
Copyright (c) 2026 Dominique Haroun. All rights reserved. ASK Engine 5.7.0 and
|
|
@@ -88,6 +88,8 @@ workflow-shaped packs for users who want one consumable result:
|
|
|
88
88
|
ask pack assessment . --profile prod --output-dir .ask/packs/assessment
|
|
89
89
|
ask pack gate . --since origin/main --output-dir .ask/packs/gate
|
|
90
90
|
ask pack assessment . --format markdown -o assessment.md
|
|
91
|
+
ask pack assessment . --only risk,posture --output-dir .ask/packs/assessment
|
|
92
|
+
ask pack gate . --pr 123 --output-dir .ask/packs/gate
|
|
91
93
|
```
|
|
92
94
|
|
|
93
95
|
For deployment-aware posture evidence, pass the artefacts that describe the
|
|
@@ -104,8 +106,17 @@ contract:
|
|
|
104
106
|
```bash
|
|
105
107
|
ask pack gate . --since origin/main --format github-actions
|
|
106
108
|
ask pack gate . --since origin/main --format gitlab
|
|
109
|
+
ask pack gate . --since origin/main --format sarif -o gate.sarif
|
|
107
110
|
```
|
|
108
111
|
|
|
112
|
+
`pack gate --pr NUMBER` uses the local `gh` CLI to resolve changed files and
|
|
113
|
+
the exact base commit; the base SHA must already exist locally. It does not
|
|
114
|
+
fetch or modify the repository. `pack assessment --only` runs named assessment
|
|
115
|
+
components and records omissions in the manifest. MCP's
|
|
116
|
+
`get_assessment_pack` accepts the same selection as `only: list[str]` and
|
|
117
|
+
returns the reproducible CLI command in its `mcp` projection. SARIF is a bounded
|
|
118
|
+
export of ASK-owned gate decisions, not a re-emission of third-party findings.
|
|
119
|
+
|
|
109
120
|
`PASS`, `BLOCK` and `UNVERIFIED` are data decisions. The process exit code is
|
|
110
121
|
the CI signal; `--allow-unverified` can change only that exit code, never the
|
|
111
122
|
reported verdict. Every pack carries a manifest with component invocations,
|
|
@@ -177,18 +188,19 @@ set `ASK_MAX_RSS_MB=<megabytes>`; if the process exceeds it, ASK refuses the
|
|
|
177
188
|
answer with `MEMORY_TOO_LARGE`, including the observed peak and limit. Leave it
|
|
178
189
|
unset, or set it to `0`, to disable the ceiling explicitly.
|
|
179
190
|
|
|
180
|
-
**Current performance status.** Release 5.8.
|
|
191
|
+
**Current performance status.** Release 5.8.32 retains the shared Canonical IR
|
|
181
192
|
path used by `validation` and now passes that same CIR into labelled `data-exposure`
|
|
182
193
|
runs; the no-label path remains parse-free. These are implementation properties,
|
|
183
194
|
not duration promises. A controlled external warm-path audit has opened performance
|
|
184
195
|
and bounded-output regressions for this release; use `ask cache model <repo>` and
|
|
185
196
|
`--progress stderr` for supervised runs, and consult the
|
|
186
|
-
[
|
|
197
|
+
[latest external audit intake](docs/AUDIT-2026-08-26-EXTERNAL-5.8.31.md) before
|
|
187
198
|
treating a historical timing or bounded flag as a current guarantee.
|
|
188
199
|
|
|
189
|
-
**What a warm actually covers.** `ask cache warm`
|
|
200
|
+
**What a warm actually covers.** `ask cache warm` rebuilds the declared root views and their
|
|
190
201
|
shared structural layers (L1/L2 + the Repository Intelligence Snapshot + the shared Canonical
|
|
191
|
-
IR)
|
|
202
|
+
IR). Pass `--views compact` or `--views compact,agent` to warm only selected views; without
|
|
203
|
+
`--views`, all declared views are warmed. Deeper projections
|
|
192
204
|
are separate keys and are *not* covered by either — `--full`, `--env-map` and a raised `--depth`
|
|
193
205
|
recompute on first use, as do most `prepare-context` tasks. Measured on a 3,342-file Spring
|
|
194
206
|
monolith: `cache warm` 103s → `--compact --git-context` 1s (hit), but `--agent --full --env-map
|
|
@@ -210,7 +222,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
210
222
|
# pip / pipx
|
|
211
223
|
pipx install sourcecode # or: pip install sourcecode
|
|
212
224
|
|
|
213
|
-
ask version # ask 5.8.
|
|
225
|
+
ask version # ask 5.8.32 — and, on a build that has aged,
|
|
214
226
|
# how many releases have probably shipped since
|
|
215
227
|
```
|
|
216
228
|
|
|
@@ -479,7 +491,7 @@ from it.
|
|
|
479
491
|
| `plan` / `compare` / `delta` / `contract-diff` | supported | what to review for a change; candidates by measured cost; outcome of a change; public-contract break | no verdicts, measured cost only |
|
|
480
492
|
| `validation` | supported | request-body validation coverage and gaps | |
|
|
481
493
|
| `baseline capture\|diff` · `trend` | supported | versioned architectural metrics over time; `ask trend .` reads the series (a repository path or a baselines directory), `ask baseline diff .` compares the tree against its newest point | trend reporting, not gating. Baselines land in `.ask/baselines` **inside the repository** — the history travels with the code, not with a vendor; an audit that must not write passes `--dir`. `capture --auto` is the unattended form (one baseline per commit, never rewrites one, never fails the build) — automate it: [baseline-ci.yml](docs/baseline-ci.yml) |
|
|
482
|
-
| `retrieve` | parked | typed knowledge queries over the model | |
|
|
494
|
+
| `retrieve` | parked | typed knowledge queries over the model | symbol-oriented queries accept `--target/-t`; domain aliases such as `--module/-m`, `--subsystem/-s` and `--endpoint/-e` remain supported |
|
|
483
495
|
| `timeline` | experimental | since when a number moved, and in which commit window | walks the commit series and re-runs the shipped analyses (`posture`, `data-exposure`, `endpoints`, `spring-audit`) on a read-only materialisation of each sampled tree; publishes transitions, not a per-commit dump. A sample that could not be analysed is `null` with a reason, never 0, and a transition under sampling carries the window it could have happened in |
|
|
484
496
|
| `regress` | supported | what moved between two payloads of the same command, and which declaration accounts for it | attributes each delta to a declaration the answers carry (`test_source_excluded`, `symbols_excluded`, `coverage.gaps`, `*_cap`, `waivers`); a delta nothing explains is `unattributed`. Refuses the comparison when `cache_layers`, `base_env` or the analyzer fingerprint differ |
|
|
485
497
|
| `explain-endpoint` | supported | the derivation behind one route's verdict | six steps — match, declaration, handler, chain, profiles, verdict — each naming the authority that produced it and the file it can be checked against; a step that could not be derived is `undetermined` with the reason, never absent |
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
> question. All analysis is local and deterministic; see [Privacy](#configuration--privacy)
|
|
11
11
|
> before inspecting a repository whose telemetry policy you need to control.
|
|
12
12
|
|
|
13
|
-

|
|
14
14
|

|
|
15
15
|
|
|
16
16
|
Copyright (c) 2026 Dominique Haroun. All rights reserved. ASK Engine 5.7.0 and
|
|
@@ -39,6 +39,8 @@ workflow-shaped packs for users who want one consumable result:
|
|
|
39
39
|
ask pack assessment . --profile prod --output-dir .ask/packs/assessment
|
|
40
40
|
ask pack gate . --since origin/main --output-dir .ask/packs/gate
|
|
41
41
|
ask pack assessment . --format markdown -o assessment.md
|
|
42
|
+
ask pack assessment . --only risk,posture --output-dir .ask/packs/assessment
|
|
43
|
+
ask pack gate . --pr 123 --output-dir .ask/packs/gate
|
|
42
44
|
```
|
|
43
45
|
|
|
44
46
|
For deployment-aware posture evidence, pass the artefacts that describe the
|
|
@@ -55,8 +57,17 @@ contract:
|
|
|
55
57
|
```bash
|
|
56
58
|
ask pack gate . --since origin/main --format github-actions
|
|
57
59
|
ask pack gate . --since origin/main --format gitlab
|
|
60
|
+
ask pack gate . --since origin/main --format sarif -o gate.sarif
|
|
58
61
|
```
|
|
59
62
|
|
|
63
|
+
`pack gate --pr NUMBER` uses the local `gh` CLI to resolve changed files and
|
|
64
|
+
the exact base commit; the base SHA must already exist locally. It does not
|
|
65
|
+
fetch or modify the repository. `pack assessment --only` runs named assessment
|
|
66
|
+
components and records omissions in the manifest. MCP's
|
|
67
|
+
`get_assessment_pack` accepts the same selection as `only: list[str]` and
|
|
68
|
+
returns the reproducible CLI command in its `mcp` projection. SARIF is a bounded
|
|
69
|
+
export of ASK-owned gate decisions, not a re-emission of third-party findings.
|
|
70
|
+
|
|
60
71
|
`PASS`, `BLOCK` and `UNVERIFIED` are data decisions. The process exit code is
|
|
61
72
|
the CI signal; `--allow-unverified` can change only that exit code, never the
|
|
62
73
|
reported verdict. Every pack carries a manifest with component invocations,
|
|
@@ -128,18 +139,19 @@ set `ASK_MAX_RSS_MB=<megabytes>`; if the process exceeds it, ASK refuses the
|
|
|
128
139
|
answer with `MEMORY_TOO_LARGE`, including the observed peak and limit. Leave it
|
|
129
140
|
unset, or set it to `0`, to disable the ceiling explicitly.
|
|
130
141
|
|
|
131
|
-
**Current performance status.** Release 5.8.
|
|
142
|
+
**Current performance status.** Release 5.8.32 retains the shared Canonical IR
|
|
132
143
|
path used by `validation` and now passes that same CIR into labelled `data-exposure`
|
|
133
144
|
runs; the no-label path remains parse-free. These are implementation properties,
|
|
134
145
|
not duration promises. A controlled external warm-path audit has opened performance
|
|
135
146
|
and bounded-output regressions for this release; use `ask cache model <repo>` and
|
|
136
147
|
`--progress stderr` for supervised runs, and consult the
|
|
137
|
-
[
|
|
148
|
+
[latest external audit intake](docs/AUDIT-2026-08-26-EXTERNAL-5.8.31.md) before
|
|
138
149
|
treating a historical timing or bounded flag as a current guarantee.
|
|
139
150
|
|
|
140
|
-
**What a warm actually covers.** `ask cache warm`
|
|
151
|
+
**What a warm actually covers.** `ask cache warm` rebuilds the declared root views and their
|
|
141
152
|
shared structural layers (L1/L2 + the Repository Intelligence Snapshot + the shared Canonical
|
|
142
|
-
IR)
|
|
153
|
+
IR). Pass `--views compact` or `--views compact,agent` to warm only selected views; without
|
|
154
|
+
`--views`, all declared views are warmed. Deeper projections
|
|
143
155
|
are separate keys and are *not* covered by either — `--full`, `--env-map` and a raised `--depth`
|
|
144
156
|
recompute on first use, as do most `prepare-context` tasks. Measured on a 3,342-file Spring
|
|
145
157
|
monolith: `cache warm` 103s → `--compact --git-context` 1s (hit), but `--agent --full --env-map
|
|
@@ -161,7 +173,7 @@ brew tap haroundominique/sourcecode && brew install sourcecode
|
|
|
161
173
|
# pip / pipx
|
|
162
174
|
pipx install sourcecode # or: pip install sourcecode
|
|
163
175
|
|
|
164
|
-
ask version # ask 5.8.
|
|
176
|
+
ask version # ask 5.8.32 — and, on a build that has aged,
|
|
165
177
|
# how many releases have probably shipped since
|
|
166
178
|
```
|
|
167
179
|
|
|
@@ -430,7 +442,7 @@ from it.
|
|
|
430
442
|
| `plan` / `compare` / `delta` / `contract-diff` | supported | what to review for a change; candidates by measured cost; outcome of a change; public-contract break | no verdicts, measured cost only |
|
|
431
443
|
| `validation` | supported | request-body validation coverage and gaps | |
|
|
432
444
|
| `baseline capture\|diff` · `trend` | supported | versioned architectural metrics over time; `ask trend .` reads the series (a repository path or a baselines directory), `ask baseline diff .` compares the tree against its newest point | trend reporting, not gating. Baselines land in `.ask/baselines` **inside the repository** — the history travels with the code, not with a vendor; an audit that must not write passes `--dir`. `capture --auto` is the unattended form (one baseline per commit, never rewrites one, never fails the build) — automate it: [baseline-ci.yml](docs/baseline-ci.yml) |
|
|
433
|
-
| `retrieve` | parked | typed knowledge queries over the model | |
|
|
445
|
+
| `retrieve` | parked | typed knowledge queries over the model | symbol-oriented queries accept `--target/-t`; domain aliases such as `--module/-m`, `--subsystem/-s` and `--endpoint/-e` remain supported |
|
|
434
446
|
| `timeline` | experimental | since when a number moved, and in which commit window | walks the commit series and re-runs the shipped analyses (`posture`, `data-exposure`, `endpoints`, `spring-audit`) on a read-only materialisation of each sampled tree; publishes transitions, not a per-commit dump. A sample that could not be analysed is `null` with a reason, never 0, and a transition under sampling carries the window it could have happened in |
|
|
435
447
|
| `regress` | supported | what moved between two payloads of the same command, and which declaration accounts for it | attributes each delta to a declaration the answers carry (`test_source_excluded`, `symbols_excluded`, `coverage.gaps`, `*_cap`, `waivers`); a delta nothing explains is `unattributed`. Refuses the comparison when `cache_layers`, `base_env` or the analyzer fingerprint differ |
|
|
436
448
|
| `explain-endpoint` | supported | the derivation behind one route's verdict | six steps — match, declaration, handler, chain, profiles, verdict — each naming the authority that produced it and the file it can be checked against; a step that could not be derived is `undetermined` with the reason, never absent |
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# External Audit — 5.8.31
|
|
2
|
+
|
|
3
|
+
Received 2026-08-26. This note records the external comparison of release
|
|
4
|
+
`5.8.31` against `5.8.30` and separates reproduced defects from mitigations,
|
|
5
|
+
performance observations and shell-dependent measurements.
|
|
6
|
+
|
|
7
|
+
## Executive Result
|
|
8
|
+
|
|
9
|
+
The external score was **8/10**, up from 7/10. The auditor verified useful
|
|
10
|
+
capabilities in this release:
|
|
11
|
+
|
|
12
|
+
- `--progress off|stderr|file:<path>` works for `pack assessment` and `cache warm`;
|
|
13
|
+
- `cache clear --all/--global` removes shared parse/CIR state and makes a
|
|
14
|
+
cold-cache reset explicit;
|
|
15
|
+
- `auth status` documents the deprecation window for legacy fields;
|
|
16
|
+
- the root help labels the `31s` figure as a historical field anchor.
|
|
17
|
+
|
|
18
|
+
The progress control is a mitigation, not an automatic foreground heartbeat:
|
|
19
|
+
without `--progress`, the command remains silent until its final answer. The
|
|
20
|
+
external run also measured a cold-cache improvement (`215.6s` to `137.8s`),
|
|
21
|
+
but one sample is insufficient to attribute a stable release-level change.
|
|
22
|
+
|
|
23
|
+
## Actionable Findings
|
|
24
|
+
|
|
25
|
+
### `AUD-606-O01` — `posture --diff --compact --limit` remains ineffective
|
|
26
|
+
|
|
27
|
+
**Priority:** P2. **Status:** not reproduced in the current checkout; retained as
|
|
28
|
+
an external-subject follow-up.
|
|
29
|
+
|
|
30
|
+
The report measured `estimated_tokens` changing from `71847` to `71808` with
|
|
31
|
+
`--limit 20`, while the bounded floor remained `47764`. The error wording now
|
|
32
|
+
correctly stops recommending a flag that was already tried, but the reported
|
|
33
|
+
payload-size symptom remains. The earlier `AUD-604-O01` closure was based on a
|
|
34
|
+
different subject and must not be treated as proof against this report. A
|
|
35
|
+
controlled current-checkout reproduction over the real `diff_posture` shape
|
|
36
|
+
confirmed that all generated nested lists are in the bounding registry and are
|
|
37
|
+
cut by explicit `--limit`; the existing bounding batteries pass.
|
|
38
|
+
|
|
39
|
+
Acceptance if the original subject is supplied: reproduce on a controlled fixture, identify the nested population
|
|
40
|
+
outside the posture bounded-list registry, and either make the explicit limit
|
|
41
|
+
bound that population or publish a precise non-coverage/refusal. Add a regression
|
|
42
|
+
assertion over the affected payload shape.
|
|
43
|
+
|
|
44
|
+
### `AUD-606-R01` — inconsistent target option names in `retrieve`
|
|
45
|
+
|
|
46
|
+
**Priority:** P2. **Status:** closed in the current checkout (`be16c04`).
|
|
47
|
+
|
|
48
|
+
The retrieval surface uses `--target/-t` for most symbol-oriented commands,
|
|
49
|
+
`--module/-m` for module queries, `--subsystem/-s` for subsystem membership and
|
|
50
|
+
`--endpoint/-e` for endpoint queries. This is a discoverability and automation
|
|
51
|
+
cost, not an analysis correctness failure. Domain-specific flags remain valid,
|
|
52
|
+
and symbol-like domain queries now also accept universal `--target/-t`. Help
|
|
53
|
+
parity coverage spans all five affected commands.
|
|
54
|
+
|
|
55
|
+
Acceptance: choose and document one compatibility policy. The preferred fix is
|
|
56
|
+
to expose a universal `--target/-t` alias where the semantic target is a symbol,
|
|
57
|
+
while retaining domain-specific names where the input is genuinely a module,
|
|
58
|
+
subsystem or endpoint. Sweep the command registry and add help/parity tests.
|
|
59
|
+
|
|
60
|
+
## Conditional Follow-ups
|
|
61
|
+
|
|
62
|
+
### `AUD-606-P01` — cold-cache timing requires more samples
|
|
63
|
+
|
|
64
|
+
The observed 137.8s cold run is an improvement over the reported 5.8.30 value,
|
|
65
|
+
but it is a single measurement and still above the older baseline. No parser or
|
|
66
|
+
performance regression should be opened from it alone. Run 2-3 sequential,
|
|
67
|
+
isolated samples with cache state, repository, host and version recorded.
|
|
68
|
+
|
|
69
|
+
### `AUD-606-P02` — `pack gate --since HEAD` measurement contaminated
|
|
70
|
+
|
|
71
|
+
The 70.2s and >120s observations were taken while two other ASK processes were
|
|
72
|
+
running. This is not evidence of an ASK inconsistency. Re-test in an isolated
|
|
73
|
+
session with three sequential samples before changing the gate or its cache
|
|
74
|
+
path.
|
|
75
|
+
|
|
76
|
+
### `AUD-606-I01` — `pr-impact --files -` with redirected null stdin
|
|
77
|
+
|
|
78
|
+
`--files -` works with an actual empty pipe, but the reported `< /dev/null`
|
|
79
|
+
path is classified as a terminal under the auditor's shell. This may be
|
|
80
|
+
Git Bash/MSYS descriptor behaviour rather than an ASK defect. Reproduce in
|
|
81
|
+
native PowerShell and `cmd.exe` before changing stdin detection.
|
|
82
|
+
|
|
83
|
+
## Not Reopened
|
|
84
|
+
|
|
85
|
+
The verified cache, auth, progress and historical-anchor changes are recorded
|
|
86
|
+
as release capabilities, not new defects. Previously closed pack fixes are not
|
|
87
|
+
duplicated; their remaining release-artifact verification stays in the ledger.
|
|
@@ -16,6 +16,24 @@ The facts these rows are keyed to are published: `ask schema facts-v1` prints th
|
|
|
16
16
|
|
|
17
17
|
## Current Synchronization
|
|
18
18
|
|
|
19
|
+
**External `5.8.31` audit received, 2026-08-26 - `AUD-606`.**
|
|
20
|
+
[`AUDIT-2026-08-26-EXTERNAL-5.8.31.md`](AUDIT-2026-08-26-EXTERNAL-5.8.31.md)
|
|
21
|
+
confirms the new progress and shared-cache controls, and records one actionable
|
|
22
|
+
external-subject follow-up `AUD-606-O01`, where `posture --diff --compact --limit`
|
|
23
|
+
was effectively unchanged on the auditor's nested output; the current checkout
|
|
24
|
+
reproduces no such gap and its bounding batteries pass. It also opens the CLI
|
|
25
|
+
consistency row `AUD-606-R01` for heterogeneous `retrieve` target flags, fixed
|
|
26
|
+
in the current checkout by `be16c04` with help-parity coverage.
|
|
27
|
+
The 137.8s cold run is a single-sample improvement and remains `AUD-606-P01`
|
|
28
|
+
benchmark follow-up, not a parser regression. `AUD-606-P02` (`pack gate` timing)
|
|
29
|
+
and `AUD-606-I01` (`pr-impact --files -` with `/dev/null`) are inconclusive due
|
|
30
|
+
to process contamination and shell-specific stdin behaviour respectively.
|
|
31
|
+
|
|
32
|
+
**Current `5.8.31` queue:** external-subject follow-up `AUD-606-O01`; controlled
|
|
33
|
+
benchmark/portability follow-ups `AUD-606-P01`, `AUD-606-P02` and `AUD-606-I01`.
|
|
34
|
+
The existing `AUD-604-R01` and `AUD-605` release-artifact verification items
|
|
35
|
+
remain unchanged.
|
|
36
|
+
|
|
19
37
|
**External pack audit received, 2026-08-26 - `AUD-605`.**
|
|
20
38
|
[`AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md`](AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md)
|
|
21
39
|
adds two rows: `AUD-605-G01`, where an unresolved test file broadened pack-gate unknown
|
|
@@ -25,7 +43,7 @@ checkout by `52bcc36` and `f89ae18`, with focused regression batteries passing;
|
|
|
25
43
|
artefact verification remains pending. The pack's `--since` timing is additional evidence
|
|
26
44
|
for `AUD-604-P01`, not a duplicate performance finding.
|
|
27
45
|
|
|
28
|
-
**
|
|
46
|
+
**Previous `5.8.31` pack queue:** artefact verification for `AUD-604-R01`; the two `AUD-605`
|
|
29
47
|
fixes are included in this release and await release-artefact verification.
|
|
30
48
|
|
|
31
49
|
**External `5.8.28` audit received, 2026-08-26 - `AUD-604`.**
|
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
*Chief-engineer development record. This is the internal, dev-facing counterpart to the
|
|
4
4
|
customer-facing `docs/EXECUTIVE-ROADMAP.md`.*
|
|
5
5
|
|
|
6
|
-
> **CURRENT QUEUE — release `5.8.
|
|
6
|
+
> **CURRENT QUEUE — release `5.8.32`, following the external audit of `5.8.31`, received 2026-08-26.** `AUD-606-O01` (P2,
|
|
7
|
+
> posture diff explicit `--limit` was ineffective on the auditor's nested output but is not reproduced in the current
|
|
8
|
+
> checkout) and `AUD-606-R01` (P2, heterogeneous `retrieve` target flags) is fixed in the current checkout by `be16c04`. `AUD-606-P01` is a one-sample cold-cache improvement requiring
|
|
9
|
+
> controlled confirmation; `AUD-606-P02` and `AUD-606-I01` are inconclusive measurements, not confirmed regressions.
|
|
10
|
+
> `AUD-605-G01` (P2,
|
|
7
11
|
> unresolved test files broadened pack-gate uncertainty to unrelated endpoints) and `AUD-605-U01` (P2, pack assessment did not
|
|
8
12
|
> forward foreground progress) are implemented in the current checkout in commits `52bcc36` and `f89ae18`; focused batteries pass.
|
|
9
13
|
> The pack audit adds evidence to `AUD-604-P01`, but does not open a duplicate performance row.
|
|
@@ -13,9 +17,17 @@ customer-facing `docs/EXECUTIVE-ROADMAP.md`.*
|
|
|
13
17
|
> `AUD-604-P01` is closed as an unconfirmed, non-attributable signal after controlled profiling.
|
|
14
18
|
> Full evidence is
|
|
15
19
|
> in [`AUDIT-2026-08-26-EXTERNAL-5.8.28.md`](AUDIT-2026-08-26-EXTERNAL-5.8.28.md).
|
|
16
|
-
> Pack evidence is in [`AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md`](AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md).
|
|
20
|
+
> Pack evidence is in [`AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md`](AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md). The latest audit
|
|
21
|
+
> synthesis is in [`AUDIT-2026-08-26-EXTERNAL-5.8.31.md`](AUDIT-2026-08-26-EXTERNAL-5.8.31.md). Release-artifact
|
|
17
22
|
> verification of the two pack fixes remains after `AUD-604-R01`.
|
|
18
23
|
|
|
24
|
+
> **STRATEGY DECISION — 2026-08-26.** Two external strategy reports were reconciled into
|
|
25
|
+
> [`STRATEGY-2026-08-26-AGENT-CONTEXT.md`](STRATEGY-2026-08-26-AGENT-CONTEXT.md).
|
|
26
|
+
> The winning route is verified Spring domain context infrastructure for agentic coding and CI platforms:
|
|
27
|
+
> reliability and semantic accuracy first, then a stable MCP/API contract, with `pack gate` as the adoption wedge.
|
|
28
|
+
> Generic multi-framework expansion, dashboards, consulting-led positioning and a premature `ask defects` command
|
|
29
|
+
> are deferred or rejected. This supersedes conflicting strategy suggestions below while preserving them as history.
|
|
30
|
+
|
|
19
31
|
## Current Product Direction
|
|
20
32
|
|
|
21
33
|
This is the adopted interpretation of the external strategy report. It supersedes
|
|
@@ -29,7 +41,7 @@ source-backed Java/Spring evidence layer in [`PRODUCT-ROUTE.md`](PRODUCT-ROUTE.m
|
|
|
29
41
|
|---|---:|---|---|---|
|
|
30
42
|
| `DIR-F01` | P1 | Replace pattern-only security decisions with shared semantic authorities. Distinguish definitions from invocations and production code from tests, examples and library code. | Each affected rule has a named population, source-backed reason and `non_coverage`; false-positive fixtures cover the reported `SEC-004` / `DEAD-001` shapes. | **Implemented:** current security scans exclude platform definitions, imports, Javadoc and live controls; future rules must use the same authority. |
|
|
31
43
|
| `DIR-F02` | P1 | Extend safe guardrails to genuinely heavy commands and compositions. | A bounded run stops the phase doing the work, publishes partial counts and confidence reduction, preserves completed evidence, and never presents an advisory-only command as enforceable. | **Implemented:** `BUDGETED_ANALYSIS_COMMANDS`, `PhasedRun` and partial-answer contracts bind the current heavy population. New heavy commands must join this registry. |
|
|
32
|
-
| `DIR-F03` | P1 | Finish CI gate ergonomics without weakening its evidence contract. | Verify the `5.8.
|
|
44
|
+
| `DIR-F03` | P1 | Finish CI gate ergonomics without weakening its evidence contract. | Verify the `5.8.32` pack fixes in release artefacts, then add only evidence-backed improvements such as PR-native change resolution and selective component control. `AUD-605-G01` is already fixed; test-only unresolved files must not return as a roadmap item. | **Implemented in `d662ca3` and `ea27e27`:** `pack gate --pr` uses GitHub changed files and requires the exact local base SHA; MCP exposes the same PR mode and selective assessment control. Release-artifact verification remains. |
|
|
33
45
|
| `DIR-F04` | P2 | Consolidate reusable semantic predicates used by security and dead-code rules. | One authority is consumed by all relevant rules; population and parity tests prevent a rule from silently reverting to textual matching. This is an implementation constraint, not a new user-facing command. | **Implemented for current rules:** `source_text` owns comment/Javadoc views and security scans consume them. Future rules remain bound to this constraint. |
|
|
34
46
|
| `DIR-F05` | P2 | Continue operational observability for cost and confidence. | Timed answers publish cache state, phase/component progress, coverage, confidence and attributable run conditions; no cross-repository SLA or single-machine duration promise is published. | **Implemented for current timed surfaces;** continuous admission rule for new ones. |
|
|
35
47
|
|
|
@@ -39,7 +51,7 @@ source-backed Java/Spring evidence layer in [`PRODUCT-ROUTE.md`](PRODUCT-ROUTE.m
|
|
|
39
51
|
|---|---:|---|---|---|
|
|
40
52
|
| `DIR-X01` | P1 | Narrow Spring data-flow analysis. | Start with HTTP inputs, SQL/command/network/template sinks and explicit sanitizers. Publish confirmed paths, confidence and non-coverage; do not claim CodeQL-equivalent coverage. Design only after `DIR-F01` and `DIR-F02` are stable. | Conditional medium-term bet |
|
|
41
53
|
| `DIR-X02` | P2 | CI and developer-surface integrations. | Prefer a thin GitHub Action and existing SARIF/CI renderers over another analyzer. A future IDE integration must consume ASK JSON/MCP evidence, preserve attribution and add no second semantic model. | **Implemented baseline:** MCP, SARIF and GitHub/GitLab renderers ship. A distributable Action or IDE surface needs named-buyer validation. |
|
|
42
|
-
| `DIR-X03` | P2 | Selective and reusable pack execution. | `pack assessment` may select or reuse declared components only when tree state, inputs and fingerprints prove reuse; the manifest must say what ran and what was reused. This extends existing `S-24`, not a new pack architecture. | **Selection implemented in `9f4c0e1
|
|
54
|
+
| `DIR-X03` | P2 | Selective and reusable pack execution. | `pack assessment` may select or reuse declared components only when tree state, inputs and fingerprints prove reuse; the manifest must say what ran and what was reused. This extends existing `S-24`, not a new pack architecture. | **Selection implemented in `9f4c0e1` and exposed through MCP in `ea27e27`:** declared components run in canonical order and omissions are published. Artifact reuse remains evidence-gated. |
|
|
43
55
|
| `DIR-X04` | P3 | Targeted Spring ecosystem coverage. | Admit Spring Cloud, GraphQL or another adjacent surface only when a named buyer supplies a reproducible gap and the new parser/rule set preserves the same evidence contract. | Evidence-gated |
|
|
44
56
|
|
|
45
57
|
### Explicitly Rejected
|
|
@@ -53,7 +65,7 @@ documented as facts.
|
|
|
53
65
|
|
|
54
66
|
### Decision Order
|
|
55
67
|
|
|
56
|
-
1. Verify the `5.8.
|
|
68
|
+
1. Verify the `5.8.32` release artefacts, especially Windows detached execution and packs.
|
|
57
69
|
2. Keep `DIR-F01`, `DIR-F02`, `DIR-F04` and `DIR-F05` as admission constraints for every new rule or heavy command.
|
|
58
70
|
3. Validate `DIR-F03` and `DIR-X03` on named CI repositories before adding artifact reuse or a packaged Action.
|
|
59
71
|
4. Design `DIR-X01` only after a source/sink/sanitizer corpus establishes its coverage contract; admit `DIR-X04` only from buyer evidence.
|
|
@@ -5,7 +5,15 @@
|
|
|
5
5
|
> `pack assessment` and `pack gate`, and make evidence and safe change the
|
|
6
6
|
> product surface. This roadmap must not introduce a competing product thesis.
|
|
7
7
|
|
|
8
|
-
> **CURRENT STATUS — release `5.8.
|
|
8
|
+
> **CURRENT STATUS — release `5.8.32`, following the `5.8.31` external audit intake, 2026-08-26.** The latest
|
|
9
|
+
> audit leaves one actionable residue: `AUD-606-R01` (inconsistent target option names across `retrieve`),
|
|
10
|
+
> fixed in the current checkout by `be16c04`.
|
|
11
|
+
> `AUD-606-O01` (posture diff explicit `--limit`) is retained as an external-subject follow-up because it does
|
|
12
|
+
> not reproduce in the current checkout. The reported cold-cost
|
|
13
|
+
> improvement needs controlled samples; `pack gate` timing and `/dev/null` stdin behaviour remain inconclusive.
|
|
14
|
+
> Details are in [`AUDIT-2026-08-26-EXTERNAL-5.8.31.md`](AUDIT-2026-08-26-EXTERNAL-5.8.31.md).
|
|
15
|
+
>
|
|
16
|
+
> The semantic
|
|
9
17
|
> regression matrix remains green: detached execution, DEAD-001 comment handling,
|
|
10
18
|
> Boot 3 applicability, non-interactive selftest scope communication, nested diff
|
|
11
19
|
> bounding and help timing guidance are confirmed fixed. The reported cold-cost signal
|
|
@@ -31,14 +39,21 @@
|
|
|
31
39
|
> **ADOPTED DIRECTION — strategy review, 2026-08-26.** ASK will deepen its existing
|
|
32
40
|
> moat instead of becoming a general SAST or AI platform. Semantic security accuracy,
|
|
33
41
|
> safe guardrails and honest operational metrics are now implementation constraints;
|
|
34
|
-
> CI gate ergonomics and selective pack execution are implemented in `
|
|
35
|
-
> `
|
|
42
|
+
> CI gate ergonomics and selective pack execution are implemented in `d662ca3` and
|
|
43
|
+
> `ea27e27`. The remaining strategic candidates are a narrowly scoped Spring data-flow
|
|
36
44
|
> prototype and evidence-led coverage of adjacent Spring surfaces.
|
|
37
45
|
|
|
46
|
+
> **STRATEGY RECONCILIATION — two reports, 2026-08-26.** The selected route is
|
|
47
|
+
> deterministic Spring domain context infrastructure for agentic coding and CI platforms:
|
|
48
|
+
> reliability first, then a stable MCP/API integration contract, with `pack gate` as the entry wedge.
|
|
49
|
+
> Spring remains the focus; generic framework expansion, dashboards, consulting-led positioning and a premature
|
|
50
|
+
> `ask defects` product surface are deferred or rejected. The full decision and rationale are in
|
|
51
|
+
> [`STRATEGY-2026-08-26-AGENT-CONTEXT.md`](STRATEGY-2026-08-26-AGENT-CONTEXT.md).
|
|
52
|
+
|
|
38
53
|
> **What this means in practice.** Every fix must name its analysed population, source
|
|
39
54
|
> authority, confidence and non-coverage, and ship with a regression fixture. Every new
|
|
40
55
|
> feature must reuse the shared semantic model, preserve deterministic evidence and have
|
|
41
|
-
> a named buyer or reproducible user gap. `AUD-605-G01` is already fixed in 5.8.
|
|
56
|
+
> a named buyer or reproducible user gap. `AUD-605-G01` is already fixed in 5.8.32; it is
|
|
42
57
|
> not reopened as a future feature merely because the report described the old behaviour.
|
|
43
58
|
|
|
44
59
|
> **Explicitly out of scope.** `--format` and `--compact` remain separate contracts;
|
|
@@ -47,7 +62,7 @@
|
|
|
47
62
|
> are rejected for this route. Competitor accuracy figures are not roadmap evidence
|
|
48
63
|
> without a reproducible benchmark.
|
|
49
64
|
|
|
50
|
-
> **Order:** verify the 5.8.
|
|
65
|
+
> **Order:** verify the 5.8.32 artefacts; validate the new CI/pack paths with named buyers;
|
|
51
66
|
> then admit data-flow only with a source/sink/sanitizer corpus and ecosystem work only with
|
|
52
67
|
> buyer evidence. Detailed IDs, boundaries and acceptance criteria are in
|
|
53
68
|
> [`DEVELOPMENT-ROADMAP.md`](DEVELOPMENT-ROADMAP.md) under *Current Product Direction*.
|
|
@@ -75,6 +75,8 @@ los agrupan para un flujo de trabajo completo:
|
|
|
75
75
|
ask pack list
|
|
76
76
|
ask pack assessment . --profile prod --output-dir .ask/packs/assessment
|
|
77
77
|
ask pack gate . --since origin/main --output-dir .ask/packs/gate
|
|
78
|
+
ask pack assessment . --only risk,posture --output-dir .ask/packs/assessment
|
|
79
|
+
ask pack gate . --pr 123 --output-dir .ask/packs/gate
|
|
78
80
|
```
|
|
79
81
|
|
|
80
82
|
`assessment` entrega la foto de modernización y riesgo. `gate` entrega
|
|
@@ -96,8 +98,21 @@ GitHub Actions o GitLab:
|
|
|
96
98
|
```bash
|
|
97
99
|
ask pack gate . --since origin/main --format github-actions
|
|
98
100
|
ask pack gate . --since origin/main --format gitlab
|
|
101
|
+
ask pack gate . --since origin/main --format sarif -o gate.sarif
|
|
99
102
|
```
|
|
100
103
|
|
|
104
|
+
`pack assessment --only` permite ejecutar solo los componentes declarados que
|
|
105
|
+
necesite el flujo. El `manifest` deja constancia de los componentes omitidos;
|
|
106
|
+
`audit-report` requiere incluir también `risk`.
|
|
107
|
+
|
|
108
|
+
`pack gate --pr NUMBER` obtiene los ficheros modificados mediante el `gh` local
|
|
109
|
+
y usa el commit base exacto de la pull request. Ese commit debe estar disponible
|
|
110
|
+
localmente; no hace `fetch` ni modifica el repositorio y es incompatible con
|
|
111
|
+
`--since`.
|
|
112
|
+
|
|
113
|
+
El formato `sarif` del gate genera un SARIF 2.1.0 acotado a las decisiones
|
|
114
|
+
propias de ASK. No vuelve a emitir resultados de analizadores externos.
|
|
115
|
+
|
|
101
116
|
El `manifest` identifica cada componente, su invocación y su fingerprint. Un
|
|
102
117
|
resultado `BLOCK` o `UNVERIFIED` sigue siendo un resultado estructurado; el
|
|
103
118
|
código de salida es la señal que debe consumir el pipeline.
|
|
@@ -985,7 +1000,8 @@ foto).
|
|
|
985
1000
|
|
|
986
1001
|
```bash
|
|
987
1002
|
ask cache status # estadísticas de la caché del repo
|
|
988
|
-
ask cache warm # pre-construye
|
|
1003
|
+
ask cache warm # pre-construye todas las vistas declaradas
|
|
1004
|
+
ask cache warm . --views compact,agent # limita el calentamiento a esas vistas
|
|
989
1005
|
ask cache clear # borra las fotos cacheadas del repo
|
|
990
1006
|
ask cache freshness # frescura del RIS respecto al HEAD de git actual
|
|
991
1007
|
ask cache model . # qué mejora realmente una caché caliente por comando
|
|
@@ -1017,8 +1033,12 @@ Además de las consultas individuales, MCP expone los packs como operaciones
|
|
|
1017
1033
|
estructuradas de alto nivel:
|
|
1018
1034
|
|
|
1019
1035
|
- `get_assessment_pack`: assessment de modernización y riesgo con `manifest` e
|
|
1020
|
-
identidad de cada componente.
|
|
1036
|
+
identidad de cada componente. Admite `only` como lista de componentes para
|
|
1037
|
+
una evaluación acotada; las omisiones quedan registradas como no cubiertas.
|
|
1021
1038
|
- `get_change_safety_gate`: gate de cambios con `PASS`, `BLOCK` o `UNVERIFIED`.
|
|
1039
|
+
Acepta `since` para una referencia Git local o `pr` para resolver una pull
|
|
1040
|
+
request mediante `gh`; son opciones mutuamente excluyentes y el SHA base debe
|
|
1041
|
+
estar disponible localmente.
|
|
1022
1042
|
|
|
1023
1043
|
Ambas herramientas usan `compact=true` por defecto para agentes. Un resultado
|
|
1024
1044
|
`BLOCK` o `UNVERIFIED` es una respuesta válida con datos, no un error de
|
|
@@ -43,8 +43,12 @@ The assessment pack composes `migrate-check`, `posture`, `endpoints`,
|
|
|
43
43
|
|
|
44
44
|
```bash
|
|
45
45
|
ask pack assessment . --profile prod --output-dir .ask/packs/assessment
|
|
46
|
+
ask pack assessment . --only risk,posture --output-dir .ask/packs/assessment
|
|
46
47
|
```
|
|
47
48
|
|
|
49
|
+
`--only` runs a comma-separated subset of declared assessment components and
|
|
50
|
+
records omitted components in the manifest. `audit-report` requires `risk`.
|
|
51
|
+
|
|
48
52
|
When the repository contains several possible environments, pass the artefact
|
|
49
53
|
that describes the deployment being assessed. The option is repeatable and
|
|
50
54
|
keeps disagreement between deployment descriptions visible:
|
|
@@ -82,6 +86,16 @@ The gate composes `verify`, `verify-edit`, `posture --since` and
|
|
|
82
86
|
ask pack gate . --since origin/main --output-dir .ask/packs/gate
|
|
83
87
|
```
|
|
84
88
|
|
|
89
|
+
For a GitHub pull request, the gate can resolve the changed files directly:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
ask pack gate . --pr 123 --output-dir .ask/packs/gate
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
This uses the local `gh` CLI and requires the pull request's exact base SHA to
|
|
96
|
+
be available locally. It does not fetch or mutate the repository and cannot be
|
|
97
|
+
combined with `--since`.
|
|
98
|
+
|
|
85
99
|
Its exit contract is:
|
|
86
100
|
|
|
87
101
|
- `0` / `PASS`: all component gates passed;
|
|
@@ -100,9 +114,13 @@ ask pack gate . --since origin/main --format github-actions
|
|
|
100
114
|
|
|
101
115
|
# GitLab collapsible job-log section
|
|
102
116
|
ask pack gate . --since origin/main --format gitlab
|
|
117
|
+
|
|
118
|
+
# SARIF 2.1.0 decisions owned by ASK
|
|
119
|
+
ask pack gate . --since origin/main --format sarif -o gate.sarif
|
|
103
120
|
```
|
|
104
121
|
|
|
105
|
-
|
|
122
|
+
The CI formats are bounded summaries or decisions only. The SARIF renderer
|
|
123
|
+
does not re-emit third-party scanner findings. Persist `--output-dir .ask/packs/gate`
|
|
106
124
|
when the job must publish component evidence and the aggregate `pack.json`; use
|
|
107
125
|
`--output FILE` when the aggregate needs a separately controlled path. The
|
|
108
126
|
process exit code remains the only pass/fail signal for the job.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Strategy Decision — ASK As Verified Spring Context Infrastructure
|
|
2
|
+
|
|
3
|
+
Received 2026-08-26 from two external strategy reports about release `5.8.31`.
|
|
4
|
+
This document records the synthesis and the decisions that govern the roadmap;
|
|
5
|
+
it is not a commitment to every proposal in either report.
|
|
6
|
+
|
|
7
|
+
## Decision
|
|
8
|
+
|
|
9
|
+
ASK will be positioned as a deterministic, source-backed **Spring domain context
|
|
10
|
+
engine for agentic coding and CI platforms**. The primary commercial surface is
|
|
11
|
+
an embeddable MCP/API and evidence contract. The standalone CLI and `pack gate`
|
|
12
|
+
remain the adoption wedge and the independent fallback.
|
|
13
|
+
|
|
14
|
+
The reports agree on this direction. They also agree that ASK should not compete
|
|
15
|
+
head-on with SonarQube on dashboards, Semgrep on generic patterns or CodeQL on
|
|
16
|
+
query breadth. ASK's defensible asset is the semantic model of profiles, beans,
|
|
17
|
+
effective endpoints, security posture, change reach and migration evidence,
|
|
18
|
+
rendered for machines and agents without unsupported claims.
|
|
19
|
+
|
|
20
|
+
## Winning Roadmap
|
|
21
|
+
|
|
22
|
+
### F1 — Reliability before dependency status
|
|
23
|
+
|
|
24
|
+
Make cold/warm state, phase cost, progress, output bounds and non-coverage
|
|
25
|
+
observable and attributable. No hard SLA or release-level performance promise is
|
|
26
|
+
published until sequential controlled measurements establish a reproducible
|
|
27
|
+
baseline. `AUD-606` timing follow-ups remain evidence work, not speculative
|
|
28
|
+
parser rewrites.
|
|
29
|
+
|
|
30
|
+
### F2 — Semantic accuracy as a release gate
|
|
31
|
+
|
|
32
|
+
Continue closing context-sensitive false positives at the authority level rather
|
|
33
|
+
than adding case-by-case exceptions. Every security or reachability change must
|
|
34
|
+
name its population, source authority, confidence and non-coverage, and carry a
|
|
35
|
+
regression fixture.
|
|
36
|
+
|
|
37
|
+
### F3 — Stable integration contract
|
|
38
|
+
|
|
39
|
+
Treat MCP/API, JSON envelopes, schemas, manifests and exit codes as a licensable
|
|
40
|
+
integration contract. Define compatibility policy, deprecation windows and
|
|
41
|
+
conformance tests before promising a commercial no-breaking-change period. MCP
|
|
42
|
+
must expose the same evidence as the CLI, with no second semantic model.
|
|
43
|
+
|
|
44
|
+
### F4 — Two entry paths, one engine
|
|
45
|
+
|
|
46
|
+
Use `pack gate` as the low-friction CI entry point (`PASS`, `BLOCK`,
|
|
47
|
+
`UNVERIFIED`) and MCP/API as the platform integration path for live agent
|
|
48
|
+
context. Both consume the same evidence and fingerprints. A packaged Action may
|
|
49
|
+
follow only after named-buyer validation.
|
|
50
|
+
|
|
51
|
+
### F5 — Narrow domain expansion
|
|
52
|
+
|
|
53
|
+
Deepen Spring first: security, profiles, transaction boundaries, endpoint
|
|
54
|
+
reachability, migration and bounded agent context. Consider adjacent Spring
|
|
55
|
+
surfaces only when a buyer supplies a reproducible gap. Do not expand to Django,
|
|
56
|
+
Rails, NestJS or generic multi-language analysis before the Spring integration
|
|
57
|
+
contract and reliability bar are established.
|
|
58
|
+
|
|
59
|
+
### F6 — Evidence-led commercial proof
|
|
60
|
+
|
|
61
|
+
Publish domain-specific precision and cost comparisons only when the benchmark
|
|
62
|
+
corpus, versions, cache state and exclusions are recorded. Keep the defect ledger
|
|
63
|
+
as trust evidence and a future generated projection, but do not make `ask
|
|
64
|
+
defects` a near-term product surface until a named buyer needs it.
|
|
65
|
+
|
|
66
|
+
## Deferred Or Rejected
|
|
67
|
+
|
|
68
|
+
- Generic SAST breadth, broad language support and ML prioritisation are rejected.
|
|
69
|
+
- A Sonar-style human dashboard is deferred; it competes on the wrong terrain.
|
|
70
|
+
- Audit/consulting as the core business is rejected; it converts a repeatable
|
|
71
|
+
engine into non-scalable hours.
|
|
72
|
+
- A freemium/self-serve SaaS funnel is optional experimentation, not the primary
|
|
73
|
+
channel while B2B integration is being validated.
|
|
74
|
+
- Automatic foreground progress is not enabled from the reports alone; the
|
|
75
|
+
explicit `--progress` contract remains the safe behaviour.
|
|
76
|
+
|
|
77
|
+
## Risks And Tests
|
|
78
|
+
|
|
79
|
+
The main risks are platform dependence, partner build-versus-buy decisions,
|
|
80
|
+
Spring concentration and rapid fixes being read as instability. Mitigations are
|
|
81
|
+
an independent CLI/pack path, a versioned evidence contract, controlled benchmark
|
|
82
|
+
evidence and release batteries that prevent a fix from outrunning its regression
|
|
83
|
+
proof.
|