grift-cli 0.8.0__tar.gz → 0.9.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.
- {grift_cli-0.8.0 → grift_cli-0.9.0}/CHANGELOG.md +142 -1
- {grift_cli-0.8.0 → grift_cli-0.9.0}/PKG-INFO +9 -7
- {grift_cli-0.8.0 → grift_cli-0.9.0}/README.en.md +8 -6
- {grift_cli-0.8.0 → grift_cli-0.9.0}/README.md +9 -7
- {grift_cli-0.8.0 → grift_cli-0.9.0}/action.yml +1 -1
- {grift_cli-0.8.0 → grift_cli-0.9.0}/benchmarks/v060/golden/expected/actor-partition.json +1 -1
- {grift_cli-0.8.0 → grift_cli-0.9.0}/benchmarks/v060/golden/manifest.json +1 -1
- {grift_cli-0.8.0 → grift_cli-0.9.0}/benchmarks/v060/golden/migrations.json +1 -1
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/REQUIREMENTS-v060.md +2 -1
- grift_cli-0.9.0/docs/adr/ADR-0002-trait-profile.md +151 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/alignment-schema.md +29 -7
- grift_cli-0.9.0/docs/design/trait-profile-20261026/README.md +33 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/inputs/brief-a.toml +21 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/inputs/brief-b.toml +17 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/inputs/identity-a.toml +8 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/inputs/identity-b.toml +8 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/inputs/p1-payments.toml +16 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/inputs/p2-storefront.toml +18 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/outputs-080/actor-a.md +139 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/outputs-080/actor-b.md +139 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/outputs-080/align-a-p1.md +184 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/outputs-080/align-a-p2.md +155 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/outputs-080/align-b-p1.md +184 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/outputs-080/align-b-p2.md +155 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/outputs-080/project-p1.md +131 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/outputs-080/project-p2.md +131 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/samples/align-a-p1.md +49 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/samples/align-a-p2.md +48 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/samples/align-b-p1.md +56 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/samples/align-b-p2.md +46 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/samples/candidate-a.md +61 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/samples/candidate-b.md +63 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/samples/project-p1.md +52 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/samples/project-p2.md +51 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/tools/make_synth.py +354 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026/tools/run_080.sh +50 -0
- grift_cli-0.9.0/docs/design/trait-profile-20261026.md +554 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/en/metrics-guide.md +24 -2
- grift_cli-0.9.0/docs/en/migration-v090.md +177 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/en/norms.md +15 -0
- grift_cli-0.9.0/docs/en/trait-profile.md +375 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/en/usage.md +10 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/metrics-guide.md +24 -6
- grift_cli-0.9.0/docs/migration-v090.md +863 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/norms.md +30 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/report-v2.md +4 -1
- grift_cli-0.9.0/docs/trait-profile.md +375 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/usage.md +10 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/scripts/v060_scenario_matrix.py +8 -5
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_cli/__main__.py +5 -1
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_cli/subject.py +5 -27
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/actor_basis.py +23 -1
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/alignment.py +167 -33
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/analyze.py +64 -27
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/analyze_v2.py +7 -1
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/attribution.py +3 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/report_v2.py +67 -342
- grift_cli-0.9.0/src/tep_core/report_v2_observed.py +263 -0
- grift_cli-0.9.0/src/tep_core/report_v2_text.py +97 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/schema_v2.py +7 -1
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/schemas/v060-contracts.schema.json +8 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/tendency.py +42 -12
- grift_cli-0.9.0/src/tep_core/trait_alignment.py +264 -0
- grift_cli-0.9.0/src/tep_core/trait_evidence.py +178 -0
- grift_cli-0.9.0/src/tep_core/trait_profile.py +378 -0
- grift_cli-0.9.0/src/tep_core/trait_sections.py +254 -0
- grift_cli-0.9.0/src/tep_core/trait_tables.py +445 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/v2_constants.py +23 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/verify.py +14 -4
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/version.py +2 -2
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/fixtures/v060/run_p0_falsify.py +1 -1
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_readme_entry.py +2 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_docs_parity.py +2 -2
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_observed_compare.py +30 -9
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v080_selectivity_notice.py +15 -4
- grift_cli-0.9.0/tests/test_v090_alignment_consent.py +186 -0
- grift_cli-0.9.0/tests/test_v090_history_wording.py +56 -0
- grift_cli-0.9.0/tests/test_v090_markdown_without_strength.py +139 -0
- grift_cli-0.9.0/tests/test_v090_namesake_cluster.py +74 -0
- grift_cli-0.9.0/tests/test_v090_observation_date.py +62 -0
- grift_cli-0.9.0/tests/test_v090_role_profile_as_of.py +130 -0
- grift_cli-0.9.0/tests/test_v090_scenario_window_utc.py +74 -0
- grift_cli-0.9.0/tests/test_v090_site_names.py +195 -0
- grift_cli-0.9.0/tests/test_v090_trait_profile.py +613 -0
- grift_cli-0.9.0/tests/test_v090_trait_tables.py +194 -0
- grift_cli-0.9.0/tests/test_v090_trait_units.py +1004 -0
- grift_cli-0.9.0/tests/test_v090_v080_discrepancies.py +403 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/.github/ISSUE_TEMPLATE/question.yml +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/.github/workflows/ci.yml +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/.github/workflows/kpi-monthly.yml +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/.github/workflows/publish.yml +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/.github/workflows/v060-provider-live.yml +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/.gitignore +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/LICENSE +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/benchmarks/v060/IMPLEMENTATION-AGENT-INSTRUCTIONS.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/benchmarks/v060/README.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/benchmarks/v060/data/alignment_cases.jsonl +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/benchmarks/v060/data/gharchive_daily_summary.csv +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/benchmarks/v060/data/gharchive_events_2024-01-15_to_21.ndjson +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/benchmarks/v060/data/gharchive_repository_summary.csv +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/benchmarks/v060/data/independent_repo_actor_audit_2026-08-30.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/benchmarks/v060/data/metric_catalog.csv +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/benchmarks/v060/data/role_ground_truth_sample.csv +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/benchmarks/v060/data/role_label_counts.csv +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/benchmarks/v060/data/tracker_lifecycle_fixture.csv +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/benchmarks/v060/expected/tracker_fixture_expected.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/benchmarks/v060/golden/fixtures/actor-partition-repo.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/benchmarks/v060/quality-report.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/benchmarks/v060/schemas/benchmark-manifest.schema.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/benchmarks/v060/schemas/event-observation.schema.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/benchmarks/v060/schemas/role-validation.schema.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/benchmarks/v060/sources.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/corpus/AD-PILOT-20260822.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/corpus/DISCRIMINANT-v2026.09.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/corpus/DISCRIMINANT-v2026.11.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/corpus/ad-pilot.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/corpus/manifest.toml +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/corpus/pins-v2026.09.toml +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/corpus/pins-v2026.11.toml +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/corpus/v2026.09/distributions.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/corpus/v2026.11/distributions.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/CORPUS-CANDIDATES-v2026.11-20260822.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/EVIDENCE-v056-smoke-raw.log +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/EVIDENCE-v058-smoke-raw.log +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/EVIDENCE-v058b-smoke-raw.log +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/EVIDENCE-v059-smoke-raw.log +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/EVIDENCE-v059b-smoke-raw.log +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/PLAN-v060-20260825.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/READERS-GUIDE-draft-20260822.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/RESEARCH-v060.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/V060-CLOSURE-LEDGER-20260831.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/adr/ADR-0001-v08-no-volume-ordering.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/contribute-intake-design-20260822.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/corpus-protocol.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/coverage-map.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/en/corpus-protocol.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/en/coverage-map.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/en/export-schema.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/en/identity-schema.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/en/persona-answers.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/en/report-schema.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/en/validation.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/evidence/v060/attest-portfolio.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/evidence/v060/grift-2055-audit.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/export-schema.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/identity-schema.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/input-export-schema.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/migration-v060.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/migration-v070.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/migration-v071.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/migration-v072.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/migration-v080.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/persona-answers.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/project-schema.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/report-schema.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/rereview-checklist-template.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/docs/validation.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/golden/README.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/golden/coverage.md +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/golden/expected/G1-click.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/golden/expected/G10-scvi-tools.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/golden/expected/G11-kilo.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/golden/expected/G12-httpx.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/golden/expected/G13-voicevox.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/golden/expected/G2-gitignore.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/golden/expected/G3-spoon-knife.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/golden/expected/G4-express.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/golden/expected/G5-typer.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/golden/expected/G6-claude-code.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/golden/expected/G7-axios.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/golden/expected/G8-co.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/golden/expected/G9-pyscript.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/golden/identity/G1-click.toml +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/golden/identity/example.toml +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/golden/pins.toml +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/pyproject.toml +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/scripts/action_contract_guard.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/scripts/admission_v2026_11.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/scripts/build_dist_v2026_11.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/scripts/build_distributions.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/scripts/build_library_prevalence.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/scripts/check_forbidden_vocab.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/scripts/corpus_ad_pilot.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/scripts/corpus_run.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/scripts/discriminant_v2026.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/scripts/discriminant_v2026_11.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/scripts/gen_coverage_table.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/scripts/gen_golden_expected.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/scripts/hygiene_grep.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/scripts/intake_contract_parity.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/scripts/package_smoke.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/scripts/v060_blind_pilot.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/scripts/v060_golden.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/scripts/v060_golden_baseline.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/scripts/v060_provider_live_gate.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/scripts/v070_benchmark.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_cli/__init__.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_cli/benchmark_cmd.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_cli/options.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_cli/output.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/__init__.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/activity.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/actor_artifacts.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/actor_directory.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/ai_identity.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/archive_events.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/attest.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/benchmark.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/benchmark_assets/v060/data/alignment_cases.jsonl +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/benchmark_assets/v060/data/gharchive_daily_summary.csv +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/benchmark_assets/v060/data/gharchive_events_2024-01-15_to_21.ndjson +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/benchmark_assets/v060/data/gharchive_repository_summary.csv +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/benchmark_assets/v060/data/independent_repo_actor_audit_2026-08-30.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/benchmark_assets/v060/data/metric_catalog.csv +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/benchmark_assets/v060/data/role_ground_truth_sample.csv +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/benchmark_assets/v060/data/role_label_counts.csv +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/benchmark_assets/v060/data/tracker_lifecycle_fixture.csv +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/benchmark_assets/v060/expected/tracker_fixture_expected.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/benchmark_assets/v060/schemas/benchmark-manifest.schema.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/benchmark_assets/v060/schemas/event-observation.schema.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/benchmark_assets/v060/schemas/role-validation.schema.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/benchmark_assets/v060/sources.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/cochange.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/complementarity.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/context_profile.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/contribute.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/contribution_v2.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/coordination.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/core_period.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/data/prevalence/v2026.09/library_prevalence.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/data/v2026.09/distributions.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/data/v2026.11/distributions.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/dates.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/dependency_manifest.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/digest.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/event_rhythm.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/experience.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/experience_collect.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/export.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/forge.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/forge_public.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/gitutil.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/identity.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/lineage.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/local_inputs.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/observation.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/origin.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/outcome.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/path_surface.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/paths.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/portfolio.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/prevalence.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/project.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/public_evidence.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/public_fetch.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/reference.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/report.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/revision.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/rework.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/rhythm.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/role_lens.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/role_profile.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/role_validation.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/schema.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/schemas/__init__.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/scope.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/secrets_guard.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/secure_output.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/source_binding.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/surface_profile.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/survival.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/tagset.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/tests_observed.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/tracker.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/tracker_lifecycle.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/src/tep_core/verification_profile.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/conftest.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/coverage_matrix.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/fixtures/v060/forge.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/fixtures/v060/p0-results.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/fixtures/v060/project-declared.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/fixtures/v060/project-init.toml +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/fixtures/v060/project.toml +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/fixtures/v060/repo-smoke-head.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/fixtures/v060/tracker.json +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/git_fixture.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_action_contract.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_activity.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_benchmark_pack_v060.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_cli.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_cli_v060.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_cochange.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_context_profile.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_contribute.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_coverage.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_default_report_path.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_discriminant_claims.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_export.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_export_recipe.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_forbidden_vocab.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_gitutil.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_gloss_gates.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_golden.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_h5_swarm.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_hygiene.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_identity_validation.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_intake_contract_parity.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_intake_disclosure.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_lifecycle_v2.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_migration_v060.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_not_observed.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_origin.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_package_contract.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_persona_answers.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_publish_baseline_pin.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_release_gate.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_report.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_rework.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_schema.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_scope.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_shared_block.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_survival.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_ux_v057.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v058_gates.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_actor_account_source_binding_cli.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_actor_artifacts.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_actor_partition.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_actor_public_directory.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_alignment.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_attest_core.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_attest_input_binding.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_attest_portfolio_cli.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_binding_quality.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_blind_pilot.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_bound_export_observations.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_complete.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_contribute_atomic_consent.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_contribution_profiles.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_cross_repo.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_determinism.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_emit_robustness.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_experience_collect.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_experience_incomplete.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_experience_product_cli.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_experience_role.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_forge_evidence.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_golden_runner.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_historical_exact_head.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_identity_v2.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_independent_audit.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_inputs.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_large_repo_degradation.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_no_false_zero.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_p0_runner.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_portfolio_core.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_provider_live_gate.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_provider_live_workflow.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_public_actor_presentation.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_public_evidence_contract.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_public_registry_export.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_release_consistency.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_report_deep_schema.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_report_strict_producer.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_revision.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_rhythm.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_scenario_matrix.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_schema.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_schema_contracts.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_subject_source_binding_cli.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_surfaces.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_verify_fixed_revision.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v060_verify_inferred_actor.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v070_actor_time_phase.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v070_align_share.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v070_benchmark.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v070_cli_surface.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v070_complementarity.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v070_dependency_attribution.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v070_dependency_experience.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v070_dependency_manifest.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v070_history_incomplete.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v070_intake_contract.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v070_library_prevalence.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v070_norms_link.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v070_outcome.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v070_project_min_share.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v070_scale_denominator.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v071_bot_accounts.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v071_gate_failure_detail.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v071_response_completeness.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v072_empty_actor.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v080_actor_index_order.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_v080_inflation_limitations.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_verb_semantics.py +0 -0
- {grift_cli-0.8.0 → grift_cli-0.9.0}/tests/test_verify.py +0 -0
|
@@ -4,7 +4,55 @@
|
|
|
4
4
|
|
|
5
5
|
タグ・PyPI・リポ public 化は本ファイルの記載対象外(人間ゲート)。
|
|
6
6
|
|
|
7
|
-
## [
|
|
7
|
+
## [0.9.0] — 2026-10-26
|
|
8
|
+
|
|
9
|
+
記録から見える仕事の進め方を、平易な文と、面談で確かめたいことの問いにして、Markdown の先頭に
|
|
10
|
+
書く release。点数・順位・タイプ名は出さない(判断の根拠は `docs/adr/ADR-0002-trait-profile.md`、
|
|
11
|
+
移行は `docs/migration-v090.md`、英語は `docs/en/migration-v090.md`)。CLI フラグと enum 値は変わらない(schema key は照らし合わせの
|
|
12
|
+
subject に任意の 1 つが増える)。公開 Forge 取得
|
|
13
|
+
(provider-neutral Forge証跡、GitHub/GitLab/self-managed、PARTIAL/resume)、attest / portfolio、
|
|
14
|
+
contribution-v2 の契約、`暗黙 PyPI update check` を持たない設計はいずれも 0.8.0 から変わらない。
|
|
15
|
+
|
|
16
|
+
JSON の値が変わるのは次の 4 つの場面で、どれも人や案件について事実と違う数や読みが出うるところを
|
|
17
|
+
直したもの。
|
|
18
|
+
|
|
19
|
+
- 照らし合わせ(`align`、`align --team`)の JSON。向き(`relationship`)を、1 人の件数とチーム全体の
|
|
20
|
+
件数の比ではなく、それぞれの中の割合どうしで決める。軸の窓・傾向の選び方・検証の宣言の単位も、
|
|
21
|
+
実際に数えたものに合わせる
|
|
22
|
+
- `--as-of` を指定したとき、その日のあとの commit・merge・タグを `activity` と `role_profile` に
|
|
23
|
+
数えない
|
|
24
|
+
- `--as-of` を指定しないとき、最後の変更の日を UTC の日付で取る(UTC より西で夕方に出した変更が
|
|
25
|
+
数えから外れていた)
|
|
26
|
+
- identity に書いた人に commit が無いとき、同じ作者名の別人の commit を、その人の数に入れない
|
|
27
|
+
|
|
28
|
+
ほかに、照らし合わせの JSON(alignment-v1)の subject に、同意の記録を写す任意の key
|
|
29
|
+
`actor_consent` が増える(足すだけ。面談の問いはこの値と claimed があるときだけ出す)。
|
|
30
|
+
|
|
31
|
+
0.8.0 で保存した report(`analyze`・`actor`・`repo`)と照らし合わせは、0.9.0 の `verify` では
|
|
32
|
+
定義版数が違うため CANNOT_VERIFY に、project report は定義版数の欄が食い違うため MISMATCH になる。
|
|
33
|
+
書き出した一式(`--out` の collection)は定義版数を見ないので、`--as-of` を付けて作ったものと、
|
|
34
|
+
上の 4 つめの場面に当たるものだけが MISMATCH になる。どれも 0.9.0 で作り直せば検算できる
|
|
35
|
+
(実測は `docs/migration-v090.md`)。
|
|
36
|
+
|
|
37
|
+
### Added
|
|
38
|
+
|
|
39
|
+
- **actor・project・alignment の Markdown の先頭に、記録から見える進め方の文と、面談で確かめたい
|
|
40
|
+
ことの問いを出す**(ADR-0002 段階 1)。actor は「変えた部分の区分(作業領域)」「変更のペース
|
|
41
|
+
(変更リズム)」「テストの付け方(検証の形)」「関わり方」を、件数と期間を添えた文で書き、続けて
|
|
42
|
+
「この記録では見えないこと」「面談で確かめたいこと」「数字の読み方と限界」「根拠」の表を置く。project は
|
|
43
|
+
案件側の要望と、案件のリポジトリから見える進め方を書き、人ごとの数字は出さない。alignment は
|
|
44
|
+
「要望と記録が重なっている点」「面談で確かめたい点」「案件側が書いていないこと(参考)」に
|
|
45
|
+
並べる。0.8.0 の詳しい数字の節はその後ろに残る
|
|
46
|
+
- 文と問いは、公開した決定表(`docs/trait-profile.md`、`docs/en/trait-profile.md`)で JSON の数字から
|
|
47
|
+
選ぶ。量で文を変えず、タイプ名を作らず、重なった項目の数を数えない。文は Markdown にだけ出し、
|
|
48
|
+
JSON には入れない。決定表と定数は `tests/test_v090_trait_tables.py` で結んである
|
|
49
|
+
- 本人向けの文は、本人が名乗った ID(`attribution_state=claimed`)と同意の記録
|
|
50
|
+
(`consent=recorded-explicit-consent`)があるときだけ出す。管理者が登録した ID、公開リポジトリ
|
|
51
|
+
から推定したまとまり、同意の記録が無い ID、浅い clone の記録には、出していない理由を 1 文で
|
|
52
|
+
書く。collection(`--all` / `--top`)には文を出さない。照らし合わせの問いも、本人が名乗った ID と
|
|
53
|
+
同意の記録があるときだけ出す(下の Changed の `actor_consent`)
|
|
54
|
+
- 数が確かめられないときは書かない。`role_profile` の母数がほかの観点と違うとき、浅い clone の
|
|
55
|
+
とき、`--as-of` を指定していてタグを付けた日が分からないときなどは、理由を書いて外す
|
|
8
56
|
|
|
9
57
|
### Changed
|
|
10
58
|
|
|
@@ -19,6 +67,99 @@
|
|
|
19
67
|
文書を読むように直し、PyPI に出る README の相対リンク・`project_urls` の参照先・
|
|
20
68
|
リンクの見出しを `tests/test_readme_entry.py` で検査する。CLI の出力は変わらない。
|
|
21
69
|
|
|
70
|
+
- **Markdown から「傾向の強さ」(`strength`)の行と、alignment の `relationship` の行を外した**
|
|
71
|
+
(ADR-0002)。2 つのレポートを並べると、強い人・弱い人、合う人・合わない人に読めるため。
|
|
72
|
+
見出し「傾向の強さと確からしさ」は「傾向の確からしさ」に、傾向の注意書きは「この傾向の表示は
|
|
73
|
+
変わる可能性があります」になる。JSON は変わらない
|
|
74
|
+
- **Markdown の観点の呼び名を griftai.org にそろえた**。4 つの観点を、サイトと同じ「平易な言い方
|
|
75
|
+
(サイトの用語)」で呼ぶ: 変えた部分の区分(作業領域)、変更のペース(変更リズム)、テストの付け方
|
|
76
|
+
(検証の形)、関わり方(griftai.org は平易な言い方とサイトの用語に同じ語を使うので、見出しは
|
|
77
|
+
「関わり方」だけ)。先頭の節の見出しと文、根拠の表の観点、詳しい数字の節の見出し、傾向の名前、
|
|
78
|
+
案件の要望の項目名が変わる。JSON のキーと、JSON に入る固定文(`limitations` など)は変えない
|
|
79
|
+
(その文には元の言い方が残る)。呼び名は `docs/metrics-guide.md` の表だけに置き、見出しとの一致を
|
|
80
|
+
`tests/test_v090_site_names.py` で検査する
|
|
81
|
+
- **survival のサイトの訳語を「定着率」から「コードの新しさ」(Code recency)に改めた**。値は
|
|
82
|
+
残った行の割合ではなく、いまのコードにある行が書かれてからどれだけ経っているかを 180 日を目安に
|
|
83
|
+
重みを付けて平均した値で、1 に近いほど最近書かれた行が多い(「定着」とは逆の向きに読めた)。
|
|
84
|
+
metrics-guide の対応表、README、`tests/test_v060_docs_parity.py` の `SITE_TERMS` を直した。
|
|
85
|
+
griftai.org と cor-jp.com は別に直す
|
|
86
|
+
- **alignment-v1 の subject に `actor_consent`(任意)を足した**(T7、ユーザーの判断 2026-10-26)。
|
|
87
|
+
`grift align` は actor report の同意の記録を、actor の本人向けの文と同じ関数
|
|
88
|
+
(`actor_basis.consent_recorded`)で確かめ、あるときだけ `recorded-explicit-consent` を写す
|
|
89
|
+
(公開 inferred には付けない)。照らし合わせの面談の問いは、claimed かつこの値があるときだけ
|
|
90
|
+
出し、管理者が登録した ID と同意の記録が無い ID には理由を書く。`grift verify` は保存した値を
|
|
91
|
+
信じず、actor report から作り直して比べる。JSON は key が 1 つ増える(足すだけ)
|
|
92
|
+
- **定義版数を `tep-v0.9.0-2026-10-26` に上げた**(REL-090)。上の JSON の値の変化と Markdown の
|
|
93
|
+
変化に合わせたもの。証跡 4 件(scenarios / scenarios-public / benchmark.json / golden)を 0.9.0 の
|
|
94
|
+
source で作り直す
|
|
95
|
+
|
|
96
|
+
### Deprecated
|
|
97
|
+
|
|
98
|
+
- alignment-v1 の `axes[].actor_tendency.strength` / `axes[].project_tendency.strength`。
|
|
99
|
+
0.9.0 では JSON に残すが Markdown には出さない。次の schema 版で消す
|
|
100
|
+
|
|
101
|
+
### Fixed
|
|
102
|
+
|
|
103
|
+
- **`--as-of` なしのとき、UTC より西で夕方に作った HEAD が自分のレポートから外れていた**。
|
|
104
|
+
観測日を HEAD の作者の現地の日付(`%ad --date=short`)で取り、範囲は各 commit の UTC の日付で
|
|
105
|
+
切っていた。観測日も UTC の日付で取る。HEAD の現地の日付と UTC の日付が違うときだけ、
|
|
106
|
+
`observation_date`・`git_window`・`change_rhythm` が変わる(JSON が変わる)。西の夕方は 1 日あとに
|
|
107
|
+
なり、HEAD の UTC の日の commit がすべて数えに入る。東の朝(日本の 0 時〜9 時など)は 1 日まえに
|
|
108
|
+
なる
|
|
109
|
+
- **identity に宣言した人に commit が無いと、同じ作者名の別人の commit がその人の role_profile に入っていた**。
|
|
110
|
+
名前で作る cluster id は、commit のある identity の id とはぶつからないようにしていたが、commit の無い
|
|
111
|
+
identity の id は空いたままで、別のメールの「Alice」が `alice` を名乗れた。宣言した identity の id は
|
|
112
|
+
commit の有無にかかわらず予約する。そのとき別人の cluster id は名前ではなく hash になる。JSON は、
|
|
113
|
+
その人の role_profile と experience の数、repo report-v2 の `actor_directory` の id、
|
|
114
|
+
`partition_digest`、collection の card の id とファイル名が変わる
|
|
115
|
+
- **`--as-of` を指定しても、activity と role_profile が観測日のあとの commit・merge・タグまで数えていた**。
|
|
116
|
+
surface・検証・間隔の節は観測日で切っていたので、同じレポートの中で数が食い違っていた。activity は
|
|
117
|
+
観測日(UTC)までの自分の commit で数え、role_profile は観測日の終わりまでの commit とタグで数えて、
|
|
118
|
+
窓の終わりを観測日にする。activity には `core_activity_period` も入り、`--identity` を付けた
|
|
119
|
+
repo report-v2 の activity も変わる(JSON が変わる)。`--as-of` で書き出した collection の検算
|
|
120
|
+
(`grift verify DIR`)も、同じ日付で数え直す。`--as-of` を指定しないときは今までどおり。
|
|
121
|
+
experience は依存の読み取りに日付が無いので、まだ切っていない
|
|
122
|
+
|
|
123
|
+
次は、設計書 `docs/design/trait-profile-20261026.md` §1.4 に記録した 0.8.0 の食い違いの直し。
|
|
124
|
+
alignment-v1 の JSON(`relationship`、軸の窓、検証の宣言の単位、傾向)と、`align --team` の
|
|
125
|
+
JSON(検証の宣言の単位)、actor・project・alignment の Markdown が変わる。
|
|
126
|
+
|
|
127
|
+
`relationship` は値の意味が変わる(破壊的変更)。0.8.0 は件数どうしの比で、0.9.0 は範囲の中の
|
|
128
|
+
割合どうしで向きを決める。
|
|
129
|
+
|
|
130
|
+
- **`relationship` が 1 人の件数とチーム全体の件数の比で向きを決めていた**。`surfaces.*` と
|
|
131
|
+
`verification.*` は、それぞれの範囲の中の割合(`surface_commit_share`、`test_type_share`)
|
|
132
|
+
どうしで比べ、`"compared": "commit_share"` と、比べた割合(`actor_share` / `project_share`)を
|
|
133
|
+
付ける。割合の母数が 20 に届かない側があれば `not_comparable`(`observed_unavailable`)。
|
|
134
|
+
`change_rhythm.*` は 1 人とリポジトリ全体で母集団が違うので、常に `not_comparable`
|
|
135
|
+
(`scope_not_equivalent`)にした
|
|
136
|
+
- **surface と検証の軸に 180 日窓が付いていた**。どちらも観測日までの履歴を数えているので、
|
|
137
|
+
`actor_window` / `project_window` を `{"end": 観測日, "basis": "history_to_observation_date"}`
|
|
138
|
+
にし、Markdown では「〜までの履歴」と書く。surface の傾向の window も同じにした。浅い clone なら
|
|
139
|
+
取得できた範囲で、project-v1 にはそれが記録されないので、「全履歴」とは書かない
|
|
140
|
+
- **間隔の傾向が値に関係なく「定期的な変更提出」と出ていた**。`rhythm_tendency` の `value` を
|
|
141
|
+
常に `rhythm_observed` にした(形は `basis` の数字が示す)。`strength` は固定の `moderate` の
|
|
142
|
+
まま残る。strength は同じ 0.9.0 の別の変更で Markdown から外し、JSON では非推奨にする
|
|
143
|
+
- **surface の傾向の分母が一覧と違っていた**。file-change ではなく commit の割合
|
|
144
|
+
(`surface_commit_share`)で選び、割合が未観測なら `not_proven` にする(0.8.0 は未観測の割合を
|
|
145
|
+
0.0 と読み、同点で `test` が選ばれていた)。commit の割合では、本体とテストを一緒に変えた
|
|
146
|
+
commit が両方に入るので、割合がいちばん大きい場所が 2 つ以上あるときも `not_proven`
|
|
147
|
+
(`tied_top_share`)にし、同じ割合の場所を `tied` に並べる
|
|
148
|
+
- **検証の種類の宣言が `surface` と書かれていた**。`verification.*` の `declared.unit` を
|
|
149
|
+
`verification-type` にした。同じ関数を使う `align --team` の `requirements[].declared.unit` も
|
|
150
|
+
同じ値になる
|
|
151
|
+
- **Markdown に案件の題名が出ず、単位の名前が値に付いていた**(`payments-api id`、
|
|
152
|
+
`backend, data surface-names`)。project と alignment の Markdown に題名を出し、種類を表すだけの
|
|
153
|
+
単位名は Markdown では書かない(JSON は変えない)。題名が無い案件は「案件側が書いていません」と書く
|
|
154
|
+
- **日本語の Markdown で、選択性の注記だけが英語だった**。actor report と alignment の
|
|
155
|
+
Markdown には同じ意味の日本語の文(`SELECTIVITY_NOTICE_JA`)を出す。JSON の `notices` は英語の
|
|
156
|
+
固定文のまま。norms §6(日英)に日本語の文を足した
|
|
157
|
+
- **metrics-guide の survival の説明が実装と逆の読みだった**(「180 日後も残っている行の割合」)。
|
|
158
|
+
`survival.py` のとおり、HEAD にある行の新しさの平均(τ=180 日、最大 40 ファイル)と書き直し、
|
|
159
|
+
文書と定数を `tests/test_v090_v080_discrepancies.py` で結んだ。対応表から survival の節への
|
|
160
|
+
リンクが切れていたのも直し、metrics-guide(日英)をリンクの検査(`tests/test_readme_entry.py`)に
|
|
161
|
+
入れた
|
|
162
|
+
|
|
22
163
|
## [0.8.0] — 2026-10-25
|
|
23
164
|
|
|
24
165
|
面は増えない。公開面が約束する「点数や順位はつけない」「選んで出したことも受け取る側に
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: grift-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.9.0
|
|
4
4
|
Summary: Reads git history and reports who changed what and when, with the counting rule beside every number.
|
|
5
5
|
Project-URL: Homepage, https://griftai.org
|
|
6
6
|
Project-URL: Documentation, https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/en/usage.md
|
|
@@ -65,9 +65,9 @@ The report text is currently in Japanese; the JSON output uses English keys.
|
|
|
65
65
|
|
|
66
66
|
`grift repo` prints values like these for the whole repository. Each value comes with its count: how many out of how many.
|
|
67
67
|
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
-
|
|
68
|
+
- Parts changed (work surface): for each of 11 areas (tests, docs, CI, frontend, and so on), how many commits (recorded changes) touched files in that area.
|
|
69
|
+
- Pace of change (change rhythm): on how many days in the last 180 changes were made, and how many days passed between one change and the next. These are not working hours or speed.
|
|
70
|
+
- How tests are added (verification profile): the share of commits that include test files, and which kinds of tests they touch (unit, integration, and so on).
|
|
71
71
|
- People involved: how many commits each person made, listed in ID order rather than by count.
|
|
72
72
|
|
|
73
73
|
The JSON output (`--format json`) and the output of `grift analyze` also include:
|
|
@@ -77,6 +77,8 @@ The JSON output (`--format json`) and the output of `grift analyze` also include
|
|
|
77
77
|
|
|
78
78
|
`grift align` places a project's declared requirements next to the values counted from history, item by item. Each item is one of five outcomes: overlap, outside the declared range, zero, not observed, or not declared.
|
|
79
79
|
|
|
80
|
+
The `grift actor` Markdown (for an identity the person claimed, with a recorded consent) and the `grift project` Markdown open with plain Japanese sentences on how the work shows in the record. The `grift actor` and `grift align` Markdown also list questions to confirm in an interview. The [decision tables](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/en/trait-profile.md) pick them from the numbers; they never become a score or a type name. An actor report for an identity registered by an administrator, or for an actor inferred from a public repository, gets no sentences, and the output says why. Alignment questions follow the same rule: an identity the person claimed, with a recorded consent.
|
|
81
|
+
|
|
80
82
|
A value that could not be measured is never written as 0. It is written as "not observed" with a reason (`not_observed` in the output). A missing record does not mean missing experience. When the population (the total number of items counted) is below 20, the report text shows counts instead of rates.
|
|
81
83
|
|
|
82
84
|
The [metrics guide](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/en/metrics-guide.md) explains each number in plain language. The table that maps the terms used on griftai.org and cor-jp.com to CLI terms is in the [Japanese guide](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/metrics-guide.md#サイトの訳語と-cli-の語の対応表).
|
|
@@ -118,7 +120,7 @@ grift align \
|
|
|
118
120
|
--format both --out alignment-out
|
|
119
121
|
```
|
|
120
122
|
|
|
121
|
-
Collections of several people, the identity file, public forge fetch, signing, exit codes, and upgrading from
|
|
123
|
+
Collections of several people, the identity file, public forge fetch, signing, exit codes, and upgrading from earlier versions are covered in the [usage guide](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/en/usage.md).
|
|
122
124
|
|
|
123
125
|
## Data and network
|
|
124
126
|
|
|
@@ -139,7 +141,7 @@ steps:
|
|
|
139
141
|
- uses: actions/setup-python@v5
|
|
140
142
|
with:
|
|
141
143
|
python-version: "3.12"
|
|
142
|
-
- uses: Cor-Incorporated/grift-cli@v0.
|
|
144
|
+
- uses: Cor-Incorporated/grift-cli@v0.9.0
|
|
143
145
|
with:
|
|
144
146
|
scope: repo
|
|
145
147
|
comment: false
|
|
@@ -157,7 +159,7 @@ The action runs `grift analyze`, writes a summary to `$GITHUB_STEP_SUMMARY`, and
|
|
|
157
159
|
- [Usage norms](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/en/norms.md)
|
|
158
160
|
- [Metric validation and limits](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/en/validation.md): the design choices behind the numbers and their limits, and results from 117 public repositories, including the comparisons that did not separate
|
|
159
161
|
- Output formats: [report-v1](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/en/report-schema.md), [export](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/en/export-schema.md), [identity](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/en/identity-schema.md); in Japanese: [report-v2](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/report-v2.md), [alignment](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/alignment-schema.md), [project](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/project-schema.md)
|
|
160
|
-
- [Changelog](https://github.com/Cor-Incorporated/grift-cli/blob/main/CHANGELOG.md) and [0.
|
|
162
|
+
- [Changelog](https://github.com/Cor-Incorporated/grift-cli/blob/main/CHANGELOG.md) (in Japanese) and [0.9.0 migration notes](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/en/migration-v090.md)
|
|
161
163
|
|
|
162
164
|
Product site: [griftai.org](https://griftai.org) (Japanese).
|
|
163
165
|
|
|
@@ -36,9 +36,9 @@ The report text is currently in Japanese; the JSON output uses English keys.
|
|
|
36
36
|
|
|
37
37
|
`grift repo` prints values like these for the whole repository. Each value comes with its count: how many out of how many.
|
|
38
38
|
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
39
|
+
- Parts changed (work surface): for each of 11 areas (tests, docs, CI, frontend, and so on), how many commits (recorded changes) touched files in that area.
|
|
40
|
+
- Pace of change (change rhythm): on how many days in the last 180 changes were made, and how many days passed between one change and the next. These are not working hours or speed.
|
|
41
|
+
- How tests are added (verification profile): the share of commits that include test files, and which kinds of tests they touch (unit, integration, and so on).
|
|
42
42
|
- People involved: how many commits each person made, listed in ID order rather than by count.
|
|
43
43
|
|
|
44
44
|
The JSON output (`--format json`) and the output of `grift analyze` also include:
|
|
@@ -48,6 +48,8 @@ The JSON output (`--format json`) and the output of `grift analyze` also include
|
|
|
48
48
|
|
|
49
49
|
`grift align` places a project's declared requirements next to the values counted from history, item by item. Each item is one of five outcomes: overlap, outside the declared range, zero, not observed, or not declared.
|
|
50
50
|
|
|
51
|
+
The `grift actor` Markdown (for an identity the person claimed, with a recorded consent) and the `grift project` Markdown open with plain Japanese sentences on how the work shows in the record. The `grift actor` and `grift align` Markdown also list questions to confirm in an interview. The [decision tables](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/en/trait-profile.md) pick them from the numbers; they never become a score or a type name. An actor report for an identity registered by an administrator, or for an actor inferred from a public repository, gets no sentences, and the output says why. Alignment questions follow the same rule: an identity the person claimed, with a recorded consent.
|
|
52
|
+
|
|
51
53
|
A value that could not be measured is never written as 0. It is written as "not observed" with a reason (`not_observed` in the output). A missing record does not mean missing experience. When the population (the total number of items counted) is below 20, the report text shows counts instead of rates.
|
|
52
54
|
|
|
53
55
|
The [metrics guide](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/en/metrics-guide.md) explains each number in plain language. The table that maps the terms used on griftai.org and cor-jp.com to CLI terms is in the [Japanese guide](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/metrics-guide.md#サイトの訳語と-cli-の語の対応表).
|
|
@@ -89,7 +91,7 @@ grift align \
|
|
|
89
91
|
--format both --out alignment-out
|
|
90
92
|
```
|
|
91
93
|
|
|
92
|
-
Collections of several people, the identity file, public forge fetch, signing, exit codes, and upgrading from
|
|
94
|
+
Collections of several people, the identity file, public forge fetch, signing, exit codes, and upgrading from earlier versions are covered in the [usage guide](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/en/usage.md).
|
|
93
95
|
|
|
94
96
|
## Data and network
|
|
95
97
|
|
|
@@ -110,7 +112,7 @@ steps:
|
|
|
110
112
|
- uses: actions/setup-python@v5
|
|
111
113
|
with:
|
|
112
114
|
python-version: "3.12"
|
|
113
|
-
- uses: Cor-Incorporated/grift-cli@v0.
|
|
115
|
+
- uses: Cor-Incorporated/grift-cli@v0.9.0
|
|
114
116
|
with:
|
|
115
117
|
scope: repo
|
|
116
118
|
comment: false
|
|
@@ -128,7 +130,7 @@ The action runs `grift analyze`, writes a summary to `$GITHUB_STEP_SUMMARY`, and
|
|
|
128
130
|
- [Usage norms](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/en/norms.md)
|
|
129
131
|
- [Metric validation and limits](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/en/validation.md): the design choices behind the numbers and their limits, and results from 117 public repositories, including the comparisons that did not separate
|
|
130
132
|
- Output formats: [report-v1](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/en/report-schema.md), [export](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/en/export-schema.md), [identity](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/en/identity-schema.md); in Japanese: [report-v2](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/report-v2.md), [alignment](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/alignment-schema.md), [project](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/project-schema.md)
|
|
131
|
-
- [Changelog](https://github.com/Cor-Incorporated/grift-cli/blob/main/CHANGELOG.md) and [0.
|
|
133
|
+
- [Changelog](https://github.com/Cor-Incorporated/grift-cli/blob/main/CHANGELOG.md) (in Japanese) and [0.9.0 migration notes](https://github.com/Cor-Incorporated/grift-cli/blob/main/docs/en/migration-v090.md)
|
|
132
134
|
|
|
133
135
|
Product site: [griftai.org](https://griftai.org) (Japanese).
|
|
134
136
|
|
|
@@ -34,9 +34,9 @@ grift が動くのに要るのは、Python 3.11 以上と git だけです。結
|
|
|
34
34
|
|
|
35
35
|
`grift repo` の画面には、リポジトリ全体について次のような値が出ます。どの値にも「何件のうち何件か」が付きます。
|
|
36
36
|
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
37
|
+
- 変えた部分の区分(作業領域): テスト、ドキュメント、CI、画面(フロントエンド)など 11 の区分ごとに、その区分のファイルを触った commit(変更 1 件ごとの記録)が何件あったか。
|
|
38
|
+
- 変更のペース(変更リズム): 直近 180 日に変更を出した日数と、変更と変更のあいだが何日空いたか。労働時間や速さではありません。
|
|
39
|
+
- テストの付け方(検証の形): テストのファイルを含む commit の割合と、テストの種類(unit、integration など)。
|
|
40
40
|
- 関わった人の一覧: 人ごとの commit の件数。並びは ID の順で、件数の多い順ではありません。
|
|
41
41
|
|
|
42
42
|
JSON(`--format json`)と `grift analyze` の出力には、次の値も入ります。
|
|
@@ -46,9 +46,11 @@ JSON(`--format json`)と `grift analyze` の出力には、次の値も入
|
|
|
46
46
|
|
|
47
47
|
`grift align` の出力では、案件側が書いた要求と記録から数えた値を項目ごとに並べ、重なり、範囲外、0 件、未観測、要求なしの 5 通りで書きます。
|
|
48
48
|
|
|
49
|
+
`grift actor`(本人が名乗った ID と同意の記録があるとき)と `grift project` の Markdown の先頭には、記録から見える進め方を平易な文で書きます。`grift actor` と `grift align` には、面談で確かめたいことを問いとして並べます。文と問いは[決定表](docs/trait-profile.md)で数字から選び、点数やタイプ名にはしません。管理者が登録した ID や、公開リポジトリから推定したまとまりの actor レポートには文を出さず、出していない理由を書きます。照らし合わせの問いも、本人が名乗った ID と同意の記録があるときだけ出します。
|
|
50
|
+
|
|
49
51
|
測れなかった値は 0 にせず、「観測できなかった」と理由を書きます(出力では `not_observed`)。記録が無いことは、経験が無いことを意味しません。母数(数えた件数の合計)が 20 に満たないときは、レポートの文面に率を書かず、件数だけを書きます。
|
|
50
52
|
|
|
51
|
-
数値ごとの説明は [docs/metrics-guide.md](docs/metrics-guide.md) にあります。griftai.org と cor-jp.com
|
|
53
|
+
数値ごとの説明は [docs/metrics-guide.md](docs/metrics-guide.md) にあります。griftai.org と cor-jp.com で使う言葉(検査値、テスト併修率、手戻り率、磨き直し、コードの新しさ)と CLI の言葉の[対応表](docs/metrics-guide.md#サイトの訳語と-cli-の語の対応表)も、ここにまとめています。
|
|
52
54
|
|
|
53
55
|
## なぜ作ったか
|
|
54
56
|
|
|
@@ -87,7 +89,7 @@ grift align \
|
|
|
87
89
|
--format both --out alignment-out
|
|
88
90
|
```
|
|
89
91
|
|
|
90
|
-
複数人の記録の書き出し、identity の書き方、公開 Forge
|
|
92
|
+
複数人の記録の書き出し、identity の書き方、公開 Forge からの取得、署名、終了コード、以前の版からの更新の注意は [docs/usage.md](docs/usage.md) にまとめています。
|
|
91
93
|
|
|
92
94
|
## データの扱い
|
|
93
95
|
|
|
@@ -108,7 +110,7 @@ steps:
|
|
|
108
110
|
- uses: actions/setup-python@v5
|
|
109
111
|
with:
|
|
110
112
|
python-version: "3.12"
|
|
111
|
-
- uses: Cor-Incorporated/grift-cli@v0.
|
|
113
|
+
- uses: Cor-Incorporated/grift-cli@v0.9.0
|
|
112
114
|
with:
|
|
113
115
|
scope: repo
|
|
114
116
|
comment: false
|
|
@@ -126,7 +128,7 @@ steps:
|
|
|
126
128
|
- [利用規範(norms)](docs/norms.md)
|
|
127
129
|
- [指標の検証と限界](docs/validation.md)。数値を出すときの設計の選択とその限界、公開 117 リポジトリで指標を確かめた結果(差が出た比較と出なかった比較の両方)を載せています
|
|
128
130
|
- 出力の形式: [report-v2](docs/report-v2.md)、[report-v1](docs/report-schema.md)、[alignment](docs/alignment-schema.md)、[project](docs/project-schema.md)、[identity](docs/identity-schema.md)、[export](docs/export-schema.md)、[ローカル export の入力](docs/input-export-schema.md)
|
|
129
|
-
- [変更履歴(CHANGELOG)](CHANGELOG.md)と、0.
|
|
131
|
+
- [変更履歴(CHANGELOG)](CHANGELOG.md)と、0.9.0 への[移行の注意](docs/migration-v090.md)
|
|
130
132
|
|
|
131
133
|
製品サイトは [griftai.org](https://griftai.org) です。
|
|
132
134
|
|
|
@@ -16,7 +16,7 @@ inputs:
|
|
|
16
16
|
version:
|
|
17
17
|
description: "Exact grift-cli version to install (X.Y.Z, optionally aN/bN/rcN)"
|
|
18
18
|
required: false
|
|
19
|
-
default: "0.
|
|
19
|
+
default: "0.9.0"
|
|
20
20
|
install-source:
|
|
21
21
|
description: >-
|
|
22
22
|
Where to install grift-cli from: 'pypi' (default, production) or
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"artifacts":{"actor-index.json":{"content":{"actors":[{"actor_id":"a.-example","commit_count":2,"merge_commit_count":0,"nonmerge_commit_count":2},{"actor_id":"bob-example","commit_count":1,"merge_commit_count":0,"nonmerge_commit_count":1}],"limitations":["Actor IDs are repo-local Git primary-author clusters, not verified people.","Top selection is observed commit-count extraction, never a quality rank.","Rows are ordered by actor id, not by commit count; no row position means more or less than another."],"partition_digest":{"algorithm":"sha256","value":"42978b3b372a825ae079f8b8ce07ec794a8367a6c59fc2cc66bfb616227ed586"},"population":{"actor_count":2,"basis":"git_primary_author_cluster","human_commit_count":3,"window":{"basis":"legacy_head_date","end":"2024-02-02","start":"2023-08-06","unit":"date-range"}},"population_digest":{"algorithm":"sha256","value":"ca28b50186f4a9d0fe4ab74da0620a69e7239cdbdfb462ac4bc95995359c2003"},"report_kind":"actor_index","schema_version":"actor-index-v1","selection":{"actor_ids":["a.-example","bob-example"],"mode":"all","selected_count":2},"target":{"oid":{"algorithm":"sha1","value":"4f6a875cd4e574cd7501e158a5769c4716c805c0"}}},"kind":"json"},"actor-index.md":{"kind":"bytes","sha256":"c82310d2bb461bf880d9d5e845e9ae53b8bc97f34000cbadff7fe563582b3912","size":815},"actors/a.-example.json":{"content":{"account_status":"not_requested","accounts":[],"actor_id":"a.-example","basis":"git_primary_author_cluster","denominator":3,"limitations":["This card describes one repo-local cluster and is not a person or quality score."],"metrics":{},"n":2,"notices":["Provider accounts are display evidence only."],"partition_digest":{"algorithm":"sha256","value":"42978b3b372a825ae079f8b8ce07ec794a8367a6c59fc2cc66bfb616227ed586"},"population_digest":{"algorithm":"sha256","value":"ca28b50186f4a9d0fe4ab74da0620a69e7239cdbdfb462ac4bc95995359c2003"},"report_kind":"actor_card","schema_version":"actor-card-v1","target":{"oid":{"algorithm":"sha1","value":"4f6a875cd4e574cd7501e158a5769c4716c805c0"}},"window":{"basis":"legacy_head_date","end":"2024-02-02","start":"2023-08-06","unit":"date-range"}},"kind":"json"},"actors/a.-example.md":{"kind":"bytes","sha256":"4c97ee018dd1300ff3c615ba9e2100d83475b77e1d902bfcfa7aedde040e9353","size":388},"actors/bob-example.json":{"content":{"account_status":"not_requested","accounts":[],"actor_id":"bob-example","basis":"git_primary_author_cluster","denominator":3,"limitations":["This card describes one repo-local cluster and is not a person or quality score."],"metrics":{},"n":1,"notices":["Provider accounts are display evidence only."],"partition_digest":{"algorithm":"sha256","value":"42978b3b372a825ae079f8b8ce07ec794a8367a6c59fc2cc66bfb616227ed586"},"population_digest":{"algorithm":"sha256","value":"ca28b50186f4a9d0fe4ab74da0620a69e7239cdbdfb462ac4bc95995359c2003"},"report_kind":"actor_card","schema_version":"actor-card-v1","target":{"oid":{"algorithm":"sha1","value":"4f6a875cd4e574cd7501e158a5769c4716c805c0"}},"window":{"basis":"legacy_head_date","end":"2024-02-02","start":"2023-08-06","unit":"date-range"}},"kind":"json"},"actors/bob-example.md":{"kind":"bytes","sha256":"19b135edba1e3f92da25a4aca6f87851df516a94edb247cf468d97ac23ca5459","size":389},"collection-manifest.json":{"content":{"actor_index_digest":{"algorithm":"sha256","value":"67a40576964f730a2898c124ba4038488f14d5b33451faca5885a23048d1d756"},"full":{"actor_count":2,"digest":{"algorithm":"sha256","value":"ca28b50186f4a9d0fe4ab74da0620a69e7239cdbdfb462ac4bc95995359c2003"},"human_commit_count":3,"links":{"index_json":"actor-index.json","index_markdown":"actor-index.md","repo_json":"repo-report.json","repo_markdown":"repo-report.md"}},"members":[{"bytes":"<VERIFIED:derived-member-metadata>","media_type":"application/json","path":"actor-index.json","sha256":"<VERIFIED:derived-member-metadata>"},{"bytes":"<VERIFIED:derived-member-metadata>","media_type":"text/markdown","path":"actor-index.md","sha256":"<VERIFIED:derived-member-metadata>"},{"bytes":"<VERIFIED:derived-member-metadata>","media_type":"application/json","path":"actors/a.-example.json","sha256":"<VERIFIED:derived-member-metadata>"},{"bytes":"<VERIFIED:derived-member-metadata>","media_type":"text/markdown","path":"actors/a.-example.md","sha256":"<VERIFIED:derived-member-metadata>"},{"bytes":"<VERIFIED:derived-member-metadata>","media_type":"application/json","path":"actors/bob-example.json","sha256":"<VERIFIED:derived-member-metadata>"},{"bytes":"<VERIFIED:derived-member-metadata>","media_type":"text/markdown","path":"actors/bob-example.md","sha256":"<VERIFIED:derived-member-metadata>"},{"bytes":"<VERIFIED:derived-member-metadata>","media_type":"application/json","path":"repo-report.json","sha256":"<VERIFIED:derived-member-metadata>"},{"bytes":"<VERIFIED:derived-member-metadata>","media_type":"text/markdown","path":"repo-report.md","sha256":"<VERIFIED:derived-member-metadata>"}],"partition_digest":{"algorithm":"sha256","value":"42978b3b372a825ae079f8b8ce07ec794a8367a6c59fc2cc66bfb616227ed586"},"population_digest":{"algorithm":"sha256","value":"ca28b50186f4a9d0fe4ab74da0620a69e7239cdbdfb462ac4bc95995359c2003"},"schema_version":"actor-artifact-manifest-v1","selection":{"actor_count":2,"actor_ids":["a.-example","bob-example"],"digest":{"algorithm":"sha256","value":"0bf45a5883daa41027e2c630e360c8103d037b60329bc49b48222e1801cdbe6c"},"links":[{"actor_id":"a.-example","json":"actors/a.-example.json","markdown":"actors/a.-example.md"},{"actor_id":"bob-example","json":"actors/bob-example.json","markdown":"actors/bob-example.md"}],"mode":"all"},"target":{"oid":{"algorithm":"sha1","value":"4f6a875cd4e574cd7501e158a5769c4716c805c0"}}},"kind":"json"},"repo-report.json":{"content":{"actor_index_digest":{"algorithm":"sha256","value":"67a40576964f730a2898c124ba4038488f14d5b33451faca5885a23048d1d756"},"attribution":{"actor_partition":{"definition":"repo_local_git_primary_author_cluster","object_format":"sha1","partition_digest":"42978b3b372a825ae079f8b8ce07ec794a8367a6c59fc2cc66bfb616227ed586","provider_enrichment_changes_partition":false,"repo_scope_digest":"d8a8cf82c7d0d8ebf468bd0bc890561f0d229747b67f08b83270e0d9bb050337","sha_to_actor_digest":"b7951a806c48b294bb800bd869d33dd87b7c09638296490df64a18e4839e78b7"},"attributed_commit_count":3,"attribution_coverage":{"kind":"observed","sample_size":3,"unit":"ratio","value":1.0},"attribution_human_including_merges":3,"attribution_unresolved_commit_count":0,"bot_count":1,"coauthored_count":0,"human_commit_count":3,"mailmap_present":false,"merge_count":0,"observed_actor_count":2,"population_identity":"repo_human_nonmerge_commits + merge_count = attribution_human_including_merges + attribution_unresolved_commit_count","public_join":{"account_conflict_count":0,"ambiguous":0,"commit_login_count":0,"count_note":"fetched_login_count is a legacy unbound account-list count and is not a commit-author join; production CAS collection leaves it null; commit_login_count = distinct stable accounts proven by CAS commit OID evidence","fetched_login_count":null,"matched":0,"public_handle_actors":0,"unmatched":0},"repo_human_nonmerge_commits":3,"unresolved_commit_count":0,"unresolved_definitions":{"attribution_unresolved":"no stable actor key after bot exclusion","origin_unresolved":"origin class unresolved (undecidable email)"}},"input_coverage":{"event_window":{"kind":"not_observed","reason":"bound_export_not_provided"},"forge":{"kind":"not_observed","provided":false,"reason":"forge_export_not_provided"},"git":{"kind":"observed","provided":true,"unit":"boolean","value":true},"git_window":{"days":180,"end":"2024-02-02","start":"2023-08-06","unit":"days"},"public_forge":{"kind":"not_observed","provider_api_terms":{"kind":"not_observed","reason":"provider_api_terms_not_recorded"},"reason":"public_evidence_not_provided","repository_license":{"definition_version":"revision-license-v1","digest":{"algorithm":"sha256","value":"55ed6a805650a8c7dceedc1c5094f39bf5fc1fcbada2f7587d76b63951d13b91"},"files":[],"status":"not_observed","target_oid":{"algorithm":"sha1","value":"4f6a875cd4e574cd7501e158a5769c4716c805c0"},"terms_status":"separate_from_license_evidence"}},"tracker":{"kind":"not_observed","provided":false,"reason":"tracker_export_not_provided"},"tracker_window":{"kind":"not_observed","reason":"tracker_export_not_provided"},"window_alignment":{"kind":"not_observed","reason":"event_window_not_provided"}},"limitations":["この数値は、過去の Git / ローカル export に残った変更の形を示します。人の優劣、職種の確定、採用の合否、将来の成果を示すものではありません。","これは変更提出の時系列であり、実際の労働時間、勤怠、能力、納期遵守を測るものではありません。","forge export が提供されていないため、review は観測できません。Git の merge commit 比率を pull request review とは呼びません。","tracker export が提供されていないため、issue triage / milestone coordination は観測できません。これは活動が無かったことを意味しません。","Actor IDs are repo-local Git primary-author clusters, not verified people.","Provider enrichment is display evidence and cannot change the actor partition."],"metrics":{"human_nonmerge_commit_share":{"definition_version":"tep-v0.8.0-2026-10-25","denominator":3,"kind":"observed","limitations":["This is a population accounting ratio, not a quality or productivity score."],"numerator":3,"unit":"commit_share","value":1.0,"window":{"basis":"legacy_head_date","end":"2024-02-02","start":"2023-08-06","unit":"date-range"}}},"notices":["この数値は、過去の Git / ローカル export に残った変更の形を示します。人の優劣、職種の確定、採用の合否、将来の成果を示すものではありません。","Evidence, not a score, rank, hiring decision, or personhood claim."],"population":{"actor_count":2,"basis":"git_primary_author_cluster","human_commit_count":3,"merge_commit_count":0,"nonmerge_commit_count":3,"partition_digest":{"algorithm":"sha256","value":"42978b3b372a825ae079f8b8ce07ec794a8367a6c59fc2cc66bfb616227ed586"},"population_digest":{"algorithm":"sha256","value":"ca28b50186f4a9d0fe4ab74da0620a69e7239cdbdfb462ac4bc95995359c2003"}},"provenance":{"analysis_scope":"repo","analyzed_at":"<D0:runtime>","analyzed_commit_sha":"4f6a875cd4e574cd7501e158a5769c4716c805c0","definition_version":"tep-v0.8.0-2026-10-25","input_digests":{"benchmark_manifest":null,"forge":null,"forge_binding":null,"license_evidence":{"algorithm":"sha256","value":"55ed6a805650a8c7dceedc1c5094f39bf5fc1fcbada2f7587d76b63951d13b91"},"public_evidence":null,"tagset":"e23447ea9c7a5c03a75cdd722bf84fbe40befc886979e8c1343852938c945cc9","tracker":null,"tracker_binding":null},"revision_completeness":{"complete":true,"promisor":false,"shallow":false},"tagset_digest":"e23447ea9c7a5c03a75cdd722bf84fbe40befc886979e8c1343852938c945cc9","target_oid":{"algorithm":"sha1","value":"4f6a875cd4e574cd7501e158a5769c4716c805c0"},"tool_name":"grift","tool_version":"0.8.0"},"report_kind":"evidence","schema_version":"report-v2","subject":{"kind":"repo","selection":"repo_all_human"},"target":{"oid":{"algorithm":"sha1","value":"4f6a875cd4e574cd7501e158a5769c4716c805c0"}},"window":{"basis":"legacy_head_date","end":"2024-02-02","start":"2023-08-06","unit":"date-range"}},"kind":"json"},"repo-report.md":{"kind":"bytes","sha256":"ef0a81e58bed48ab0d3b9bbc45cc49ae8e184c1842f134330162e99182f3f050","size":890}},"case_id":"actor-partition","commands":{"repo":{"exit_code":0},"verify":{"exit_code":0,"mode":"strict_actor_collection","stdout":"VERIFIED: actor collection 8 member(s), full=2, selected=2"}},"schema_version":"tep-v060-golden-observation-v1","target_oid":{"algorithm":"sha1","value":"4f6a875cd4e574cd7501e158a5769c4716c805c0"}}
|
|
1
|
+
{"artifacts":{"actor-index.json":{"content":{"actors":[{"actor_id":"a.-example","commit_count":2,"merge_commit_count":0,"nonmerge_commit_count":2},{"actor_id":"bob-example","commit_count":1,"merge_commit_count":0,"nonmerge_commit_count":1}],"limitations":["Actor IDs are repo-local Git primary-author clusters, not verified people.","Top selection is observed commit-count extraction, never a quality rank.","Rows are ordered by actor id, not by commit count; no row position means more or less than another."],"partition_digest":{"algorithm":"sha256","value":"42978b3b372a825ae079f8b8ce07ec794a8367a6c59fc2cc66bfb616227ed586"},"population":{"actor_count":2,"basis":"git_primary_author_cluster","human_commit_count":3,"window":{"basis":"legacy_head_date","end":"2024-02-02","start":"2023-08-06","unit":"date-range"}},"population_digest":{"algorithm":"sha256","value":"ca28b50186f4a9d0fe4ab74da0620a69e7239cdbdfb462ac4bc95995359c2003"},"report_kind":"actor_index","schema_version":"actor-index-v1","selection":{"actor_ids":["a.-example","bob-example"],"mode":"all","selected_count":2},"target":{"oid":{"algorithm":"sha1","value":"4f6a875cd4e574cd7501e158a5769c4716c805c0"}}},"kind":"json"},"actor-index.md":{"kind":"bytes","sha256":"c82310d2bb461bf880d9d5e845e9ae53b8bc97f34000cbadff7fe563582b3912","size":815},"actors/a.-example.json":{"content":{"account_status":"not_requested","accounts":[],"actor_id":"a.-example","basis":"git_primary_author_cluster","denominator":3,"limitations":["This card describes one repo-local cluster and is not a person or quality score."],"metrics":{},"n":2,"notices":["Provider accounts are display evidence only."],"partition_digest":{"algorithm":"sha256","value":"42978b3b372a825ae079f8b8ce07ec794a8367a6c59fc2cc66bfb616227ed586"},"population_digest":{"algorithm":"sha256","value":"ca28b50186f4a9d0fe4ab74da0620a69e7239cdbdfb462ac4bc95995359c2003"},"report_kind":"actor_card","schema_version":"actor-card-v1","target":{"oid":{"algorithm":"sha1","value":"4f6a875cd4e574cd7501e158a5769c4716c805c0"}},"window":{"basis":"legacy_head_date","end":"2024-02-02","start":"2023-08-06","unit":"date-range"}},"kind":"json"},"actors/a.-example.md":{"kind":"bytes","sha256":"4c97ee018dd1300ff3c615ba9e2100d83475b77e1d902bfcfa7aedde040e9353","size":388},"actors/bob-example.json":{"content":{"account_status":"not_requested","accounts":[],"actor_id":"bob-example","basis":"git_primary_author_cluster","denominator":3,"limitations":["This card describes one repo-local cluster and is not a person or quality score."],"metrics":{},"n":1,"notices":["Provider accounts are display evidence only."],"partition_digest":{"algorithm":"sha256","value":"42978b3b372a825ae079f8b8ce07ec794a8367a6c59fc2cc66bfb616227ed586"},"population_digest":{"algorithm":"sha256","value":"ca28b50186f4a9d0fe4ab74da0620a69e7239cdbdfb462ac4bc95995359c2003"},"report_kind":"actor_card","schema_version":"actor-card-v1","target":{"oid":{"algorithm":"sha1","value":"4f6a875cd4e574cd7501e158a5769c4716c805c0"}},"window":{"basis":"legacy_head_date","end":"2024-02-02","start":"2023-08-06","unit":"date-range"}},"kind":"json"},"actors/bob-example.md":{"kind":"bytes","sha256":"19b135edba1e3f92da25a4aca6f87851df516a94edb247cf468d97ac23ca5459","size":389},"collection-manifest.json":{"content":{"actor_index_digest":{"algorithm":"sha256","value":"67a40576964f730a2898c124ba4038488f14d5b33451faca5885a23048d1d756"},"full":{"actor_count":2,"digest":{"algorithm":"sha256","value":"ca28b50186f4a9d0fe4ab74da0620a69e7239cdbdfb462ac4bc95995359c2003"},"human_commit_count":3,"links":{"index_json":"actor-index.json","index_markdown":"actor-index.md","repo_json":"repo-report.json","repo_markdown":"repo-report.md"}},"members":[{"bytes":"<VERIFIED:derived-member-metadata>","media_type":"application/json","path":"actor-index.json","sha256":"<VERIFIED:derived-member-metadata>"},{"bytes":"<VERIFIED:derived-member-metadata>","media_type":"text/markdown","path":"actor-index.md","sha256":"<VERIFIED:derived-member-metadata>"},{"bytes":"<VERIFIED:derived-member-metadata>","media_type":"application/json","path":"actors/a.-example.json","sha256":"<VERIFIED:derived-member-metadata>"},{"bytes":"<VERIFIED:derived-member-metadata>","media_type":"text/markdown","path":"actors/a.-example.md","sha256":"<VERIFIED:derived-member-metadata>"},{"bytes":"<VERIFIED:derived-member-metadata>","media_type":"application/json","path":"actors/bob-example.json","sha256":"<VERIFIED:derived-member-metadata>"},{"bytes":"<VERIFIED:derived-member-metadata>","media_type":"text/markdown","path":"actors/bob-example.md","sha256":"<VERIFIED:derived-member-metadata>"},{"bytes":"<VERIFIED:derived-member-metadata>","media_type":"application/json","path":"repo-report.json","sha256":"<VERIFIED:derived-member-metadata>"},{"bytes":"<VERIFIED:derived-member-metadata>","media_type":"text/markdown","path":"repo-report.md","sha256":"<VERIFIED:derived-member-metadata>"}],"partition_digest":{"algorithm":"sha256","value":"42978b3b372a825ae079f8b8ce07ec794a8367a6c59fc2cc66bfb616227ed586"},"population_digest":{"algorithm":"sha256","value":"ca28b50186f4a9d0fe4ab74da0620a69e7239cdbdfb462ac4bc95995359c2003"},"schema_version":"actor-artifact-manifest-v1","selection":{"actor_count":2,"actor_ids":["a.-example","bob-example"],"digest":{"algorithm":"sha256","value":"0bf45a5883daa41027e2c630e360c8103d037b60329bc49b48222e1801cdbe6c"},"links":[{"actor_id":"a.-example","json":"actors/a.-example.json","markdown":"actors/a.-example.md"},{"actor_id":"bob-example","json":"actors/bob-example.json","markdown":"actors/bob-example.md"}],"mode":"all"},"target":{"oid":{"algorithm":"sha1","value":"4f6a875cd4e574cd7501e158a5769c4716c805c0"}}},"kind":"json"},"repo-report.json":{"content":{"actor_index_digest":{"algorithm":"sha256","value":"67a40576964f730a2898c124ba4038488f14d5b33451faca5885a23048d1d756"},"attribution":{"actor_partition":{"definition":"repo_local_git_primary_author_cluster","object_format":"sha1","partition_digest":"42978b3b372a825ae079f8b8ce07ec794a8367a6c59fc2cc66bfb616227ed586","provider_enrichment_changes_partition":false,"repo_scope_digest":"d8a8cf82c7d0d8ebf468bd0bc890561f0d229747b67f08b83270e0d9bb050337","sha_to_actor_digest":"b7951a806c48b294bb800bd869d33dd87b7c09638296490df64a18e4839e78b7"},"attributed_commit_count":3,"attribution_coverage":{"kind":"observed","sample_size":3,"unit":"ratio","value":1.0},"attribution_human_including_merges":3,"attribution_unresolved_commit_count":0,"bot_count":1,"coauthored_count":0,"human_commit_count":3,"mailmap_present":false,"merge_count":0,"observed_actor_count":2,"population_identity":"repo_human_nonmerge_commits + merge_count = attribution_human_including_merges + attribution_unresolved_commit_count","public_join":{"account_conflict_count":0,"ambiguous":0,"commit_login_count":0,"count_note":"fetched_login_count is a legacy unbound account-list count and is not a commit-author join; production CAS collection leaves it null; commit_login_count = distinct stable accounts proven by CAS commit OID evidence","fetched_login_count":null,"matched":0,"public_handle_actors":0,"unmatched":0},"repo_human_nonmerge_commits":3,"unresolved_commit_count":0,"unresolved_definitions":{"attribution_unresolved":"no stable actor key after bot exclusion","origin_unresolved":"origin class unresolved (undecidable email)"}},"input_coverage":{"event_window":{"kind":"not_observed","reason":"bound_export_not_provided"},"forge":{"kind":"not_observed","provided":false,"reason":"forge_export_not_provided"},"git":{"kind":"observed","provided":true,"unit":"boolean","value":true},"git_window":{"days":180,"end":"2024-02-02","start":"2023-08-06","unit":"days"},"public_forge":{"kind":"not_observed","provider_api_terms":{"kind":"not_observed","reason":"provider_api_terms_not_recorded"},"reason":"public_evidence_not_provided","repository_license":{"definition_version":"revision-license-v1","digest":{"algorithm":"sha256","value":"55ed6a805650a8c7dceedc1c5094f39bf5fc1fcbada2f7587d76b63951d13b91"},"files":[],"status":"not_observed","target_oid":{"algorithm":"sha1","value":"4f6a875cd4e574cd7501e158a5769c4716c805c0"},"terms_status":"separate_from_license_evidence"}},"tracker":{"kind":"not_observed","provided":false,"reason":"tracker_export_not_provided"},"tracker_window":{"kind":"not_observed","reason":"tracker_export_not_provided"},"window_alignment":{"kind":"not_observed","reason":"event_window_not_provided"}},"limitations":["この数値は、過去の Git / ローカル export に残った変更の形を示します。人の優劣、職種の確定、採用の合否、将来の成果を示すものではありません。","これは変更提出の時系列であり、実際の労働時間、勤怠、能力、納期遵守を測るものではありません。","forge export が提供されていないため、review は観測できません。Git の merge commit 比率を pull request review とは呼びません。","tracker export が提供されていないため、issue triage / milestone coordination は観測できません。これは活動が無かったことを意味しません。","Actor IDs are repo-local Git primary-author clusters, not verified people.","Provider enrichment is display evidence and cannot change the actor partition."],"metrics":{"human_nonmerge_commit_share":{"definition_version":"tep-v0.9.0-2026-10-26","denominator":3,"kind":"observed","limitations":["This is a population accounting ratio, not a quality or productivity score."],"numerator":3,"unit":"commit_share","value":1.0,"window":{"basis":"legacy_head_date","end":"2024-02-02","start":"2023-08-06","unit":"date-range"}}},"notices":["この数値は、過去の Git / ローカル export に残った変更の形を示します。人の優劣、職種の確定、採用の合否、将来の成果を示すものではありません。","Evidence, not a score, rank, hiring decision, or personhood claim."],"population":{"actor_count":2,"basis":"git_primary_author_cluster","human_commit_count":3,"merge_commit_count":0,"nonmerge_commit_count":3,"partition_digest":{"algorithm":"sha256","value":"42978b3b372a825ae079f8b8ce07ec794a8367a6c59fc2cc66bfb616227ed586"},"population_digest":{"algorithm":"sha256","value":"ca28b50186f4a9d0fe4ab74da0620a69e7239cdbdfb462ac4bc95995359c2003"}},"provenance":{"analysis_scope":"repo","analyzed_at":"<D0:runtime>","analyzed_commit_sha":"4f6a875cd4e574cd7501e158a5769c4716c805c0","definition_version":"tep-v0.9.0-2026-10-26","input_digests":{"benchmark_manifest":null,"forge":null,"forge_binding":null,"license_evidence":{"algorithm":"sha256","value":"55ed6a805650a8c7dceedc1c5094f39bf5fc1fcbada2f7587d76b63951d13b91"},"public_evidence":null,"tagset":"e23447ea9c7a5c03a75cdd722bf84fbe40befc886979e8c1343852938c945cc9","tracker":null,"tracker_binding":null},"revision_completeness":{"complete":true,"promisor":false,"shallow":false},"tagset_digest":"e23447ea9c7a5c03a75cdd722bf84fbe40befc886979e8c1343852938c945cc9","target_oid":{"algorithm":"sha1","value":"4f6a875cd4e574cd7501e158a5769c4716c805c0"},"tool_name":"grift","tool_version":"0.9.0"},"report_kind":"evidence","schema_version":"report-v2","subject":{"kind":"repo","selection":"repo_all_human"},"target":{"oid":{"algorithm":"sha1","value":"4f6a875cd4e574cd7501e158a5769c4716c805c0"}},"window":{"basis":"legacy_head_date","end":"2024-02-02","start":"2023-08-06","unit":"date-range"}},"kind":"json"},"repo-report.md":{"kind":"bytes","sha256":"ef0a81e58bed48ab0d3b9bbc45cc49ae8e184c1842f134330162e99182f3f050","size":890}},"case_id":"actor-partition","commands":{"repo":{"exit_code":0},"verify":{"exit_code":0,"mode":"strict_actor_collection","stdout":"VERIFIED: actor collection 8 member(s), full=2, selected=2"}},"schema_version":"tep-v060-golden-observation-v1","target_oid":{"algorithm":"sha1","value":"4f6a875cd4e574cd7501e158a5769c4716c805c0"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"cases":[{"expected":"expected/actor-partition.json","expected_artifacts":["actor-index.json","actor-index.md","actors/a.-example.json","actors/a.-example.md","actors/bob-example.json","actors/bob-example.md","collection-manifest.json","repo-report.json","repo-report.md"],"fixture":"fixtures/actor-partition-repo.json","id":"actor-partition","timeout_seconds":30}],"drift_policy_version":"v060-drift-policy-1","migration_log":{"path":"migrations.json","sha256":"
|
|
1
|
+
{"cases":[{"expected":"expected/actor-partition.json","expected_artifacts":["actor-index.json","actor-index.md","actors/a.-example.json","actors/a.-example.md","actors/bob-example.json","actors/bob-example.md","collection-manifest.json","repo-report.json","repo-report.md"],"fixture":"fixtures/actor-partition-repo.json","id":"actor-partition","timeout_seconds":30}],"drift_policy_version":"v060-drift-policy-1","migration_log":{"path":"migrations.json","sha256":"33a368cb6425ecbaef8438f9d3dc1965a61a199c8a31ea8b41debfa85718ac42"},"registered_files":{"expected/actor-partition.json":"e09a19fc87f866c0c21f5880f3b49f05edf512d9593bd676bfaac6e62ef04d08","fixtures/actor-partition-repo.json":"81f522c0d286dec66cb9345326dd8eba9b36c7eca8dc7b0a46a77d8b14db2cbc"},"schema_version":"tep-v060-golden-manifest-v2"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"entries":[{"approval":{"approved_at":"2026-08-31T09:10:31+09:00","approved_by":"human:teradakousuke","requirements":["ACT-03","EXT-01","FORGE-02","SCH-01"],"status":"approved"},"case_id":"actor-partition","difference_count":41,"drift_counts":{"D0":0,"D1":0,"D2":1,"D3":39,"D4":1},"migration_id":"gold-actor-partition-0001","new_expected_sha256":"fa198ed3c504ce24aadc4ca6f02d2c4fe4a1b34f5e21a09c5ec42176630059b8","old_expected_sha256":"bda394b41090507db696d92a5ba79e56b29bdb1a43e6f391f7b363665b9f1a2c","old_expected_state":"absent","previous_entry_sha256":"5e758b856405edd4b1961ad103ba02e43fefe902ff1168e9a58cb30fe1de6fbe","record_sha256":"40cd03bf0db8ec725e56eb3b25575f6846c61447cdda240e032266edae72706d","registered_files":{"expected/actor-partition.json":"fa198ed3c504ce24aadc4ca6f02d2c4fe4a1b34f5e21a09c5ec42176630059b8","fixtures/actor-partition-repo.json":"81f522c0d286dec66cb9345326dd8eba9b36c7eca8dc7b0a46a77d8b14db2cbc"},"verdict":"MIGRATION_REQUIRED"},{"approval":{"approved_at":"2026-09-04T08:49:59Z","approved_by":"human:teradakousuke","requirements":["REL-070"],"status":"approved"},"case_id":"actor-partition","difference_count":3,"drift_counts":{"D0":0,"D1":0,"D2":0,"D3":1,"D4":2},"migration_id":"gold-actor-partition-0002","new_expected_sha256":"52ca645c1c293a39f1fab19c6b019b9165e70352ac438853274c5effcad0d624","old_expected_sha256":"fa198ed3c504ce24aadc4ca6f02d2c4fe4a1b34f5e21a09c5ec42176630059b8","old_expected_state":"registered","previous_entry_sha256":"40cd03bf0db8ec725e56eb3b25575f6846c61447cdda240e032266edae72706d","record_sha256":"996f3c3d918d8619acf675cc7db61462a06e76eea0ac24b9f63f3855cebece3d","registered_files":{"expected/actor-partition.json":"52ca645c1c293a39f1fab19c6b019b9165e70352ac438853274c5effcad0d624","fixtures/actor-partition-repo.json":"81f522c0d286dec66cb9345326dd8eba9b36c7eca8dc7b0a46a77d8b14db2cbc"},"verdict":"MIGRATION_REQUIRED"},{"approval":{"approved_at":"2026-09-06T08:28:43Z","approved_by":"human:teradakousuke","requirements":["REL-071"],"status":"approved"},"case_id":"actor-partition","difference_count":3,"drift_counts":{"D0":0,"D1":0,"D2":0,"D3":1,"D4":2},"migration_id":"gold-actor-partition-0003","new_expected_sha256":"7dd6b20dd8d80be8321a0f58094adf299e631eeb3c2bcac5e42ab5028e906fa5","old_expected_sha256":"52ca645c1c293a39f1fab19c6b019b9165e70352ac438853274c5effcad0d624","old_expected_state":"registered","previous_entry_sha256":"996f3c3d918d8619acf675cc7db61462a06e76eea0ac24b9f63f3855cebece3d","record_sha256":"dd8fd0bce270330363dfa8532b9c30ed203297810b3f6f6ea1b8d29d7ab094cf","registered_files":{"expected/actor-partition.json":"7dd6b20dd8d80be8321a0f58094adf299e631eeb3c2bcac5e42ab5028e906fa5","fixtures/actor-partition-repo.json":"81f522c0d286dec66cb9345326dd8eba9b36c7eca8dc7b0a46a77d8b14db2cbc"},"verdict":"MIGRATION_REQUIRED"},{"approval":{"approved_at":"2026-09-07T10:35:00Z","approved_by":"human:teradakousuke","requirements":["REL-072"],"status":"approved"},"case_id":"actor-partition","difference_count":3,"drift_counts":{"D0":0,"D1":0,"D2":0,"D3":1,"D4":2},"migration_id":"gold-actor-partition-0004","new_expected_sha256":"1d48bc6d302171f3556d2dd2a7130a6cd4c8b33bc3039780a1f0d3db99a2cc25","old_expected_sha256":"7dd6b20dd8d80be8321a0f58094adf299e631eeb3c2bcac5e42ab5028e906fa5","old_expected_state":"registered","previous_entry_sha256":"dd8fd0bce270330363dfa8532b9c30ed203297810b3f6f6ea1b8d29d7ab094cf","record_sha256":"e57a2f687038179ed0f519a874bd7c4290428f62bd1990a9c883f8a39224b0a3","registered_files":{"expected/actor-partition.json":"1d48bc6d302171f3556d2dd2a7130a6cd4c8b33bc3039780a1f0d3db99a2cc25","fixtures/actor-partition-repo.json":"81f522c0d286dec66cb9345326dd8eba9b36c7eca8dc7b0a46a77d8b14db2cbc"},"verdict":"MIGRATION_REQUIRED"},{"approval":{"approved_at":"2026-10-25T10:14:40Z","approved_by":"human:teradakousuke","requirements":["REL-080"],"status":"approved"},"case_id":"actor-partition","difference_count":9,"drift_counts":{"D0":0,"D1":0,"D2":0,"D3":7,"D4":2},"migration_id":"gold-actor-partition-0005","new_expected_sha256":"85ca714e0013f66d9d459cc0a1c0038d36f5821bf233806460fcf554a9ec3f5f","old_expected_sha256":"1d48bc6d302171f3556d2dd2a7130a6cd4c8b33bc3039780a1f0d3db99a2cc25","old_expected_state":"registered","previous_entry_sha256":"e57a2f687038179ed0f519a874bd7c4290428f62bd1990a9c883f8a39224b0a3","record_sha256":"c5458640d2482aec2b73f25c71b0160f3e460e1a92585b28f9855f831c7311ce","registered_files":{"expected/actor-partition.json":"85ca714e0013f66d9d459cc0a1c0038d36f5821bf233806460fcf554a9ec3f5f","fixtures/actor-partition-repo.json":"81f522c0d286dec66cb9345326dd8eba9b36c7eca8dc7b0a46a77d8b14db2cbc"},"verdict":"MIGRATION_REQUIRED"}],"schema_version":"tep-v060-golden-migration-log-v2"}
|
|
1
|
+
{"entries":[{"approval":{"approved_at":"2026-08-31T09:10:31+09:00","approved_by":"human:teradakousuke","requirements":["ACT-03","EXT-01","FORGE-02","SCH-01"],"status":"approved"},"case_id":"actor-partition","difference_count":41,"drift_counts":{"D0":0,"D1":0,"D2":1,"D3":39,"D4":1},"migration_id":"gold-actor-partition-0001","new_expected_sha256":"fa198ed3c504ce24aadc4ca6f02d2c4fe4a1b34f5e21a09c5ec42176630059b8","old_expected_sha256":"bda394b41090507db696d92a5ba79e56b29bdb1a43e6f391f7b363665b9f1a2c","old_expected_state":"absent","previous_entry_sha256":"5e758b856405edd4b1961ad103ba02e43fefe902ff1168e9a58cb30fe1de6fbe","record_sha256":"40cd03bf0db8ec725e56eb3b25575f6846c61447cdda240e032266edae72706d","registered_files":{"expected/actor-partition.json":"fa198ed3c504ce24aadc4ca6f02d2c4fe4a1b34f5e21a09c5ec42176630059b8","fixtures/actor-partition-repo.json":"81f522c0d286dec66cb9345326dd8eba9b36c7eca8dc7b0a46a77d8b14db2cbc"},"verdict":"MIGRATION_REQUIRED"},{"approval":{"approved_at":"2026-09-04T08:49:59Z","approved_by":"human:teradakousuke","requirements":["REL-070"],"status":"approved"},"case_id":"actor-partition","difference_count":3,"drift_counts":{"D0":0,"D1":0,"D2":0,"D3":1,"D4":2},"migration_id":"gold-actor-partition-0002","new_expected_sha256":"52ca645c1c293a39f1fab19c6b019b9165e70352ac438853274c5effcad0d624","old_expected_sha256":"fa198ed3c504ce24aadc4ca6f02d2c4fe4a1b34f5e21a09c5ec42176630059b8","old_expected_state":"registered","previous_entry_sha256":"40cd03bf0db8ec725e56eb3b25575f6846c61447cdda240e032266edae72706d","record_sha256":"996f3c3d918d8619acf675cc7db61462a06e76eea0ac24b9f63f3855cebece3d","registered_files":{"expected/actor-partition.json":"52ca645c1c293a39f1fab19c6b019b9165e70352ac438853274c5effcad0d624","fixtures/actor-partition-repo.json":"81f522c0d286dec66cb9345326dd8eba9b36c7eca8dc7b0a46a77d8b14db2cbc"},"verdict":"MIGRATION_REQUIRED"},{"approval":{"approved_at":"2026-09-06T08:28:43Z","approved_by":"human:teradakousuke","requirements":["REL-071"],"status":"approved"},"case_id":"actor-partition","difference_count":3,"drift_counts":{"D0":0,"D1":0,"D2":0,"D3":1,"D4":2},"migration_id":"gold-actor-partition-0003","new_expected_sha256":"7dd6b20dd8d80be8321a0f58094adf299e631eeb3c2bcac5e42ab5028e906fa5","old_expected_sha256":"52ca645c1c293a39f1fab19c6b019b9165e70352ac438853274c5effcad0d624","old_expected_state":"registered","previous_entry_sha256":"996f3c3d918d8619acf675cc7db61462a06e76eea0ac24b9f63f3855cebece3d","record_sha256":"dd8fd0bce270330363dfa8532b9c30ed203297810b3f6f6ea1b8d29d7ab094cf","registered_files":{"expected/actor-partition.json":"7dd6b20dd8d80be8321a0f58094adf299e631eeb3c2bcac5e42ab5028e906fa5","fixtures/actor-partition-repo.json":"81f522c0d286dec66cb9345326dd8eba9b36c7eca8dc7b0a46a77d8b14db2cbc"},"verdict":"MIGRATION_REQUIRED"},{"approval":{"approved_at":"2026-09-07T10:35:00Z","approved_by":"human:teradakousuke","requirements":["REL-072"],"status":"approved"},"case_id":"actor-partition","difference_count":3,"drift_counts":{"D0":0,"D1":0,"D2":0,"D3":1,"D4":2},"migration_id":"gold-actor-partition-0004","new_expected_sha256":"1d48bc6d302171f3556d2dd2a7130a6cd4c8b33bc3039780a1f0d3db99a2cc25","old_expected_sha256":"7dd6b20dd8d80be8321a0f58094adf299e631eeb3c2bcac5e42ab5028e906fa5","old_expected_state":"registered","previous_entry_sha256":"dd8fd0bce270330363dfa8532b9c30ed203297810b3f6f6ea1b8d29d7ab094cf","record_sha256":"e57a2f687038179ed0f519a874bd7c4290428f62bd1990a9c883f8a39224b0a3","registered_files":{"expected/actor-partition.json":"1d48bc6d302171f3556d2dd2a7130a6cd4c8b33bc3039780a1f0d3db99a2cc25","fixtures/actor-partition-repo.json":"81f522c0d286dec66cb9345326dd8eba9b36c7eca8dc7b0a46a77d8b14db2cbc"},"verdict":"MIGRATION_REQUIRED"},{"approval":{"approved_at":"2026-10-25T10:14:40Z","approved_by":"human:teradakousuke","requirements":["REL-080"],"status":"approved"},"case_id":"actor-partition","difference_count":9,"drift_counts":{"D0":0,"D1":0,"D2":0,"D3":7,"D4":2},"migration_id":"gold-actor-partition-0005","new_expected_sha256":"85ca714e0013f66d9d459cc0a1c0038d36f5821bf233806460fcf554a9ec3f5f","old_expected_sha256":"1d48bc6d302171f3556d2dd2a7130a6cd4c8b33bc3039780a1f0d3db99a2cc25","old_expected_state":"registered","previous_entry_sha256":"e57a2f687038179ed0f519a874bd7c4290428f62bd1990a9c883f8a39224b0a3","record_sha256":"c5458640d2482aec2b73f25c71b0160f3e460e1a92585b28f9855f831c7311ce","registered_files":{"expected/actor-partition.json":"85ca714e0013f66d9d459cc0a1c0038d36f5821bf233806460fcf554a9ec3f5f","fixtures/actor-partition-repo.json":"81f522c0d286dec66cb9345326dd8eba9b36c7eca8dc7b0a46a77d8b14db2cbc"},"verdict":"MIGRATION_REQUIRED"},{"approval":{"approved_at":"2026-10-26T12:14:18Z","approved_by":"human:teradakousuke","requirements":["REL-090"],"status":"approved"},"case_id":"actor-partition","difference_count":3,"drift_counts":{"D0":0,"D1":0,"D2":0,"D3":1,"D4":2},"migration_id":"gold-actor-partition-0006","new_expected_sha256":"e09a19fc87f866c0c21f5880f3b49f05edf512d9593bd676bfaac6e62ef04d08","old_expected_sha256":"85ca714e0013f66d9d459cc0a1c0038d36f5821bf233806460fcf554a9ec3f5f","old_expected_state":"registered","previous_entry_sha256":"c5458640d2482aec2b73f25c71b0160f3e460e1a92585b28f9855f831c7311ce","record_sha256":"ae268c78b7e60907d12a1b794a23a55410b4eaf512fb8ebb1a02618a127a212b","registered_files":{"expected/actor-partition.json":"e09a19fc87f866c0c21f5880f3b49f05edf512d9593bd676bfaac6e62ef04d08","fixtures/actor-partition-repo.json":"81f522c0d286dec66cb9345326dd8eba9b36c7eca8dc7b0a46a77d8b14db2cbc"},"verdict":"MIGRATION_REQUIRED"}],"schema_version":"tep-v060-golden-migration-log-v2"}
|
|
@@ -67,7 +67,8 @@ remote exact-head、必要な人間ゲート
|
|
|
67
67
|
| PKG-01 | version.py SSOT、sdist/wheel allowlist、runtime assets resources読込 | `pyproject.toml`; package smoke | dirty sentinel、member/secret scan、clean venv | REOPENED(REL-02/04/10)。確定hashはtag→PyPI再取得後のみ |
|
|
68
68
|
| NET-01 | 測定時の暗黙update checkなし | CLI | urlopenを例外化したanalyze | IMPLEMENTED / FINAL_VERIFICATION_PENDING(REL-10) |
|
|
69
69
|
| DOC-01 | README日英/norms/guideに境界と価値翻訳 | docs | claim/schema/version consistency | REOPENED(REL-07/09)。公開collection許可と単一Actor限定のnorms矛盾は `7564d1d` で修正、final全claim parity待ち |
|
|
70
|
-
| REL-
|
|
70
|
+
| REL-090 | v0.9.0 のリリース版数と定義版数を上げる。`__version__` = 0.9.0 / `DEFINITION_VERSION` = tep-v0.9.0-2026-10-26。面は増えず、actor・project・alignment の Markdown の先頭に進め方の文と面談の問いを出し(ADR-0002 段階 1)、Markdown から strength と relationship を外す。JSON は、alignment の relationship の決め方、`--as-of` のときの activity と role_profile、`--as-of` なしの観測日、宣言した identity に commit が無いときの cluster id の 4 つの場面で値が変わり、alignment-v1 の subject に同意の記録の `actor_consent`(任意)が増える。Markdown の 4 つの観点の呼び名を griftai.org にそろえ、照らし合わせの面談の問いは claimed かつ同意の記録があるときだけ出す。`DEFINITION_VERSION` を上げる根拠は版数追随に加えて、これらの値と出力の形が変わること。証跡 4 件(scenarios / scenarios-public / benchmark.json / golden)を 0.9.0 の source で再束縛する | `version.py`; `action.yml`; CHANGELOG; `docs/migration-v090.md`; `docs/adr/ADR-0002-trait-profile.md`; `docs/trait-profile.md`; `tests/test_v090_trait_tables.py`; `tests/test_v090_trait_profile.py`; `tests/test_v090_markdown_without_strength.py`; `tests/test_v090_v080_discrepancies.py`; `tests/test_v090_history_wording.py`; `tests/test_v090_role_profile_as_of.py`; `tests/test_v090_observation_date.py`; `tests/test_v090_namesake_cluster.py`; `tests/test_v090_site_names.py`; `tests/test_v090_alignment_consent.py`; `tests/test_v090_scenario_window_utc.py` | 各 PR の片側変異(決定表の docs だけを変える、量で文を選ぶ、`--as-of` で切らない、現地の日付に戻す、slug の予約を外す)が red | LOCALLY_VERIFIED(`test_v060_release_consistency.py` green、private registry `--replace` 6/6 PASS・source_drift 0・`--verify-registry` PASS(partition_digest と件数は 0.8.0 と一致、R01 の窓だけ UTC の日付で 1 日まえ)、public registry PR tier verdict PASS 3/3 かつ `--verify-registry --digest-only` PASS、`scripts/v070_benchmark.py --write` self-contained 6/6 hold。golden baseline は `gold-actor-partition-0006` として承認移行した(承認者 human:teradakousuke、approved_at 2026-10-26T12:14:18Z、要求 REL-090。ユーザーの承認は親セッション経由で、`--approve` のコマンドはユーザーが実行した)。drift は D3×1 tool_version / D4×2 definition_version、D0-D2 = 0。承認後の `scripts/v060_golden.py` は overall PASS(D0-D4 = 0)、`test_v060_golden_runner.py` は green) |
|
|
71
|
+
| REL-080 | v0.8.0 のリリース版数と定義版数を上げる。`__version__` = 0.8.0 / `DEFINITION_VERSION` = tep-v0.8.0-2026-10-25。面は増えず、actor を列挙する既定出力の行順(actor-index / actor_directory)を actor id 順にし、actor report-v2 / alignment の notices に選択性の固定文、report-v1 / report-v2 の limitations に活動日数の膨らませ方の開示文を載せる(ADR-0001 R1 / R4、norms §6)。`DEFINITION_VERSION` を上げる根拠は版数追随に加えて、これらの出力の形と内容が変わること。証跡 4 件(scenarios / scenarios-public / benchmark.json / golden)を 0.8.0 の source で再束縛する | `version.py`; `action.yml`; CHANGELOG; `docs/migration-v080.md`; `docs/adr/ADR-0001-v08-no-volume-ordering.md`; `tests/test_v080_actor_index_order.py`; `tests/test_v080_selectivity_notice.py`; `tests/test_v080_inflation_limitations.py` | 各 PR の片側変異(ソートを 0.7.x に戻す / 注記・開示文を外す)が red | LOCALLY_VERIFIED(release/v0.8.0 = PR #79 で main にマージ、merge commit ff60792。証跡 4 件を 0.8.0 の source で再束縛し、golden baseline は `gold-actor-partition-0005` として承認移行した。実測は `docs/migration-v080.md` の CI 節) |
|
|
71
72
|
| REL-072 | v0.7.2 のリリース版数と定義版数を上げる。`__version__` = 0.7.2 / `DEFINITION_VERSION` = tep-v0.7.2-2026-09-07。面は 1 つも増えず、commit ゼロの actor で report が 1 つも出なくなっていた 0.7.0 回帰(`$.context_profile` が oneOf のどの形にも当たらない)を直す patch release である。`DEFINITION_VERSION` を上げる根拠は版数追随に加えて、commit ゼロの actor の `context_profile` の形が変わること(0.7.1 ではそもそも report が出なかった)。あわせて P0 反証スイートを ci.yml に入れ、publish.yml と同じ baseline pin であることを機械照合する | `version.py`; `action.yml`; CHANGELOG; `docs/migration-v072.md`; `.github/workflows/ci.yml`; `tests/test_v072_empty_actor.py`; `tests/test_publish_baseline_pin.py` | P0 反証スイート 43/43(0.7.1 は 42/43); 片側変異 3 件(`prepare_inputs` の門番復元 / catalog の `language_composition` 固定復元 / ci.yml の pin 改変)がいずれも red | LOCALLY_VERIFIED(P0 43/43 rc=0、`test_v060_release_consistency.py` green、private registry `--verify-registry` rc=0 PASS、public registry PR tier verdict PASS かつ `--verify-registry --digest-only` rc=0、live gate summary `--verify-summary --expected-tier pr --expected-source-commit` VERIFIED、`scripts/v070_benchmark.py` self-contained 6/6 hold、`scripts/package_smoke.py` rc=0、intake parity VERIFIED 8/8。**golden baseline の migration は人間ゲート未通過**。dry-run の drift は D3×1 tool_version / D4×2 definition_version、D0-D2 = 0 で `baseline_update: forbidden_automatic`。`v060_golden.py` の `_HUMAN_APPROVER` が `human:` / `committee:` 以外の承認者を拒否するため、`scripts/v060_golden_baseline.py --case actor-partition --approve --requirement REL-072 --migration-id gold-actor-partition-0004 --approved-by human:<承認者> --approved-at <RFC3339>` を人間が実行するまで `test_v060_golden_runner.py::test_runner_executes_repo_and_verify_cli` は red) |
|
|
72
73
|
| REL-071 | v0.7.1 のリリース版数と定義版数を上げる。`__version__` = 0.7.1 / `DEFINITION_VERSION` = tep-v0.7.1-2026-09-06。面は 1 つも増えず、公開 Forge 取得の 2 つの欠陥(bot / app アカウントで exit 2、大きな commits ページの読み残し)を直す patch release である。golden baseline の drift は版数文字列 3 行のみで、観測値は 1 つも変わらない | `version.py`; CHANGELOG; `docs/migration-v071.md` | golden runner の drift 分類(D3×1 tool_version / D4×2 definition_version、D0-D2 = 0) | LOCALLY_VERIFIED(`test_v060_release_consistency.py` green、PR tier live gate verdict PASS、`scripts/v070_benchmark.py` self-contained 6/6 hold、intake parity VERIFIED 8/8。**golden baseline の migration は人間ゲート未通過**。`v060_golden.py` の `_HUMAN_APPROVER` が `human:` / `committee:` 以外の承認者を拒否するため、`scripts/v060_golden_baseline.py --case actor-partition --approve --requirement REL-071 --migration-id gold-actor-partition-0003 --approved-by human:<承認者> --approved-at <RFC3339>` を人間が実行するまで `test_v060_golden_runner.py::test_runner_executes_repo_and_verify_cli` は red) |
|
|
73
74
|
| REL-070 | v0.7.0 のリリース版数と定義版数を上げる。`__version__` = 0.7.0 / `DEFINITION_VERSION` = tep-v0.7.0-2026-09-03。golden baseline の drift は版数文字列 3 行のみで、観測値は 1 つも変わらない | `version.py`; CHANGELOG; `docs/migration-v070.md` | golden runner の drift 分類(D3×1 tool_version / D4×2 definition_version、D0-D2 = 0) | LOCALLY_VERIFIED(`test_v060_release_consistency.py` green、`scripts/v070_benchmark.py` self-contained 6/6 hold、監査 13 件対応済み(BLOCKS 4 / SHOULD 5 / NOTE 4)、統合 branch `feat/v070-integrated`) |
|