Reconstruct AI coding task state from GitHub Issue records
Project description
GitHub Task Protocol
GTPは、AIへ実装を任せても、人間が目的・変更範囲・現在地・根拠・未確認事項を理解し、停止・再開・やり直し・mergeの判断を手放さないための小さなprotocolです。
作業はAIに任せる。判断は手放さない。
AIの説明だけを信じるのではなく、GitHub Issue上のRecordと、実際のbranch・PR・commit・Check Runからtask stateを再構成します。GTP自身は変更、完了、mergeの権限を与えません。
導入は3手順
GTP.mdを導入先repositoryのrootへコピーする。- 下の共通adapter文を、agentが必ず読む文書へ1段落追加する。
- taskごとにGitHub Issueを1件作り、agentへそのIssue URLを渡す。
共通adapter文:
このrepositoryはrootの
GTP.mdをtask protocolの唯一の正本とする。GitHub Issue URLを受け取ったら、Issue commentをServer Orderで読み、4 Record、6 state、7 halt reasonに従って既存branch・PR・次のprotocol actionを再構成する。Recordを推測、編集、独自拡張せず、矛盾時は原因URLを示して止まり、取得不能はhaltと混同しない。GTPの表示やRecordは変更・完了・mergeの権限を与えない。
配置例は次のとおりです。runtimeごとに異なる指示を作る必要はありません。
- Codex:
AGENTS.md - Claude Code:
CLAUDE.mdまたはAGENTS.md - Cursor:
AGENTS.mdまたは.cursor/rules/gtp.md
4つのRecord
| Record | 平易な意味 |
|---|---|
contract |
目的、変更してよい範囲、完了条件を固定する |
start |
Contractと唯一の作業branchを結び付ける |
done |
PRのsource headと、条件ごとのEvidenceを提示する |
stop |
完了を主張せず中止し、必要なら後継Issueを示す |
RecordはIssue commentへ人向け要約を先に、機械用JSONを折りたたんで記録します。1 Issue = 1 branch = 1 PRです。
6つのstate
| state | 平易な意味 |
|---|---|
unmanaged |
有効なContractがない |
ready |
ContractはあるがStart前 |
in_progress |
作業中、またはDone提示後のmerge待ち |
halt |
特定transitionを矛盾や不適合のため進められない |
done |
Doneのsource headとEvidenceを持つPRがnative mergeされた |
stopped |
Stopにより、このIssueでの作業を終了した |
GitHub情報を完全に取得できない場合はstateを推測しません。これはhaltではなくAcquisition Errorです。
CLIは任意の検証器
人間がGTPを使うためにCLIをinstallする必要はありません。gtpはagentや自動検査がRecordと現在stateを確認するための、runtime dependency 0の任意toolです。
CLIはPyPI公開後、固定versionを指定して実行できます。GTPを使うだけならCLIのinstallは不要です。
uvx --from github-task-protocol==1.0.1 gtp status <issue-url>
uvx --from github-task-protocol==1.0.1 gtp check <comment.md>
statusはGitHubへGETだけを行い、日本語6項目の後にmachine JSONを出します。checkは投稿前のMarkdown comment全文をoffline検査します。Issue上でもvalidだとは主張しません。- exit code、緑色のCheck Run、Evidence URLは、変更やmergeの許可ではありません。
仕様と判断記録
protocolの唯一の正本は400行以内のGTP.mdです。Record作成やstate判断に、他の文書は必要ありません。
DECISIONS.mdは、設計変更の理由と履歴です。GTP.mdと意味が衝突する場合はGTP.mdを優先します。
実GitHubで観測した引き継ぎ結果はacceptance/level0/にあります。これは仕様の代わりではありません。
GTPが証明しないこと
GTPは、actor本人性、credential安全性、コード品質そのもの、Evidence内容の真実性を証明しません。filesystem削除や本番database操作を物理的に防ぐものでもありません。
サンドボックス、最小権限、不可逆操作前の確認、reviewと組み合わせてください。最終的な受理は、人間がPRとEvidenceを読み、GitHubのnative mergeで判断します。
License: MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file github_task_protocol-1.0.1.tar.gz.
File metadata
- Download URL: github_task_protocol-1.0.1.tar.gz
- Upload date:
- Size: 145.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9170ef8c96f93dabd39b585098ecb53d7ba9b409449e84d46ced95b182c7e9dd
|
|
| MD5 |
50971421606c4e831a631acab926555b
|
|
| BLAKE2b-256 |
cd9093e5194b84eebfa44488d63abf394fad98663848147df7dfc77abcfd7061
|
File details
Details for the file github_task_protocol-1.0.1-py3-none-any.whl.
File metadata
- Download URL: github_task_protocol-1.0.1-py3-none-any.whl
- Upload date:
- Size: 25.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9121816f3c7abd089eef4dc2630a43a47fc239e54fae49b306bd4d29824182cb
|
|
| MD5 |
f57a5e9ca01e3bb93cdd4ed7e1457f95
|
|
| BLAKE2b-256 |
ad2c262574d2d264a0dde523ce0d27d8854f9bb59db91937b35be2eafd2e0445
|