grift-cli 0.5.9__tar.gz → 0.8.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 (373) hide show
  1. grift_cli-0.8.0/.github/ISSUE_TEMPLATE/bug_report.yml +79 -0
  2. grift_cli-0.8.0/.github/ISSUE_TEMPLATE/config.yml +11 -0
  3. grift_cli-0.8.0/.github/ISSUE_TEMPLATE/feature_request.yml +52 -0
  4. grift_cli-0.8.0/.github/ISSUE_TEMPLATE/question.yml +52 -0
  5. grift_cli-0.8.0/.github/PULL_REQUEST_TEMPLATE.md +66 -0
  6. grift_cli-0.8.0/.github/workflows/ci.yml +456 -0
  7. grift_cli-0.8.0/.github/workflows/publish.yml +277 -0
  8. grift_cli-0.8.0/.github/workflows/v060-provider-live.yml +161 -0
  9. grift_cli-0.8.0/.gitignore +27 -0
  10. grift_cli-0.8.0/CHANGELOG.md +562 -0
  11. grift_cli-0.8.0/PKG-INFO +193 -0
  12. grift_cli-0.8.0/README.en.md +164 -0
  13. grift_cli-0.8.0/README.md +142 -0
  14. grift_cli-0.8.0/action.yml +151 -0
  15. grift_cli-0.8.0/benchmarks/v060/IMPLEMENTATION-AGENT-INSTRUCTIONS.md +321 -0
  16. grift_cli-0.8.0/benchmarks/v060/README.md +51 -0
  17. grift_cli-0.8.0/benchmarks/v060/data/alignment_cases.jsonl +2 -0
  18. grift_cli-0.8.0/benchmarks/v060/data/gharchive_daily_summary.csv +56 -0
  19. grift_cli-0.8.0/benchmarks/v060/data/gharchive_events_2024-01-15_to_21.ndjson +554 -0
  20. grift_cli-0.8.0/benchmarks/v060/data/gharchive_repository_summary.csv +9 -0
  21. grift_cli-0.8.0/benchmarks/v060/data/independent_repo_actor_audit_2026-08-30.json +172 -0
  22. grift_cli-0.8.0/benchmarks/v060/data/metric_catalog.csv +18 -0
  23. grift_cli-0.8.0/benchmarks/v060/data/role_ground_truth_sample.csv +41 -0
  24. grift_cli-0.8.0/benchmarks/v060/data/role_label_counts.csv +6 -0
  25. grift_cli-0.8.0/benchmarks/v060/data/tracker_lifecycle_fixture.csv +9 -0
  26. grift_cli-0.8.0/benchmarks/v060/expected/tracker_fixture_expected.json +16 -0
  27. grift_cli-0.8.0/benchmarks/v060/golden/expected/actor-partition.json +1 -0
  28. grift_cli-0.8.0/benchmarks/v060/golden/fixtures/actor-partition-repo.json +58 -0
  29. grift_cli-0.8.0/benchmarks/v060/golden/manifest.json +1 -0
  30. grift_cli-0.8.0/benchmarks/v060/golden/migrations.json +1 -0
  31. grift_cli-0.8.0/benchmarks/v060/quality-report.md +47 -0
  32. grift_cli-0.8.0/benchmarks/v060/schemas/benchmark-manifest.schema.json +16 -0
  33. grift_cli-0.8.0/benchmarks/v060/schemas/event-observation.schema.json +19 -0
  34. grift_cli-0.8.0/benchmarks/v060/schemas/role-validation.schema.json +24 -0
  35. grift_cli-0.8.0/benchmarks/v060/sources.json +535 -0
  36. grift_cli-0.8.0/docs/CORPUS-CANDIDATES-v2026.11-20260822.md +116 -0
  37. grift_cli-0.8.0/docs/EVIDENCE-v056-smoke-raw.log +31 -0
  38. grift_cli-0.8.0/docs/EVIDENCE-v058-smoke-raw.log +21 -0
  39. grift_cli-0.8.0/docs/EVIDENCE-v058b-smoke-raw.log +43 -0
  40. grift_cli-0.8.0/docs/EVIDENCE-v059-smoke-raw.log +20 -0
  41. grift_cli-0.8.0/docs/EVIDENCE-v059b-smoke-raw.log +12 -0
  42. grift_cli-0.8.0/docs/PLAN-v060-20260825.md +144 -0
  43. grift_cli-0.8.0/docs/READERS-GUIDE-draft-20260822.md +30 -0
  44. grift_cli-0.8.0/docs/REQUIREMENTS-v060.md +172 -0
  45. grift_cli-0.8.0/docs/RESEARCH-v060.md +27 -0
  46. grift_cli-0.8.0/docs/V060-CLOSURE-LEDGER-20260831.md +120 -0
  47. grift_cli-0.8.0/docs/adr/ADR-0001-v08-no-volume-ordering.md +116 -0
  48. grift_cli-0.8.0/docs/alignment-schema.md +105 -0
  49. grift_cli-0.8.0/docs/contribute-intake-design-20260822.md +131 -0
  50. grift_cli-0.8.0/docs/coverage-map.md +57 -0
  51. grift_cli-0.8.0/docs/en/coverage-map.md +63 -0
  52. {grift_cli-0.5.9 → grift_cli-0.8.0}/docs/en/identity-schema.md +20 -1
  53. {grift_cli-0.5.9 → grift_cli-0.8.0}/docs/en/metrics-guide.md +88 -6
  54. grift_cli-0.8.0/docs/en/norms.md +125 -0
  55. grift_cli-0.8.0/docs/en/persona-answers.md +51 -0
  56. grift_cli-0.8.0/docs/en/usage.md +352 -0
  57. grift_cli-0.8.0/docs/en/validation.md +52 -0
  58. grift_cli-0.8.0/docs/evidence/v060/attest-portfolio.md +77 -0
  59. grift_cli-0.8.0/docs/evidence/v060/grift-2055-audit.md +98 -0
  60. {grift_cli-0.5.9 → grift_cli-0.8.0}/docs/identity-schema.md +20 -1
  61. grift_cli-0.8.0/docs/input-export-schema.md +157 -0
  62. {grift_cli-0.5.9 → grift_cli-0.8.0}/docs/metrics-guide.md +104 -5
  63. grift_cli-0.8.0/docs/migration-v060.md +183 -0
  64. grift_cli-0.8.0/docs/migration-v070.md +387 -0
  65. grift_cli-0.8.0/docs/migration-v071.md +453 -0
  66. grift_cli-0.8.0/docs/migration-v072.md +540 -0
  67. grift_cli-0.8.0/docs/migration-v080.md +648 -0
  68. grift_cli-0.8.0/docs/norms.md +193 -0
  69. {grift_cli-0.5.9 → grift_cli-0.8.0}/docs/persona-answers.md +43 -23
  70. grift_cli-0.8.0/docs/project-schema.md +48 -0
  71. {grift_cli-0.5.9 → grift_cli-0.8.0}/docs/report-schema.md +1 -0
  72. grift_cli-0.8.0/docs/report-v2.md +203 -0
  73. grift_cli-0.8.0/docs/rereview-checklist-template.md +50 -0
  74. grift_cli-0.8.0/docs/usage.md +302 -0
  75. grift_cli-0.8.0/docs/validation.md +51 -0
  76. {grift_cli-0.5.9 → grift_cli-0.8.0}/golden/README.md +4 -0
  77. {grift_cli-0.5.9 → grift_cli-0.8.0}/golden/coverage.md +15 -8
  78. grift_cli-0.8.0/golden/identity/G1-click.toml +15 -0
  79. grift_cli-0.8.0/pyproject.toml +87 -0
  80. grift_cli-0.8.0/scripts/action_contract_guard.py +386 -0
  81. grift_cli-0.8.0/scripts/build_library_prevalence.py +190 -0
  82. {grift_cli-0.5.9 → grift_cli-0.8.0}/scripts/gen_coverage_table.py +9 -3
  83. grift_cli-0.8.0/scripts/intake_contract_parity.py +793 -0
  84. grift_cli-0.8.0/scripts/package_smoke.py +1253 -0
  85. grift_cli-0.8.0/scripts/v060_blind_pilot.py +1116 -0
  86. grift_cli-0.8.0/scripts/v060_golden.py +968 -0
  87. grift_cli-0.8.0/scripts/v060_golden_baseline.py +210 -0
  88. grift_cli-0.8.0/scripts/v060_provider_live_gate.py +2331 -0
  89. grift_cli-0.8.0/scripts/v060_scenario_matrix.py +2255 -0
  90. grift_cli-0.8.0/scripts/v070_benchmark.py +833 -0
  91. grift_cli-0.8.0/src/tep_cli/__main__.py +1106 -0
  92. grift_cli-0.8.0/src/tep_cli/benchmark_cmd.py +105 -0
  93. grift_cli-0.8.0/src/tep_cli/options.py +897 -0
  94. grift_cli-0.8.0/src/tep_cli/output.py +75 -0
  95. grift_cli-0.8.0/src/tep_cli/subject.py +1295 -0
  96. grift_cli-0.8.0/src/tep_core/actor_artifacts.py +1400 -0
  97. grift_cli-0.8.0/src/tep_core/actor_basis.py +89 -0
  98. grift_cli-0.8.0/src/tep_core/actor_directory.py +236 -0
  99. grift_cli-0.8.0/src/tep_core/ai_identity.py +160 -0
  100. grift_cli-0.8.0/src/tep_core/alignment.py +690 -0
  101. grift_cli-0.8.0/src/tep_core/analyze.py +424 -0
  102. grift_cli-0.8.0/src/tep_core/analyze_v2.py +970 -0
  103. grift_cli-0.8.0/src/tep_core/archive_events.py +318 -0
  104. grift_cli-0.8.0/src/tep_core/attest.py +1417 -0
  105. grift_cli-0.8.0/src/tep_core/attribution.py +887 -0
  106. grift_cli-0.8.0/src/tep_core/benchmark.py +343 -0
  107. grift_cli-0.8.0/src/tep_core/benchmark_assets/v060/data/alignment_cases.jsonl +2 -0
  108. grift_cli-0.8.0/src/tep_core/benchmark_assets/v060/data/gharchive_daily_summary.csv +56 -0
  109. grift_cli-0.8.0/src/tep_core/benchmark_assets/v060/data/gharchive_events_2024-01-15_to_21.ndjson +554 -0
  110. grift_cli-0.8.0/src/tep_core/benchmark_assets/v060/data/gharchive_repository_summary.csv +9 -0
  111. grift_cli-0.8.0/src/tep_core/benchmark_assets/v060/data/independent_repo_actor_audit_2026-08-30.json +172 -0
  112. grift_cli-0.8.0/src/tep_core/benchmark_assets/v060/data/metric_catalog.csv +18 -0
  113. grift_cli-0.8.0/src/tep_core/benchmark_assets/v060/data/role_ground_truth_sample.csv +41 -0
  114. grift_cli-0.8.0/src/tep_core/benchmark_assets/v060/data/role_label_counts.csv +6 -0
  115. grift_cli-0.8.0/src/tep_core/benchmark_assets/v060/data/tracker_lifecycle_fixture.csv +9 -0
  116. grift_cli-0.8.0/src/tep_core/benchmark_assets/v060/expected/tracker_fixture_expected.json +16 -0
  117. grift_cli-0.8.0/src/tep_core/benchmark_assets/v060/schemas/benchmark-manifest.schema.json +16 -0
  118. grift_cli-0.8.0/src/tep_core/benchmark_assets/v060/schemas/event-observation.schema.json +19 -0
  119. grift_cli-0.8.0/src/tep_core/benchmark_assets/v060/schemas/role-validation.schema.json +24 -0
  120. grift_cli-0.8.0/src/tep_core/benchmark_assets/v060/sources.json +535 -0
  121. {grift_cli-0.5.9 → grift_cli-0.8.0}/src/tep_core/cochange.py +8 -4
  122. grift_cli-0.8.0/src/tep_core/complementarity.py +207 -0
  123. {grift_cli-0.5.9 → grift_cli-0.8.0}/src/tep_core/context_profile.py +103 -26
  124. grift_cli-0.8.0/src/tep_core/contribute.py +586 -0
  125. grift_cli-0.8.0/src/tep_core/contribution_v2.py +2599 -0
  126. grift_cli-0.8.0/src/tep_core/coordination.py +125 -0
  127. grift_cli-0.8.0/src/tep_core/data/prevalence/v2026.09/library_prevalence.json +2131 -0
  128. grift_cli-0.8.0/src/tep_core/dates.py +48 -0
  129. grift_cli-0.8.0/src/tep_core/dependency_manifest.py +215 -0
  130. grift_cli-0.8.0/src/tep_core/digest.py +18 -0
  131. grift_cli-0.8.0/src/tep_core/event_rhythm.py +214 -0
  132. grift_cli-0.8.0/src/tep_core/experience.py +1361 -0
  133. grift_cli-0.8.0/src/tep_core/experience_collect.py +675 -0
  134. {grift_cli-0.5.9 → grift_cli-0.8.0}/src/tep_core/export.py +1 -3
  135. grift_cli-0.8.0/src/tep_core/forge.py +395 -0
  136. grift_cli-0.8.0/src/tep_core/forge_public.py +711 -0
  137. grift_cli-0.8.0/src/tep_core/gitutil.py +256 -0
  138. grift_cli-0.8.0/src/tep_core/identity.py +510 -0
  139. grift_cli-0.8.0/src/tep_core/local_inputs.py +118 -0
  140. {grift_cli-0.5.9 → grift_cli-0.8.0}/src/tep_core/origin.py +19 -4
  141. grift_cli-0.8.0/src/tep_core/outcome.py +202 -0
  142. grift_cli-0.8.0/src/tep_core/path_surface.py +99 -0
  143. grift_cli-0.8.0/src/tep_core/portfolio.py +1252 -0
  144. grift_cli-0.8.0/src/tep_core/prevalence.py +172 -0
  145. grift_cli-0.8.0/src/tep_core/project.py +248 -0
  146. grift_cli-0.8.0/src/tep_core/public_evidence.py +1126 -0
  147. grift_cli-0.8.0/src/tep_core/public_fetch.py +400 -0
  148. {grift_cli-0.5.9 → grift_cli-0.8.0}/src/tep_core/report.py +14 -0
  149. grift_cli-0.8.0/src/tep_core/report_v2.py +871 -0
  150. grift_cli-0.8.0/src/tep_core/revision.py +220 -0
  151. {grift_cli-0.5.9 → grift_cli-0.8.0}/src/tep_core/rework.py +6 -3
  152. grift_cli-0.8.0/src/tep_core/rhythm.py +140 -0
  153. grift_cli-0.8.0/src/tep_core/role_lens.py +104 -0
  154. grift_cli-0.8.0/src/tep_core/role_profile.py +259 -0
  155. grift_cli-0.8.0/src/tep_core/role_validation.py +167 -0
  156. grift_cli-0.8.0/src/tep_core/schema.py +1764 -0
  157. grift_cli-0.8.0/src/tep_core/schema_v2.py +805 -0
  158. grift_cli-0.8.0/src/tep_core/schemas/__init__.py +1 -0
  159. grift_cli-0.8.0/src/tep_core/schemas/v060-contracts.schema.json +4081 -0
  160. {grift_cli-0.5.9 → grift_cli-0.8.0}/src/tep_core/scope.py +14 -2
  161. grift_cli-0.8.0/src/tep_core/secrets_guard.py +81 -0
  162. grift_cli-0.8.0/src/tep_core/secure_output.py +375 -0
  163. grift_cli-0.8.0/src/tep_core/source_binding.py +319 -0
  164. grift_cli-0.8.0/src/tep_core/surface_profile.py +199 -0
  165. grift_cli-0.8.0/src/tep_core/tagset.py +133 -0
  166. grift_cli-0.8.0/src/tep_core/tendency.py +265 -0
  167. grift_cli-0.8.0/src/tep_core/tracker.py +581 -0
  168. grift_cli-0.8.0/src/tep_core/tracker_lifecycle.py +372 -0
  169. grift_cli-0.8.0/src/tep_core/v2_constants.py +187 -0
  170. grift_cli-0.8.0/src/tep_core/verification_profile.py +155 -0
  171. grift_cli-0.8.0/src/tep_core/verify.py +1015 -0
  172. grift_cli-0.8.0/src/tep_core/version.py +17 -0
  173. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/coverage_matrix.py +28 -12
  174. grift_cli-0.8.0/tests/fixtures/v060/forge.json +14 -0
  175. grift_cli-0.8.0/tests/fixtures/v060/p0-results.json +475 -0
  176. grift_cli-0.8.0/tests/fixtures/v060/project-declared.json +73 -0
  177. grift_cli-0.8.0/tests/fixtures/v060/project-init.toml +21 -0
  178. grift_cli-0.8.0/tests/fixtures/v060/project.toml +20 -0
  179. grift_cli-0.8.0/tests/fixtures/v060/repo-smoke-head.json +34 -0
  180. grift_cli-0.8.0/tests/fixtures/v060/run_p0_falsify.py +1824 -0
  181. grift_cli-0.8.0/tests/fixtures/v060/tracker.json +14 -0
  182. grift_cli-0.8.0/tests/test_action_contract.py +432 -0
  183. grift_cli-0.8.0/tests/test_benchmark_pack_v060.py +667 -0
  184. grift_cli-0.8.0/tests/test_cli_v060.py +376 -0
  185. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_contribute.py +23 -8
  186. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_coverage.py +29 -1
  187. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_discriminant_claims.py +17 -9
  188. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_golden.py +43 -8
  189. grift_cli-0.8.0/tests/test_intake_contract_parity.py +162 -0
  190. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_intake_disclosure.py +13 -8
  191. grift_cli-0.8.0/tests/test_migration_v060.py +122 -0
  192. grift_cli-0.8.0/tests/test_package_contract.py +2022 -0
  193. grift_cli-0.8.0/tests/test_publish_baseline_pin.py +73 -0
  194. grift_cli-0.8.0/tests/test_readme_entry.py +162 -0
  195. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_ux_v057.py +15 -13
  196. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_v058_gates.py +63 -30
  197. grift_cli-0.8.0/tests/test_v060_actor_account_source_binding_cli.py +300 -0
  198. grift_cli-0.8.0/tests/test_v060_actor_artifacts.py +639 -0
  199. grift_cli-0.8.0/tests/test_v060_actor_partition.py +400 -0
  200. grift_cli-0.8.0/tests/test_v060_actor_public_directory.py +105 -0
  201. grift_cli-0.8.0/tests/test_v060_alignment.py +160 -0
  202. grift_cli-0.8.0/tests/test_v060_attest_core.py +788 -0
  203. grift_cli-0.8.0/tests/test_v060_attest_input_binding.py +451 -0
  204. grift_cli-0.8.0/tests/test_v060_attest_portfolio_cli.py +877 -0
  205. grift_cli-0.8.0/tests/test_v060_binding_quality.py +327 -0
  206. grift_cli-0.8.0/tests/test_v060_blind_pilot.py +328 -0
  207. grift_cli-0.8.0/tests/test_v060_bound_export_observations.py +316 -0
  208. grift_cli-0.8.0/tests/test_v060_complete.py +498 -0
  209. grift_cli-0.8.0/tests/test_v060_contribute_atomic_consent.py +311 -0
  210. grift_cli-0.8.0/tests/test_v060_contribution_profiles.py +1693 -0
  211. grift_cli-0.8.0/tests/test_v060_cross_repo.py +734 -0
  212. grift_cli-0.8.0/tests/test_v060_determinism.py +107 -0
  213. grift_cli-0.8.0/tests/test_v060_docs_parity.py +283 -0
  214. grift_cli-0.8.0/tests/test_v060_emit_robustness.py +262 -0
  215. grift_cli-0.8.0/tests/test_v060_experience_collect.py +295 -0
  216. grift_cli-0.8.0/tests/test_v060_experience_incomplete.py +104 -0
  217. grift_cli-0.8.0/tests/test_v060_experience_product_cli.py +565 -0
  218. grift_cli-0.8.0/tests/test_v060_experience_role.py +797 -0
  219. grift_cli-0.8.0/tests/test_v060_forge_evidence.py +1708 -0
  220. grift_cli-0.8.0/tests/test_v060_golden_runner.py +474 -0
  221. grift_cli-0.8.0/tests/test_v060_historical_exact_head.py +172 -0
  222. grift_cli-0.8.0/tests/test_v060_identity_v2.py +205 -0
  223. grift_cli-0.8.0/tests/test_v060_independent_audit.py +539 -0
  224. grift_cli-0.8.0/tests/test_v060_inputs.py +135 -0
  225. grift_cli-0.8.0/tests/test_v060_large_repo_degradation.py +248 -0
  226. grift_cli-0.8.0/tests/test_v060_no_false_zero.py +134 -0
  227. grift_cli-0.8.0/tests/test_v060_observed_compare.py +605 -0
  228. grift_cli-0.8.0/tests/test_v060_p0_runner.py +65 -0
  229. grift_cli-0.8.0/tests/test_v060_portfolio_core.py +594 -0
  230. grift_cli-0.8.0/tests/test_v060_provider_live_gate.py +816 -0
  231. grift_cli-0.8.0/tests/test_v060_provider_live_workflow.py +197 -0
  232. grift_cli-0.8.0/tests/test_v060_public_actor_presentation.py +436 -0
  233. grift_cli-0.8.0/tests/test_v060_public_evidence_contract.py +111 -0
  234. grift_cli-0.8.0/tests/test_v060_public_registry_export.py +479 -0
  235. grift_cli-0.8.0/tests/test_v060_release_consistency.py +474 -0
  236. grift_cli-0.8.0/tests/test_v060_report_deep_schema.py +202 -0
  237. grift_cli-0.8.0/tests/test_v060_report_strict_producer.py +227 -0
  238. grift_cli-0.8.0/tests/test_v060_revision.py +193 -0
  239. grift_cli-0.8.0/tests/test_v060_rhythm.py +96 -0
  240. grift_cli-0.8.0/tests/test_v060_scenario_matrix.py +806 -0
  241. grift_cli-0.8.0/tests/test_v060_schema.py +231 -0
  242. grift_cli-0.8.0/tests/test_v060_schema_contracts.py +1171 -0
  243. grift_cli-0.8.0/tests/test_v060_subject_source_binding_cli.py +479 -0
  244. grift_cli-0.8.0/tests/test_v060_surfaces.py +129 -0
  245. grift_cli-0.8.0/tests/test_v060_verify_fixed_revision.py +124 -0
  246. grift_cli-0.8.0/tests/test_v060_verify_inferred_actor.py +155 -0
  247. grift_cli-0.8.0/tests/test_v070_actor_time_phase.py +144 -0
  248. grift_cli-0.8.0/tests/test_v070_align_share.py +280 -0
  249. grift_cli-0.8.0/tests/test_v070_benchmark.py +413 -0
  250. grift_cli-0.8.0/tests/test_v070_cli_surface.py +281 -0
  251. grift_cli-0.8.0/tests/test_v070_complementarity.py +539 -0
  252. grift_cli-0.8.0/tests/test_v070_dependency_attribution.py +149 -0
  253. grift_cli-0.8.0/tests/test_v070_dependency_experience.py +210 -0
  254. grift_cli-0.8.0/tests/test_v070_dependency_manifest.py +152 -0
  255. grift_cli-0.8.0/tests/test_v070_history_incomplete.py +266 -0
  256. grift_cli-0.8.0/tests/test_v070_intake_contract.py +145 -0
  257. grift_cli-0.8.0/tests/test_v070_library_prevalence.py +469 -0
  258. grift_cli-0.8.0/tests/test_v070_norms_link.py +199 -0
  259. grift_cli-0.8.0/tests/test_v070_outcome.py +387 -0
  260. grift_cli-0.8.0/tests/test_v070_project_min_share.py +128 -0
  261. grift_cli-0.8.0/tests/test_v070_scale_denominator.py +95 -0
  262. grift_cli-0.8.0/tests/test_v071_bot_accounts.py +240 -0
  263. grift_cli-0.8.0/tests/test_v071_gate_failure_detail.py +142 -0
  264. grift_cli-0.8.0/tests/test_v071_response_completeness.py +239 -0
  265. grift_cli-0.8.0/tests/test_v072_empty_actor.py +231 -0
  266. grift_cli-0.8.0/tests/test_v080_actor_index_order.py +350 -0
  267. grift_cli-0.8.0/tests/test_v080_inflation_limitations.py +214 -0
  268. grift_cli-0.8.0/tests/test_v080_selectivity_notice.py +212 -0
  269. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_verify.py +32 -2
  270. grift_cli-0.5.9/.github/workflows/ci.yml +0 -45
  271. grift_cli-0.5.9/.github/workflows/publish.yml +0 -41
  272. grift_cli-0.5.9/.gitignore +0 -18
  273. grift_cli-0.5.9/.grift/contribution.json +0 -256
  274. grift_cli-0.5.9/CHANGELOG.md +0 -197
  275. grift_cli-0.5.9/PKG-INFO +0 -172
  276. grift_cli-0.5.9/README.en.md +0 -172
  277. grift_cli-0.5.9/README.md +0 -149
  278. grift_cli-0.5.9/action.yml +0 -78
  279. grift_cli-0.5.9/docs/coverage-map.md +0 -35
  280. grift_cli-0.5.9/docs/en/coverage-map.md +0 -38
  281. grift_cli-0.5.9/docs/en/norms.md +0 -69
  282. grift_cli-0.5.9/docs/en/persona-answers.md +0 -33
  283. grift_cli-0.5.9/docs/norms.md +0 -101
  284. grift_cli-0.5.9/golden/identity/G1-click.toml +0 -15
  285. grift_cli-0.5.9/pyproject.toml +0 -52
  286. grift_cli-0.5.9/src/tep_cli/__main__.py +0 -662
  287. grift_cli-0.5.9/src/tep_core/analyze.py +0 -144
  288. grift_cli-0.5.9/src/tep_core/contribute.py +0 -156
  289. grift_cli-0.5.9/src/tep_core/gitutil.py +0 -112
  290. grift_cli-0.5.9/src/tep_core/identity.py +0 -141
  291. grift_cli-0.5.9/src/tep_core/schema.py +0 -543
  292. grift_cli-0.5.9/src/tep_core/verify.py +0 -133
  293. grift_cli-0.5.9/src/tep_core/version.py +0 -7
  294. {grift_cli-0.5.9 → grift_cli-0.8.0}/.github/workflows/kpi-monthly.yml +0 -0
  295. {grift_cli-0.5.9 → grift_cli-0.8.0}/LICENSE +0 -0
  296. {grift_cli-0.5.9 → grift_cli-0.8.0}/corpus/AD-PILOT-20260822.md +0 -0
  297. {grift_cli-0.5.9 → grift_cli-0.8.0}/corpus/DISCRIMINANT-v2026.09.md +0 -0
  298. {grift_cli-0.5.9 → grift_cli-0.8.0}/corpus/DISCRIMINANT-v2026.11.md +0 -0
  299. {grift_cli-0.5.9 → grift_cli-0.8.0}/corpus/ad-pilot.json +0 -0
  300. {grift_cli-0.5.9 → grift_cli-0.8.0}/corpus/manifest.toml +0 -0
  301. {grift_cli-0.5.9 → grift_cli-0.8.0}/corpus/pins-v2026.09.toml +0 -0
  302. {grift_cli-0.5.9 → grift_cli-0.8.0}/corpus/pins-v2026.11.toml +0 -0
  303. {grift_cli-0.5.9 → grift_cli-0.8.0}/corpus/v2026.09/distributions.json +0 -0
  304. {grift_cli-0.5.9 → grift_cli-0.8.0}/corpus/v2026.11/distributions.json +0 -0
  305. {grift_cli-0.5.9 → grift_cli-0.8.0}/docs/corpus-protocol.md +0 -0
  306. {grift_cli-0.5.9 → grift_cli-0.8.0}/docs/en/corpus-protocol.md +0 -0
  307. {grift_cli-0.5.9 → grift_cli-0.8.0}/docs/en/export-schema.md +0 -0
  308. {grift_cli-0.5.9 → grift_cli-0.8.0}/docs/en/report-schema.md +0 -0
  309. {grift_cli-0.5.9 → grift_cli-0.8.0}/docs/export-schema.md +0 -0
  310. {grift_cli-0.5.9 → grift_cli-0.8.0}/golden/expected/G1-click.json +0 -0
  311. {grift_cli-0.5.9 → grift_cli-0.8.0}/golden/expected/G10-scvi-tools.json +0 -0
  312. {grift_cli-0.5.9 → grift_cli-0.8.0}/golden/expected/G11-kilo.json +0 -0
  313. {grift_cli-0.5.9 → grift_cli-0.8.0}/golden/expected/G12-httpx.json +0 -0
  314. {grift_cli-0.5.9 → grift_cli-0.8.0}/golden/expected/G13-voicevox.json +0 -0
  315. {grift_cli-0.5.9 → grift_cli-0.8.0}/golden/expected/G2-gitignore.json +0 -0
  316. {grift_cli-0.5.9 → grift_cli-0.8.0}/golden/expected/G3-spoon-knife.json +0 -0
  317. {grift_cli-0.5.9 → grift_cli-0.8.0}/golden/expected/G4-express.json +0 -0
  318. {grift_cli-0.5.9 → grift_cli-0.8.0}/golden/expected/G5-typer.json +0 -0
  319. {grift_cli-0.5.9 → grift_cli-0.8.0}/golden/expected/G6-claude-code.json +0 -0
  320. {grift_cli-0.5.9 → grift_cli-0.8.0}/golden/expected/G7-axios.json +0 -0
  321. {grift_cli-0.5.9 → grift_cli-0.8.0}/golden/expected/G8-co.json +0 -0
  322. {grift_cli-0.5.9 → grift_cli-0.8.0}/golden/expected/G9-pyscript.json +0 -0
  323. {grift_cli-0.5.9 → grift_cli-0.8.0}/golden/identity/example.toml +0 -0
  324. {grift_cli-0.5.9 → grift_cli-0.8.0}/golden/pins.toml +0 -0
  325. {grift_cli-0.5.9 → grift_cli-0.8.0}/scripts/admission_v2026_11.py +0 -0
  326. {grift_cli-0.5.9 → grift_cli-0.8.0}/scripts/build_dist_v2026_11.py +0 -0
  327. {grift_cli-0.5.9 → grift_cli-0.8.0}/scripts/build_distributions.py +0 -0
  328. {grift_cli-0.5.9 → grift_cli-0.8.0}/scripts/check_forbidden_vocab.py +0 -0
  329. {grift_cli-0.5.9 → grift_cli-0.8.0}/scripts/corpus_ad_pilot.py +0 -0
  330. {grift_cli-0.5.9 → grift_cli-0.8.0}/scripts/corpus_run.py +0 -0
  331. {grift_cli-0.5.9 → grift_cli-0.8.0}/scripts/discriminant_v2026.py +0 -0
  332. {grift_cli-0.5.9 → grift_cli-0.8.0}/scripts/discriminant_v2026_11.py +0 -0
  333. {grift_cli-0.5.9 → grift_cli-0.8.0}/scripts/gen_golden_expected.py +0 -0
  334. {grift_cli-0.5.9 → grift_cli-0.8.0}/scripts/hygiene_grep.py +0 -0
  335. {grift_cli-0.5.9 → grift_cli-0.8.0}/src/tep_cli/__init__.py +0 -0
  336. {grift_cli-0.5.9 → grift_cli-0.8.0}/src/tep_core/__init__.py +0 -0
  337. {grift_cli-0.5.9 → grift_cli-0.8.0}/src/tep_core/activity.py +0 -0
  338. {grift_cli-0.5.9 → grift_cli-0.8.0}/src/tep_core/core_period.py +0 -0
  339. {grift_cli-0.5.9 → grift_cli-0.8.0}/src/tep_core/data/v2026.09/distributions.json +0 -0
  340. {grift_cli-0.5.9 → grift_cli-0.8.0}/src/tep_core/data/v2026.11/distributions.json +0 -0
  341. {grift_cli-0.5.9 → grift_cli-0.8.0}/src/tep_core/lineage.py +0 -0
  342. {grift_cli-0.5.9 → grift_cli-0.8.0}/src/tep_core/observation.py +0 -0
  343. {grift_cli-0.5.9 → grift_cli-0.8.0}/src/tep_core/paths.py +0 -0
  344. {grift_cli-0.5.9 → grift_cli-0.8.0}/src/tep_core/reference.py +0 -0
  345. {grift_cli-0.5.9 → grift_cli-0.8.0}/src/tep_core/survival.py +0 -0
  346. {grift_cli-0.5.9 → grift_cli-0.8.0}/src/tep_core/tests_observed.py +0 -0
  347. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/conftest.py +0 -0
  348. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/git_fixture.py +0 -0
  349. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_activity.py +0 -0
  350. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_cli.py +0 -0
  351. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_cochange.py +0 -0
  352. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_context_profile.py +0 -0
  353. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_default_report_path.py +0 -0
  354. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_export.py +0 -0
  355. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_export_recipe.py +0 -0
  356. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_forbidden_vocab.py +0 -0
  357. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_gitutil.py +0 -0
  358. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_gloss_gates.py +0 -0
  359. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_h5_swarm.py +0 -0
  360. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_hygiene.py +0 -0
  361. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_identity_validation.py +0 -0
  362. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_lifecycle_v2.py +0 -0
  363. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_not_observed.py +0 -0
  364. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_origin.py +0 -0
  365. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_persona_answers.py +0 -0
  366. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_release_gate.py +0 -0
  367. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_report.py +0 -0
  368. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_rework.py +0 -0
  369. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_schema.py +0 -0
  370. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_scope.py +0 -0
  371. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_shared_block.py +0 -0
  372. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_survival.py +0 -0
  373. {grift_cli-0.5.9 → grift_cli-0.8.0}/tests/test_verb_semantics.py +0 -0
@@ -0,0 +1,79 @@
1
+ name: バグ報告 / Bug report
2
+ description: 期待と違う出力・終了コード・クラッシュ。An output, exit code or crash that differs from what you expected.
3
+ title: "fix: "
4
+ labels: ["bug"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ 観測値と期待値を分けて書いてください。再現に使う repo は「形」が分かれば十分です(公開 URL + SHA、または合成 repo を作るスクリプト)。
10
+ 秘密情報・生メールアドレス・非公開 repo の履歴は貼らないでください。脆弱性は Issue ではなく [SECURITY.md](https://github.com/Cor-Incorporated/grift-cli/blob/main/SECURITY.md) の窓口へ。
11
+
12
+ Please separate what you observed from what you expected. For the repository, its *shape* is enough (public URL + SHA, or a script that builds a synthetic repo).
13
+ Do not paste secrets, raw email addresses or private history. Vulnerabilities go to [SECURITY.md](https://github.com/Cor-Incorporated/grift-cli/blob/main/SECURITY.md), not to an issue.
14
+ - type: textarea
15
+ id: command
16
+ attributes:
17
+ label: 実行したコマンド / Command you ran
18
+ description: フラグも含めてそのまま。As typed, including flags.
19
+ render: bash
20
+ placeholder: |
21
+ grift repo . --format json
22
+ validations:
23
+ required: true
24
+ - type: textarea
25
+ id: observed
26
+ attributes:
27
+ label: 観測値 / What you observed
28
+ description: 出力(必要な部分だけ)と終了コード。stderr があればそれも。Output (the relevant part), exit code, and stderr if any.
29
+ render: text
30
+ validations:
31
+ required: true
32
+ - type: textarea
33
+ id: expected
34
+ attributes:
35
+ label: 期待値 / What you expected
36
+ description: どの文書・help・過去の版からそう期待したかも書いてください。Say which document, help text or earlier version led you to expect it.
37
+ validations:
38
+ required: true
39
+ - type: dropdown
40
+ id: repo-shape
41
+ attributes:
42
+ label: 再現 repo の形 / Shape of the reproducing repository
43
+ options:
44
+ - 公開 repo(URL と SHA を下に書く)/ Public repository (URL + SHA below)
45
+ - 合成 repo(作るスクリプトを下に書く)/ Synthetic repository (script below)
46
+ - 非公開で共有できない(形だけ下に書く)/ Private, cannot share (describe the shape below)
47
+ - この grift-cli リポジトリ自身 / This grift-cli repository itself
48
+ validations:
49
+ required: true
50
+ - type: textarea
51
+ id: repo-detail
52
+ attributes:
53
+ label: 再現 repo の詳細 / Repository details
54
+ description: |
55
+ URL + SHA、または `git init` から始まる最小スクリプト。共有できないときは commit 数・著者数・merge の有無・shallow / promisor か・bot commit の有無・identity の有無を書いてください。
56
+ URL + SHA, or a minimal script starting at `git init`. If you cannot share it: number of commits and authors, merges or not, shallow / promisor or not, bot commits or not, identity file or not.
57
+ render: bash
58
+ - type: input
59
+ id: version
60
+ attributes:
61
+ label: バージョン / Version
62
+ description: "`grift --version` の出力。The output of `grift --version`."
63
+ placeholder: grift 0.7.2
64
+ validations:
65
+ required: true
66
+ - type: input
67
+ id: env
68
+ attributes:
69
+ label: 環境 / Environment
70
+ description: OS、Python の版、入れ方(pipx / pip / GitHub Action)。OS, Python version, how installed (pipx / pip / GitHub Action).
71
+ placeholder: macOS 15 / Python 3.12.9 / pipx
72
+ - type: checkboxes
73
+ id: hygiene
74
+ attributes:
75
+ label: 確認 / Checks
76
+ options:
77
+ - label: 秘密情報・生メールアドレス・非公開履歴を貼っていない / No secrets, raw email addresses or private history are pasted above
78
+ required: true
79
+ - label: 同じ内容の Issue が無いか検索した / I searched for an existing issue
@@ -0,0 +1,11 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: 脆弱性の報告 / Report a vulnerability
4
+ url: https://github.com/Cor-Incorporated/grift-cli/blob/main/SECURITY.md
5
+ about: 公開 Issue には書かず、SECURITY.md の窓口へ。Do not open a public issue; use the channel in SECURITY.md.
6
+ - name: 非公開の連絡(削除依頼など)/ Private contact (removal requests etc.)
7
+ url: https://cor-jp.com/contact/
8
+ about: golden identity の削除依頼など、公開したくない内容はこちら。For anything you do not want public, such as removal requests for golden identities.
9
+ - name: 利用規範(TEP 準拠の条件)/ Usage norms
10
+ url: https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/norms.md
11
+ about: 「この使い方は TEP 準拠か」はまず 7 条を読んでから。Read the seven articles before asking whether a use is TEP-compliant.
@@ -0,0 +1,52 @@
1
+ name: 機能の提案 / Feature request
2
+ description: 新しい観測・フラグ・出力形式の提案。A new observation, flag or output format.
3
+ title: "feat: "
4
+ labels: ["enhancement"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ grift は合成スコア・順位・推奨・合否を出しません([CONTRIBUTING.md](https://github.com/Cor-Incorporated/grift-cli/blob/main/CONTRIBUTING.md) §7、[docs/norms.md](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/norms.md))。
10
+ それに当たる提案は、どれだけ便利でも受けられないので、先に下のチェックを見てください。
11
+
12
+ grift never produces a composite score, rank, recommendation or pass/fail ([CONTRIBUTING.en.md](https://github.com/Cor-Incorporated/grift-cli/blob/main/CONTRIBUTING.en.md) §7, [docs/en/norms.md](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/en/norms.md)).
13
+ A proposal that amounts to one cannot be accepted however useful it is, so please look at the checklist below first.
14
+ - type: textarea
15
+ id: observed
16
+ attributes:
17
+ label: 今の出力で困っていること(観測値)/ What today's output does (observed)
18
+ description: 実際に実行したコマンドと、今返ってくるもの。The command you ran and what comes back today.
19
+ render: text
20
+ validations:
21
+ required: true
22
+ - type: textarea
23
+ id: expected
24
+ attributes:
25
+ label: 望む出力(期待値)/ What you want it to do (expected)
26
+ description: 可能なら report の JSON キー名や Markdown の文面の案まで。単位・分母・観測窓も。If you can, propose the JSON key, the Markdown wording, and its unit, denominator and window.
27
+ validations:
28
+ required: true
29
+ - type: textarea
30
+ id: repo-shape
31
+ attributes:
32
+ label: 違いが出る repo の形 / Shape of a repository where the difference shows
33
+ description: |
34
+ 公開 repo の URL + SHA、または合成 repo を作るスクリプト。提案した観測が「観測できる repo」と「not_observed になる repo」の両方があると議論が速いです。
35
+ Public URL + SHA, or a script that builds a synthetic repo. One repo where the observation is possible and one where it must be `not_observed` speeds things up.
36
+ render: bash
37
+ - type: checkboxes
38
+ id: design
39
+ attributes:
40
+ label: 設計上の確認 / Design checks
41
+ options:
42
+ - label: 人を 1 つの数値・等級・順位に縮約しない / Does not reduce a person to one number, grade or rank
43
+ required: true
44
+ - label: 「膨らませ方」(形式的な操作で値が上がる経路)を一緒に書いた / I described how the value could be inflated by formal operations
45
+ required: true
46
+ - label: 母数 20 未満・履歴不完全のときに `not_observed` になる条件を書いた / I described when it becomes `not_observed` (population below 20, incomplete history)
47
+ - label: 新しい network 経路を必要としない。必要なら opt-in フラグ付き / Needs no new network path, or only behind an opt-in flag
48
+ - type: textarea
49
+ id: alternatives
50
+ attributes:
51
+ label: 代替案 / Alternatives
52
+ description: 既存のフラグや文書で代わりになるものを試したか。What existing flags or documents you tried instead.
@@ -0,0 +1,52 @@
1
+ name: 質問 / Question
2
+ description: 出力の読み方、使い方、文書の分かりにくさ。How to read an output, how to use a command, unclear documentation.
3
+ title: "question: "
4
+ labels: ["question"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ 先に見ると早いもの: [README](https://github.com/Cor-Incorporated/grift-cli/blob/main/README.md) の「試す」、[docs/metrics-guide.md](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/metrics-guide.md)(数値の読み方)、[docs/norms.md](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/norms.md)(利用規範)。
10
+ 「文書を読んでも分からなかった」という報告は、それ自体が文書のバグなので歓迎です。
11
+
12
+ Worth a look first: the "Try it" section of the [README](https://github.com/Cor-Incorporated/grift-cli/blob/main/README.en.md), [docs/en/metrics-guide.md](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/en/metrics-guide.md) (how to read the numbers), [docs/en/norms.md](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/en/norms.md) (usage norms).
13
+ "I read the docs and still did not get it" is a documentation bug and welcome here.
14
+ - type: textarea
15
+ id: question
16
+ attributes:
17
+ label: 質問 / Question
18
+ validations:
19
+ required: true
20
+ - type: textarea
21
+ id: observed
22
+ attributes:
23
+ label: 見た出力(観測値)/ The output you saw (observed)
24
+ description: 実行したコマンドと、問題の部分。The command and the part of the output in question.
25
+ render: text
26
+ - type: textarea
27
+ id: expected
28
+ attributes:
29
+ label: そう思った理由(期待値)/ What you expected and why
30
+ description: どの文書や経験からそう期待したか。Which document or experience led you to expect something else.
31
+ - type: dropdown
32
+ id: repo-shape
33
+ attributes:
34
+ label: 見ていた repo の形 / Shape of the repository you were looking at
35
+ options:
36
+ - 公開 repo(URL と SHA を下に)/ Public repository (URL + SHA below)
37
+ - 自分の非公開 repo(形だけ下に)/ My private repository (shape below)
38
+ - まだ実行していない / Have not run it yet
39
+ - type: textarea
40
+ id: repo-detail
41
+ attributes:
42
+ label: repo の詳細 / Repository details
43
+ description: URL + SHA、または commit 数・著者数・merge / shallow / bot の有無。URL + SHA, or commits, authors, merges / shallow / bots.
44
+ - type: checkboxes
45
+ id: read
46
+ attributes:
47
+ label: 読んだもの / What you already read
48
+ options:
49
+ - label: README の「試す」/ The "Try it" section of the README
50
+ - label: docs/metrics-guide.md(数値の読み方)/ docs/en/metrics-guide.md
51
+ - label: docs/norms.md(利用規範)/ docs/en/norms.md
52
+ - label: CONTRIBUTING.md
@@ -0,0 +1,66 @@
1
+ <!--
2
+ 1 PR = 1 意図。ブランチ名と PR タイトルの type(feat / fix / docs / refactor / chore / ci / test / perf)を一致させてください。
3
+ 作法と禁止事項は CONTRIBUTING.md §6 / §7。英語版は CONTRIBUTING.en.md。
4
+ One PR, one intent. Branch name and PR title share a type. Etiquette and prohibitions: CONTRIBUTING.en.md §6 / §7.
5
+ -->
6
+
7
+ ## 目的 / Purpose
8
+
9
+ <!-- この PR が変える 1 つのこと。関連 Issue があれば `Closes #N`。The one thing this PR changes. `Closes #N` if there is an issue. -->
10
+
11
+ ## 変更の種類 / Kind of change
12
+
13
+ - [ ] docs(文書のみ。`src/` に触れない / documentation only, no `src/`)
14
+ - [ ] fix
15
+ - [ ] feat(テストを含む / ships with tests)
16
+ - [ ] refactor / chore / ci / test / perf
17
+
18
+ ## 変更内容 / What changed
19
+
20
+ <!-- 箇条書きで。ファイルと理由。Bullets: file and why. -->
21
+
22
+ ## 実行したテスト / Tests you ran
23
+
24
+ ```text
25
+ python -m pytest tests -m "not golden" -q
26
+ # → passed / failed の件数をここに貼る。Paste the passed / failed counts here.
27
+ ```
28
+
29
+ ## H5-E2E
30
+
31
+ <!--
32
+ 実際に実行したコマンドと、その生出力の要約(20 文字以上)または安定したログ path。
33
+ 実行環境を持たない変更(docs のみ)は `H5-E2E: none` の 1 行。
34
+ The command you actually ran and a summary of its raw output (20+ characters) or a stable log path.
35
+ For changes with no runtime (docs only), the single line `H5-E2E: none`.
36
+ -->
37
+
38
+ ```text
39
+ H5-E2E: <command>
40
+ H5-E2E-OUT: <raw output summary or log path>
41
+ ```
42
+
43
+ ## ADR-0001 の確認 G / R / B(`src/`・schema・norms に触れた PR は必須)/ ADR-0001 check (required when `src/`, a schema or the norms change)
44
+
45
+ <!-- 定義は CONTRIBUTING.md §6。該当しない欄は「該当なし」と書く。Definitions in CONTRIBUTING.en.md §6. Write "not applicable" where nothing qualifies. -->
46
+
47
+ - **G(Green)** 受入条件を満たすテストが通った / the acceptance test passes:
48
+ - **R(Red)** 片側だけ変えると落ちることを実測した(何を壊して何が落ちたか)/ one-sided change fails (what you broke, what failed):
49
+ - **B(Binding)** 宣言と実体を 1 つのテストで結んだ / declaration and enforcement tied by one test:
50
+
51
+ ## 証跡ゲート / Evidence gates(`src/` に触れた PR のみ / only when `src/` changed)
52
+
53
+ <!-- CONTRIBUTING.md §5 の 4 本。赤になったものと、意図した出力変更かどうか。The four gates in CONTRIBUTING.en.md §5: which went red, and whether the output change is intended. -->
54
+
55
+ - [ ] #1 `evidence/v060/scenarios` — 緑 / 再生成した / 赤のまま(理由: )
56
+ - [ ] #2 `evidence/v060/scenarios-public` — 赤でも可。release で再束縛 / may stay red; re-bound at release
57
+ - [ ] #3 `evidence/v070/benchmark.json` — 緑 / 再生成した
58
+ - [ ] #4 `benchmarks/v060/golden` + `DEFINITION_VERSION` — 緑 / 上げた
59
+
60
+ ## チェック / Checklist
61
+
62
+ - [ ] 合成スコア・順位・推奨・合否を出す出力やキーを足していない(`FORBIDDEN_VERDICT_KEYS`、`check_forbidden_vocab`)/ No score, rank, recommendation or pass/fail output or key
63
+ - [ ] 新しい network 経路は無い。あるなら opt-in フラグ付き / No new network path, or only behind an opt-in flag
64
+ - [ ] 生メールアドレス・個人を特定する値を出力・テスト fixture・文書に載せていない / No raw email or identifying value in output, fixtures or docs
65
+ - [ ] 文書を変えたなら日英両方(`README.md` ↔ `README.en.md`、`docs/*` ↔ `docs/en/*`)/ Docs changed in both languages
66
+ - [ ] 利用者に見える変更は `CHANGELOG.md` の `[Unreleased]` に 1 行 / One line under `[Unreleased]` for anything a user can see