grift-cli 0.5.5__tar.gz → 0.5.8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of grift-cli might be problematic. Click here for more details.

Files changed (129) hide show
  1. grift_cli-0.5.8/.grift/contribution.json +256 -0
  2. {grift_cli-0.5.5 → grift_cli-0.5.8}/CHANGELOG.md +63 -0
  3. {grift_cli-0.5.5 → grift_cli-0.5.8}/PKG-INFO +14 -8
  4. {grift_cli-0.5.5 → grift_cli-0.5.8}/README.en.md +18 -8
  5. {grift_cli-0.5.5 → grift_cli-0.5.8}/README.md +13 -7
  6. {grift_cli-0.5.5 → grift_cli-0.5.8}/action.yml +1 -1
  7. {grift_cli-0.5.5 → grift_cli-0.5.8}/docs/en/metrics-guide.md +1 -1
  8. {grift_cli-0.5.5 → grift_cli-0.5.8}/docs/metrics-guide.md +2 -2
  9. {grift_cli-0.5.5 → grift_cli-0.5.8}/docs/persona-answers.md +2 -2
  10. grift_cli-0.5.8/golden/identity/G1-click.toml +15 -0
  11. {grift_cli-0.5.5 → grift_cli-0.5.8}/pyproject.toml +1 -1
  12. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_cli/__main__.py +261 -20
  13. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/context_profile.py +20 -8
  14. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/contribute.py +44 -9
  15. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/report.py +36 -11
  16. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/version.py +2 -2
  17. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_contribute.py +5 -3
  18. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_coverage.py +1 -1
  19. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_lifecycle_v2.py +4 -2
  20. grift_cli-0.5.8/tests/test_ux_v057.py +161 -0
  21. grift_cli-0.5.8/tests/test_v058_gates.py +216 -0
  22. grift_cli-0.5.8/tests/test_verb_semantics.py +113 -0
  23. grift_cli-0.5.5/golden/identity/G1-click.toml +0 -10
  24. {grift_cli-0.5.5 → grift_cli-0.5.8}/.github/workflows/ci.yml +0 -0
  25. {grift_cli-0.5.5 → grift_cli-0.5.8}/.github/workflows/kpi-monthly.yml +0 -0
  26. {grift_cli-0.5.5 → grift_cli-0.5.8}/.github/workflows/publish.yml +0 -0
  27. {grift_cli-0.5.5 → grift_cli-0.5.8}/.gitignore +0 -0
  28. {grift_cli-0.5.5 → grift_cli-0.5.8}/LICENSE +0 -0
  29. {grift_cli-0.5.5 → grift_cli-0.5.8}/corpus/AD-PILOT-20260822.md +0 -0
  30. {grift_cli-0.5.5 → grift_cli-0.5.8}/corpus/DISCRIMINANT-v2026.09.md +0 -0
  31. {grift_cli-0.5.5 → grift_cli-0.5.8}/corpus/DISCRIMINANT-v2026.11.md +0 -0
  32. {grift_cli-0.5.5 → grift_cli-0.5.8}/corpus/ad-pilot.json +0 -0
  33. {grift_cli-0.5.5 → grift_cli-0.5.8}/corpus/manifest.toml +0 -0
  34. {grift_cli-0.5.5 → grift_cli-0.5.8}/corpus/pins-v2026.09.toml +0 -0
  35. {grift_cli-0.5.5 → grift_cli-0.5.8}/corpus/pins-v2026.11.toml +0 -0
  36. {grift_cli-0.5.5 → grift_cli-0.5.8}/corpus/v2026.09/distributions.json +0 -0
  37. {grift_cli-0.5.5 → grift_cli-0.5.8}/corpus/v2026.11/distributions.json +0 -0
  38. {grift_cli-0.5.5 → grift_cli-0.5.8}/docs/corpus-protocol.md +0 -0
  39. {grift_cli-0.5.5 → grift_cli-0.5.8}/docs/coverage-map.md +0 -0
  40. {grift_cli-0.5.5 → grift_cli-0.5.8}/docs/en/corpus-protocol.md +0 -0
  41. {grift_cli-0.5.5 → grift_cli-0.5.8}/docs/en/coverage-map.md +0 -0
  42. {grift_cli-0.5.5 → grift_cli-0.5.8}/docs/en/export-schema.md +0 -0
  43. {grift_cli-0.5.5 → grift_cli-0.5.8}/docs/en/identity-schema.md +0 -0
  44. {grift_cli-0.5.5 → grift_cli-0.5.8}/docs/en/norms.md +0 -0
  45. {grift_cli-0.5.5 → grift_cli-0.5.8}/docs/en/persona-answers.md +0 -0
  46. {grift_cli-0.5.5 → grift_cli-0.5.8}/docs/en/report-schema.md +0 -0
  47. {grift_cli-0.5.5 → grift_cli-0.5.8}/docs/export-schema.md +0 -0
  48. {grift_cli-0.5.5 → grift_cli-0.5.8}/docs/identity-schema.md +0 -0
  49. {grift_cli-0.5.5 → grift_cli-0.5.8}/docs/norms.md +0 -0
  50. {grift_cli-0.5.5 → grift_cli-0.5.8}/docs/report-schema.md +0 -0
  51. {grift_cli-0.5.5 → grift_cli-0.5.8}/golden/README.md +0 -0
  52. {grift_cli-0.5.5 → grift_cli-0.5.8}/golden/coverage.md +0 -0
  53. {grift_cli-0.5.5 → grift_cli-0.5.8}/golden/expected/G1-click.json +0 -0
  54. {grift_cli-0.5.5 → grift_cli-0.5.8}/golden/expected/G10-scvi-tools.json +0 -0
  55. {grift_cli-0.5.5 → grift_cli-0.5.8}/golden/expected/G11-kilo.json +0 -0
  56. {grift_cli-0.5.5 → grift_cli-0.5.8}/golden/expected/G12-httpx.json +0 -0
  57. {grift_cli-0.5.5 → grift_cli-0.5.8}/golden/expected/G13-voicevox.json +0 -0
  58. {grift_cli-0.5.5 → grift_cli-0.5.8}/golden/expected/G2-gitignore.json +0 -0
  59. {grift_cli-0.5.5 → grift_cli-0.5.8}/golden/expected/G3-spoon-knife.json +0 -0
  60. {grift_cli-0.5.5 → grift_cli-0.5.8}/golden/expected/G4-express.json +0 -0
  61. {grift_cli-0.5.5 → grift_cli-0.5.8}/golden/expected/G5-typer.json +0 -0
  62. {grift_cli-0.5.5 → grift_cli-0.5.8}/golden/expected/G6-claude-code.json +0 -0
  63. {grift_cli-0.5.5 → grift_cli-0.5.8}/golden/expected/G7-axios.json +0 -0
  64. {grift_cli-0.5.5 → grift_cli-0.5.8}/golden/expected/G8-co.json +0 -0
  65. {grift_cli-0.5.5 → grift_cli-0.5.8}/golden/expected/G9-pyscript.json +0 -0
  66. {grift_cli-0.5.5 → grift_cli-0.5.8}/golden/identity/example.toml +0 -0
  67. {grift_cli-0.5.5 → grift_cli-0.5.8}/golden/pins.toml +0 -0
  68. {grift_cli-0.5.5 → grift_cli-0.5.8}/scripts/admission_v2026_11.py +0 -0
  69. {grift_cli-0.5.5 → grift_cli-0.5.8}/scripts/build_dist_v2026_11.py +0 -0
  70. {grift_cli-0.5.5 → grift_cli-0.5.8}/scripts/build_distributions.py +0 -0
  71. {grift_cli-0.5.5 → grift_cli-0.5.8}/scripts/check_forbidden_vocab.py +0 -0
  72. {grift_cli-0.5.5 → grift_cli-0.5.8}/scripts/corpus_ad_pilot.py +0 -0
  73. {grift_cli-0.5.5 → grift_cli-0.5.8}/scripts/corpus_run.py +0 -0
  74. {grift_cli-0.5.5 → grift_cli-0.5.8}/scripts/discriminant_v2026.py +0 -0
  75. {grift_cli-0.5.5 → grift_cli-0.5.8}/scripts/discriminant_v2026_11.py +0 -0
  76. {grift_cli-0.5.5 → grift_cli-0.5.8}/scripts/gen_coverage_table.py +0 -0
  77. {grift_cli-0.5.5 → grift_cli-0.5.8}/scripts/gen_golden_expected.py +0 -0
  78. {grift_cli-0.5.5 → grift_cli-0.5.8}/scripts/hygiene_grep.py +0 -0
  79. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_cli/__init__.py +0 -0
  80. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/__init__.py +0 -0
  81. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/activity.py +0 -0
  82. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/analyze.py +0 -0
  83. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/cochange.py +0 -0
  84. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/core_period.py +0 -0
  85. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/data/v2026.09/distributions.json +0 -0
  86. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/data/v2026.11/distributions.json +0 -0
  87. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/export.py +0 -0
  88. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/gitutil.py +0 -0
  89. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/identity.py +0 -0
  90. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/lineage.py +0 -0
  91. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/observation.py +0 -0
  92. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/origin.py +0 -0
  93. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/paths.py +0 -0
  94. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/reference.py +0 -0
  95. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/rework.py +0 -0
  96. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/schema.py +0 -0
  97. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/scope.py +0 -0
  98. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/survival.py +0 -0
  99. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/tests_observed.py +0 -0
  100. {grift_cli-0.5.5 → grift_cli-0.5.8}/src/tep_core/verify.py +0 -0
  101. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/conftest.py +0 -0
  102. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/coverage_matrix.py +0 -0
  103. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/git_fixture.py +0 -0
  104. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_activity.py +0 -0
  105. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_cli.py +0 -0
  106. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_cochange.py +0 -0
  107. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_context_profile.py +0 -0
  108. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_default_report_path.py +0 -0
  109. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_discriminant_claims.py +0 -0
  110. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_export.py +0 -0
  111. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_export_recipe.py +0 -0
  112. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_forbidden_vocab.py +0 -0
  113. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_gitutil.py +0 -0
  114. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_golden.py +0 -0
  115. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_h5_swarm.py +0 -0
  116. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_hygiene.py +0 -0
  117. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_identity_validation.py +0 -0
  118. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_intake_disclosure.py +0 -0
  119. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_not_observed.py +0 -0
  120. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_origin.py +0 -0
  121. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_persona_answers.py +0 -0
  122. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_release_gate.py +0 -0
  123. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_report.py +0 -0
  124. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_rework.py +0 -0
  125. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_schema.py +0 -0
  126. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_scope.py +0 -0
  127. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_shared_block.py +0 -0
  128. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_survival.py +0 -0
  129. {grift_cli-0.5.5 → grift_cli-0.5.8}/tests/test_verify.py +0 -0
@@ -0,0 +1,256 @@
1
+ {
2
+ "contribution_schema": "tep-contribution-v1",
3
+ "purpose": "TEP Report 集計と参照分布 vNext",
4
+ "provenance": {
5
+ "tool_name": "grift",
6
+ "tool_version": "0.5.8",
7
+ "definition_version": "tep-v0.5.8-2026-08-25",
8
+ "origin_definition_version": "origin-v1.1-2026-08-22",
9
+ "activity_definition_version": "activity-v1-2026-08-16",
10
+ "analysis_scope": "repo"
11
+ },
12
+ "metrics": {
13
+ "provenance": {
14
+ "tool_name": "grift",
15
+ "method_name": "TEP",
16
+ "tool_version": "0.5.8",
17
+ "definition_version": "tep-v0.5.8-2026-08-25",
18
+ "origin_definition_version": "origin-v1.1-2026-08-22",
19
+ "activity_definition_version": "activity-v1-2026-08-16",
20
+ "analysis_scope": "repo",
21
+ "analyzed_commit_sha": "49248320758d2d9e604a2420c285136e1ea6eff3",
22
+ "analyzed_at": "2026-08-25T06:16:56Z"
23
+ },
24
+ "lineage": {
25
+ "is_fork": false,
26
+ "parent": null,
27
+ "has_upstream_lineage": false
28
+ },
29
+ "origin": {
30
+ "inherited_upstream": {
31
+ "kind": "observed",
32
+ "value": 0,
33
+ "unit": "commits"
34
+ },
35
+ "upstream_sync": {
36
+ "kind": "not_observed",
37
+ "reason": "no_upstream_lineage"
38
+ },
39
+ "tenant_unique": {
40
+ "kind": "observed",
41
+ "value": 0,
42
+ "unit": "commits"
43
+ },
44
+ "tenant_merge_or_sync": {
45
+ "kind": "observed",
46
+ "value": 0,
47
+ "unit": "commits"
48
+ },
49
+ "tenant_derivative": {
50
+ "kind": "not_observed",
51
+ "reason": "parent_repo_not_provided"
52
+ },
53
+ "external_upstream_contribution": {
54
+ "kind": "not_observed",
55
+ "reason": "parent_repo_not_provided"
56
+ },
57
+ "template_inherited": {
58
+ "kind": "not_observed",
59
+ "reason": "template_not_provided"
60
+ },
61
+ "generated_or_vendor": {
62
+ "kind": "observed",
63
+ "value": 0,
64
+ "unit": "commits"
65
+ },
66
+ "ambiguous_origin": {
67
+ "kind": "observed",
68
+ "value": 0,
69
+ "unit": "commits"
70
+ },
71
+ "unresolved": {
72
+ "kind": "observed",
73
+ "value": 36,
74
+ "unit": "commits"
75
+ },
76
+ "bot": {
77
+ "kind": "observed",
78
+ "value": 0,
79
+ "unit": "commits"
80
+ }
81
+ },
82
+ "attribution": {
83
+ "bot": {
84
+ "kind": "observed",
85
+ "value": 0,
86
+ "unit": "commits"
87
+ }
88
+ },
89
+ "core_activity_period": {
90
+ "kind": "not_observed",
91
+ "reason": "no_tenant_commits"
92
+ },
93
+ "test_frameworks": {
94
+ "kind": "observed",
95
+ "value": true,
96
+ "names": [
97
+ "pytest"
98
+ ],
99
+ "directories": [
100
+ "tests"
101
+ ],
102
+ "unit": "boolean"
103
+ },
104
+ "test_cochange": {
105
+ "kind": "observed",
106
+ "definition_version": "test-cochange-v1-2026-08-22",
107
+ "analysis_scope": "repo",
108
+ "all_time": {
109
+ "kind": "observed",
110
+ "value": 0.0,
111
+ "unit": "ratio",
112
+ "population": 24,
113
+ "cochanged": 0,
114
+ "test_only": 12,
115
+ "docs_or_config_excluded": 0,
116
+ "narrate_rate": true
117
+ },
118
+ "last_13w": {
119
+ "kind": "observed",
120
+ "value": 0.0,
121
+ "unit": "ratio",
122
+ "population": 24,
123
+ "cochanged": 0,
124
+ "test_only": 12,
125
+ "docs_or_config_excluded": 0,
126
+ "narrate_rate": true
127
+ }
128
+ },
129
+ "rework": {
130
+ "kind": "observed",
131
+ "definition_version": "rework-v1.1-2026-08-22",
132
+ "analysis_scope": "repo",
133
+ "window_days": 21,
134
+ "evidence_claim": null,
135
+ "corrective_rework_rate": {
136
+ "kind": "observed",
137
+ "value": 0.0,
138
+ "unit": "ratio",
139
+ "corrective_commits": 0,
140
+ "population": 24,
141
+ "narrate_rate": true,
142
+ "evidence_claim": false
143
+ },
144
+ "path_retouch_rate": {
145
+ "kind": "observed",
146
+ "value": 0.9583,
147
+ "unit": "ratio",
148
+ "retouch_commits": 23,
149
+ "population": 24,
150
+ "evidence_claim": false
151
+ },
152
+ "revert_rate": {
153
+ "kind": "observed",
154
+ "value": 0.0,
155
+ "unit": "ratio",
156
+ "reverts": 0,
157
+ "population": 36
158
+ },
159
+ "line_rework": {
160
+ "kind": "not_observed",
161
+ "reason": "deferred_to_v0.6"
162
+ }
163
+ },
164
+ "survival": {
165
+ "kind": "not_observed",
166
+ "reason": "survival_scan_disabled"
167
+ }
168
+ },
169
+ "context_profile": {
170
+ "definition_version": "context-v3-2026-08-25",
171
+ "analysis_scope": "repo",
172
+ "resolved_human_actors": {
173
+ "kind": "observed",
174
+ "value": 1,
175
+ "unit": "actors"
176
+ },
177
+ "actor_turnover": {
178
+ "kind": "observed",
179
+ "value": {
180
+ "2026": {
181
+ "joined": 1,
182
+ "last_active": 1
183
+ }
184
+ },
185
+ "unit": "actors/year"
186
+ },
187
+ "collaboration_class": {
188
+ "kind": "observed",
189
+ "value": "solo",
190
+ "unit": "class"
191
+ },
192
+ "kind": "observed",
193
+ "language_composition": {
194
+ "kind": "observed",
195
+ "value": {
196
+ "py": 1.0
197
+ },
198
+ "unit": "touch-share"
199
+ },
200
+ "monorepo_markers": {
201
+ "kind": "observed",
202
+ "value": [],
203
+ "unit": "markers"
204
+ },
205
+ "issue_link_density": {
206
+ "kind": "observed",
207
+ "value": 0.0,
208
+ "unit": "ratio"
209
+ },
210
+ "lifecycle_stage": {
211
+ "kind": "observed",
212
+ "value": "dormant",
213
+ "unit": "class"
214
+ },
215
+ "repo_age_days": {
216
+ "kind": "observed",
217
+ "value": 0,
218
+ "unit": "days"
219
+ },
220
+ "pr_flow_share": {
221
+ "kind": "observed",
222
+ "value": 0.0,
223
+ "unit": "ratio"
224
+ },
225
+ "test_file_ratio": {
226
+ "kind": "observed",
227
+ "value": 0.3333,
228
+ "unit": "ratio"
229
+ },
230
+ "release_cadence": {
231
+ "kind": "observed",
232
+ "value": null,
233
+ "unit": "tags/year"
234
+ },
235
+ "top_actor_share": {
236
+ "kind": "observed",
237
+ "value": 1.0,
238
+ "unit": "ratio"
239
+ },
240
+ "conventional_commit_share": {
241
+ "kind": "observed",
242
+ "value": 1.0,
243
+ "unit": "ratio"
244
+ },
245
+ "dependency_manifests": {
246
+ "kind": "observed",
247
+ "value": [],
248
+ "unit": "manifests"
249
+ },
250
+ "docs_share": {
251
+ "kind": "observed",
252
+ "value": 0.0,
253
+ "unit": "ratio"
254
+ }
255
+ }
256
+ }
@@ -4,6 +4,69 @@
4
4
 
5
5
  タグ・PyPI・リポ public 化は本ファイルの記載対象外(人間ゲート)。
6
6
 
7
+ ## [0.5.8] — 2026-08-25
8
+
9
+ 提唱者事前レビューの必須ゲート(A/B/C/D/E)+ 日英併記拡充。
10
+
11
+ ### Changed
12
+
13
+ - **A: 無送信文言の精密化**: 全称 claim(「CLI は何も送信しません」等)を全公開物から除去し、スコープ化(「測定コマンドはネットワークに触れない / contribute は自動送信しない / --open は本人権限・本人 fork・最終ボタンは本人 / こちらへの自動送信は恒久にない」)。**claim整合テスト**が全称文言の再混入を CI で検知
14
+ - **report.md 全テンプレートを日英併記に**(読み方ガイド・共有ブロック1行・各節の意味行・lifecycle 説明・contribute 開示文・提出手順)
15
+ - **D: dev issue リンク張り替え**(persona-answers ×2・test_coverage ×1 → 公開 tracker 鏡 issue #7/#8 — 告けい第1波の 404 防止)
16
+ - **E: G1-click.toml 暫定ヘッダ注記**(公開コミットメタデータ由来・再現検証専用・削除依頼先明記。間接化本体は v0.6)
17
+
18
+ ### Added
19
+
20
+ - **B: --open ガードレール**: ①フラグ無しでは git/gh サブプロセス不起動(spy 反証)②同意前 git 操作なし・非TTY+--yes無しは --open 付きでも exit 2(F-C1 整合)③push 先は本人 fork 限定(origin 拒否ガード)+ 同意文に「公開ドアです・アカウント名が表示されます・fork 自動作成」警告 ④gh/ブラウザ不在フォールバック。**push 前に intake と同一の schema+needle ローカル検査**(不合格は push させない)
21
+ - **C: manifest 競合の恒久解消**: 提出は payloads/<year>/<id>.json + <id>.meta.json の2ファイルのみ・manifest.jsonl は main 上で CI が生成(単一書き手・tep-contributions PR #3)。同時2PR反証で無衝突を実証
22
+
23
+ ### テスト
24
+
25
+ - **F-1(タグ前検収)**: --open の gh 不在/失敗フォールバックURLを `compare/main...new`(不正)から**intake リポジトリ実在パスへ修正**。反証: フォールバックURLが `compare/` を含まないことのピン
26
+ - **F-2(タグ前検収)**: payload の `metrics.provenance.analyzed_commit_sha`/`analyzed_at` を README 日英・tep-contributions README 日英のフィールド一覧に明記(「SHA は中身を復元できない不透明値だが公開 repo では特定に使える」推測リスクと同旨の一行つき)。README.en の "manifest line committed" の古い言い回しを "meta file" へ修正
27
+ - test_v058_gates 12本(A claim整合×5対象 + B 4反証 + pre-push検査 + scoped必須 + F-1フォールバックピン)ほか
28
+
29
+ ## [0.5.7] — 2026-08-25
30
+
31
+ 代表実機レビュー(2026-08-25)の3問題(#49/#50/#51)を解消。
32
+
33
+ ### Fixed
34
+
35
+ - **#49 追加: `grift contribute --open`** — payload と manifest 行をコミット済みのブランチを fork に push し(ユーザーの gh 認証・gh/git 必須)、ブラウザで PR 作成ページを開く。**残る操作は「Create pull request」ボタンのみ**。grift 自身のネットワーク送信なし(push は git 経由でユーザーの fork へ・最終ボタンはユーザーが押す)。gh がない環境はイントークリポジトリのページを開くフォールバック。実測: fork ブランチ `contrib/<id>` 作成・payload は intake validator 合格
36
+ - **#49 contribute の同意後行き止まり**: 同意(対話 yes または --yes)後にデフォルトで `.grift/contribution.json` を書き、**提出ID(MMDD-HHMM-hash8)・PR ファイル名・manifest 行(sha256 計算済み・コピー可能)・二枚扉の手順**を表示。CLI は引き続き何も送信しない
37
+ - **#50 出力値の読みやすさ**(context-v3): `language_composition` の値を生カウントから**シェア(0-1・合計≈1)に修正**(unit が touch-share なのに値がカウントだった契約不一致バグ)/`actor_turnover` の `left` を **`last_active` に改名**(今年最終コミットの作者は退場していない)/`release_cadence` の単位を `releases/year` → `tags/year` に/report.md の言語構成をパーセント表記で表示
38
+
39
+ ### Added
40
+
41
+ - **#51 `grift update`**: grift-cli 自身の明示的アップグレード(pipx 優先・フォールバック pip)。`--check` は PyPI メタデータの**読み取りのみ**(送信なし・無送信原則は不変)
42
+ - **#51 追加: アップデート通知** — 対話(TTY)実行の analyze/report/verify で新しいバージョンがあれば stderr に1行表示(PyPI メタデータの読み取りのみ・`GRIFT_NO_UPDATE_NOTICE=1` で非表示・CI/非TTYでは出ない)
43
+ - **report.md の数値に平易な意味を1行添付**(test co-change / rework / survival / context / lifecycle の各節に「何を測るか」の日本語1行・lifecycle の2観測には変数名の直後に平易説明)
44
+
45
+ ### テスト
46
+
47
+ - 同意後のデフォルト書き込み+ガイド行(manifest 行の sha256 が実ファイルと一致)/シェア合計≈1/`left` 廃止/markdown パーセント/`update --check`
48
+
49
+ ## [0.5.6] — 2026-08-23
50
+
51
+ 公開後検収で発見の仕様記述↔実挙動の矛盾 3 件(D-1/D-2/D-3)を解消するホットフィックス。
52
+
53
+ ### Fixed
54
+
55
+ - **動詞の意味を確定: `analyze` = 表示(stdout)・`report` = 記録(`.grift/`)**。README 日英の 2 語動詞表の analyze 行(「`.grift/` を生成」と誤記)を訂正
56
+ - **D-3b**: 裸 `grift analyze` の既定スコープを **repo** に統一(パス明示の従来モードは既定 tenant のまま不変)
57
+ - **D-3a**: `grift report --scope {repo,tenant}`(既定 repo)を追加
58
+ - D-2 文書: report の help「default: ./out」誤記を `.grift/` に訂正・docstring/examples を動詞意味確定版に更新
59
+ - **errata(0.5.5 の記載について)**: 0.5.5 の README/EVIDENCE に「裸 `grift analyze` が `.grift/` を自動生成する」との記述があったが、実挙動は stdout 出力のみ(`.grift/` は `grift report` が作る)。本版で文書をバイナリに合わせ、動詞意味を上記のとおり確定した
60
+ - CHANGELOG の受け口 URL 表記を tep-contributions に統一
61
+
62
+ ### Added(報告規律・恒久)
63
+
64
+ - **「wheel 実測」節の各 claim には実行コマンドと生ログを添付する**(0.5.5 で裸 analyze の claim が公開 wheel で再現しなかった件の再発防止)
65
+
66
+ ### テスト(反証)
67
+
68
+ - 裸 analyze が `.grift/` を作らず stdout へ出すピン / 裸 analyze の scope=repo ピン / パス明示の既定 tenant 維持ピン / 裸 report が `.grift/` を書き scope=repo のピン / `report --scope tenant` のピン / help 文言の golden(`./out` 残存なし)
69
+
7
70
  ## [0.5.5] — 2026-08-23
8
71
 
9
72
  UX 統一(2語動詞 + `.grift/` 出力)+ contribute 受け口の実運用化 + 全ドキュメント日英対応。
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: grift-cli
3
- Version: 0.5.5
3
+ Version: 0.5.8
4
4
  Summary: Deterministic TEP evidence metrics from a single git repository. No LLM.
5
5
  Project-URL: Homepage, https://github.com/Cor-Incorporated/grift-cli
6
6
  Author: TEP contributors
@@ -41,18 +41,19 @@ Named after the Grift product line.
41
41
  ```bash
42
42
  pipx install grift-cli
43
43
  cd your-repo
44
- grift analyze # 分析 .grift/report.{json,md} に書き出し
44
+ grift analyze # 分析結果を stdout に表示(repo スコープ)
45
45
  grift verify # .grift/report.json を現在のリポジトリで再計算・突合
46
46
  ```
47
47
 
48
- 基本操作はすべて **`grift <動詞>` の2語**で完結します(対象 = カレントディレクトリ、出力 = `.grift/`):
48
+ 基本操作はすべて **`grift <動詞>` の2語**で完結します。動詞の意味は「**analyze = 表示(stdout)**・**report = 記録(`.grift/`)**」です:
49
49
 
50
50
  | 2語コマンド | 動作 |
51
51
  |---|---|
52
- | `grift analyze` | カレントリポジトリを分析し `.grift/report.{json,md}` を生成 |
53
- | `grift report` | `grift analyze` と同結果(常に現在の HEAD を再分析) |
52
+ | `grift analyze` | カレントリポジトリを**stdout に表示**(repo スコープ・`.grift/` は作らない) |
53
+ | `grift report` | 分析して `.grift/report.{json,md}` に**記録**(常に現在の HEAD を再分析・既定 repo スコープ・`--scope tenant` 可) |
54
54
  | `grift verify` | `.grift/report.json` を同条件で再計算し改ざんを検出(VERIFIED / MISMATCH / CANNOT_VERIFY) |
55
- | `grift contribute` | `.grift/report.json` から opt-in 提出 payload を組む(**何も送信しない**) |
55
+ | `grift contribute` | `.grift/report.json` から opt-in 提出 payload を組む(**何も送信しない**・同意後に `.grift/contribution.json` を書き提出手順を表示)。**`--open`** で payload と meta ファイルをコミット済みブランチを fork に push し、ブラウザで PR 作成ページを開きます(残る操作は「Create pull request」ボタンのみ・gh CLI 利用・grift 自身はネット送信なし) |
56
+ | `grift update` | grift-cli 自身を更新(`--check` は最新版の表示のみ・読み取り専用)。対話実行時に新しいバージョンがあれば1行のお知らせが出ます(`GRIFT_NO_UPDATE_NOTICE=1` で非表示・CI/非TTYでは出ません) |
56
57
 
57
58
  - **`.grift/` は出力専用ディレクトリ**です(無ければ自動作成)。リポジトリの `.gitignore` に `.grift/` を追加することを推奨します
58
59
  - カスタム指定(対象パス・スコープ・出力先を明示)は従来どおり引数・オプションで: `grift analyze path --scope tenant --identity .tep/identity.toml --out dir`
@@ -90,8 +91,8 @@ grift contribute --out .grift/contribution.json # ② payload を組み・全
90
91
  # ③ payload を [tep-contributions](https://github.com/Cor-Incorporated/tep-contributions) に PR で提出
91
92
  ```
92
93
 
93
- - **CLI は何も送信しません(自動送信は恒久禁止)**。payload 全文が表示され、「この提出は公開リポジトリに載る」ことが明示されます
94
- - payload は repo スコープ集計値 + context_profile(クラス級)+ 定義版のみ。**canonical_id・メール・パス・repo 名・tenant スコープ値は含まれません**
94
+ - **測定コマンド(analyze/report/verify)はネットワークに触れず、contribute は自動送信をしない(こちらへの自動送信は恒久にありません)**。payload 全文が表示され、「この提出は公開コーパスに載る」ことが明示されます。`--open` は本人の GitHub 権限で本人の fork にブランチを push し、最終ボタンは本人が押します
95
+ - payload は repo スコープ集計値 + context_profile(クラス級)+ 定義版のみ。**canonical_id・メール・パス・repo 名・tenant スコープ値は含まれません**。payload には `metrics.provenance.analyzed_commit_sha`(分析時点のコミット SHA)と `analyzed_at`(分析時刻)が含まれます — **SHA は中身を復元できない不透明値ですが、公開 repo では対象の特定に使えるため、推測リスク開示と同旨です**
95
96
  - 受け口リポ(tep-contributions)の CI が schema(`tep-contribution-v1`)と個人情報形状(メール等)を機械検証します
96
97
  - 用途は「TEP Report 集計と参照分布 vNext」に限定。保持期間は次回年次 Report まで・撤回は issue で受け付けます(`docs/norms.md` 保持・削除条項)
97
98
 
@@ -144,6 +145,11 @@ with:
144
145
  - PR コメント投稿は `comment: true` の明示オプトインのみ(既定 off)
145
146
  - permissions は最小限(`contents: read` を推奨。`comment: true` のみ `pull-requests: write` が必要)
146
147
 
148
+ ## サポート / Support
149
+
150
+ - golden identity(再現検証用の公開コミットメタデータ由来メール)の削除依頼などは public リポの issue でお知らせください(非公開を希望される場合は private door の連絡先を tep-contributions の README で確認してください)
151
+ - Removal requests (e.g. for golden identity emails derived from public commit metadata): please open an issue on the public repository; see the tep-contributions README for the private contact channel.
152
+
147
153
  ## 倫理
148
154
 
149
155
  - 実在個人のスコアカード・順位表は公開も内部共有も禁止
@@ -18,19 +18,20 @@ Commit counts, line counts, and “activity” inflate easily once agents and ge
18
18
  ```bash
19
19
  pipx install grift-cli
20
20
  cd your-repo
21
- grift analyze # analyze writes .grift/report.{json,md}
21
+ grift analyze # analyze and print to stdout (repo scope)
22
22
  grift verify # recompute .grift/report.json against the current repo
23
23
  ```
24
24
 
25
- Every basic operation is just **`grift <verb>`** (target = current directory,
26
- output = `.grift/`):
25
+ Every basic operation is just **`grift <verb>`**. Verb semantics:
26
+ **analyze = display (stdout)** · **report = record (`.grift/`)**:
27
27
 
28
28
  | Verb | Action |
29
29
  |---|---|
30
- | `grift analyze` | Analyze the current repository into `.grift/report.{json,md}` |
31
- | `grift report` | Same as bare analyze (always re-analyzes the current HEAD) |
30
+ | `grift analyze` | Analyze the current repository and **print to stdout** (repo scope; does not create `.grift/`) |
31
+ | `grift report` | Analyze and **record into `.grift/report.{json,md}`** (always re-analyzes the current HEAD; repo scope by default, `--scope tenant` available) |
32
32
  | `grift verify` | Recompute `.grift/report.json` under recorded provenance (VERIFIED / MISMATCH / CANNOT_VERIFY) |
33
- | `grift contribute` | Build an opt-in submission payload from `.grift/report.json` (**never sends**) |
33
+ | `grift contribute` | Build an opt-in payload from `.grift/report.json` (**never auto-sends to us**; after consent writes `.grift/contribution.json` and prints steps). **`--open`** pushes a branch with the payload and meta file committed to your fork and opens the PR creation page in the browser (the only remaining action is pressing "Create pull request"; uses your own gh credentials and your own fork; the final button is yours) |
34
+ | `grift update` | Upgrade grift-cli itself (`--check` shows the latest version, read-only). Interactive runs print a one-line notice when a newer version exists (`GRIFT_NO_UPDATE_NOTICE=1` to silence; never in CI/non-TTY) |
34
35
 
35
36
  - **`.grift/` is the dedicated output directory** (auto-created). Adding `.grift/` to your `.gitignore` is recommended
36
37
  - Custom invocations keep the explicit form: `grift analyze path --scope tenant --identity .tep/identity.toml --out dir`
@@ -80,12 +81,15 @@ grift contribute --out .grift/contribution.json # 2) build & review the payloa
80
81
  # https://github.com/Cor-Incorporated/tep-contributions
81
82
  ```
82
83
 
83
- - **The CLI never sends anything** (automatic transmission is permanently
84
+ - **The measurement commands (analyze/report/verify) never touch the network; contribute never auto-sends to us** (automatic transmission to us is permanently
84
85
  forbidden). The full payload is printed and the flow states explicitly that
85
86
  it will appear in a public repository
86
87
  - The payload carries repo-scope aggregates + class-level context + definition
87
88
  versions only — **no canonical_id, emails, paths, repo names, or
88
- tenant-scope values**
89
+ tenant-scope values**. The payload includes `metrics.provenance.analyzed_commit_sha` (the commit
90
+ SHA at analysis time) and `analyzed_at` — **the SHA is an opaque value that
91
+ cannot restore content, but for public repos it can identify the target;
92
+ same caveat as the re-identification risk disclosure**
89
93
  - The intake repository's CI mechanically validates the schema
90
94
  (`tep-contribution-v1`) and rejects email-shaped content
91
95
  - Use is limited to "TEP Report aggregation and the next reference
@@ -136,6 +140,12 @@ with:
136
140
  - PR comment requires explicit opt-in (`comment: true`, default off)
137
141
  - Minimal permissions recommended (`contents: read`; `pull-requests: write` only when `comment: true`)
138
142
 
143
+ ## Support
144
+
145
+ - Removal requests (e.g. for golden identity emails derived from public commit
146
+ metadata): please open an issue on the public repository; see the
147
+ tep-contributions README for the private contact channel.
148
+
139
149
  ## Ethics
140
150
 
141
151
  - Named-person scorecards and league tables are forbidden, publicly and internally
@@ -18,18 +18,19 @@ Named after the Grift product line.
18
18
  ```bash
19
19
  pipx install grift-cli
20
20
  cd your-repo
21
- grift analyze # 分析 .grift/report.{json,md} に書き出し
21
+ grift analyze # 分析結果を stdout に表示(repo スコープ)
22
22
  grift verify # .grift/report.json を現在のリポジトリで再計算・突合
23
23
  ```
24
24
 
25
- 基本操作はすべて **`grift <動詞>` の2語**で完結します(対象 = カレントディレクトリ、出力 = `.grift/`):
25
+ 基本操作はすべて **`grift <動詞>` の2語**で完結します。動詞の意味は「**analyze = 表示(stdout)**・**report = 記録(`.grift/`)**」です:
26
26
 
27
27
  | 2語コマンド | 動作 |
28
28
  |---|---|
29
- | `grift analyze` | カレントリポジトリを分析し `.grift/report.{json,md}` を生成 |
30
- | `grift report` | `grift analyze` と同結果(常に現在の HEAD を再分析) |
29
+ | `grift analyze` | カレントリポジトリを**stdout に表示**(repo スコープ・`.grift/` は作らない) |
30
+ | `grift report` | 分析して `.grift/report.{json,md}` に**記録**(常に現在の HEAD を再分析・既定 repo スコープ・`--scope tenant` 可) |
31
31
  | `grift verify` | `.grift/report.json` を同条件で再計算し改ざんを検出(VERIFIED / MISMATCH / CANNOT_VERIFY) |
32
- | `grift contribute` | `.grift/report.json` から opt-in 提出 payload を組む(**何も送信しない**) |
32
+ | `grift contribute` | `.grift/report.json` から opt-in 提出 payload を組む(**何も送信しない**・同意後に `.grift/contribution.json` を書き提出手順を表示)。**`--open`** で payload と meta ファイルをコミット済みブランチを fork に push し、ブラウザで PR 作成ページを開きます(残る操作は「Create pull request」ボタンのみ・gh CLI 利用・grift 自身はネット送信なし) |
33
+ | `grift update` | grift-cli 自身を更新(`--check` は最新版の表示のみ・読み取り専用)。対話実行時に新しいバージョンがあれば1行のお知らせが出ます(`GRIFT_NO_UPDATE_NOTICE=1` で非表示・CI/非TTYでは出ません) |
33
34
 
34
35
  - **`.grift/` は出力専用ディレクトリ**です(無ければ自動作成)。リポジトリの `.gitignore` に `.grift/` を追加することを推奨します
35
36
  - カスタム指定(対象パス・スコープ・出力先を明示)は従来どおり引数・オプションで: `grift analyze path --scope tenant --identity .tep/identity.toml --out dir`
@@ -67,8 +68,8 @@ grift contribute --out .grift/contribution.json # ② payload を組み・全
67
68
  # ③ payload を [tep-contributions](https://github.com/Cor-Incorporated/tep-contributions) に PR で提出
68
69
  ```
69
70
 
70
- - **CLI は何も送信しません(自動送信は恒久禁止)**。payload 全文が表示され、「この提出は公開リポジトリに載る」ことが明示されます
71
- - payload は repo スコープ集計値 + context_profile(クラス級)+ 定義版のみ。**canonical_id・メール・パス・repo 名・tenant スコープ値は含まれません**
71
+ - **測定コマンド(analyze/report/verify)はネットワークに触れず、contribute は自動送信をしない(こちらへの自動送信は恒久にありません)**。payload 全文が表示され、「この提出は公開コーパスに載る」ことが明示されます。`--open` は本人の GitHub 権限で本人の fork にブランチを push し、最終ボタンは本人が押します
72
+ - payload は repo スコープ集計値 + context_profile(クラス級)+ 定義版のみ。**canonical_id・メール・パス・repo 名・tenant スコープ値は含まれません**。payload には `metrics.provenance.analyzed_commit_sha`(分析時点のコミット SHA)と `analyzed_at`(分析時刻)が含まれます — **SHA は中身を復元できない不透明値ですが、公開 repo では対象の特定に使えるため、推測リスク開示と同旨です**
72
73
  - 受け口リポ(tep-contributions)の CI が schema(`tep-contribution-v1`)と個人情報形状(メール等)を機械検証します
73
74
  - 用途は「TEP Report 集計と参照分布 vNext」に限定。保持期間は次回年次 Report まで・撤回は issue で受け付けます(`docs/norms.md` 保持・削除条項)
74
75
 
@@ -121,6 +122,11 @@ with:
121
122
  - PR コメント投稿は `comment: true` の明示オプトインのみ(既定 off)
122
123
  - permissions は最小限(`contents: read` を推奨。`comment: true` のみ `pull-requests: write` が必要)
123
124
 
125
+ ## サポート / Support
126
+
127
+ - golden identity(再現検証用の公開コミットメタデータ由来メール)の削除依頼などは public リポの issue でお知らせください(非公開を希望される場合は private door の連絡先を tep-contributions の README で確認してください)
128
+ - Removal requests (e.g. for golden identity emails derived from public commit metadata): please open an issue on the public repository; see the tep-contributions README for the private contact channel.
129
+
124
130
  ## 倫理
125
131
 
126
132
  - 実在個人のスコアカード・順位表は公開も内部共有も禁止
@@ -16,7 +16,7 @@ inputs:
16
16
  version:
17
17
  description: "grift-cli version to install (pinned)"
18
18
  required: false
19
- default: "0.5.5"
19
+ default: "0.5.8"
20
20
  comment:
21
21
  description: "Opt-in: post the shared block as a PR comment (default off)"
22
22
  required: false
@@ -141,7 +141,7 @@ Reference distribution planned for v2027 — no high/low judgment provided yet.
141
141
 
142
142
  | Name | In one line |
143
143
  |---|---|
144
- | **machuz/eis (Engineering Impact Signal)** | TEP's survival observation adopts EIS-style blame sampling as its lineage; the designs differ in fact: EIS reduces 7 axes with fixed weights to a 0-100 composite score with type labels and team side-by-sides; TEP forbids composite scores, weighting, and grade vocabulary by design (the six prohibitions / norms), and secures trust via discriminant validation, `grift verify`, and no-transmission |
144
+ | **machuz/eis (Engineering Impact Signal)** | TEP's survival observation adopts EIS-style blame sampling as its lineage; the designs differ in fact: EIS reduces 7 axes with fixed weights to a 0-100 composite score with type labels and team side-by-sides; TEP forbids composite scores, weighting, and grade vocabulary by design (the six prohibitions / norms), and secures trust via discriminant validation, `grift verify`, and no transmission to the vendor (measurement commands never touch the network) |
145
145
  | DORA | Four delivery-performance metrics and benchmarks; TEP's norm-style usage guidelines follow the DORA pattern |
146
146
  | SPACE | A satisfaction/performance/activity/communication/efficiency/flow framework; agrees with TEP that productivity is not one number |
147
147
  | GitClear | Commercial code-health (technical debt, rework) research and SaaS; overlapping observations, but TEP never emits person-comparison tables and the CLI transmits nothing |
@@ -188,10 +188,10 @@ A クラス(検証文化)の中央値は 0.05 と低めですが、因果の
188
188
 
189
189
  | 名前 | 一言でいうと |
190
190
  |---|---|
191
- | **machuz/eis(Engineering Impact Signal)** | TEP の survival 観測は EIS 流の blame サンプリング("EIS-style blame sampling")を系譜として採り、設計上の差がある: EIS は 7 軸を固定比重で 0-100 の合成スコアに丸め、型ラベルとチーム横並び比較を出す。TEP は合成スコア・文脈による重み付け・等級語彙を設計で禁止し(6禁止・norms)、判別検証(コーパス A vs C/D)と `grift verify`(再現検証)・無送信(CLI は何も送らない)で信頼を担保する |
191
+ | **machuz/eis(Engineering Impact Signal)** | TEP の survival 観測は EIS 流の blame サンプリング("EIS-style blame sampling")を系譜として採り、設計上の差がある: EIS は 7 軸を固定比重で 0-100 の合成スコアに丸め、型ラベルとチーム横並び比較を出す。TEP は合成スコア・文脈による重み付け・等級語彙を設計で禁止し(6禁止・norms)、判別検証(コーパス A vs C/D)と `grift verify`(再現検証)・無送信設計(測定コマンドはネットワーク非接触・こちらへの自動送信は恒久にない)で信頼を担保する |
192
192
  | DORA | デリバリ性能の4指標(デプロイ頻度・リードタイム・MTTR・変更失敗率)とそのベンチマーク調査。TEP の norms 型の利用規範(ガイドラインで運用を律する)は DORA 方式を参考にしている |
193
193
  | SPACE | 生産性を満足・パフォーマンス・活動・コミュニケーション・効率・時間フローで捉えるフレーム。「単一指標で生産性は測れない」TEP の立場と親和 |
194
- | GitClear | コードの健全性(技術的負債・リワーク傾向)を商業データで追う調査・SaaS。重複する観測(rework 系)もあるが、TEP は個人の比較表を出さない点と CLI の無送信が設計上異なる |
194
+ | GitClear | コードの健全性(技術的負債・リワーク傾向)を商業データで追う調査・SaaS。重複する観測(rework 系)もあるが、TEP は個人の比較表を出さない点と CLI の無送信設計(測定コマンドはネットワーク非接触)が異なる |
195
195
  | MSR(Mining Software Repositories) | ソフトウェアリポジトリからの実証研究の学術分野。TEP の git 由来指標の多くはこの分野の蓄積の応用 |
196
196
  | bus factor | 中心開発者の離脱でプロジェクトが止まる度合い。TEP の top_actor_share / collaboration_class はこの問いに観測で答える側面を持つ |
197
197
 
@@ -39,7 +39,7 @@ wave 1 = 既存 report-v1 フィールドで答えられる問い。wave 2 = con
39
39
  - 使う観測: interpretation(参照分布位置)— **golden は tenant スコープで固定しているため励起されない**(`scope_is_tenant`)。repo スコープの十分位は corpus v2026.09 由来
40
40
  - 転記: golden/expected/G1-click.json#interpretation.test_cochange.reason = scope_is_tenant
41
41
  - 限界文: golden 実数値つきの十分位実演には repo スコープの golden 期待値ピンが必要(観測ではなく golden ピン構成の欠落)→ 起票した
42
- - 起票: https://github.com/Cor-Incorporated/grift-cli-dev/issues/12
42
+ - 起票: https://github.com/Cor-Incorporated/grift-cli/issues/8
43
43
 
44
44
  #### Q1-4「偽陰性のコストは誰が持つか」 — △(規範で対応)
45
45
 
@@ -162,7 +162,7 @@ wave 1 = 既存 report-v1 フィールドで答えられる問い。wave 2 = con
162
162
 
163
163
  | 問い | 状態 | 起票 |
164
164
  |---|---|---|
165
- | Q1-3 | golden 実数値の十分位実演に repo スコープ期待値ピンが無い(観測は既存・ピン構成の欠落) | https://github.com/Cor-Incorporated/grift-cli-dev/issues/12 |
165
+ | Q1-3 | golden 実数値の十分位実演に repo スコープ期待値ピンが無い(観測は既存・ピン構成の欠落) | https://github.com/Cor-Incorporated/grift-cli/issues/8 |
166
166
  | Q3-2 / E1 / E4 | 恒久限界(✗)— 観測の欠落ではなく TEP の外側の世界。規範と限界文で対応 | なし(宿題は P1g) |
167
167
 
168
168
  wave 2 / wave 3 の問い(context・experience 由来)は各波の完了時にこの表へ追記する。
@@ -0,0 +1,15 @@
1
+ # Provenance: this email comes from the public commit metadata of the
2
+ # click repository (visible in its git log). Used solely for golden
3
+ # reproduction checks (tenant-scope expected values). Indirecting it
4
+ # (hashed identity) is tracked for v0.6.
5
+ # 削除依頼先 / removal requests: open an issue on the public repository
6
+ schema_version = "identity-v1"
7
+
8
+ # Pseudonymous canonical_id. The email is already public in the click git log.
9
+ [tenant]
10
+ email_patterns = []
11
+
12
+ [[actors]]
13
+ canonical_id = "maintainer-1"
14
+ emails = ["davidism@gmail.com"]
15
+ attribution_state = "verified"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "grift-cli"
3
- version = "0.5.5"
3
+ version = "0.5.8"
4
4
  description = "Deterministic TEP evidence metrics from a single git repository. No LLM."
5
5
  readme = "README.md"
6
6
  license = { text = "MIT" }