grift-cli 0.5.6__tar.gz → 0.5.9__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.
- grift_cli-0.5.9/.grift/contribution.json +256 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/CHANGELOG.md +49 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/PKG-INFO +14 -4
- {grift_cli-0.5.6 → grift_cli-0.5.9}/README.en.md +21 -3
- {grift_cli-0.5.6 → grift_cli-0.5.9}/README.md +13 -3
- {grift_cli-0.5.6 → grift_cli-0.5.9}/action.yml +1 -1
- {grift_cli-0.5.6 → grift_cli-0.5.9}/docs/en/metrics-guide.md +1 -1
- {grift_cli-0.5.6 → grift_cli-0.5.9}/docs/metrics-guide.md +3 -3
- {grift_cli-0.5.6 → grift_cli-0.5.9}/docs/persona-answers.md +2 -2
- grift_cli-0.5.9/golden/identity/G1-click.toml +15 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/pyproject.toml +1 -1
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_cli/__main__.py +244 -10
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/context_profile.py +20 -8
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/contribute.py +44 -9
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/report.py +64 -20
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/version.py +2 -2
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_contribute.py +5 -3
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_coverage.py +1 -1
- grift_cli-0.5.9/tests/test_gloss_gates.py +210 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_lifecycle_v2.py +4 -2
- grift_cli-0.5.9/tests/test_ux_v057.py +166 -0
- grift_cli-0.5.9/tests/test_v058_gates.py +216 -0
- grift_cli-0.5.6/golden/identity/G1-click.toml +0 -10
- {grift_cli-0.5.6 → grift_cli-0.5.9}/.github/workflows/ci.yml +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/.github/workflows/kpi-monthly.yml +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/.github/workflows/publish.yml +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/.gitignore +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/LICENSE +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/corpus/AD-PILOT-20260822.md +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/corpus/DISCRIMINANT-v2026.09.md +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/corpus/DISCRIMINANT-v2026.11.md +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/corpus/ad-pilot.json +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/corpus/manifest.toml +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/corpus/pins-v2026.09.toml +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/corpus/pins-v2026.11.toml +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/corpus/v2026.09/distributions.json +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/corpus/v2026.11/distributions.json +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/docs/corpus-protocol.md +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/docs/coverage-map.md +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/docs/en/corpus-protocol.md +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/docs/en/coverage-map.md +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/docs/en/export-schema.md +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/docs/en/identity-schema.md +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/docs/en/norms.md +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/docs/en/persona-answers.md +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/docs/en/report-schema.md +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/docs/export-schema.md +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/docs/identity-schema.md +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/docs/norms.md +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/docs/report-schema.md +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/golden/README.md +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/golden/coverage.md +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/golden/expected/G1-click.json +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/golden/expected/G10-scvi-tools.json +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/golden/expected/G11-kilo.json +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/golden/expected/G12-httpx.json +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/golden/expected/G13-voicevox.json +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/golden/expected/G2-gitignore.json +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/golden/expected/G3-spoon-knife.json +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/golden/expected/G4-express.json +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/golden/expected/G5-typer.json +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/golden/expected/G6-claude-code.json +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/golden/expected/G7-axios.json +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/golden/expected/G8-co.json +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/golden/expected/G9-pyscript.json +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/golden/identity/example.toml +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/golden/pins.toml +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/scripts/admission_v2026_11.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/scripts/build_dist_v2026_11.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/scripts/build_distributions.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/scripts/check_forbidden_vocab.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/scripts/corpus_ad_pilot.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/scripts/corpus_run.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/scripts/discriminant_v2026.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/scripts/discriminant_v2026_11.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/scripts/gen_coverage_table.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/scripts/gen_golden_expected.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/scripts/hygiene_grep.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_cli/__init__.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/__init__.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/activity.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/analyze.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/cochange.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/core_period.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/data/v2026.09/distributions.json +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/data/v2026.11/distributions.json +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/export.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/gitutil.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/identity.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/lineage.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/observation.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/origin.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/paths.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/reference.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/rework.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/schema.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/scope.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/survival.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/tests_observed.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/src/tep_core/verify.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/conftest.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/coverage_matrix.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/git_fixture.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_activity.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_cli.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_cochange.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_context_profile.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_default_report_path.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_discriminant_claims.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_export.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_export_recipe.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_forbidden_vocab.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_gitutil.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_golden.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_h5_swarm.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_hygiene.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_identity_validation.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_intake_disclosure.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_not_observed.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_origin.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_persona_answers.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_release_gate.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_report.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_rework.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_schema.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_scope.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_shared_block.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_survival.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/tests/test_verb_semantics.py +0 -0
- {grift_cli-0.5.6 → grift_cli-0.5.9}/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.9",
|
|
7
|
+
"definition_version": "tep-v0.5.9-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.9",
|
|
17
|
+
"definition_version": "tep-v0.5.9-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-25T09:17:01Z"
|
|
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
|
+
"docs_share": {
|
|
171
|
+
"kind": "observed",
|
|
172
|
+
"value": 0.0,
|
|
173
|
+
"unit": "ratio"
|
|
174
|
+
},
|
|
175
|
+
"language_composition": {
|
|
176
|
+
"kind": "observed",
|
|
177
|
+
"value": {
|
|
178
|
+
"py": 1.0
|
|
179
|
+
},
|
|
180
|
+
"unit": "touch-share"
|
|
181
|
+
},
|
|
182
|
+
"resolved_human_actors": {
|
|
183
|
+
"kind": "observed",
|
|
184
|
+
"value": 1,
|
|
185
|
+
"unit": "actors"
|
|
186
|
+
},
|
|
187
|
+
"lifecycle_stage": {
|
|
188
|
+
"kind": "observed",
|
|
189
|
+
"value": "dormant",
|
|
190
|
+
"unit": "class"
|
|
191
|
+
},
|
|
192
|
+
"release_cadence": {
|
|
193
|
+
"kind": "observed",
|
|
194
|
+
"value": null,
|
|
195
|
+
"unit": "tags/year"
|
|
196
|
+
},
|
|
197
|
+
"pr_flow_share": {
|
|
198
|
+
"kind": "observed",
|
|
199
|
+
"value": 0.0,
|
|
200
|
+
"unit": "ratio"
|
|
201
|
+
},
|
|
202
|
+
"actor_turnover": {
|
|
203
|
+
"kind": "observed",
|
|
204
|
+
"value": {
|
|
205
|
+
"2026": {
|
|
206
|
+
"joined": 1,
|
|
207
|
+
"last_active": 1
|
|
208
|
+
}
|
|
209
|
+
},
|
|
210
|
+
"unit": "actors/year"
|
|
211
|
+
},
|
|
212
|
+
"collaboration_class": {
|
|
213
|
+
"kind": "observed",
|
|
214
|
+
"value": "solo",
|
|
215
|
+
"unit": "class"
|
|
216
|
+
},
|
|
217
|
+
"definition_version": "context-v3-2026-08-25",
|
|
218
|
+
"repo_age_days": {
|
|
219
|
+
"kind": "observed",
|
|
220
|
+
"value": 0,
|
|
221
|
+
"unit": "days"
|
|
222
|
+
},
|
|
223
|
+
"conventional_commit_share": {
|
|
224
|
+
"kind": "observed",
|
|
225
|
+
"value": 1.0,
|
|
226
|
+
"unit": "ratio"
|
|
227
|
+
},
|
|
228
|
+
"dependency_manifests": {
|
|
229
|
+
"kind": "observed",
|
|
230
|
+
"value": [],
|
|
231
|
+
"unit": "manifests"
|
|
232
|
+
},
|
|
233
|
+
"analysis_scope": "repo",
|
|
234
|
+
"test_file_ratio": {
|
|
235
|
+
"kind": "observed",
|
|
236
|
+
"value": 0.3333,
|
|
237
|
+
"unit": "ratio"
|
|
238
|
+
},
|
|
239
|
+
"top_actor_share": {
|
|
240
|
+
"kind": "observed",
|
|
241
|
+
"value": 1.0,
|
|
242
|
+
"unit": "ratio"
|
|
243
|
+
},
|
|
244
|
+
"monorepo_markers": {
|
|
245
|
+
"kind": "observed",
|
|
246
|
+
"value": [],
|
|
247
|
+
"unit": "markers"
|
|
248
|
+
},
|
|
249
|
+
"issue_link_density": {
|
|
250
|
+
"kind": "observed",
|
|
251
|
+
"value": 0.0,
|
|
252
|
+
"unit": "ratio"
|
|
253
|
+
},
|
|
254
|
+
"kind": "observed"
|
|
255
|
+
}
|
|
256
|
+
}
|
|
@@ -4,6 +4,55 @@
|
|
|
4
4
|
|
|
5
5
|
タグ・PyPI・リポ public 化は本ファイルの記載対象外(人間ゲート)。
|
|
6
6
|
|
|
7
|
+
## [0.5.9] — 2026-08-25
|
|
8
|
+
|
|
9
|
+
### Changed(代表 UX フィードバック)
|
|
10
|
+
|
|
11
|
+
- **report.md の説明を項目ごと(行末)に配置**: セクション末尾への一括説明を廃止し、各値の行末に短い日英併記の gloss を直付け(origin 11分類・activity 5項目・test co-change・corrective/path retouch・survival・context 各行・test frameworks)。値と説明の距離がゼロになり、レポートを上から読むだけで各数値の意味が分かる
|
|
12
|
+
- **検収ゲート対応(提唱者4点)**: ①全 gloss の**単位一致**を機械強制(origin はコミット単位に統一 —「identityに一致しなかったコミット」等・行の単位と gloss の突合テスト)②gloss の**規範語ゲート**(良い/悪い/優れ/劣る/健全/理想等の混入ゼロをピン。解釈は metrics-guide 側のみ・rework の否定注記は維持)③**report.json は不変**(gloss は md のみ・render が dict を mutate しないことと verify が VERIFIED のままなことをテストで明示)④**Shared block は gloss なしと仕様明文化**(README 日英・metrics-guide に「簡潔さ優先、意味は本文行末 gloss が担う」の一行・gloss-free をピン)
|
|
13
|
+
|
|
14
|
+
## [0.5.8] — 2026-08-25
|
|
15
|
+
|
|
16
|
+
提唱者事前レビューの必須ゲート(A/B/C/D/E)+ 日英併記拡充。
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- **A: 無送信文言の精密化**: 全称 claim(「CLI は何も送信しません」等)を全公開物から除去し、スコープ化(「測定コマンドはネットワークに触れない / contribute は自動送信しない / --open は本人権限・本人 fork・最終ボタンは本人 / こちらへの自動送信は恒久にない」)。**claim整合テスト**が全称文言の再混入を CI で検知
|
|
21
|
+
- **report.md 全テンプレートを日英併記に**(読み方ガイド・共有ブロック1行・各節の意味行・lifecycle 説明・contribute 開示文・提出手順)
|
|
22
|
+
- **D: dev issue リンク張り替え**(persona-answers ×2・test_coverage ×1 → 公開 tracker 鏡 issue #7/#8 — 告けい第1波の 404 防止)
|
|
23
|
+
- **E: G1-click.toml 暫定ヘッダ注記**(公開コミットメタデータ由来・再現検証専用・削除依頼先明記。間接化本体は v0.6)
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
|
|
27
|
+
- **B: --open ガードレール**: ①フラグ無しでは git/gh サブプロセス不起動(spy 反証)②同意前 git 操作なし・非TTY+--yes無しは --open 付きでも exit 2(F-C1 整合)③push 先は本人 fork 限定(origin 拒否ガード)+ 同意文に「公開ドアです・アカウント名が表示されます・fork 自動作成」警告 ④gh/ブラウザ不在フォールバック。**push 前に intake と同一の schema+needle ローカル検査**(不合格は push させない)
|
|
28
|
+
- **C: manifest 競合の恒久解消**: 提出は payloads/<year>/<id>.json + <id>.meta.json の2ファイルのみ・manifest.jsonl は main 上で CI が生成(単一書き手・tep-contributions PR #3)。同時2PR反証で無衝突を実証
|
|
29
|
+
|
|
30
|
+
### テスト
|
|
31
|
+
|
|
32
|
+
- **F-1(タグ前検収)**: --open の gh 不在/失敗フォールバックURLを `compare/main...new`(不正)から**intake リポジトリ実在パスへ修正**。反証: フォールバックURLが `compare/` を含まないことのピン
|
|
33
|
+
- **F-2(タグ前検収)**: payload の `metrics.provenance.analyzed_commit_sha`/`analyzed_at` を README 日英・tep-contributions README 日英のフィールド一覧に明記(「SHA は中身を復元できない不透明値だが公開 repo では特定に使える」推測リスクと同旨の一行つき)。README.en の "manifest line committed" の古い言い回しを "meta file" へ修正
|
|
34
|
+
- test_v058_gates 12本(A claim整合×5対象 + B 4反証 + pre-push検査 + scoped必須 + F-1フォールバックピン)ほか
|
|
35
|
+
|
|
36
|
+
## [0.5.7] — 2026-08-25
|
|
37
|
+
|
|
38
|
+
代表実機レビュー(2026-08-25)の3問題(#49/#50/#51)を解消。
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- **#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 合格
|
|
43
|
+
- **#49 contribute の同意後行き止まり**: 同意(対話 yes または --yes)後にデフォルトで `.grift/contribution.json` を書き、**提出ID(MMDD-HHMM-hash8)・PR ファイル名・manifest 行(sha256 計算済み・コピー可能)・二枚扉の手順**を表示。CLI は引き続き何も送信しない
|
|
44
|
+
- **#50 出力値の読みやすさ**(context-v3): `language_composition` の値を生カウントから**シェア(0-1・合計≈1)に修正**(unit が touch-share なのに値がカウントだった契約不一致バグ)/`actor_turnover` の `left` を **`last_active` に改名**(今年最終コミットの作者は退場していない)/`release_cadence` の単位を `releases/year` → `tags/year` に/report.md の言語構成をパーセント表記で表示
|
|
45
|
+
|
|
46
|
+
### Added
|
|
47
|
+
|
|
48
|
+
- **#51 `grift update`**: grift-cli 自身の明示的アップグレード(pipx 優先・フォールバック pip)。`--check` は PyPI メタデータの**読み取りのみ**(送信なし・無送信原則は不変)
|
|
49
|
+
- **#51 追加: アップデート通知** — 対話(TTY)実行の analyze/report/verify で新しいバージョンがあれば stderr に1行表示(PyPI メタデータの読み取りのみ・`GRIFT_NO_UPDATE_NOTICE=1` で非表示・CI/非TTYでは出ない)
|
|
50
|
+
- **report.md の数値に平易な意味を1行添付**(test co-change / rework / survival / context / lifecycle の各節に「何を測るか」の日本語1行・lifecycle の2観測には変数名の直後に平易説明)
|
|
51
|
+
|
|
52
|
+
### テスト
|
|
53
|
+
|
|
54
|
+
- 同意後のデフォルト書き込み+ガイド行(manifest 行の sha256 が実ファイルと一致)/シェア合計≈1/`left` 廃止/markdown パーセント/`update --check`
|
|
55
|
+
|
|
7
56
|
## [0.5.6] — 2026-08-23
|
|
8
57
|
|
|
9
58
|
公開後検収で発見の仕様記述↔実挙動の矛盾 3 件(D-1/D-2/D-3)を解消するホットフィックス。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: grift-cli
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.9
|
|
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
|
|
@@ -52,7 +52,8 @@ grift verify # .grift/report.json を現在のリポジトリで再計算
|
|
|
52
52
|
| `grift analyze` | カレントリポジトリを**stdout に表示**(repo スコープ・`.grift/` は作らない) |
|
|
53
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
|
-
-
|
|
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
|
|
|
@@ -103,6 +104,10 @@ grift contribute --out .grift/contribution.json # ② payload を組み・全
|
|
|
103
104
|
|
|
104
105
|
母数 20 未満では率も分布位置も出さない(`insufficient_population`。件数の生表示のみ)。
|
|
105
106
|
|
|
107
|
+
## Shared block の扱い(仕様)
|
|
108
|
+
|
|
109
|
+
Shared block(レポート冒頭 3-5 行のコピペ要約)には **gloss(説明)を付けない**。経歴書や issue にそのまま貼ったとき自己説明的な長文になるより、簡潔さ・貼りやすさを優先するため。各数値の意味は本文の行末 gloss と [docs/metrics-guide.md](metrics-guide.md) が担う。
|
|
110
|
+
|
|
106
111
|
## 指標の読み方(非エンジニア向け)
|
|
107
112
|
|
|
108
113
|
すべての指標について「何を測っているか・高い/低いで何がわかるか・公開リポジトリ117件の分布上の目安」を [docs/metrics-guide.md](docs/metrics-guide.md) に平易にまとめています。初めてレポートを見る方はまずこちらを。誤読しやすい点(例: corrective rework はバグ件数ではない、dormant は放置ではない)も表にしてあります。
|
|
@@ -144,6 +149,11 @@ with:
|
|
|
144
149
|
- PR コメント投稿は `comment: true` の明示オプトインのみ(既定 off)
|
|
145
150
|
- permissions は最小限(`contents: read` を推奨。`comment: true` のみ `pull-requests: write` が必要)
|
|
146
151
|
|
|
152
|
+
## サポート / Support
|
|
153
|
+
|
|
154
|
+
- golden identity(再現検証用の公開コミットメタデータ由来メール)の削除依頼などは public リポの issue でお知らせください(非公開を希望される場合は private door の連絡先を tep-contributions の README で確認してください)
|
|
155
|
+
- 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.
|
|
156
|
+
|
|
147
157
|
## 倫理
|
|
148
158
|
|
|
149
159
|
- 実在個人のスコアカード・順位表は公開も内部共有も禁止
|
|
@@ -30,7 +30,8 @@ Every basic operation is just **`grift <verb>`**. Verb semantics:
|
|
|
30
30
|
| `grift analyze` | Analyze the current repository and **print to stdout** (repo scope; does not create `.grift/`) |
|
|
31
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
|
|
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,17 +81,28 @@ 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
|
|
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
|
|
92
96
|
distribution"; retained until the next annual Report; withdrawal via issue
|
|
93
97
|
|
|
98
|
+
## Shared block policy (spec)
|
|
99
|
+
|
|
100
|
+
The Shared block (the 3-5 line copy-pasteable summary at the top of every
|
|
101
|
+
report) carries **no glosses**. Rationale: it is pasted into résumés and
|
|
102
|
+
issues, where compactness beats self-explanation — the per-line glosses in
|
|
103
|
+
the body and [docs/en/metrics-guide.md](en/metrics-guide.md) carry the
|
|
104
|
+
meanings.
|
|
105
|
+
|
|
94
106
|
## How to read the metrics (for non-engineers)
|
|
95
107
|
|
|
96
108
|
[docs/metrics-guide.md](docs/metrics-guide.md) explains every metric in plain
|
|
@@ -136,6 +148,12 @@ with:
|
|
|
136
148
|
- PR comment requires explicit opt-in (`comment: true`, default off)
|
|
137
149
|
- Minimal permissions recommended (`contents: read`; `pull-requests: write` only when `comment: true`)
|
|
138
150
|
|
|
151
|
+
## Support
|
|
152
|
+
|
|
153
|
+
- Removal requests (e.g. for golden identity emails derived from public commit
|
|
154
|
+
metadata): please open an issue on the public repository; see the
|
|
155
|
+
tep-contributions README for the private contact channel.
|
|
156
|
+
|
|
139
157
|
## Ethics
|
|
140
158
|
|
|
141
159
|
- Named-person scorecards and league tables are forbidden, publicly and internally
|
|
@@ -29,7 +29,8 @@ grift verify # .grift/report.json を現在のリポジトリで再計算
|
|
|
29
29
|
| `grift analyze` | カレントリポジトリを**stdout に表示**(repo スコープ・`.grift/` は作らない) |
|
|
30
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
|
-
-
|
|
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
|
|
|
@@ -80,6 +81,10 @@ grift contribute --out .grift/contribution.json # ② payload を組み・全
|
|
|
80
81
|
|
|
81
82
|
母数 20 未満では率も分布位置も出さない(`insufficient_population`。件数の生表示のみ)。
|
|
82
83
|
|
|
84
|
+
## Shared block の扱い(仕様)
|
|
85
|
+
|
|
86
|
+
Shared block(レポート冒頭 3-5 行のコピペ要約)には **gloss(説明)を付けない**。経歴書や issue にそのまま貼ったとき自己説明的な長文になるより、簡潔さ・貼りやすさを優先するため。各数値の意味は本文の行末 gloss と [docs/metrics-guide.md](metrics-guide.md) が担う。
|
|
87
|
+
|
|
83
88
|
## 指標の読み方(非エンジニア向け)
|
|
84
89
|
|
|
85
90
|
すべての指標について「何を測っているか・高い/低いで何がわかるか・公開リポジトリ117件の分布上の目安」を [docs/metrics-guide.md](docs/metrics-guide.md) に平易にまとめています。初めてレポートを見る方はまずこちらを。誤読しやすい点(例: corrective rework はバグ件数ではない、dormant は放置ではない)も表にしてあります。
|
|
@@ -121,6 +126,11 @@ with:
|
|
|
121
126
|
- PR コメント投稿は `comment: true` の明示オプトインのみ(既定 off)
|
|
122
127
|
- permissions は最小限(`contents: read` を推奨。`comment: true` のみ `pull-requests: write` が必要)
|
|
123
128
|
|
|
129
|
+
## サポート / Support
|
|
130
|
+
|
|
131
|
+
- golden identity(再現検証用の公開コミットメタデータ由来メール)の削除依頼などは public リポの issue でお知らせください(非公開を希望される場合は private door の連絡先を tep-contributions の README で確認してください)
|
|
132
|
+
- 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.
|
|
133
|
+
|
|
124
134
|
## 倫理
|
|
125
135
|
|
|
126
136
|
- 実在個人のスコアカード・順位表は公開も内部共有も禁止
|
|
@@ -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
|
|
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 |
|
|
@@ -70,7 +70,7 @@ grift のレポートは3層の観測で構成されます。**層 = その数
|
|
|
70
70
|
|
|
71
71
|
## まず全体の流れ(report.md の構成)
|
|
72
72
|
|
|
73
|
-
1. **Shared block**: 3-5
|
|
73
|
+
1. **Shared block**: 3-5 行の要約(コピペで共有できる形式・**gloss なし — 簡潔さ優先、意味は本文行末 gloss と本書が担う**)
|
|
74
74
|
2. **Provenance**: いつ・どのコミット・どの定義版で測ったか(再現に必要な情報)
|
|
75
75
|
3. **帰属(origin 11分類)**: この repo のコミットが誰の/何の仕事か(上のインベントリ参照)
|
|
76
76
|
4. **証拠系**: test co-change(検証を伴った変更の割合)
|
|
@@ -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
|
|
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
|
|
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
|
|
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"
|