Releases: shinya0x00/github-task-protocol
Release list
GitHub Task Protocol 1.0.3
GitHub Task Protocol 1.0.3 release notes
この文書は、package version 1.0.3のsourceに含まれる変更を説明する。tag、GitHub Release、PyPIでのpublicationをClaimしない。公開状況はrepository内のversion文字列ではなく、各公開先と公開後Evidenceで確認する。
変更内容
state: haltのとき、既存の診断事実から非エンジニアも修正境界を判断できる8項目の「問題の整理」を表示する。machine JSONのkey集合、exit code規則、authority: noneは変更しない。- 既知の非終端Check Run statusは、responseに
conclusionkeyが存在し、値が明示的なnullの場合だけpendingとする。key自体が欠落したresponseは既存のinvalid_evidenceとする。 - sdistとwheelはexplicit manifestに宣言したregular fileだけを収録する。archive memberの順序とmetadataを正規化する。CIはcommit timestampを
SOURCE_DATE_EPOCHとして渡し、未指定のbuildは固定値0を使う。 - sdistは
DESIGN.md、DECISIONS.md、adr/を収録し、current designとADR-035・ADR-036をarchive内で解決できるようにする。 - CIはpull requestのsource headまたはmain push commitを
SOURCE_SHAに固定する。Python 3.11 producerが2つのclean source exportから再buildしてbytesを比較し、SHA256SUMSとBUILD-INFOを添付する。 - pull requestではsource-head build jobが
SOURCE_SHAのtree、integration jobがsynthetic mergeのHEAD(merge tree)を同じmanifest oracleへ渡す。integration jobはmerge treeのmanifest parityとfull unit test/budgetを検査するが、clean export、公開候補sdist/wheel、Twine、sidecar、Actions artifact uploadから成るproducer処理は実行しない。unit testがtemporary directoryで作るarchiveは公開候補ではない。merge refを公開候補のsourceにはしない。最後のrelease-readyCheckはbuild、3-version consumer matrix、integrationの結果を集約する。 - Python 3.11、3.12、3.13のconsumerは同じbuild artifactをdownloadし、checksum、clean install、installed CLI、unit testを検査する。
- READMEはsource versionとpublicationを分離し、特定versionの公開前後で意味が変わらないinstall案内にする。
Record grammar、"gtp": "1.0"、6 state、7 halt reason、machine JSON key、next_action、runtime dependency 0は変更しない。
含めないもの
generic Contract amendment semantics、human-post checker/gate、line-budgetの置き換えまたはstatus split、tag・GitHub Release・PyPI uploadなどのpublication operationは、1.0.3のartifact修復に含めない。
配布artifactの境界
- PR artifactは検証専用であり、
v1.0.3-pr-verification-<SOURCE_SHA>と命名する。 - squash merge後のmain artifactだけを公開候補とし、
v1.0.3-main-candidate-<SOURCE_SHA>と命名する。CI自体は公開しない。 - artifactの保持期間は90日である。公開前にsource SHA、
GITHUB_RUN_ID、GITHUB_RUN_ATTEMPT、artifact IDとexpiry、filename、size、SHA-256、Pythonとzlib条件、再検査手順を公開operationの記録へ引き継ぐ。
Evidenceの限界
- 2回のbyte一致は、同じ
SOURCE_SHA、SOURCE_DATE_EPOCH、記録したPythonとzlib条件での再現性を示す。未記録の実行環境まで同一bytesになることは保証しない。 twine check、checksum、clean install、unit testは公開、merge、安全性全体、または自然言語のDone Conditionの十分性を証明しない。- tag作成、GitHub Release、PyPI upload、公開後のredownloadとlive status検査には、それぞれ別のauthorityとEvidenceが必要である。
GitHub Task Protocol 1.0.2
GitHub Task Protocol 1.0.2 candidate
状態: source candidate。PyPI、GitHub tag、GitHub Releaseは未作成であり、公開済みとはClaimしない。
このcandidateは、同じGitHub記録を後から安全に再構成する境界を修復する。
- Stop後のfresh Recordを
halt / terminal_violationとして表示する。 - Stop後に作られた同名branchのPRを、過去のstopped taskへ結び付けない。
- GitHub 404、取得中のsnapshot変化、不完全なPR file一覧をAcquisition Errorとして分離する。
- PR file取得前後でbase/head SHAと
changed_filesを固定し、repositoryのdefault_branchも再読する。 - Start前から存在するPRをcandidateとDoneでは拒否し、Stopでは対象外として安全に閉じる。
- PR作成またはmergeとStopが同一instantならstateを断定しない。
- native merge前のDoneでbranch SHA、PR head SHA、Done head SHAを一致させる。
- repositoryのdefault branchをStart branchとして受理しない。
- Done提示前に、task固有の未確認事項を読むIssue URLを表示する。
- clean-installed wheelからproduction status pathを実行するCI E2Eを追加する。
Record grammarと"gtp": "1.0"は変更しない。package versionだけを1.0.2へ進める。
旧release laneのIssue #64 / PR #67と修復predecessor Issue #73 / PR #74は未mergeでsupersedeされ、Issue #75 / PR #76をcanonical candidate laneとする。
Evidenceの限界
- local testとclean installは、GitHub Actionsのexact-head Check Runを代替しない。
- fixtureは外部GitHub HTTP境界を置き換え、実GitHubの権限構成や同時更新を証明しない。
- package公開、tag、Release、mergeには、それぞれ別の明示的なauthorityが必要である。
- 公開後のinstallとlive status再検証が終わるまで、READMEの1.0.2 commandを利用可能とはClaimしない。
GitHub Task Protocol 1.0.1
GitHub Task Protocol 1.0.1
何を公開したか
AIへ実装を任せながら、人間が目的、変更範囲、現在地、根拠、未確認事項をGitHub上で確認できるGitHub Task Protocolの仕様、任意CLI、受け入れ資料を公開します。
導入は3手順
- repository rootへ
GTP.mdをコピーします。 - READMEの共通adapter文をagentが必ず読む文書へ追加します。
- taskごとにGitHub Issueを1件作り、そのURLをagentへ渡します。
CLIは必須ではありません。使う場合はuvx --from github-task-protocol==1.0.1 gtp status <issue-url>で現在地を確認できます。
現行実装から削った複雑性
- RecordはContract、Start、Done、Stopの4種類だけです。
- stateは6種類、halt reasonは7種類です。
- runtime dependencyは0です。
- GitHub取得はread-onlyで、GTP自身に変更、完了、mergeの権限はありません。
- 仕様の正本は400行以内の
GTP.mdだけです。
実際に通した受け入れ
- Level 0: Issue URLだけを渡した異なるagent間の引き継ぎ
- Level 1: clean installしたCLIによるlive
done、halt、stoppedの再構成と人間読解probe - Python 3.11〜3.13のtest、build、clean wheel install、CLI smoke
公開candidateのcommit、Check Run、artifact hash、Level 0/Level 1 permalink、PyPI URLは、公開後のEvidence recordに示します。
互換性上の注意
package versionは1.0.1です。Record内の"gtp": "1.0"はprotocol versionであり、package versionとは別です。既存tag v1.0.0は移動・再利用していません。
GTPが証明しないこと
GTPはactor本人性、credential安全性、コード品質そのもの、Evidence内容の真実性を証明しません。サンドボックス、最小権限、不可逆操作前の確認、reviewと組み合わせてください。