gitgalaxy 2.6.0__tar.gz → 2.7.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (511) hide show
  1. {gitgalaxy-2.6.0/gitgalaxy.egg-info → gitgalaxy-2.7.0}/PKG-INFO +70 -23
  2. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/README.md +69 -22
  3. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/metrics/README.md +3 -3
  4. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/metrics/signal_processor.py +156 -0
  5. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/recorders/audit_recorder.py +10 -0
  6. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/recorders/gpu_recorder.py +8 -0
  7. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/recorders/llm_recorder.py +125 -25
  8. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/recorders/record_keeper.py +96 -11
  9. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/analysis_lens.py +160 -0
  10. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0/gitgalaxy.egg-info}/PKG-INFO +70 -23
  11. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy.egg-info/SOURCES.txt +1 -0
  12. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy.egg-info/scm_file_list.json +4 -0
  13. gitgalaxy-2.7.0/gitgalaxy.egg-info/scm_version.json +8 -0
  14. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_signal_processor.py +235 -0
  15. gitgalaxy-2.7.0/tests/core_engine/test_surface_families_contract.py +211 -0
  16. gitgalaxy-2.7.0/tests/ruff_audit_baseline.json +24 -0
  17. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools_recorders/test_audit_recorder.py +89 -0
  18. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools_recorders/test_llm_recorder.py +61 -0
  19. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools_recorders/test_record_keeper.py +169 -0
  20. gitgalaxy-2.6.0/gitgalaxy.egg-info/scm_version.json +0 -8
  21. gitgalaxy-2.6.0/tests/ruff_audit_baseline.json +0 -28
  22. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/agents/class-start-scout.md +0 -0
  23. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/agents/contract-audit-scout.md +0 -0
  24. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/agents/gemini-analyzer.md +0 -0
  25. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/agents/issue-triage.md +0 -0
  26. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/agents/pipeline-manager.md +0 -0
  27. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/agents/strict-signature-scout.md +0 -0
  28. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/hooks/pytest_quiet.py +0 -0
  29. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/rules/ci-healing.md +0 -0
  30. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/rules/golden-master-guidelines.md +0 -0
  31. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/rules/planning-approval.md +0 -0
  32. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/rules/sandbox-permissions.md +0 -0
  33. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/rules/tri-comparison-chart.md +0 -0
  34. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/settings.json +0 -0
  35. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/skills/ci-push-checklist/SKILL.md +0 -0
  36. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/skills/harden-class-start-extraction/SKILL.md +0 -0
  37. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/skills/harden-language-extraction/SKILL.md +0 -0
  38. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/skills/harden-strict-signatures/SKILL.md +0 -0
  39. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/skills/issue-generation/SKILL.md +0 -0
  40. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/skills/language-status/SKILL.md +0 -0
  41. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/skills/pipeline-check/SKILL.md +0 -0
  42. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/skills/readme-maintenance/SKILL.md +0 -0
  43. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/skills/release-notes/SKILL.md +0 -0
  44. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/skills/rule-contract-audit/SKILL.md +0 -0
  45. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/skills/score-contract-audit/SKILL.md +0 -0
  46. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/skills/self-scan-query/SKILL.md +0 -0
  47. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/skills/tree-sitter-accuracy-sweep/SKILL.md +0 -0
  48. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude/skills/tri-comparison-ledger-sweep/SKILL.md +0 -0
  49. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.claude.md +0 -0
  50. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.flake8 +0 -0
  51. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.galaxyscope.yaml +0 -0
  52. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/CODEOWNERS +0 -0
  53. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/ISSUE_TEMPLATE/parsing_discrepancy.yml +0 -0
  54. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  55. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/dependabot.yml +0 -0
  56. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/pull_request_template.md +0 -0
  57. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/workflows/ast-accuracy-audit.yml +0 -0
  58. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/workflows/codeql.yml +0 -0
  59. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/workflows/dead-key-audit.yml +0 -0
  60. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/workflows/deploy-docs.yml +0 -0
  61. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/workflows/full-suite-gate.yml +0 -0
  62. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/workflows/gitgalaxy.yml +0 -0
  63. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/workflows/golden-crucible.yml +0 -0
  64. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/workflows/golden-master-guard.yml +0 -0
  65. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/workflows/muninn.yml +0 -0
  66. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/workflows/mypy-audit.yml +0 -0
  67. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/workflows/publish.yml +0 -0
  68. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/workflows/release-crucible-archive.yml +0 -0
  69. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/workflows/rosetta-audit.yml +0 -0
  70. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/workflows/ruff-audit.yml +0 -0
  71. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/workflows/signal-contract-audit.yml +0 -0
  72. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/workflows/smoke-test.yml +0 -0
  73. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/workflows/tree-sitter-accuracy-audit.yml +0 -0
  74. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/workflows/tree-sitter-accuracy-history.yml +0 -0
  75. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/workflows/tri-comparison-audit.yml +0 -0
  76. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.github/workflows/tri-comparison-history.yml +0 -0
  77. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.gitignore +0 -0
  78. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/.gitlab-ci.yml +0 -0
  79. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/AGENTS.md +0 -0
  80. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/ANTIGRAVITY.md +0 -0
  81. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/CLAUDE.md +0 -0
  82. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/CONTRIBUTING.md +0 -0
  83. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/LICENSE +0 -0
  84. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/MANIFEST.in +0 -0
  85. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/SECURITY.md +0 -0
  86. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/action.yml +0 -0
  87. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/azure-pipelines.yml +0 -0
  88. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/bitbucket-pipelines.yml +0 -0
  89. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/README.md +0 -0
  90. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/__init__.py +0 -0
  91. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/cobol_refractor_controller.py +0 -0
  92. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/cobol_to_java_controller.py +0 -0
  93. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/core/README.md +0 -0
  94. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/core/__init__.py +0 -0
  95. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/core/aperture.py +0 -0
  96. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/core/detector.py +0 -0
  97. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/core/guidestar_lens.py +0 -0
  98. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/core/network_risk_sensor.py +0 -0
  99. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/core/prism.py +0 -0
  100. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/core/spatial_correlation.py +0 -0
  101. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/core/spatial_mapper.py +0 -0
  102. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/core/state_rehydrator.py +0 -0
  103. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/galaxyscope.py +0 -0
  104. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/licensing.py +0 -0
  105. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/metrics/__init__.py +0 -0
  106. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/metrics/chronometer.py +0 -0
  107. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/metrics/statistical_auditor.py +0 -0
  108. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/metrics/tensor_scanner.py +0 -0
  109. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/recorders/README.md +0 -0
  110. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/recorders/__init__.py +0 -0
  111. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/recorders/sarif_recorder.py +0 -0
  112. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/recorders/sbom_recorder.py +0 -0
  113. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/requirements.txt +0 -0
  114. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/security/README.md +0 -0
  115. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/security/__init__.py +0 -0
  116. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/security/dependency_audit_cache.py +0 -0
  117. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/security/manifest_parser.py +0 -0
  118. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/security/security_auditor.py +0 -0
  119. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/security/security_lens.py +0 -0
  120. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/README.md +0 -0
  121. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/__init__.py +0 -0
  122. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/config_resolver.py +0 -0
  123. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/fidelity_table.py +0 -0
  124. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/gitgalaxy_config.py +0 -0
  125. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/how_to_add_a_language.md +0 -0
  126. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_lens.py +0 -0
  127. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/__init__.py +0 -0
  128. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/_lens_config.py +0 -0
  129. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/_overrides.py +0 -0
  130. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/_prism_config.py +0 -0
  131. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/_shared_patterns.py +0 -0
  132. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/__init__.py +0 -0
  133. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/abap.py +0 -0
  134. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/ada.py +0 -0
  135. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/agc_assembly.py +0 -0
  136. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/apex.py +0 -0
  137. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/assembly.py +0 -0
  138. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/batch.py +0 -0
  139. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/blp.py +0 -0
  140. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/c.py +0 -0
  141. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/cobol.py +0 -0
  142. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/cpp.py +0 -0
  143. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/csharp.py +0 -0
  144. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/css.py +0 -0
  145. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/csv.py +0 -0
  146. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/dart.py +0 -0
  147. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/dockerfile.py +0 -0
  148. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/embedded_python.py +0 -0
  149. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/fortran.py +0 -0
  150. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/glsl.py +0 -0
  151. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/go.py +0 -0
  152. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/groovy.py +0 -0
  153. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/haskell.py +0 -0
  154. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/hlo.py +0 -0
  155. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/html.py +0 -0
  156. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/java.py +0 -0
  157. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/javascript.py +0 -0
  158. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/jcl.py +0 -0
  159. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/json.py +0 -0
  160. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/kotlin.py +0 -0
  161. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/livecode.py +0 -0
  162. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/lua.py +0 -0
  163. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/m4.py +0 -0
  164. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/makefile.py +0 -0
  165. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/markdown.py +0 -0
  166. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/matlab.py +0 -0
  167. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/mlir.py +0 -0
  168. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/nix.py +0 -0
  169. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/objectivec.py +0 -0
  170. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/pbtxt.py +0 -0
  171. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/perl.py +0 -0
  172. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/php.py +0 -0
  173. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/plaintext.py +0 -0
  174. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/powershell.py +0 -0
  175. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/proto.py +0 -0
  176. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/python.py +0 -0
  177. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/ruby.py +0 -0
  178. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/rust.py +0 -0
  179. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/scala.py +0 -0
  180. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/scheme.py +0 -0
  181. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/shell.py +0 -0
  182. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/solidity.py +0 -0
  183. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/sqlite.py +0 -0
  184. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/swift.py +0 -0
  185. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/tcl.py +0 -0
  186. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/td.py +0 -0
  187. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/typescript.py +0 -0
  188. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/xml.py +0 -0
  189. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/yacc.py +0 -0
  190. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/yaml.py +0 -0
  191. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/language_standards/languages/zig.py +0 -0
  192. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/standards/signal_contracts.py +0 -0
  193. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/README.md +0 -0
  194. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/__init__.py +0 -0
  195. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/ai_guardrails/README.md +0 -0
  196. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/ai_guardrails/ai_appsec_sensor.py +0 -0
  197. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/ai_guardrails/dev_agent_firewall.py +0 -0
  198. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/cobol_to_cobol/README.md +0 -0
  199. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/cobol_to_cobol/cobol_agent_task_forge.py +0 -0
  200. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/cobol_to_cobol/cobol_compiler_forge.py +0 -0
  201. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/cobol_to_cobol/cobol_dag_architect.py +0 -0
  202. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/cobol_to_cobol/cobol_etl_unpacker.py +0 -0
  203. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/cobol_to_cobol/cobol_graveyard_finder.py +0 -0
  204. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/cobol_to_cobol/cobol_jcl_auditor.py +0 -0
  205. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/cobol_to_cobol/cobol_jcl_forge.py +0 -0
  206. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/cobol_to_cobol/cobol_lexical_patcher.py +0 -0
  207. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/cobol_to_cobol/cobol_microservice_slicer.py +0 -0
  208. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/cobol_to_cobol/cobol_schema_forge.py +0 -0
  209. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/cobol_to_cobol/cobol_system_limits_reporter.py +0 -0
  210. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/cobol_to_java/README.md +0 -0
  211. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/cobol_to_java/batch_test_harness.py +0 -0
  212. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/cobol_to_java/cobol_to_java_agent_forge.py +0 -0
  213. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/cobol_to_java/cobol_to_java_api_contract_forge.py +0 -0
  214. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/cobol_to_java/cobol_to_java_build_forge.py +0 -0
  215. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/cobol_to_java/cobol_to_java_decoder_forge.py +0 -0
  216. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/cobol_to_java/cobol_to_java_service_forge.py +0 -0
  217. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/cobol_to_java/cobol_to_java_spring_forge.py +0 -0
  218. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/cobol_to_java/cobol_to_java_test_forge.py +0 -0
  219. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/network_auditing/README.md +0 -0
  220. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/network_auditing/full_api_network_map.py +0 -0
  221. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/supply_chain_security/README.md +0 -0
  222. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/supply_chain_security/binary_anomaly_detector.py +0 -0
  223. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/supply_chain_security/supply_chain_firewall.py +0 -0
  224. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/supply_chain_security/vault_sentinel.py +0 -0
  225. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/terabyte_log_scanning/README.md +0 -0
  226. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/terabyte_log_scanning/pii_leak_hunter.py +0 -0
  227. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy/tools/terabyte_log_scanning/terabyte_log_scanner.py +0 -0
  228. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy.egg-info/dependency_links.txt +0 -0
  229. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy.egg-info/entry_points.txt +0 -0
  230. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy.egg-info/requires.txt +0 -0
  231. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/gitgalaxy.egg-info/top_level.txt +0 -0
  232. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/github-action-readme.md +0 -0
  233. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/json +0 -0
  234. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/mkdocs.yml +0 -0
  235. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/muninn.yml +0 -0
  236. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/pyproject.toml +0 -0
  237. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/scripts/update_golden_masters.sh +0 -0
  238. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/setup.cfg +0 -0
  239. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/templates/azure/azure-pipelines.yml +0 -0
  240. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/templates/bitbucket/bitbucket-pipelines.yml +0 -0
  241. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/templates/bitbucket/bitbucket_insights.py +0 -0
  242. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/templates/github/gitgalaxy-pipeline.yml +0 -0
  243. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/templates/gitlab/scan.yml +0 -0
  244. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/templates/scan.yml +0 -0
  245. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/README.md +0 -0
  246. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/_crucible_pin.py +0 -0
  247. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/ast_accuracy_audit.py +0 -0
  248. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/ast_accuracy_baseline.json +0 -0
  249. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/cobol_mainframe/readme.md +0 -0
  250. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/cobol_mainframe/test_cobol_agent_task_forge.py +0 -0
  251. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/cobol_mainframe/test_cobol_compiler_forge.py +0 -0
  252. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/cobol_mainframe/test_cobol_dag_architect.py +0 -0
  253. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/cobol_mainframe/test_cobol_etl_unpacker.py +0 -0
  254. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/cobol_mainframe/test_cobol_graveyard_finder.py +0 -0
  255. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/cobol_mainframe/test_cobol_jcl_auditor.py +0 -0
  256. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/cobol_mainframe/test_cobol_jcl_forge.py +0 -0
  257. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/cobol_mainframe/test_cobol_lexical_patcher.py +0 -0
  258. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/cobol_mainframe/test_cobol_microservice_slicer.py +0 -0
  259. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/cobol_mainframe/test_cobol_refractor_controller.py +0 -0
  260. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/cobol_mainframe/test_cobol_schema_forge.py +0 -0
  261. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/cobol_mainframe/test_cobol_system_limits_reporter.py +0 -0
  262. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/readme.md +0 -0
  263. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_aperture.py +0 -0
  264. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_chronometer.py +0 -0
  265. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_chronometer_timeout.py +0 -0
  266. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_config_resolver.py +0 -0
  267. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_delta_scanner.py +0 -0
  268. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_detector.py +0 -0
  269. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_detector_issue_1718.py +0 -0
  270. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_export_visibility_contract_2904.py +0 -0
  271. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_galaxyscope.py +0 -0
  272. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_guidestar_lens.py +0 -0
  273. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_handshake_issue_2549.py +0 -0
  274. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_lang_classification_2555.py +0 -0
  275. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_language_lens.py +0 -0
  276. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_language_standards_strict.py +0 -0
  277. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_language_strictness.py +0 -0
  278. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_licensing.py +0 -0
  279. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_manifest_parser.py +0 -0
  280. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_naming_convention_signatures.py +0 -0
  281. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_path_modifiers.py +0 -0
  282. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_prism.py +0 -0
  283. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_prism_issue_1222.py +0 -0
  284. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_prism_issue_1302.py +0 -0
  285. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_prism_issue_1718.py +0 -0
  286. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_spatial_correlation.py +0 -0
  287. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_state_rehydrator.py +0 -0
  288. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_uef_length_invariance.py +0 -0
  289. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_unreferenced_by_name_contract_2806.py +0 -0
  290. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_unreferenced_census_2866.py +0 -0
  291. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/core_engine/test_zero_dependency.py +0 -0
  292. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/dead_key_audit.py +0 -0
  293. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/dead_key_audit_baseline.json +0 -0
  294. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/_extraction_harness.py +0 -0
  295. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/how_to_extend_class_start_named_extraction.md +0 -0
  296. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/how_to_harden_extraction.md +0 -0
  297. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/how_to_harden_strict_signatures.md +0 -0
  298. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/_strict_harness.py +0 -0
  299. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_abap.py +0 -0
  300. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_abap_strict.py +0 -0
  301. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_ada.py +0 -0
  302. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_ada_strict.py +0 -0
  303. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_agc_assembly.py +0 -0
  304. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_agc_assembly_strict.py +0 -0
  305. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_apex.py +0 -0
  306. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_apex_strict.py +0 -0
  307. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_assembly.py +0 -0
  308. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_assembly_strict.py +0 -0
  309. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_branch_contract_2822.py +0 -0
  310. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_c.py +0 -0
  311. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_c_strict.py +0 -0
  312. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_cleanup_contract_2888.py +0 -0
  313. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_cobol.py +0 -0
  314. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_cobol_strict.py +0 -0
  315. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_cpp.py +0 -0
  316. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_cpp_strict.py +0 -0
  317. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_csharp.py +0 -0
  318. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_csharp_strict.py +0 -0
  319. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_css.py +0 -0
  320. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_css_strict.py +0 -0
  321. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_dart.py +0 -0
  322. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_dart_strict.py +0 -0
  323. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_dockerfile.py +0 -0
  324. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_dockerfile_strict.py +0 -0
  325. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_embedded_python.py +0 -0
  326. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_embedded_python_strict.py +0 -0
  327. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_fortran.py +0 -0
  328. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_fortran_strict.py +0 -0
  329. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_globals_contract_2858.py +0 -0
  330. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_go.py +0 -0
  331. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_go_strict.py +0 -0
  332. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_groovy.py +0 -0
  333. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_groovy_strict.py +0 -0
  334. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_haskell.py +0 -0
  335. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_haskell_strict.py +0 -0
  336. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_high_risk_execution_contract_2878.py +0 -0
  337. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_html.py +0 -0
  338. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_html_strict.py +0 -0
  339. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_immutability_locks_contract_2772.py +0 -0
  340. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_import_contract_2875.py +0 -0
  341. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_io_contract_2841.py +0 -0
  342. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_java.py +0 -0
  343. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_java_strict.py +0 -0
  344. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_javascript.py +0 -0
  345. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_javascript_strict.py +0 -0
  346. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_jcl.py +0 -0
  347. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_jcl_strict.py +0 -0
  348. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_kotlin.py +0 -0
  349. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_kotlin_strict.py +0 -0
  350. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_livecode.py +0 -0
  351. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_livecode_strict.py +0 -0
  352. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_lua.py +0 -0
  353. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_lua_strict.py +0 -0
  354. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_m4.py +0 -0
  355. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_m4_strict.py +0 -0
  356. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_makefile.py +0 -0
  357. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_makefile_strict.py +0 -0
  358. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_markdown_strict.py +0 -0
  359. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_matlab.py +0 -0
  360. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_matlab_strict.py +0 -0
  361. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_objectivec.py +0 -0
  362. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_objectivec_strict.py +0 -0
  363. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_ownership_contract_2882.py +0 -0
  364. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_perl.py +0 -0
  365. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_perl_strict.py +0 -0
  366. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_php.py +0 -0
  367. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_php_strict.py +0 -0
  368. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_powershell.py +0 -0
  369. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_powershell_strict.py +0 -0
  370. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_python.py +0 -0
  371. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_python_strict.py +0 -0
  372. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_ruby.py +0 -0
  373. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_ruby_strict.py +0 -0
  374. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_rust.py +0 -0
  375. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_rust_strict.py +0 -0
  376. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_safety_contract_2869.py +0 -0
  377. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_scala.py +0 -0
  378. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_scala_strict.py +0 -0
  379. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_scheme.py +0 -0
  380. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_scheme_strict.py +0 -0
  381. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_shell.py +0 -0
  382. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_shell_strict.py +0 -0
  383. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_solidity.py +0 -0
  384. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_solidity_strict.py +0 -0
  385. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_sqlite.py +0 -0
  386. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_sqlite_strict.py +0 -0
  387. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_state_mutation_contract_2765.py +0 -0
  388. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_structure_contract_2856.py +0 -0
  389. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_swift.py +0 -0
  390. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_swift_strict.py +0 -0
  391. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_tcl.py +0 -0
  392. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_tcl_strict.py +0 -0
  393. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_test_contract_2852.py +0 -0
  394. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_typescript.py +0 -0
  395. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_typescript_strict.py +0 -0
  396. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_yacc.py +0 -0
  397. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_yacc_strict.py +0 -0
  398. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_yaml.py +0 -0
  399. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_yaml_strict.py +0 -0
  400. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_zig.py +0 -0
  401. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/languages/test_zig_strict.py +0 -0
  402. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/readme.md +0 -0
  403. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/test_args_extraction.py +0 -0
  404. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/test_class_extraction.py +0 -0
  405. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/test_dependency_extraction.py +0 -0
  406. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/test_function_extraction.py +0 -0
  407. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/tools/audit_strict_coverage.py +0 -0
  408. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/tools/sweep_redos_scaling.py +0 -0
  409. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/extraction/tools/verify_candidates.py +0 -0
  410. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/golden_diff.py +0 -0
  411. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/golden_master_audit.json +0 -0
  412. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/golden_master_zero_dep_audit.json +0 -0
  413. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/mypy_audit.py +0 -0
  414. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/mypy_audit_baseline.json +0 -0
  415. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/ruff_audit.py +0 -0
  416. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/security_auditing/readme.md +0 -0
  417. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/security_auditing/test_ai_appsec_sensor.py +0 -0
  418. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/security_auditing/test_api_network_map.py +0 -0
  419. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/security_auditing/test_binary_anomaly_detector.py +0 -0
  420. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/security_auditing/test_dependency_audit_cache.py +0 -0
  421. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/security_auditing/test_dev_agent_firewall.py +0 -0
  422. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/security_auditing/test_network_risk_sensor.py +0 -0
  423. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/security_auditing/test_pii_leak_hunter.py +0 -0
  424. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/security_auditing/test_redos_poison.py +0 -0
  425. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/security_auditing/test_security_auditor.py +0 -0
  426. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/security_auditing/test_security_lens.py +0 -0
  427. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/security_auditing/test_statistical_auditor.py +0 -0
  428. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/security_auditing/test_supply_chain_firewall.py +0 -0
  429. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/security_auditing/test_tensor_auditor.py +0 -0
  430. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/security_auditing/test_terabyte_log_scanner.py +0 -0
  431. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/security_auditing/test_vault_sentinel.py +0 -0
  432. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/signal_contract_audit.py +0 -0
  433. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/signal_contract_audit_baseline.json +0 -0
  434. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/test_dead_key_audit.py +0 -0
  435. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/test_golden_crucible.py +0 -0
  436. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/test_signal_contract_sheet.py +0 -0
  437. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/audit_check.py +0 -0
  438. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/audit_length_invariance.py +0 -0
  439. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/audit_risk_equations.py +0 -0
  440. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/audit_score_inputs.py +0 -0
  441. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/bless_scope.py +0 -0
  442. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/census_probe.py +0 -0
  443. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/class_start_diff.py +0 -0
  444. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/contract_pr_check.py +0 -0
  445. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/crucible_check.py +0 -0
  446. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/ctags_reader.py +0 -0
  447. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/fidelity_table.py +0 -0
  448. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/recall_audit.py +0 -0
  449. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/rosetta_audit.py +0 -0
  450. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/rule_probe.py +0 -0
  451. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/scope_check.py +0 -0
  452. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/self_scan.py +0 -0
  453. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/test_audit_runners_refuse_empty.py +0 -0
  454. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/test_ctags_reader_qualify.py +0 -0
  455. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/test_html_embedded_ts_funcs.py +0 -0
  456. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/test_tri_comparison_chart_badge.py +0 -0
  457. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/test_tri_comparison_ledger.py +0 -0
  458. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/test_tri_comparison_reconcile.py +0 -0
  459. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/tree_sitter_accuracy_audit.py +0 -0
  460. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/tri_comparison_chart.py +0 -0
  461. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/tri_comparison_gatherer.py +0 -0
  462. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/tri_comparison_ledger.py +0 -0
  463. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/tri_comparison_reconcile.py +0 -0
  464. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/tri_comparison_report.py +0 -0
  465. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/update_golden_master.py +0 -0
  466. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools/worktree_env.sh +0 -0
  467. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools_recorders/readme.md +0 -0
  468. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools_recorders/test_agent_forge.py +0 -0
  469. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools_recorders/test_batch_test_harness.py +0 -0
  470. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools_recorders/test_decoder_forge.py +0 -0
  471. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools_recorders/test_dependency_density_floor.py +0 -0
  472. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools_recorders/test_func_internal_density_floor.py +0 -0
  473. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools_recorders/test_golden_forge.py +0 -0
  474. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools_recorders/test_gpu_recorder.py +0 -0
  475. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools_recorders/test_sarif_recorder.py +0 -0
  476. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools_recorders/test_sbom_generator.py +0 -0
  477. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tools_recorders/test_service_forge.py +0 -0
  478. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_apex.json +0 -0
  479. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_c.json +0 -0
  480. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_cpp.json +0 -0
  481. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_csharp.json +0 -0
  482. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_css.json +0 -0
  483. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_dart.json +0 -0
  484. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_fortran.json +0 -0
  485. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_go.json +0 -0
  486. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_haskell.json +0 -0
  487. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_html.json +0 -0
  488. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_java.json +0 -0
  489. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_javascript.json +0 -0
  490. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_kotlin.json +0 -0
  491. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_lua.json +0 -0
  492. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_makefile.json +0 -0
  493. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_matlab.json +0 -0
  494. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_objective-c.json +0 -0
  495. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_perl.json +0 -0
  496. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_php.json +0 -0
  497. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_powershell.json +0 -0
  498. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_python.json +0 -0
  499. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_ruby.json +0 -0
  500. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_rust.json +0 -0
  501. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_scala.json +0 -0
  502. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_shell.json +0 -0
  503. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_solidity.json +0 -0
  504. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_swift.json +0 -0
  505. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_tcl.json +0 -0
  506. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_typescript.json +0 -0
  507. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tree_sitter_accuracy_baseline_zig.json +0 -0
  508. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tri_comparison_baseline_javascript.json +0 -0
  509. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tri_comparison_baseline_typescript.json +0 -0
  510. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/tests/tri_comparison_baseline_zig.json +0 -0
  511. {gitgalaxy-2.6.0 → gitgalaxy-2.7.0}/zizmor.yml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gitgalaxy
3
- Version: 2.6.0
3
+ Version: 2.7.0
4
4
  Summary: An AST-free, LLM-free zero-trust static analysis engine for mapping architectural risk, securing CI/CD pipelines, and modernizing legacy monoliths.
5
5
  Author: Joe Esquibel
6
6
  Project-URL: Homepage, https://gitgalaxy.io
@@ -119,8 +119,8 @@ and test data aggressively, and §5 of the brief itemizes every exclusion by
119
119
  extension and reason.
120
120
 
121
121
  **cics-genapp** (IBM's CICS COBOL/DB2 sample) — 92.1% scanned: 44 COBOL
122
- programs, 29 JCL jobs. The cumulative-risk hitlist leads with
123
- `base/src/lgupdb01.cbl` (state flux ~100%, cognitive load 92%), and the
122
+ programs, 29 JCL jobs. The cumulative structural-surface hitlist leads with
123
+ `base/src/lgupdb01.cbl` (mutation surface ~100%, complexity load 92%), and the
124
124
  heaviest paragraph in the repo is `UPDATE-POLICY-DB2-INFO` — the `SELECT FOR
125
125
  UPDATE` row-locking logic, which is exactly where a maintainer of that program
126
126
  would want to look first. The same brief also shows a limitation plainly: on a
@@ -140,7 +140,7 @@ this repo's own always-current self-scan brief is at
140
140
  |---|---|
141
141
  | Architecture | What is this repository made of? |
142
142
  | Structural analysis | Where are the functions, classes, APIs, dependencies and control structures? |
143
- | Risk exposure | Where are potentially important risk patterns concentrated? |
143
+ | Structural Surface Profile (formerly Risk exposure) | Where is a given structural/content pattern concentrated? |
144
144
  | Refactoring | Which files are complex, high-churn or load-bearing? |
145
145
  | Supply chain | What dependencies physically exist on disk? |
146
146
  | AI context | What architecture and relationships should an agent know? |
@@ -193,8 +193,10 @@ named rather than hidden — `cog_raw` holds 76% of languages in band,
193
193
  are documented, not defects.
194
194
  The claim also survives expansion: when the corpus planted its first
195
195
  security-lens probe — one identical hardcoded secret in every language —
196
- `risk_secrets_risk` read a **uniform score across all 44 languages the lens
197
- covers**, and the two exceptions (the engine deliberately skips its security
196
+ `credential_material` (formerly `risk_secrets_risk`; the `risk_*` name remains
197
+ the DB column — see [`docs/vectors.md`](docs/vectors.md)) read a **uniform
198
+ score across all 44 languages the lens covers**, and the two exceptions (the
199
+ engine deliberately skips its security
198
200
  lens on data formats) and the formula's measured length dependence were
199
201
  ledgered and filed the same day
200
202
  ([#2978](https://github.com/squid-protocol/gitgalaxy/issues/2978),
@@ -232,21 +234,65 @@ unedited artifacts.
232
234
 
233
235
  ------------------------------------------------------------------------
234
236
 
235
- # Risk exposure: what GitGalaxy claims
236
-
237
- GitGalaxy produces **risk-exposure measurements**, not vulnerability verdicts.
238
-
239
- A high exposure means:
240
-
241
- > **This location deserves attention relative to the rest of the repository.**
237
+ # Structural Surface Profile: what GitGalaxy claims (formerly "Risk exposure")
238
+
239
+ GitGalaxy's 13 per-file vectors were originally named `risk_*` and described as
240
+ **risk-exposure measurements**. The question this section used to leave open —
241
+ "are these signatures empirically associated with meaningful classes of
242
+ software risk?" — has since been tested, not just asked. The
243
+ temporal-crucible validation program (epic
244
+ [#2982](https://github.com/squid-protocol/gitgalaxy/issues/2982), ~3,550
245
+ scanned snapshots, two repositories, three label families, every test
246
+ pre-registered before the data was looked at) ran that experiment to
247
+ exhaustion, and the honest result drove a rename
248
+ ([#2991](https://github.com/squid-protocol/gitgalaxy/issues/2991)): the
249
+ vectors are now called the **Structural Surface Profile**. `risk_*` remains
250
+ the DB column / JSON key name for compatibility (see
251
+ [`docs/vectors.md`](docs/vectors.md) for the full name table and the
252
+ deprecation note).
253
+
254
+ **What the record found, restated honestly:**
255
+
256
+ - **Per-file standing risk, falsified.** The founding hypothesis — that a
257
+ file's `risk_*` level, or its change after a fix, tracks defect
258
+ probability — did not hold. Median structural delta after a security fix
259
+ was +0.000 (equivalence-confirmed near-zero on a second, independent
260
+ repository, not just non-significant); summed structural exposure ranked
261
+ *last* of six features for predicting fix-touched files; a 26-signal
262
+ multivariate structural vector scored at chance (AUC 0.479) under a
263
+ temporal split, below a plain line count (0.531). The full ledger is in
264
+ temporal-crucible's `docs/HYPOTHESES.md` and is linked from
265
+ [#2982](https://github.com/squid-protocol/gitgalaxy/issues/2982).
266
+ - **What the vectors actually validated for:** describing **activity and
267
+ content**, not defect probability. The fix-shaped composite reliably
268
+ tracks a security-fix → ordinary-fix → control → revert gradient; deltas
269
+ correspond to real code events (guard code added, threading introduced,
270
+ debt markers diluted). That's the x-ray this document now names
271
+ accurately — see [`docs/vectors.md`](docs/vectors.md) vector-by-vector.
272
+ - **System-level / history signal, restated as the actual predictive
273
+ finding.** Two features *did* survive validation: **recidivism** (the file
274
+ that had the last fix gets the next one — the single most replicated
275
+ result of the program, p<1e-4 on both repositories) and **change entropy /
276
+ Hassan HCM**, validated out-of-selection on fresh bug labels (AUC 0.868 vs
277
+ a line count's 0.830). Both are **history** metrics, not structural
278
+ content metrics — and both are currently zeroed in every scan
279
+ (`GITGALAXY_DISABLE_GIT_HISTORY`, tracked in
280
+ [temporal-crucible#29](https://github.com/squid-protocol/temporal-crucible/issues/29)).
281
+ This is the seed of a separate, honestly-named **predictive layer** — the
282
+ `hist_stability`/`hist_churn` vectors are named to mark that status
283
+ explicitly — gated on shipping history-enabled mode and then clearing
284
+ [#2987](https://github.com/squid-protocol/gitgalaxy/issues/2987)'s
285
+ defect-lift promotion contract.
286
+
287
+ A high Structural Surface Profile reading means:
288
+
289
+ > **This location has more of a given structural/content pattern present,
290
+ > relative to the rest of the repository.**
242
291
 
243
292
  It does not mean:
244
293
 
245
- > "This code is definitely vulnerable."
246
-
247
- The current system produces normalized exposure categories across the
248
- repository and rolls information from structural entities through files,
249
- folders and repository-level views.
294
+ > "This code is more likely to contain a defect" — the per-file version of
295
+ > that claim was tested and did not hold.
250
296
 
251
297
  The underlying signatures cover patterns involving areas such as:
252
298
 
@@ -263,11 +309,10 @@ The underlying signatures cover patterns involving areas such as:
263
309
  - entropy
264
310
  - other structural/security characteristics
265
311
 
266
- The important research question is whether these signatures are **empirically
267
- associated with meaningful classes of software risk**, rather than merely
268
- correlated with a score that GitGalaxy itself mathematically constructed.
269
-
270
- That distinction drives the next phase.
312
+ See [`docs/vectors.md`](docs/vectors.md) for the per-vector rename table,
313
+ evidence, and appropriate/inappropriate uses, and
314
+ [temporal-crucible](https://github.com/squid-protocol/temporal-crucible)'s
315
+ `docs/HYPOTHESES.md` for the full validation ledger this section summarizes.
271
316
 
272
317
  ------------------------------------------------------------------------
273
318
 
@@ -413,6 +458,8 @@ guide](github-action-readme.md).
413
458
  |---|---|
414
459
  | [Documentation](https://squid-protocol.github.io/gitgalaxy/) | Architecture, claims and methodology |
415
460
  | [The validation program](docs/validation.md) | The full proof narrative: thesis, benchmarks, validity ladder, next experiments |
461
+ | [Vector reference](docs/vectors.md) | The 13 per-file vectors: names, meaning, evidence, and the `risk_*` deprecation note |
462
+ | [Vector formula facts](docs/vector_formulas.md) | Mechanical per-calculator formula audit (inputs, arithmetic, constants) |
416
463
  | [Language Crucible](https://github.com/squid-protocol/language-crucible) | Cross-language benchmark and golden corpus |
417
464
  | [Keyword Rosetta](https://github.com/squid-protocol/keyword-rosetta) | 46-language planted control corpus and bias reports |
418
465
  | [Raw Output](https://github.com/squid-protocol/gitgalaxy-raw-output) | Unedited scans of real repositories |
@@ -92,8 +92,8 @@ and test data aggressively, and §5 of the brief itemizes every exclusion by
92
92
  extension and reason.
93
93
 
94
94
  **cics-genapp** (IBM's CICS COBOL/DB2 sample) — 92.1% scanned: 44 COBOL
95
- programs, 29 JCL jobs. The cumulative-risk hitlist leads with
96
- `base/src/lgupdb01.cbl` (state flux ~100%, cognitive load 92%), and the
95
+ programs, 29 JCL jobs. The cumulative structural-surface hitlist leads with
96
+ `base/src/lgupdb01.cbl` (mutation surface ~100%, complexity load 92%), and the
97
97
  heaviest paragraph in the repo is `UPDATE-POLICY-DB2-INFO` — the `SELECT FOR
98
98
  UPDATE` row-locking logic, which is exactly where a maintainer of that program
99
99
  would want to look first. The same brief also shows a limitation plainly: on a
@@ -113,7 +113,7 @@ this repo's own always-current self-scan brief is at
113
113
  |---|---|
114
114
  | Architecture | What is this repository made of? |
115
115
  | Structural analysis | Where are the functions, classes, APIs, dependencies and control structures? |
116
- | Risk exposure | Where are potentially important risk patterns concentrated? |
116
+ | Structural Surface Profile (formerly Risk exposure) | Where is a given structural/content pattern concentrated? |
117
117
  | Refactoring | Which files are complex, high-churn or load-bearing? |
118
118
  | Supply chain | What dependencies physically exist on disk? |
119
119
  | AI context | What architecture and relationships should an agent know? |
@@ -166,8 +166,10 @@ named rather than hidden — `cog_raw` holds 76% of languages in band,
166
166
  are documented, not defects.
167
167
  The claim also survives expansion: when the corpus planted its first
168
168
  security-lens probe — one identical hardcoded secret in every language —
169
- `risk_secrets_risk` read a **uniform score across all 44 languages the lens
170
- covers**, and the two exceptions (the engine deliberately skips its security
169
+ `credential_material` (formerly `risk_secrets_risk`; the `risk_*` name remains
170
+ the DB column — see [`docs/vectors.md`](docs/vectors.md)) read a **uniform
171
+ score across all 44 languages the lens covers**, and the two exceptions (the
172
+ engine deliberately skips its security
171
173
  lens on data formats) and the formula's measured length dependence were
172
174
  ledgered and filed the same day
173
175
  ([#2978](https://github.com/squid-protocol/gitgalaxy/issues/2978),
@@ -205,21 +207,65 @@ unedited artifacts.
205
207
 
206
208
  ------------------------------------------------------------------------
207
209
 
208
- # Risk exposure: what GitGalaxy claims
209
-
210
- GitGalaxy produces **risk-exposure measurements**, not vulnerability verdicts.
211
-
212
- A high exposure means:
213
-
214
- > **This location deserves attention relative to the rest of the repository.**
210
+ # Structural Surface Profile: what GitGalaxy claims (formerly "Risk exposure")
211
+
212
+ GitGalaxy's 13 per-file vectors were originally named `risk_*` and described as
213
+ **risk-exposure measurements**. The question this section used to leave open —
214
+ "are these signatures empirically associated with meaningful classes of
215
+ software risk?" — has since been tested, not just asked. The
216
+ temporal-crucible validation program (epic
217
+ [#2982](https://github.com/squid-protocol/gitgalaxy/issues/2982), ~3,550
218
+ scanned snapshots, two repositories, three label families, every test
219
+ pre-registered before the data was looked at) ran that experiment to
220
+ exhaustion, and the honest result drove a rename
221
+ ([#2991](https://github.com/squid-protocol/gitgalaxy/issues/2991)): the
222
+ vectors are now called the **Structural Surface Profile**. `risk_*` remains
223
+ the DB column / JSON key name for compatibility (see
224
+ [`docs/vectors.md`](docs/vectors.md) for the full name table and the
225
+ deprecation note).
226
+
227
+ **What the record found, restated honestly:**
228
+
229
+ - **Per-file standing risk, falsified.** The founding hypothesis — that a
230
+ file's `risk_*` level, or its change after a fix, tracks defect
231
+ probability — did not hold. Median structural delta after a security fix
232
+ was +0.000 (equivalence-confirmed near-zero on a second, independent
233
+ repository, not just non-significant); summed structural exposure ranked
234
+ *last* of six features for predicting fix-touched files; a 26-signal
235
+ multivariate structural vector scored at chance (AUC 0.479) under a
236
+ temporal split, below a plain line count (0.531). The full ledger is in
237
+ temporal-crucible's `docs/HYPOTHESES.md` and is linked from
238
+ [#2982](https://github.com/squid-protocol/gitgalaxy/issues/2982).
239
+ - **What the vectors actually validated for:** describing **activity and
240
+ content**, not defect probability. The fix-shaped composite reliably
241
+ tracks a security-fix → ordinary-fix → control → revert gradient; deltas
242
+ correspond to real code events (guard code added, threading introduced,
243
+ debt markers diluted). That's the x-ray this document now names
244
+ accurately — see [`docs/vectors.md`](docs/vectors.md) vector-by-vector.
245
+ - **System-level / history signal, restated as the actual predictive
246
+ finding.** Two features *did* survive validation: **recidivism** (the file
247
+ that had the last fix gets the next one — the single most replicated
248
+ result of the program, p<1e-4 on both repositories) and **change entropy /
249
+ Hassan HCM**, validated out-of-selection on fresh bug labels (AUC 0.868 vs
250
+ a line count's 0.830). Both are **history** metrics, not structural
251
+ content metrics — and both are currently zeroed in every scan
252
+ (`GITGALAXY_DISABLE_GIT_HISTORY`, tracked in
253
+ [temporal-crucible#29](https://github.com/squid-protocol/temporal-crucible/issues/29)).
254
+ This is the seed of a separate, honestly-named **predictive layer** — the
255
+ `hist_stability`/`hist_churn` vectors are named to mark that status
256
+ explicitly — gated on shipping history-enabled mode and then clearing
257
+ [#2987](https://github.com/squid-protocol/gitgalaxy/issues/2987)'s
258
+ defect-lift promotion contract.
259
+
260
+ A high Structural Surface Profile reading means:
261
+
262
+ > **This location has more of a given structural/content pattern present,
263
+ > relative to the rest of the repository.**
215
264
 
216
265
  It does not mean:
217
266
 
218
- > "This code is definitely vulnerable."
219
-
220
- The current system produces normalized exposure categories across the
221
- repository and rolls information from structural entities through files,
222
- folders and repository-level views.
267
+ > "This code is more likely to contain a defect" — the per-file version of
268
+ > that claim was tested and did not hold.
223
269
 
224
270
  The underlying signatures cover patterns involving areas such as:
225
271
 
@@ -236,11 +282,10 @@ The underlying signatures cover patterns involving areas such as:
236
282
  - entropy
237
283
  - other structural/security characteristics
238
284
 
239
- The important research question is whether these signatures are **empirically
240
- associated with meaningful classes of software risk**, rather than merely
241
- correlated with a score that GitGalaxy itself mathematically constructed.
242
-
243
- That distinction drives the next phase.
285
+ See [`docs/vectors.md`](docs/vectors.md) for the per-vector rename table,
286
+ evidence, and appropriate/inappropriate uses, and
287
+ [temporal-crucible](https://github.com/squid-protocol/temporal-crucible)'s
288
+ `docs/HYPOTHESES.md` for the full validation ledger this section summarizes.
244
289
 
245
290
  ------------------------------------------------------------------------
246
291
 
@@ -386,6 +431,8 @@ guide](github-action-readme.md).
386
431
  |---|---|
387
432
  | [Documentation](https://squid-protocol.github.io/gitgalaxy/) | Architecture, claims and methodology |
388
433
  | [The validation program](docs/validation.md) | The full proof narrative: thesis, benchmarks, validity ladder, next experiments |
434
+ | [Vector reference](docs/vectors.md) | The 13 per-file vectors: names, meaning, evidence, and the `risk_*` deprecation note |
435
+ | [Vector formula facts](docs/vector_formulas.md) | Mechanical per-calculator formula audit (inputs, arithmetic, constants) |
389
436
  | [Language Crucible](https://github.com/squid-protocol/language-crucible) | Cross-language benchmark and golden corpus |
390
437
  | [Keyword Rosetta](https://github.com/squid-protocol/keyword-rosetta) | 46-language planted control corpus and bias reports |
391
438
  | [Raw Output](https://github.com/squid-protocol/gitgalaxy-raw-output) | Unedited scans of real repositories |
@@ -2,13 +2,13 @@
2
2
 
3
3
  Welcome to **GitGalaxy Metrics**. If the `core/` directory is the extraction layer (identifying raw structural signals), this directory is the analytical brain.
4
4
 
5
- It is responsible for consuming raw lexical data, merging it with temporal Git telemetry, and translating it into actionable, multi-dimensional risk vectors. This is where raw data becomes architectural intelligence.
5
+ It is responsible for consuming raw lexical data, merging it with temporal Git telemetry, and translating it into actionable, multi-dimensional Structural Surface Profile vectors (formerly called "risk vectors" — see [`docs/vectors.md`](../../docs/vectors.md) for the rename record and evidence). This is where raw data becomes architectural intelligence.
6
6
 
7
7
  ## The Why: False-Positive Eradication & Alert Fatigue
8
8
 
9
9
  Traditional Static Application Security Testing (SAST) tools suffer from a fatal flaw: they flag raw vulnerabilities in a vacuum. A raw execution command inside a deprecated, unimported sandbox script generates the same critical alert as one sitting in your primary routing controller. This lack of context generates massive false-positive fatigue, eventually causing engineering teams to ignore the scanner entirely.
10
10
 
11
- The GitGalaxy Metrics engine is engineered to solve this through **Contextual Synthesis**. It operates on a fundamental rule: **Risk exposures are calculated metrics derived from structural hits; they are not the hits themselves.** The engine applies mathematical dampeners (like testing umbrellas, network isolation, and documentation shields) to raw signals. For example, a high "state flux" signal in a file with 100% test coverage and zero downstream dependents has its ultimate risk exposure mathematically dampened, reflecting true ecosystem reality rather than isolated syntax panic.
11
+ The GitGalaxy Metrics engine is engineered to solve this through **Contextual Synthesis**. It operates on a fundamental rule: **Structural Surface Profile vectors are calculated metrics derived from structural hits; they are not the hits themselves.** The engine applies mathematical dampeners (like testing umbrellas, network isolation, and documentation shields) to raw signals. For example, a high "mutation surface" (formerly "state flux") signal in a file with 100% test coverage and zero downstream dependents has its ultimate surface reading mathematically dampened, reflecting true ecosystem reality rather than isolated syntax panic. These vectors describe activity and content, not defect probability — see [`docs/vectors.md`](../../docs/vectors.md) for the validation record behind that distinction (gitgalaxy#2991, gitgalaxy#2982).
12
12
 
13
13
  ---
14
14
 
@@ -17,7 +17,7 @@ The GitGalaxy Metrics engine is engineered to solve this through **Contextual Sy
17
17
  All modules in this directory are engineered to operate strictly in $O(1)$ or $O(N)$ linear time complexity. Because expensive disk I/O and regex parsing have already concluded in the `core/` phase, these mathematical operations execute across tens of thousands of files in milliseconds.
18
18
 
19
19
  ### 1. `signal_processor.py` (The Mathematical Core)
20
- The primary heuristic synthesis engine. It translates raw structural hits into an 18-point risk vector evaluating dimensions like Technical Debt, Cognitive Load, and State Flux.
20
+ The primary heuristic synthesis engine. It translates raw structural hits into an 18-point Structural Surface Profile evaluating dimensions like Debt Markers (formerly Technical Debt), Complexity Load (formerly Cognitive Load), and Mutation Surface (formerly State Flux). The underlying `risk_*` DB columns and JSON keys are unchanged; see [`docs/vectors.md`](../../docs/vectors.md).
21
21
  * **Dual-Axis Anomaly Detection:** Evaluates threats using both global repository baselines and local language models. It leverages **Architectural Drift (Z-Score)** to mathematically flag files that blend in globally but violate their local ecosystem's structural norms.
22
22
  * **Autonomous Execution Vectors & AI Topology:** Analyzes the density of LLM orchestration tools, vector databases, and execution loops to classify the repository's AI footprint. It explicitly flags vulnerabilities where raw **Prompt Injection Surfaces** flow directly into OS-level execution.
23
23
 
@@ -64,6 +64,21 @@ class SignalProcessor:
64
64
  # The 18-Point Risk Exposure Schema
65
65
  RISK_SCHEMA = config.RECORDING_SCHEMAS.get("RISK_SCHEMA", [])
66
66
 
67
+ # gitgalaxy#2991: canonical new-name -> legacy risk_* mapping (display-layer
68
+ # only; RISK_SCHEMA and every DB column/JSON key above are unchanged). Not
69
+ # consumed by this module's own output today -- signal_processor computes
70
+ # the risk_vector, it doesn't render it -- but bound here alongside
71
+ # RISK_SCHEMA so it travels with the schema wherever this class is
72
+ # imported from, rather than each renderer re-deriving it independently.
73
+ VECTOR_NAMES = config.RECORDING_SCHEMAS.get("VECTOR_NAMES", {})
74
+
75
+ # gitgalaxy#2994: Tier-1 declarative family map (analysis_lens.py section
76
+ # 7b), bound here alongside RISK_SCHEMA/SIGNAL_SCHEMA so it travels with
77
+ # the schema wherever this class is imported from. Not part of
78
+ # RECORDING_SCHEMAS -- it's a standalone top-level constant, same pattern
79
+ # as ENGINE_CONSTANTS/APERTURE_CONFIG below.
80
+ SURFACE_FAMILIES = getattr(config, "SURFACE_FAMILIES", {})
81
+
67
82
  def __init__(
68
83
  self,
69
84
  aperture_config: Optional[dict[str, Any]] = None,
@@ -865,6 +880,42 @@ class SignalProcessor:
865
880
  if mp_map:
866
881
  telemetry_payload["multipliers"] = mp_map
867
882
 
883
+ # ==================================================================
884
+ # TIER 1/3 -- SURFACE FAMILIES & RELATIONS (gitgalaxy#2994)
885
+ # ==================================================================
886
+ # Summed from raw_signals, NOT the mitigation-suppressed
887
+ # exposure_vector assembled above (:784-788 in this method) -- these
888
+ # are "raw truth by construction": a file whose legacy
889
+ # risk_safety_score got zeroed by an inline `galaxyscope:ignore`
890
+ # can still show a nonzero `guards` family total. See
891
+ # analysis_lens.SURFACE_FAMILIES / SURFACE_FAMILY_EXEMPT and the
892
+ # suppression-interplay test in test_signal_processor.py.
893
+ #
894
+ # Additive only: risk_vector/hit_vector/file_impact above are
895
+ # unchanged, and this key is new -- it does not touch the
896
+ # golden-mastered audit_recorder output (that reads risk_vector/
897
+ # hit_vector/file_impact, not telemetry["surface_families"]).
898
+ surface_families = {
899
+ family: sum(raw_signals.get(member, 0) for member in members)
900
+ for family, members in self.SURFACE_FAMILIES.items()
901
+ }
902
+ guards_total = surface_families.get("guards", 0)
903
+ danger_total = surface_families.get("danger", 0)
904
+ memory_total = surface_families.get("memory", 0)
905
+ cleanup_total = surface_families.get("cleanup", 0)
906
+ surface_relations = {
907
+ # Mechanism story: defensive constructs per unit of danger
908
+ # surface, +1 in the denominator so a danger-free file (the
909
+ # common case) doesn't divide by zero or spike to infinity.
910
+ "guard_balance_ratio": round(guards_total / (danger_total + 1), 4),
911
+ # Mechanism story: cleanup (free/close/dispose) per unit of
912
+ # manual allocation surface -- the X-H1 feature from the
913
+ # temporal-crucible validation record.
914
+ "alloc_cleanup_pairing": round(cleanup_total / (memory_total + 1), 4),
915
+ }
916
+ telemetry_payload["surface_families"] = surface_families
917
+ telemetry_payload["surface_relations"] = surface_relations
918
+
868
919
  return {
869
920
  "risk_vector": risk_vector_ordered,
870
921
  "hit_vector": hit_vector,
@@ -896,6 +947,16 @@ class SignalProcessor:
896
947
  # Execute Pass 2: Temporal Normalization across the Universe
897
948
  self._normalize_temporal_metrics(parsed_files)
898
949
 
950
+ # gitgalaxy#2994 Tier 2: snapshot percentiles MUST run AFTER temporal
951
+ # normalization above -- `_normalize_temporal_metrics` rewrites
952
+ # `risk_vector[churn_idx]` in place (:1275 in that method), and the
953
+ # percentile pass ranks the legacy-vector series off `risk_vector`
954
+ # directly. Reordering this ahead of normalization would rank every
955
+ # file's churn against its pre-normalization (raw, unnormalized)
956
+ # value instead -- see the churn-ordering regression test in
957
+ # test_signal_processor.py.
958
+ self._compute_snapshot_percentiles(parsed_files)
959
+
899
960
  total_files = len(parsed_files) + len(unparsable_files)
900
961
  if total_files == 0:
901
962
  return {}
@@ -1266,6 +1327,101 @@ class SignalProcessor:
1266
1327
  if "risk_vector" in file_data and len(file_data["risk_vector"]) > idx:
1267
1328
  file_data["risk_vector"][idx] = round(final_churn, 2)
1268
1329
 
1330
+ def _compute_snapshot_percentiles(self, parsed_files: list[dict[str, Any]]) -> None:
1331
+ """[TIER 2, gitgalaxy#2994] Snapshot percentiles -- the honest 0-100.
1332
+
1333
+ Ranks each file's 22 Tier-1 surface-family sums (telemetry
1334
+ ["surface_families"], written by calculate_risk_vector) and its 13
1335
+ RISK_SCHEMA legacy-vector values (risk_vector, POST-churn-
1336
+ normalization -- see the call site in summarize_galaxy_metrics, which
1337
+ invokes this method IMMEDIATELY AFTER _normalize_temporal_metrics so
1338
+ churn is already rewritten before ranking) against every other file
1339
+ in THIS scan/snapshot. "Percentile 87" means literally "87th
1340
+ percentile of this surface in this repo" -- true by construction,
1341
+ unlike the legacy sigmoid scores this tier supersedes for display.
1342
+ Legacy risk_vector values themselves are read-only here, never
1343
+ modified.
1344
+
1345
+ Hazen plotting-position formula: pct = (avg_rank - 0.5) / N * 100,
1346
+ rounded to 2dp. Ties share the MEAN of the ranks they would occupy
1347
+ (standard "average rank" tie-breaking), so two files with identical
1348
+ values get identical percentiles.
1349
+
1350
+ An all-zero series (every file measures 0 on that surface) reads as
1351
+ 0.0 for EVERY file -- not the 50.0 an average-rank computation would
1352
+ otherwise give a tied field of zeroes. Naively ranking would
1353
+ misrepresent "nobody has this signal in this repo" as "the median
1354
+ file has it," which is exactly backwards for an absent surface.
1355
+
1356
+ A single-file snapshot (N=1) reads 50.0 for a series it actually
1357
+ has (nothing to rank against => true middle), but 0.0 for a series
1358
+ it measures zero on -- the all-zero rule takes precedence at every N.
1359
+
1360
+ Writes `telemetry["surface_percentiles"] = {"fam": {...}, "vec":
1361
+ {...}}` on every parsed file, in place -- mirroring
1362
+ `_normalize_temporal_metrics`'s own in-place style. The return value
1363
+ of `summarize_galaxy_metrics` (the golden-mastered audit JSON) is
1364
+ untouched; this only ever writes per-file telemetry.
1365
+ """
1366
+ n = len(parsed_files)
1367
+ if n == 0:
1368
+ return
1369
+
1370
+ fam_names = list(self.SURFACE_FAMILIES.keys())
1371
+ vec_names = list(self.RISK_SCHEMA)
1372
+
1373
+ def _percentiles_for(values: list[float]) -> list[float]:
1374
+ count = len(values)
1375
+ if count == 0:
1376
+ return []
1377
+ if all(v == 0 for v in values):
1378
+ # Absent signal must not read as median 50 (see docstring).
1379
+ # This check deliberately PRECEDES the N=1 case: a
1380
+ # single-file snapshot with zero of a surface still has
1381
+ # NONE of it -- 0.0, never 50.0.
1382
+ return [0.0] * count
1383
+ if count == 1:
1384
+ # One file, nonzero value: nothing to rank against --
1385
+ # "true middle" is the only honest value.
1386
+ return [50.0]
1387
+
1388
+ # Average-rank (Hazen) ranking: sort ascending, then give every
1389
+ # value in a tied run the MEAN of the 1-based ranks it spans.
1390
+ order = sorted(range(count), key=lambda i: values[i])
1391
+ ranks = [0.0] * count
1392
+ i = 0
1393
+ while i < count:
1394
+ j = i
1395
+ while j + 1 < count and values[order[j + 1]] == values[order[i]]:
1396
+ j += 1
1397
+ avg_rank = (i + 1 + j + 1) / 2.0 # 1-based rank span [i+1, j+1]
1398
+ for k in range(i, j + 1):
1399
+ ranks[order[k]] = avg_rank
1400
+ i = j + 1
1401
+
1402
+ return [round((r - 0.5) / count * 100.0, 2) for r in ranks]
1403
+
1404
+ fam_percentiles: dict[str, list[float]] = {}
1405
+ for fam in fam_names:
1406
+ values = [float(f.get("telemetry", {}).get("surface_families", {}).get(fam, 0)) for f in parsed_files]
1407
+ fam_percentiles[fam] = _percentiles_for(values)
1408
+
1409
+ vec_percentiles: dict[str, list[float]] = {}
1410
+ for slug in vec_names:
1411
+ idx = self.RISK_SCHEMA.index(slug)
1412
+ values = [
1413
+ float(f["risk_vector"][idx]) if "risk_vector" in f and len(f["risk_vector"]) > idx else 0.0
1414
+ for f in parsed_files
1415
+ ]
1416
+ vec_percentiles[slug] = _percentiles_for(values)
1417
+
1418
+ for i, file_data in enumerate(parsed_files):
1419
+ telemetry = file_data.setdefault("telemetry", {})
1420
+ telemetry["surface_percentiles"] = {
1421
+ "fam": {fam: fam_percentiles[fam][i] for fam in fam_names},
1422
+ "vec": {slug: vec_percentiles[slug][i] for slug in vec_names},
1423
+ }
1424
+
1269
1425
  # ==========================================================================
1270
1426
  # FORENSIC EQUATIONS (The Structural Models)
1271
1427
  # ==========================================================================
@@ -53,6 +53,16 @@ class AuditRecorder:
53
53
  self.RISK_SCHEMA = schemas.get("RISK_SCHEMA", [])
54
54
  # Note: The pipeline calls it SIGNAL_SCHEMA, but the Auditor references it as HIT_SCHEMA
55
55
  self.HIT_SCHEMA = schemas.get("SIGNAL_SCHEMA", [])
56
+ # gitgalaxy#2991: canonical new-name -> legacy risk_* mapping, bound
57
+ # here for parity with the other 4 definition sites. Deliberately NOT
58
+ # used to change any EXPOSURE_LABELS/FRIENDLY_MAP-derived string below
59
+ # -- this recorder's JSON ("Average Risk Exposures", "Vulnerability &
60
+ # Risk Exposures", ...) is exactly what tests/golden_master_audit.json
61
+ # and tests/golden_master_zero_dep_audit.json bless byte-for-byte
62
+ # (see tests/test_golden_crucible.py); changing these label strings
63
+ # would fail the golden-crucible regression test without a deliberate,
64
+ # separate golden-master regen this PR does not perform.
65
+ self.VECTOR_NAMES = schemas.get("VECTOR_NAMES", {})
56
66
 
57
67
  # PERFORMANCE OPTIMIZATION: Pre-cache all labels to avoid regex overhead on the hot path
58
68
  self._label_cache = {}
@@ -75,6 +75,14 @@ class GPURecorder:
75
75
  self.RISK_SCHEMA = schemas.get("RISK_SCHEMA", [])
76
76
  self.HIT_SCHEMA = schemas.get("SIGNAL_SCHEMA", [])
77
77
  self.FUNCTION_SCHEMA = schemas.get("SAT_SCHEMA", [])
78
+ # gitgalaxy#2991: canonical new-name -> legacy risk_* mapping, bound
79
+ # here for parity with the other 4 definition sites. Deliberately NOT
80
+ # used to alter "risk_vector_x1000": self.RISK_SCHEMA below -- the
81
+ # site's WebGPU visualizer (site/js/core/metavisualizer.html) binds
82
+ # its `slug`/`keys` data lookups positionally against these exact
83
+ # bare names; only that file's human-readable `label` strings get the
84
+ # new vocabulary, per #2991's "no functional JS changes" constraint.
85
+ self.VECTOR_NAMES = schemas.get("VECTOR_NAMES", {})
78
86
 
79
87
  def record_mission(
80
88
  self,