誰の変更か
誰の変更かの区別(帰属の区別)
コミット(変更を記録した1件)ごとに、本人の変更、ほかの人の変更、自動で動くプログラム(bot)の変更、自動で作られたファイルや外から取り込んだコード、コピー元のリポジトリ(fork元)から引き継いだ記録などを、11の分類で分けて数えます。
分からないこと
コードの良し悪しは分かりません。
CLIの出力では origin(11分類)
TEP(Technical Evidence Pipeline)
TEPは、Griftが使っている方法の名前です。エンジニアのgit履歴から、確かめられる事実を取り出します。誰が何度実行しても、同じ結果になります。
点数や順位はつけず、案件で求められることと項目ごとに並べて、面談で聞くことを具体的にします。
寺田 康佑 Cor.株式会社 代表取締役 2026年8月12日、僕のGitHubの草(contribution)は、1日で280件になりました。8月1日から23日までで2,907件です。GitHubの数え方ではコミットのほかに、Issueやプルリクエスト、レビューも含みます。
AIで量を増やせることは、もう十分に分かりました。でも、この280件で、僕の何が分かるのか。
何を作ったのか。本番のコードを変えたとき、テストも触ったのか。新しく立ち上げたのか、誰かが作ったものを保守したのか。一人で作ったのか、チームで触ったのか。そこまでは、草の濃さだけでは分かりません。
スキルシートの「Java 5年」も同じです。Javaに関わった期間は分かります。でも、その5年で何をしてきたのかは、数字だけでは分かりません。経歴書に書いてあることも、本人の申告のままでは確かめにくい。
期間も量も必要な事実です。ただ、それをそのまま技量に読み替えるのは違う。だから、git履歴から確かめられる事実だけを取り出す方法を作りました。それがTEPです。
健康診断の血圧に、高い・低いの優劣はありません。人によって、状況によって、求められる値が違うだけです。エンジニアの仕事の仕方も、案件によって求められるものが違います。点数で並べるのではなく、案件が求めることと、その人の記録を並べて見られるようにしたい。TEPはそのための方法です。
TEPが読むのは、git履歴だけです。gitは、エンジニアがコードの変更を記録していく道具です。誰が・いつ・どのファイルを変えたかが変更1件ずつ残り、この1件をコミット、記録をまとめた置き場をリポジトリと呼びます。
TEPはこの記録から、次のことを数えます。
誰の変更かの区別(帰属の区別)
コミット(変更を記録した1件)ごとに、本人の変更、ほかの人の変更、自動で動くプログラム(bot)の変更、自動で作られたファイルや外から取り込んだコード、コピー元のリポジトリ(fork元)から引き継いだ記録などを、11の分類で分けて数えます。
分からないこと
コードの良し悪しは分かりません。
CLIの出力では origin(11分類)
変えた部分の区分(作業領域)
変えたファイルの場所と種類から、画面、サーバー側、データ、基盤、テスト、文書、自動化の設定(CI/CD)、監視、設定ファイル、生成物・外部のコード、そのほかの11の区分に分けて、区分ごとに変えたコミットの件数を数えます。
分からないこと
ファイルの名前から機械的に分けるので、職種や得意分野を決めるものではありません。
CLIの出力では surface_profile
変更のペース(変更リズム)
直近180日のうち、変更を記録した日が何日あったかを数えます。変更と変更のあいだが何日空いたかも、真ん中の値と長いほうから1割にあたる値で示し、2日以内の間隔と30日以上の間隔の割合も出します。
分からないこと
労働時間や勤怠、意欲、納期を守ったかは分かりません。毎日小さな変更を記録すれば日数は増え、まとめて記録すれば減ります。
CLIの出力では change_rhythm
テストも一緒に変えた割合(テスト併修率)
本番のコード(テストと文書以外)を変えたコミットのうち、同じコミットでテストも変えたものの割合です。
分からないこと
テストが通ったか、テストやコードの質は分かりません。文書や設計が中心の仕事のように、テストが前提でない仕事では低く出るのが自然です。
CLIの出力では test co-change
テストの付け方(検証の形)
テストを触ったコミットの割合、テストの種類(単体・結合・E2E・契約)、不具合の修正(fix・revert)のうちテストも一緒に変えたものの割合を出します。
分からないこと
テストの担当(QA)に向いているかは分かりません。
CLIの出力では verification_profile
リポジトリの様子(リポジトリの文脈)
関わった人の数、いちばん多く変更した人が占める割合(名前は出しません)、取り込み(マージ)の記録の割合、使っている言語、活動の密度など、数値が出たリポジトリの様子を並べます。
分からないこと
個人の能力や、チームの優劣は分かりません。分類であって、序列ではありません。
CLIの出力では context profile
関わり方
本人の同意が記録されているときだけ、新しいファイルを作ったコミット、既にあるファイルを直したコミット、取り込み(マージ)のコミット、本人が付けたリリースの印の数などを出します。
分からないこと
職種を決めるものではありません。CLIが確かめるのは同意が記録されていることで、同意そのものではありません。
CLIの出力では role_profile
傾向の記録で、合否には使いません。
修正でのやり直し(手戻り率)
21日以内に触ったファイルを、修正(fix)や取り消し(revert)などの件名で、もう一度変えたコミットの割合です。
分からないこと
バグの件数や品質ではありません。件名の付け方で出方が変わるので、人と比べたり合否に使ったりしません。
CLIの出力では corrective rework
同じファイルへの戻り(磨き直し)
本番のコードの同じファイルに、21日以内にもう一度手を入れたコミットの割合です。
分からないこと
手戻りや不具合の件数ではありません。
CLIの出力では path retouch
計測を指定したときだけ出します。
いまのコードの新しさ(定着率)
いまのコードに残っている行が、書かれてからどれくらい経っているかを、180日を目安に重みを付けて平均した値です。1に近いほど、最近書かれた行が多いことを表します。
分からないこと
180日後に残った行の割合や、コードの品質ではありません。リポジトリ全体の値で、一人ひとりの値ではありません。
CLIの出力では survival(--survival を付けたとき)
CLIの出力や文書を読むときの手がかりです。サイトのほかのページでは真ん中の列の用語を括弧に添えています。
observed value(kind: observed の value と unit) origin(11分類) surface_profile change_rhythm test co-change verification_profile context profile role_profile corrective rework path retouch survival(--survival を付けたとき) grift project(project-v1) grift align(alignment-v1) grift align --team not_observed(理由のコード付き) Technical Evidence Pipeline どの数値にも「何件のうち何件か」と、数え方の版、どの時点の記録を数えたかを付けます。たとえば(架空の例)、本番のコードを変えた40件のコミットのうち12件で、テストも一緒に変えていたとします。割合だけなら0.3ですが、TEPは「40件のうち12件」と読める形で残します。数えた件数が20件に満たないときは、割合を出さずに件数だけを示します。
記録がない、件数が少ない、テストの仕組みが見つからないなど、数えられなかったものは0にせず、理由を付けて「未観測」と出します。非公開の仕事や、育児・病気などでgitに写らない期間を、実績がないとは読みません。利用規範の第1条で決めています。
計測にAI(LLM)を使わないので、同じリポジトリの同じ時点を同じ版のGriftで数えれば、誰が何度実行しても同じ数値になります。受け取った人は grift verify で計算し直し、一致(VERIFIED)・不一致(MISMATCH)・検証不能(CANNOT_VERIFY)を確かめられます。保存したレポートを書き換えていれば、不一致として分かります。
Grift CLIはエンジニアのPCの中だけで動き、当社へデータを自動で送る機能はありません。ネットワークを使うのは、公開リポジトリの情報を取りに行くなど、本人が明示したときだけです。共有するかどうか、どのリポジトリを出すかは本人が決めます。選んで出したことも、受け取る側に分かる形で残ります。
TEPは、1つにまとめた点数(合成スコア)、人を並べた順位、合否、「この人を薦める」という推薦を出しません。違う観測を1つの数に丸めると、何をどの件数で数えたかが消えてしまうからです。案件の要求と並べるときも、総合点や推薦にはまとめません。判断するのは人です。
使い方の決まりもあります。数値だけで足切りする、記録がないことを実績がないと読む、本人の同意なく他人を測る、組織の人を常に比べる評価表に使う、といった使い方は、利用規範(norms・7条)でTEPと呼ばないことにしています。
人に順位をつけない点は、MBTIのような自己申告の性格診断と同じです。違うのは、何を元にして、何を出すかです。
元にするもの
自己申告の性格診断(MBTIなど)
質問への本人の回答
TEP
gitに残った変更の記録
ごまかしやすさ
自己申告の性格診断(MBTIなど)
答え方しだいで結果が変わり、見せたい自分に寄せて答えることもできる
TEP
記録の量は増やせる(毎日小さな変更を記録すれば、変更を記録した日数は増える)。TEPは量を点数にせず、誰の変更かを分けて、件数と一緒に出す。レポートを書き換えれば、計算し直したときに食い違いが分かる
ラベル
自己申告の性格診断(MBTIなど)
タイプの名前が付く
TEP
タイプや等級の名前は付けない。数えた値と件数だけを出す
案件と照らせるか
自己申告の性格診断(MBTIなど)
結果は性格の傾向で、案件で求める作業とは物差しが違う
TEP
案件が求める作業の区分・テストの種類・変更のペースと、項目ごとに並べられる
どちらが優れているという話ではありません。自己申告の診断は、本人が自分をどう捉えているかを知る手がかりになります。TEPは、受け取った側がgitに残った仕事の仕方を確かめるための方法です。目的が違う道具です。
候補者に実行してもらう
候補者本人に、手元でGrift CLIを実行してもらいます。共有するかどうか、どのリポジトリを出すかは本人が決めます。
案件で求めることを書き出す(grift project)
案件で求める作業の区分、テストの種類、変更のペースなどを、案件側が項目ごとに書き出します。書かなかった項目は「要求なし」として扱い、0や不足にはなりません。
候補者の記録と並べる(grift align)
案件側の要求と候補者の記録を項目ごとに並べ、重なり・範囲外・0件・未観測・要求なしの5通りで示します。総合点・順位・合否・推薦は計算しません。
面談で聞くことを決める
「範囲外」や「0件」は、能力が足りないという意味ではありません。並びを見て、何があったのかを聞くきっかけにしてください。
チームで見る(grift align --team)
要求を満たす人数だけを出し、一人ひとりの数値は出しません。3人未満のチームでは集計しません。2人だと、誰が満たしていないかが分かってしまうためです。
overlap outside_declared_range observed_zero not_observed not_declared サーバー側の変更
直近180日に変更を記録した日数
結合テスト
レビューなどの記録(GitHubなどから書き出したもの)
データの変更
「範囲外」の項目からは「直近の半年は、どんな時期でしたか」と聞けます。結合テストが「0件」でも、別のリポジトリや非公開の仕事で書いていたのかもしれません。並びは答えではなく、聞くことを決める材料です。
いまはCLIでの操作です。営業向けの画面はテスト導入(PoC)に向けて準備を進めています。
資料ダウンロード
Grift CLIが何を取り出し、何を出さないかを、20ページの資料にまとめています。申し込みなしでダウンロードできます。
2026年8月時点(Grift CLI v0.5)の資料です。最新の使い方はGitHubのREADMEをご覧ください。
次の一歩
紹介会社さま・SES企業さま・自社開発企業さまのテスト導入(PoC)は、Cor.株式会社のAI受付で承っています。エンジニアの方は、GitHubからすぐに試せます。