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.
Files changed (429) hide show
  1. {sourcecode-5.8.31 → sourcecode-5.8.32}/CHANGELOG.md +8 -0
  2. {sourcecode-5.8.31 → sourcecode-5.8.32}/PKG-INFO +20 -8
  3. {sourcecode-5.8.31 → sourcecode-5.8.32}/README.md +19 -7
  4. sourcecode-5.8.32/docs/AUDIT-2026-08-26-EXTERNAL-5.8.31.md +87 -0
  5. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/DEFECT-LEDGER.md +19 -1
  6. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/DEVELOPMENT-ROADMAP.md +17 -5
  7. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/EXECUTIVE-ROADMAP.md +20 -5
  8. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/MANUAL-USUARIO.md +22 -2
  9. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/PRODUCT-ROUTE.md +19 -1
  10. sourcecode-5.8.32/docs/STRATEGY-2026-08-26-AGENT-CONTEXT.md +83 -0
  11. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/USER_GUIDE.md +37 -4
  12. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-pack-gate-ci.md +14 -5
  13. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-pack-mcp-api.md +12 -2
  14. {sourcecode-5.8.31 → sourcecode-5.8.32}/pyproject.toml +1 -1
  15. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/__init__.py +1 -1
  16. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/cli.py +15 -5
  17. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp/server.py +66 -8
  18. {sourcecode-5.8.31 → sourcecode-5.8.32}/.github/workflows/build-windows.yml +0 -0
  19. {sourcecode-5.8.31 → sourcecode-5.8.32}/.github/workflows/perf-gate.yml +0 -0
  20. {sourcecode-5.8.31 → sourcecode-5.8.32}/.github/workflows/windows-battery.yml +0 -0
  21. {sourcecode-5.8.31 → sourcecode-5.8.32}/.gitignore +0 -0
  22. {sourcecode-5.8.31 → sourcecode-5.8.32}/.ruff.toml +0 -0
  23. {sourcecode-5.8.31 → sourcecode-5.8.32}/CLAUDE.md +0 -0
  24. {sourcecode-5.8.31 → sourcecode-5.8.32}/CODE_OF_CONDUCT.md +0 -0
  25. {sourcecode-5.8.31 → sourcecode-5.8.32}/CONTRIBUTING.md +0 -0
  26. {sourcecode-5.8.31 → sourcecode-5.8.32}/LICENSE +0 -0
  27. {sourcecode-5.8.31 → sourcecode-5.8.32}/NOTICE +0 -0
  28. {sourcecode-5.8.31 → sourcecode-5.8.32}/SECURITY.md +0 -0
  29. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-2026-08-22-5.8.22.md +0 -0
  30. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-2026-08-23-5.8.24.md +0 -0
  31. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-2026-08-23-COMMERCIAL.md +0 -0
  32. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-2026-08-23-CORPUS-AMPLIADO.md +0 -0
  33. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-2026-08-23-EXTERNAL-5.8.25.md +0 -0
  34. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-2026-08-23-EXTERNAL-5.8.26.md +0 -0
  35. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-2026-08-23-THINGSBOARD-FINDINGS.md +0 -0
  36. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.26.md +0 -0
  37. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.27.md +0 -0
  38. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md +0 -0
  39. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-2026-08-26-EXTERNAL-5.8.28.md +0 -0
  40. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/AUDIT-TESTING-CORPUS-2026-08-22.md +0 -0
  41. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/CACHE.md +0 -0
  42. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/COMMERCIAL-OFFER.md +0 -0
  43. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/CUSTOMER-VALIDATION.md +0 -0
  44. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/DEMO-5MIN.md +0 -0
  45. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/DOCUMENTATION-HYGIENE-2026-08-23.md +0 -0
  46. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/EXECUTION-PLAN-12MO.md +0 -0
  47. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/MODERNIZATION.md +0 -0
  48. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/PRODUCT_AUDIT.md +0 -0
  49. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/PRODUCT_IDENTITY.md +0 -0
  50. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/PRODUCT_TIERS.md +0 -0
  51. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/RC1-CHECKLIST.md +0 -0
  52. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/RELEASE-CHECKLIST.md +0 -0
  53. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/CATALOG-retrieval-intents.md +0 -0
  54. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-assessment-deployment-evidence.md +0 -0
  55. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-assessment-report.md +0 -0
  56. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-build-closure-provenance.md +0 -0
  57. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-knowledge-provider-integration.md +0 -0
  58. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-p5.3b-statement-surface.md +0 -0
  59. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-p5.5-span-index.md +0 -0
  60. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-p6-semantic-impact-engine.md +0 -0
  61. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-p6-semantic-integration-engine.md +0 -0
  62. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-p7-semantic-services.md +0 -0
  63. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-pack-manifest.md +0 -0
  64. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-robustness-security-inference.md +0 -0
  65. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/DESIGN-semantic-retrieval.md +0 -0
  66. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/EPV-p6-class-typeref.md +0 -0
  67. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/REPORT-p6-flow-analyzer-comparison.md +0 -0
  68. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/REPORT-p6-integration-detector-comparison.md +0 -0
  69. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/REPORT-p8-flow-analyzer-migration.md +0 -0
  70. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/REPORT-p9-integration-detector-migration.md +0 -0
  71. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/adr/0001-semantic-ir.md +0 -0
  72. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/adr/0002-source-evidence-boundary.md +0 -0
  73. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/adr/0003-architectural-characterization.md +0 -0
  74. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/adr/0004-semantic-retrieval.md +0 -0
  75. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/adr/0005-evidence-reconciliation.md +0 -0
  76. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/adr/0006-performance-harness.md +0 -0
  77. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/adr/0007-composition-semantics.md +0 -0
  78. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/adr/0008-answer-coherence.md +0 -0
  79. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/consumer-disposition-inventory.md +0 -0
  80. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/overview.md +0 -0
  81. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/product-architecture-review.md +0 -0
  82. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/product-strategy-layering.md +0 -0
  83. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/semantic-ir-consumer-matrix.md +0 -0
  84. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/architecture/semantic-ir-roadmap.md +0 -0
  85. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/baseline-ci.yml +0 -0
  86. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/commercial-pipeline-audit.md +0 -0
  87. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/contracts-ci.yml +0 -0
  88. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/contracts.md +0 -0
  89. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/eval/2026-06-15-petclinic-rest-issue11-vets-pagination.md +0 -0
  90. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/eval/2026-06-15-petclinic-rest-issue147-validation.md +0 -0
  91. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/eval/2026-06-15-petclinic-rest-workflow.md +0 -0
  92. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/eval/2026-06-15-phase18-openapi-surface.md +0 -0
  93. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/eval/2026-06-15-phase20-validation-surface.md +0 -0
  94. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/eval/2026-06-16-broadleaf-checkout-impact-fieldtest.md +0 -0
  95. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/eval/2026-06-16-petclinic-rest-issue11-weakness2-closed.md +0 -0
  96. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/eval/2026-06-16-spring-petclinic-issue2333-dead-vets.md +0 -0
  97. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/licensing-schema.md +0 -0
  98. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/migrate-check.md +0 -0
  99. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/pack-gate-github-actions.yml +0 -0
  100. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/pack-gate-gitlab.yml +0 -0
  101. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/README.md +0 -0
  102. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/REGRESSION-GATE.md +0 -0
  103. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/SUMMARY.md +0 -0
  104. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/alfresco__ask__cold.json +0 -0
  105. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/alfresco__ask__warm.json +0 -0
  106. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/broadleaf__ask__cold.json +0 -0
  107. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/broadleaf__ask__warm.json +0 -0
  108. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/eureka__ask__cold.json +0 -0
  109. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/eureka__ask__warm.json +0 -0
  110. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/jenkins__ask__cold.json +0 -0
  111. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/jenkins__ask__warm.json +0 -0
  112. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/jobrunr__ask__cold.json +0 -0
  113. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/jobrunr__ask__warm.json +0 -0
  114. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/keycloak__ask__cold.json +0 -0
  115. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/keycloak__ask__warm.json +0 -0
  116. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/neo4j__ask__cold.json +0 -0
  117. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/neo4j__ask__warm.json +0 -0
  118. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/ofbiz__ask__cold.json +0 -0
  119. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/ofbiz__ask__warm.json +0 -0
  120. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/openmrs__ask__cold.json +0 -0
  121. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/openmrs__ask__warm.json +0 -0
  122. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/petclinic__ask__cold.json +0 -0
  123. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.15/petclinic__ask__warm.json +0 -0
  124. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/SUMMARY.md +0 -0
  125. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/alfresco__ask__cold.json +0 -0
  126. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/alfresco__ask__warm.json +0 -0
  127. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/broadleaf__ask__cold.json +0 -0
  128. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/broadleaf__ask__warm.json +0 -0
  129. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/eureka__ask__cold.json +0 -0
  130. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/eureka__ask__warm.json +0 -0
  131. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/jenkins__ask__cold.json +0 -0
  132. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/jenkins__ask__warm.json +0 -0
  133. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/jobrunr__ask__cold.json +0 -0
  134. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/jobrunr__ask__warm.json +0 -0
  135. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/keycloak__ask__cold.json +0 -0
  136. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/keycloak__ask__warm.json +0 -0
  137. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/neo4j__ask__cold.json +0 -0
  138. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/neo4j__ask__warm.json +0 -0
  139. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/ofbiz__ask__cold.json +0 -0
  140. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/ofbiz__ask__warm.json +0 -0
  141. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/openmrs__ask__cold.json +0 -0
  142. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/openmrs__ask__warm.json +0 -0
  143. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/petclinic__ask__cold.json +0 -0
  144. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/2.5.16/petclinic__ask__warm.json +0 -0
  145. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/gate-latest/README.md +0 -0
  146. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/gate-latest/broadleaf__ask__warm.json +0 -0
  147. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/gate-latest/broadleaf__endpoints__warm.json +0 -0
  148. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/gate-latest/broadleaf__migrate-check__warm.json +0 -0
  149. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/gate-latest/broadleaf__posture__warm.json +0 -0
  150. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/gate-latest/broadleaf__spring-audit__warm.json +0 -0
  151. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/gate-latest/broadleaf__validation__warm.json +0 -0
  152. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/baselines/reference-best/README.md +0 -0
  153. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/perf/corpus-testing-2026-08-22.md +0 -0
  154. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/posture.md +0 -0
  155. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/privacy.md +0 -0
  156. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/pro-experience-audit.md +0 -0
  157. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/schema.md +0 -0
  158. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/spec/envelope-v1.md +0 -0
  159. {sourcecode-5.8.31 → sourcecode-5.8.32}/docs/spring-audit-ci.yml +0 -0
  160. {sourcecode-5.8.31 → sourcecode-5.8.32}/hatch_build.py +0 -0
  161. {sourcecode-5.8.31 → sourcecode-5.8.32}/scripts/compare_integration_engines.py +0 -0
  162. {sourcecode-5.8.31 → sourcecode-5.8.32}/scripts/customer_smoke_test.sh +0 -0
  163. {sourcecode-5.8.31 → sourcecode-5.8.32}/scripts/generate_jdk_exports.py +0 -0
  164. {sourcecode-5.8.31 → sourcecode-5.8.32}/scripts/perf_gate.py +0 -0
  165. {sourcecode-5.8.31 → sourcecode-5.8.32}/scripts/perf_harness.py +0 -0
  166. {sourcecode-5.8.31 → sourcecode-5.8.32}/scripts/sync_gate_anchors.py +0 -0
  167. {sourcecode-5.8.31 → sourcecode-5.8.32}/scripts/test_fast.sh +0 -0
  168. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/__main__.py +0 -0
  169. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/adaptive_scanner.py +0 -0
  170. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/analysis_budget.py +0 -0
  171. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/answer_bounds.py +0 -0
  172. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/archetype.py +0 -0
  173. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/architectural_baseline.py +0 -0
  174. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/architectural_delta.py +0 -0
  175. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/architecture_analyzer.py +0 -0
  176. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/architecture_summary.py +0 -0
  177. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/ast_extractor.py +0 -0
  178. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/audit_clusters.py +0 -0
  179. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/audit_recipe.py +0 -0
  180. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/audit_report.py +0 -0
  181. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/audit_since.py +0 -0
  182. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/baseline_autocapture.py +0 -0
  183. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/breaking_changes.py +0 -0
  184. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/build_modules.py +0 -0
  185. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/build_stamp.py +0 -0
  186. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/bundled_docs.py +0 -0
  187. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/cache.py +0 -0
  188. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/cache_model.py +0 -0
  189. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/cache_observation.py +0 -0
  190. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/call_surface.py +0 -0
  191. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/caller_metrics.py +0 -0
  192. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/caller_reach.py +0 -0
  193. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/canonical_ir.py +0 -0
  194. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/chain_rules.py +0 -0
  195. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/change_plan.py +0 -0
  196. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/ci_output.py +0 -0
  197. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/cir_graphs.py +0 -0
  198. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/classifier.py +0 -0
  199. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/client_calls.py +0 -0
  200. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/code_notes_analyzer.py +0 -0
  201. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/compare.py +0 -0
  202. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/confidence_analyzer.py +0 -0
  203. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/constraint_diff.py +0 -0
  204. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/consumer_join.py +0 -0
  205. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/container_wiring.py +0 -0
  206. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/context_cache.py +0 -0
  207. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/context_graph.py +0 -0
  208. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/context_scorer.py +0 -0
  209. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/context_summarizer.py +0 -0
  210. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/contract_diff.py +0 -0
  211. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/contract_init.py +0 -0
  212. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/contract_model.py +0 -0
  213. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/contract_pipeline.py +0 -0
  214. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/coverage_parser.py +0 -0
  215. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/data_exposure.py +0 -0
  216. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/data_labels.py +0 -0
  217. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/declarations.py +0 -0
  218. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/defect_classes/__init__.py +0 -0
  219. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/defect_classes/registry.json +0 -0
  220. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/defect_identity.py +0 -0
  221. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/degradation.py +0 -0
  222. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/dependency_analyzer.py +0 -0
  223. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/deployment_prefix.py +0 -0
  224. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detach.py +0 -0
  225. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/__init__.py +0 -0
  226. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/base.py +0 -0
  227. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/csproj_parser.py +0 -0
  228. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/dart.py +0 -0
  229. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/dotnet.py +0 -0
  230. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/elixir.py +0 -0
  231. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/go.py +0 -0
  232. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/heuristic.py +0 -0
  233. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/hybrid.py +0 -0
  234. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/java.py +0 -0
  235. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/jvm_ext.py +0 -0
  236. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/nodejs.py +0 -0
  237. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/parsers.py +0 -0
  238. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/php.py +0 -0
  239. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/project.py +0 -0
  240. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/python.py +0 -0
  241. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/ruby.py +0 -0
  242. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/rust.py +0 -0
  243. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/systems.py +0 -0
  244. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/terraform.py +0 -0
  245. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/detectors/tooling.py +0 -0
  246. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/doc_analyzer.py +0 -0
  247. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/dynamic_argument_surface.py +0 -0
  248. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/empty_reach.py +0 -0
  249. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/endpoint_disposition.py +0 -0
  250. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/endpoint_literals.py +0 -0
  251. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/endpoint_metrics.py +0 -0
  252. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/entrypoint_classifier.py +0 -0
  253. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/env_analyzer.py +0 -0
  254. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/envelope.py +0 -0
  255. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/environment_resolution.py +0 -0
  256. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/error_schema.py +0 -0
  257. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/evidence_provider.py +0 -0
  258. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/execution_plan.py +0 -0
  259. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/explain.py +0 -0
  260. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/explain_endpoint.py +0 -0
  261. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/facts/__init__.py +0 -0
  262. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/facts/registry.json +0 -0
  263. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/field_deprecations.py +0 -0
  264. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/file_chunker.py +0 -0
  265. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/file_classifier.py +0 -0
  266. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/filter_surface.py +0 -0
  267. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/format_contract.py +0 -0
  268. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/fqn_utils.py +0 -0
  269. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/functional_routes.py +0 -0
  270. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/gate_anchors.py +0 -0
  271. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/git_analyzer.py +0 -0
  272. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/git_checkout.py +0 -0
  273. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/github_diff.py +0 -0
  274. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/graph_analyzer.py +0 -0
  275. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/graph_evidence.py +0 -0
  276. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/hibernate_strat.py +0 -0
  277. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/identity_fallback.py +0 -0
  278. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/integration_coordinates.py +0 -0
  279. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/jdk_exports.py +0 -0
  280. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/license.py +0 -0
  281. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/manifest_cache.py +0 -0
  282. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp/__init__.py +0 -0
  283. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp/dependency_import.py +0 -0
  284. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
  285. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp/onboarding/applier.py +0 -0
  286. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp/onboarding/backup.py +0 -0
  287. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp/onboarding/detector.py +0 -0
  288. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp/onboarding/planner.py +0 -0
  289. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp/orchestrator.py +0 -0
  290. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp/registry.py +0 -0
  291. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp/runner.py +0 -0
  292. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/mcp_nudge.py +0 -0
  293. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/metrics_analyzer.py +0 -0
  294. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/migrate_check.py +0 -0
  295. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/migration_apply.py +0 -0
  296. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/migration_blast.py +0 -0
  297. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/non_coverage.py +0 -0
  298. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/openapi_surface.py +0 -0
  299. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/openrewrite_recipe.py +0 -0
  300. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/output_bounds.py +0 -0
  301. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/output_budget.py +0 -0
  302. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/output_ceiling.py +0 -0
  303. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/output_encoding.py +0 -0
  304. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/output_sink.py +0 -0
  305. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/pack_manifest.py +0 -0
  306. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/packs.py +0 -0
  307. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/parallel.py +0 -0
  308. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/parse_cache.py +0 -0
  309. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/partial_contract.py +0 -0
  310. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/path_admission.py +0 -0
  311. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/path_display.py +0 -0
  312. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/path_filters.py +0 -0
  313. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/perf.py +0 -0
  314. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/phased_run.py +0 -0
  315. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/pipe_contract.py +0 -0
  316. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/posture.py +0 -0
  317. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/pr_comment_renderer.py +0 -0
  318. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/pr_impact.py +0 -0
  319. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/prepare_context.py +0 -0
  320. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/product_info.py +0 -0
  321. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/progress.py +0 -0
  322. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/provenance.py +0 -0
  323. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/ranking_engine.py +0 -0
  324. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/readiness_timeline.py +0 -0
  325. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/readonly.py +0 -0
  326. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/reconciliation.py +0 -0
  327. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/redactor.py +0 -0
  328. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/reference_facts.py +0 -0
  329. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/regress.py +0 -0
  330. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/release_info.py +0 -0
  331. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/relevance_scorer.py +0 -0
  332. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/remediation_diff.py +0 -0
  333. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/remedies.py +0 -0
  334. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/rename_refactor.py +0 -0
  335. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/repo_classifier.py +0 -0
  336. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/repository_ir.py +0 -0
  337. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/resource_budget.py +0 -0
  338. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/__init__.py +0 -0
  339. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/context.py +0 -0
  340. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/errors.py +0 -0
  341. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/executor.py +0 -0
  342. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/planner.py +0 -0
  343. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/query.py +0 -0
  344. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/request.py +0 -0
  345. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/resolution.py +0 -0
  346. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/result.py +0 -0
  347. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/retriever.py +0 -0
  348. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/runtime.py +0 -0
  349. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/steps.py +0 -0
  350. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/steps_endpoint.py +0 -0
  351. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/steps_graph.py +0 -0
  352. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/steps_impact.py +0 -0
  353. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/steps_intf.py +0 -0
  354. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/steps_struct.py +0 -0
  355. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/retrieval/steps_txsec.py +0 -0
  356. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/ris.py +0 -0
  357. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/risk.py +0 -0
  358. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/risk_model.py +0 -0
  359. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/rule_catalog.py +0 -0
  360. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/rule_pass.py +0 -0
  361. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/runs.py +0 -0
  362. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/runtime_classifier.py +0 -0
  363. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/sarif.py +0 -0
  364. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/sarif_emit.py +0 -0
  365. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/scanner.py +0 -0
  366. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/schema.py +0 -0
  367. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/schema_producers.py +0 -0
  368. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/schema_registry.py +0 -0
  369. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/schemas/core-analysis-v1.schema.json +0 -0
  370. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/schemas/endpoints-v1.schema.json +0 -0
  371. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/schemas/envelope-v1.schema.json +0 -0
  372. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/schemas/pr-impact-v1.schema.json +0 -0
  373. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/schemas/verify-edit-v1.schema.json +0 -0
  374. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/schemas/verify-v1.schema.json +0 -0
  375. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/security_chain.py +0 -0
  376. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/security_config.py +0 -0
  377. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/security_config_scan.py +0 -0
  378. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/security_posture.py +0 -0
  379. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/selection_contract.py +0 -0
  380. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/selftest.py +0 -0
  381. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/semantic_analyzer.py +0 -0
  382. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/semantic_impact_engine.py +0 -0
  383. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/semantic_integration_engine.py +0 -0
  384. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/semantic_services.py +0 -0
  385. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/serializer.py +0 -0
  386. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/servlet_surface.py +0 -0
  387. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/source_text.py +0 -0
  388. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/spring_event_topology.py +0 -0
  389. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/spring_findings.py +0 -0
  390. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/spring_impact.py +0 -0
  391. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/spring_model.py +0 -0
  392. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/spring_profiles.py +0 -0
  393. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/spring_properties.py +0 -0
  394. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/spring_security_audit.py +0 -0
  395. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/spring_semantic.py +0 -0
  396. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/spring_tx_analyzer.py +0 -0
  397. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/sql_taint.py +0 -0
  398. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/summarizer.py +0 -0
  399. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/target_admission.py +0 -0
  400. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/telemetry/__init__.py +0 -0
  401. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/telemetry/config.py +0 -0
  402. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/telemetry/consent.py +0 -0
  403. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/telemetry/events.py +0 -0
  404. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/telemetry/filters.py +0 -0
  405. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/telemetry/transport.py +0 -0
  406. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/test_gap_ranking.py +0 -0
  407. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/test_sources.py +0 -0
  408. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/text_input.py +0 -0
  409. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/timeline.py +0 -0
  410. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/timeline_cache.py +0 -0
  411. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/token_estimate.py +0 -0
  412. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/tree_utils.py +0 -0
  413. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/type_usage_surface.py +0 -0
  414. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/validation_inference.py +0 -0
  415. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/validation_surface.py +0 -0
  416. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/verify_edit.py +0 -0
  417. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/verify_repo.py +0 -0
  418. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/verify_rules.py +0 -0
  419. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/version_check.py +0 -0
  420. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/waivers.py +0 -0
  421. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/wired_surface.py +0 -0
  422. {sourcecode-5.8.31 → sourcecode-5.8.32}/src/sourcecode/workspace.py +0 -0
  423. {sourcecode-5.8.31 → sourcecode-5.8.32}/supabase/functions/README.md +0 -0
  424. {sourcecode-5.8.31 → sourcecode-5.8.32}/supabase/functions/get-license/index.ts +0 -0
  425. {sourcecode-5.8.31 → sourcecode-5.8.32}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
  426. {sourcecode-5.8.31 → sourcecode-5.8.32}/supabase/functions/telemetry/index.ts +0 -0
  427. {sourcecode-5.8.31 → sourcecode-5.8.32}/supabase/sql/license_event_ordering.sql +0 -0
  428. {sourcecode-5.8.31 → sourcecode-5.8.32}/supabase/sql/licensing_schema.sql +0 -0
  429. {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.31
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
- ![Version](https://img.shields.io/badge/version-5.8.31-blue)
62
+ ![Version](https://img.shields.io/badge/version-5.8.32-blue)
63
63
  ![Python](https://img.shields.io/badge/python-3.9%2B-green)
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.31 retains the shared Canonical IR
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
- [active pack audit intake](docs/AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md) before
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` runs the compact analysis: it rebuilds the
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) and the **compact view**. Pass `--agent` to warm the agent view as well. Deeper projections
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.31 — and, on a build that has aged,
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
- ![Version](https://img.shields.io/badge/version-5.8.31-blue)
13
+ ![Version](https://img.shields.io/badge/version-5.8.32-blue)
14
14
  ![Python](https://img.shields.io/badge/python-3.9%2B-green)
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.31 retains the shared Canonical IR
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
- [active pack audit intake](docs/AUDIT-2026-08-26-EXTERNAL-5.8.28-PACK.md) before
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` runs the compact analysis: it rebuilds the
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) and the **compact view**. Pass `--agent` to warm the agent view as well. Deeper projections
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.31 — and, on a build that has aged,
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
- **Current `5.8.31` queue:** artefact verification for `AUD-604-R01`; the two `AUD-605`
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.31`, following the external pack audit of `5.8.28`, received 2026-08-26.** `AUD-605-G01` (P2,
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). Release-artifact
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.31` 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 `4d87532`:** `pack gate --pr` uses GitHub changed files and requires the exact local base SHA. Release-artifact verification remains. |
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`:** `--only` runs declared components and publishes omissions. Artifact reuse remains evidence-gated. |
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.31` release artefacts, especially Windows detached execution and packs.
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.31`, following the `5.8.28` external audit intake, 2026-08-26.** The semantic
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 `4d87532` and
35
- > `9f4c0e1`. The remaining strategic candidates are a narrowly scoped Spring data-flow
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.31; it is
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.31 artefacts; validate the new CI/pack paths with named buyers;
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 la caché antes de una sesión
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
- Both formats are bounded summaries only. Persist `--output-dir .ask/packs/gate`
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.