原始 JSON 报告 机器可读
{
"data": {
"repo": {
"topics": [],
"is_fork": false,
"size_kb": 13193,
"has_wiki": false,
"homepage": null,
"languages": {
"Go": 350,
"Shell": 50054,
"Python": 20596,
"TypeScript": 6825250
},
"pushed_at": "2026-07-21T12:20:53Z",
"created_at": "2026-03-10T04:09:40Z",
"owner_type": "User",
"updated_at": "2026-07-21T12:22:31Z",
"description": "AIエージェントの設計意図を無視した暴走を0.5秒で止める、AI非依存の品質防御ツールキット。5レイヤーで「No Design / No Code」を強制し、構造的整合性を守ります。",
"is_archived": false,
"is_disabled": false,
"license_spdx": "MIT",
"default_branch": "main",
"license_spdx_raw": "MIT",
"primary_language": "TypeScript",
"significant_languages": [
"TypeScript"
]
},
"owner": {
"blog": null,
"name": null,
"type": "User",
"login": "junpei-9898",
"company": null,
"location": null,
"followers": 0,
"avatar_url": "https://avatars.githubusercontent.com/u/83627275?v=4",
"created_at": "2021-05-04T03:56:56Z",
"is_verified": null,
"public_repos": 12,
"account_age_days": 1906
},
"license": {
"state": "standard",
"spdx_id": "MIT",
"raw_spdx": "MIT",
"file_present": true,
"scorecard_found": true,
"profile_has_license": true
},
"activity": {
"releases": [
{
"tag": "v0.301.0",
"kind": "minor",
"published_at": "2026-07-21T12:20:35Z"
},
{
"tag": "v0.300.0",
"kind": "minor",
"published_at": "2026-07-21T12:20:08Z"
},
{
"tag": "v0.299.0",
"kind": "minor",
"published_at": "2026-07-21T10:50:58Z"
},
{
"tag": "v0.298.0",
"kind": "minor",
"published_at": "2026-07-21T10:50:37Z"
},
{
"tag": "v0.297.0",
"kind": "minor",
"published_at": "2026-07-21T10:50:12Z"
},
{
"tag": "v0.296.0",
"kind": "minor",
"published_at": "2026-07-21T10:49:50Z"
},
{
"tag": "v0.295.0",
"kind": "minor",
"published_at": "2026-07-21T09:55:08Z"
},
{
"tag": "v0.294.0",
"kind": "minor",
"published_at": "2026-07-21T09:54:44Z"
},
{
"tag": "v0.293.0",
"kind": "minor",
"published_at": "2026-07-21T09:54:20Z"
},
{
"tag": "v0.292.0",
"kind": "minor",
"published_at": "2026-07-18T00:41:15Z"
},
{
"tag": "v0.291.0",
"kind": "minor",
"published_at": "2026-07-18T00:21:32Z"
},
{
"tag": "v0.290.0",
"kind": "minor",
"published_at": "2026-07-18T00:05:06Z"
},
{
"tag": "v0.289.0",
"kind": "minor",
"published_at": "2026-07-18T00:04:20Z"
},
{
"tag": "v0.288.0",
"kind": "minor",
"published_at": "2026-07-17T23:57:45Z"
},
{
"tag": "v0.287.0",
"kind": "minor",
"published_at": "2026-07-17T23:47:19Z"
},
{
"tag": "v0.286.0",
"kind": "minor",
"published_at": "2026-07-17T23:42:50Z"
},
{
"tag": "v0.285.0",
"kind": "minor",
"published_at": "2026-07-17T23:42:13Z"
},
{
"tag": "v0.284.0",
"kind": "minor",
"published_at": "2026-07-17T23:41:26Z"
},
{
"tag": "v0.283.0",
"kind": "minor",
"published_at": "2026-07-17T13:16:57Z"
},
{
"tag": "v0.282.0",
"kind": "minor",
"published_at": "2026-07-17T13:13:11Z"
},
{
"tag": "v0.281.0",
"kind": "minor",
"published_at": "2026-07-17T13:12:33Z"
},
{
"tag": "v0.280.0",
"kind": "minor",
"published_at": "2026-07-17T13:09:44Z"
},
{
"tag": "v0.279.0",
"kind": "minor",
"published_at": "2026-07-17T13:03:38Z"
},
{
"tag": "v0.278.0",
"kind": "minor",
"published_at": "2026-07-17T13:03:02Z"
},
{
"tag": "v0.277.0",
"kind": "minor",
"published_at": "2026-07-17T13:02:28Z"
},
{
"tag": "v0.276.0",
"kind": "minor",
"published_at": "2026-07-17T13:00:55Z"
},
{
"tag": "v0.275.0",
"kind": "minor",
"published_at": "2026-07-17T10:53:21Z"
},
{
"tag": "v0.274.0",
"kind": "minor",
"published_at": "2026-07-17T10:18:47Z"
},
{
"tag": "v0.273.0",
"kind": "minor",
"published_at": "2026-07-17T10:18:13Z"
},
{
"tag": "v0.272.0",
"kind": "minor",
"published_at": "2026-07-17T10:17:44Z"
},
{
"tag": "v0.271.0",
"kind": "minor",
"published_at": "2026-07-17T10:17:13Z"
},
{
"tag": "v0.270.0",
"kind": "minor",
"published_at": "2026-07-17T10:16:46Z"
},
{
"tag": "v0.269.0",
"kind": "minor",
"published_at": "2026-07-17T09:43:40Z"
},
{
"tag": "v0.268.0",
"kind": "minor",
"published_at": "2026-07-17T09:35:39Z"
},
{
"tag": "v0.267.0",
"kind": "minor",
"published_at": "2026-07-17T05:58:50Z"
},
{
"tag": "v0.266.0",
"kind": "minor",
"published_at": "2026-07-17T04:46:11Z"
},
{
"tag": "v0.265.0",
"kind": "minor",
"published_at": "2026-07-17T04:39:34Z"
},
{
"tag": "v0.264.0",
"kind": "minor",
"published_at": "2026-07-17T02:33:38Z"
},
{
"tag": "v0.263.0",
"kind": "minor",
"published_at": "2026-07-17T02:33:23Z"
},
{
"tag": "v0.262.0",
"kind": "minor",
"published_at": "2026-07-17T01:30:17Z"
},
{
"tag": "v0.261.0",
"kind": "minor",
"published_at": "2026-07-17T00:50:34Z"
},
{
"tag": "v0.260.0",
"kind": "minor",
"published_at": "2026-07-17T00:29:57Z"
},
{
"tag": "v0.259.0",
"kind": "minor",
"published_at": "2026-07-16T23:57:41Z"
},
{
"tag": "v0.258.0",
"kind": "minor",
"published_at": "2026-07-16T23:30:16Z"
},
{
"tag": "v0.257.0",
"kind": "minor",
"published_at": "2026-07-16T23:21:13Z"
},
{
"tag": "v0.256.0",
"kind": "minor",
"published_at": "2026-07-16T22:50:24Z"
},
{
"tag": "v0.255.0",
"kind": "minor",
"published_at": "2026-07-16T22:25:39Z"
},
{
"tag": "v0.254.0",
"kind": "minor",
"published_at": "2026-07-16T21:24:02Z"
},
{
"tag": "v0.253.0",
"kind": "minor",
"published_at": "2026-07-16T16:46:01Z"
},
{
"tag": "v0.252.0",
"kind": "minor",
"published_at": "2026-07-16T16:29:36Z"
},
{
"tag": "v0.251.0",
"kind": "minor",
"published_at": "2026-07-16T16:11:51Z"
},
{
"tag": "v0.250.0",
"kind": "minor",
"published_at": "2026-07-16T15:46:53Z"
},
{
"tag": "v0.249.0",
"kind": "minor",
"published_at": "2026-07-16T15:25:18Z"
},
{
"tag": "v0.248.0",
"kind": "minor",
"published_at": "2026-07-16T15:04:03Z"
},
{
"tag": "v0.247.0",
"kind": "minor",
"published_at": "2026-07-16T14:41:07Z"
},
{
"tag": "v0.246.0",
"kind": "minor",
"published_at": "2026-07-16T14:14:51Z"
},
{
"tag": "v0.245.0",
"kind": "minor",
"published_at": "2026-07-16T13:36:23Z"
},
{
"tag": "v0.244.0",
"kind": "minor",
"published_at": "2026-07-16T13:14:26Z"
},
{
"tag": "v0.243.0",
"kind": "minor",
"published_at": "2026-07-16T12:48:59Z"
},
{
"tag": "v0.242.0",
"kind": "minor",
"published_at": "2026-07-16T12:28:37Z"
},
{
"tag": "v0.241.0",
"kind": "minor",
"published_at": "2026-07-16T12:07:07Z"
},
{
"tag": "v0.240.0",
"kind": "minor",
"published_at": "2026-07-16T11:55:05Z"
},
{
"tag": "v0.239.0",
"kind": "minor",
"published_at": "2026-07-16T11:30:34Z"
},
{
"tag": "v0.238.0",
"kind": "minor",
"published_at": "2026-07-16T11:06:39Z"
},
{
"tag": "v0.237.0",
"kind": "minor",
"published_at": "2026-07-16T10:51:35Z"
},
{
"tag": "v0.236.0",
"kind": "minor",
"published_at": "2026-07-16T10:40:21Z"
},
{
"tag": "v0.235.0",
"kind": "minor",
"published_at": "2026-07-16T10:33:24Z"
},
{
"tag": "v0.234.0",
"kind": "minor",
"published_at": "2026-07-16T10:21:31Z"
},
{
"tag": "v0.233.0",
"kind": "minor",
"published_at": "2026-07-16T10:09:48Z"
},
{
"tag": "v0.232.0",
"kind": "minor",
"published_at": "2026-07-16T09:55:16Z"
},
{
"tag": "v0.231.0",
"kind": "minor",
"published_at": "2026-07-16T09:38:41Z"
},
{
"tag": "v0.230.0",
"kind": "minor",
"published_at": "2026-07-16T09:13:23Z"
},
{
"tag": "v0.229.0",
"kind": "minor",
"published_at": "2026-07-16T06:47:24Z"
},
{
"tag": "v0.228.0",
"kind": "minor",
"published_at": "2026-07-16T06:46:28Z"
},
{
"tag": "v0.227.0",
"kind": "minor",
"published_at": "2026-07-16T06:45:20Z"
},
{
"tag": "v0.226.0",
"kind": "minor",
"published_at": "2026-07-16T06:38:51Z"
},
{
"tag": "v0.225.0",
"kind": "minor",
"published_at": "2026-07-16T06:23:30Z"
},
{
"tag": "v0.224.0",
"kind": "minor",
"published_at": "2026-07-16T05:50:30Z"
},
{
"tag": "v0.223.0",
"kind": "minor",
"published_at": "2026-07-16T05:48:37Z"
},
{
"tag": "v0.222.0",
"kind": "minor",
"published_at": "2026-07-16T04:53:16Z"
},
{
"tag": "v0.221.0",
"kind": "minor",
"published_at": "2026-07-16T04:52:22Z"
},
{
"tag": "v0.220.0",
"kind": "minor",
"published_at": "2026-07-16T04:51:37Z"
},
{
"tag": "v0.219.0",
"kind": "minor",
"published_at": "2026-07-16T04:44:20Z"
},
{
"tag": "v0.218.0",
"kind": "minor",
"published_at": "2026-07-16T04:34:56Z"
},
{
"tag": "v0.217.0",
"kind": "minor",
"published_at": "2026-07-16T04:33:58Z"
},
{
"tag": "v0.216.0",
"kind": "minor",
"published_at": "2026-07-16T04:27:56Z"
},
{
"tag": "v0.215.0",
"kind": "minor",
"published_at": "2026-07-16T04:26:46Z"
},
{
"tag": "v0.214.0",
"kind": "minor",
"published_at": "2026-07-16T04:22:10Z"
},
{
"tag": "v0.213.0",
"kind": "minor",
"published_at": "2026-07-16T04:18:25Z"
},
{
"tag": "v0.212.0",
"kind": "minor",
"published_at": "2026-07-15T10:34:32Z"
},
{
"tag": "v0.211.0",
"kind": "minor",
"published_at": "2026-07-15T10:25:33Z"
},
{
"tag": "v0.210.0",
"kind": "minor",
"published_at": "2026-07-15T10:24:50Z"
},
{
"tag": "v0.209.0",
"kind": "minor",
"published_at": "2026-07-15T10:24:03Z"
},
{
"tag": "v0.208.0",
"kind": "minor",
"published_at": "2026-07-15T10:11:57Z"
},
{
"tag": "v0.207.0",
"kind": "minor",
"published_at": "2026-07-15T10:00:19Z"
},
{
"tag": "v0.206.0",
"kind": "minor",
"published_at": "2026-07-10T11:07:17Z"
},
{
"tag": "v0.205.0",
"kind": "minor",
"published_at": "2026-07-10T10:46:42Z"
},
{
"tag": "v0.204.0",
"kind": "minor",
"published_at": "2026-07-10T10:34:00Z"
},
{
"tag": "v0.203.0",
"kind": "minor",
"published_at": "2026-07-10T10:20:25Z"
},
{
"tag": "v0.202.0",
"kind": "minor",
"published_at": "2026-07-10T09:50:00Z"
}
],
"recent_commits": [
{
"oid": "716b90681b3aaf790cb5706241c8df155acd0258",
"body": "… resolution, input robustness (WI-345, WI-346, WI-347)\n\nWI-345: Bash 抽出ターゲットにファイル存在推定を拡張(不在 → CREATE → feature 判定)。\n新規ソース作成が MODIFY 既定で bugfix にすり抜ける WI-334 の残穴を閉塞。\n未展開シェル変数を含むパスは推定不能につき MODIFY 既定(安全側)。\nWI-346: hook 内 quick-mode composition root へ解決済み configPath / projectRoot を注入し、\nprocess.cwd() 依存\n[…]\nnull/非 object の未捕捉 TypeError を防御し、相対 ../ エスケープを\nresolve 後判定で絶対パス外部と対称化(プロジェクト内パスのゲートは維持)。\n\nWork-Item: WI-345\nWork-Item: WI-346\nWork-Item: WI-347\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: harden pre-tool-use hook — Bash CREATE inference, config…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-21T12:20:35Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "50c9a56bd6e5c64ff9aafb92a79e48f4e39a8823",
"body": "… (WI-344)\n\nリダイレクト抽出が fd 複製(2>&1 / 1>&2 / >&2)の & を書き込み先と誤認し、\nread-only コマンドが bugfix 非許可 config で exit 2 誤ブロック・許可 config でも\nWrite 偽装でゲート対象化されていた問題を修正。& + 数値は fd 複製として除外し、\n>& file(csh 形式)と N> file の実ファイルリダイレクトは安全側で抽出維持。\n\nWork-Item: WI-344\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: exclude fd duplication from bash write-target extraction…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-21T12:20:08Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "c118b69c4437e63a3a840be57cff63901cfd43a5",
"body": "…ly running all layers (WI-342)\n\n--layer が as cast 素通しで L9 等の不正値が黙って全レイヤー実行になる非対称を修正。\nparseValidateLayer で {L0, L2, L3, L4, all} を検証し、不正値は有効値一覧つき exit 2、\nL1 は npx phasegate lint への案内。旧挙動をピンしていた cli-harness E2E も新仕様に更新。\n\nWork-Item: WI-342\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: reject invalid validate --layer values instead of silent…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-21T10:50:58Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "8c59eaf547391bc3098ee0a433d0b93edb767b9e",
"body": "…coverage (WI-341)\n\nmatrix adapter が旧辞書スキーマのみ対応で、phasegate:generate-matrix の実出力\n{version, stories:[...]} に対し常に Story not found となる producer/consumer 分裂を修正。\nstories 配列から total/covered/uncoveredIds を導出し、旧形式は後方互換維持。\n--json 指定時のエラー出力も JSON 化。\n\nWork-Item: WI-341\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: read generate-matrix v1.2 stories format in skill:check-…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-21T10:50:37Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "63952b0d0f982d88fe74c15ff5d31f1e977817a5",
"body": "… claude-context target (WI-340, WI-343)\n\nhusky-pre-commit-missing のパターン表に正規サブコマンド phasegate pre-commit と\n$PHASEGATE_CMD 系を追加し false positive を解消(旧エントリは後方互換維持)。\nclaude-context-missing は照合を /phasegate/i 化し、finding target を\ninstallationMode(doctor の manifest 判定を check へ供給)で実修復先に出し分け。\n\nWork-Item: WI-340\nWork-Item: WI-343\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: doctor installation checks — husky pattern staleness and…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-21T10:50:12Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "360ea6a91711a19b749e6b58ba7cf9c78dd61d77",
"body": "…ry (WI-339)\n\nstatus の layer 集計が raw passed のみを見て warning 降格を無視し、\nvalidate/ci-check/complete-check と判定が割れる WI-332 未カバー経路を修正。\n集計前に CiCheckResult 投影で実効 passed へ正規化し、経路間一致 regression に\nstatus を第 4 経路として追加。error severity の fail 維持もテストで pin。\n\nWork-Item: WI-339\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: apply effective severity to phasegate:status layer summa…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-21T10:49:50Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "d2aec940ad13e2f4b8c070ec3e237d3450ea4a9e",
"body": "…ormat in plan documents (WI-338)\n\nQA 認識をスキル実書式(## 4. QA(...) / ### [Question] / [Answer])に対応させ、\nissue #33 の Level 2+ フェーズゲート・デッドロックを解消。本文なし [Answer] は\n未回答扱いを維持(ゲート意味論の弱体化なし)。旧書式は後方互換。\nあわせて WI-337/338 のテスト名一意化で真に解消した WCR-005 の repaid entry 25 件を\nADR-035 手順どおり world baseline から削除(adopted legacy 604→579)。\nsession-start の件数ピンは baseline 導出に変更。\n\nWork-Item: WI-338\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: recognize numbered QA headings and [Question]/[Answer] f…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-21T09:55:08Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "deb4335ee9207c1a3f7d1021a8a5e0a37dee61bb",
"body": "…rity enum mismatch (WI-337)\n\nseverity enum を実データに合わせ 6 値(trivial/normal/medium/high/critical/major)へ拡張。\n複数 WI 走査はパース不能 WI を原因ファイルパス付き warning でスキップし全体クラッシュを廃止。\n既存 WI 文書 5 件の id: 欠落を正規化。H03-04 の重複 it 名を一意化(WCR-005 の真の返済、\nbaseline 削除は WI-338 側で同一変更セットとして実施)。\n\nWork-Item: WI-337\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: stop work-items:status / bypass:audit full crash on seve…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-21T09:54:44Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "000e42f8e8740c1edc76abd48a12dd4a83213c3e",
"body": "…eck-repetition exit codes (WI-336)\n\nci:migrate-agents-md --validate-only が AGENTS.md を実書込する DI 注入漏れと、\nci:check-repetition --reset の silent no-op(同型の注入漏れ)を composition root で修正。\nexit code を escalated 基準(記録なし=0/エスカレーション検出=1)に正し、--code 欠落は\nusage エラー化。配線 regression は composition-root 経由テストで固定。\n\nWork-Item: WI-336\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: inject missing ci-governance handler deps and correct ch…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-21T09:54:20Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "2113acd9ba7a0c21aadbb183cc1696ea844f459c",
"body": "…-331)\n\nWI-331 の CLAUDE.md テンプレート構造修正は integrity pin (WI-254) の\n保護対象であり、意図的変更として digest を更新。CI の integrity:verify\nが正しく drift を検出した(ゲートの実戦検出)。\n\nWork-Item: WI-331\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: re-pin integrity manifest for WI-331 template change (WI…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-18T00:41:15Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "019ef7780f7868b230e0c97b10be62b2cb4a8e30",
"body": "HarnessError に optional remediationType を導入し代表 validator を分類。\nmechanical 宣言のエラーは「案内を機械適用→再実行→pass」の往復テストで\nCI 保証し、suggestion 文言と実挙動の乖離(#37/#39 型)を機械検知する。\n\nWork-Item: WI-335\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] feat: mechanical remediation round-trip guarantee (WI-335)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-18T00:21:32Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "2348a2c299909e3fd88ad64d9807f5c7c99b27b0",
"body": "lockfile なしの最新依存解決で release-smoke を週次実行し、上流ドリフト\nによる新規インストール破壊を早期検知する。失敗は [canary] issue に集約\nしリリースは止めない(凍結解決の release gate との 2 層分離)。\nWI-334 の分類修正により正規経路で配置。\n\nWork-Item: WI-329\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] feat: add weekly release canary workflow (WI-329)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-18T00:05:06Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "1e70b0827e736f1929e511d319bc6cde684e1f34",
"body": ".github/workflows/*.yml の CREATE が feature フォールバックに落ちて\n正規解除不能なブロックになる取りこぼしを WI-261 同型の明示分類で修正。\nCLI の changeKind もファイル存在で推定し hook 判定と統一(hook の Bash\n経路は従来挙動を維持)。\n\nWork-Item: WI-334\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: classify CI workflow files as config category (WI-334)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-18T00:04:20Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "92508b2c1cf54880893a2acaf1974f3b5558b422",
"body": "config 不在(ENOENT)で hook が exit 2 になり config 作成 Write まで\n遮断する自己修復デッドロックを解消。ENOENT のみ警告+既定値で fail-open、\n他の fs エラーは throw 維持。gated 書込の fail-closed は phase-gate 側の\n独立 load で維持されることをテスト固定。ADR-038 G1 解消。\n\nWork-Item: WI-333\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: fail-open hook config adapter on missing config (WI-333)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T23:57:45Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "fc8aaccb56c4bc2f9754576849df7842b27be5b6",
"body": "…licy (WI-330)\n\ndoctor に config-status check を追加し config 不在/不正の GREEN 誤報告を\n解消(missing=warn, invalid=red, configStatus を JSON/human に明示)。\nconfig 状態×操作クラスの許可表を ADR-038 として仕様化し、既知ギャップ\n(G1: missing 時の hook 全遮断デッドロック)を記録。G1 は WI-333 で修正。\n\nWork-Item: WI-330\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: surface config status in doctor and codify permission po…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T23:47:19Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "4d44eb2d56df85809bf124996b58e08c609c0302",
"body": "…WI-332)\n\nisEffectivelyPassed を effective-severity-policy.ts に一本化し、\nvalidate 集約・CiCheckResult・pre-commit の全経路で共有。pre-commit の\nwarning-only failure は ADR-017 どおり exit 0 に統一。3 経路の実効判定\n一致を assert する横断 regression で将来の乖離を機械検知する。\n\nWork-Item: WI-332\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: single-source effective severity across all gate paths (…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T23:42:50Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "7a0dc2fd8239ce3dc90630cdbd3bb5352cab3893",
"body": "#35 の根本原因(user-section が managed block 内側にある構造非対称)を\n解消し AGENTS.md と対称に。旧構造は本文保持のまま外側へ移設する冪等\nmigration を install/reconcile/refresh 全経路に実装、byte 同値で固定。\n\nWork-Item: WI-331\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: move CLAUDE.md user-section outside managed block (WI-331)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T23:42:13Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "17ae4ffca13f17f9516f2124a799b8a184030aa9",
"body": "…I-329)\n\nnpm pack した tarball を純 Python / Go monorepo / docs-only fixture に\nクリーンインストールし install→doctor→validate→uninstall を実走する\nrelease-smoke E2E と CI job を追加。通常 suite では env ガードで skip。\n#34/#36/#37/#39 型の実分布欠陥をリリース前に検知する。\n\nWork-Item: WI-329\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] feat: real-distribution release gate via tarball smoke E2E (W…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T23:41:26Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "df96d82d8da8d090a60490e66d10f27c7bd6bbef",
"body": "言語自動検出(WI-319/320)の結果を phasegate:status の JSON に\nlanguages: { effective, source } として表示。解決ロジックは\nresolveProjectLanguages() に一本化し validator 判定と常に一致させる。\n\nWork-Item: WI-328\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: surface effective languages and source in status (WI-328)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T13:16:57Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "d5b67054abad76c1a3e2f82b515c0d567a6e0252",
"body": "…WI-327)\n\nv2/v3 スキーマの top-level required を [\"project\"] に緩和し、省略\nセクションはプリセット解決の deepMerge が補完。セクション内検証は\n不変で、不正値 config の exit 2 は spawn E2E で固定。\n\nWork-Item: WI-327\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: accept minimal project-only config via preset defaults (…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T13:13:11Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "46ad2ae11c25b60b00db019442de27025cfaf2bd",
"body": "install 時の --with-husky/--with-ci/personal を manifest の optional\ninstallationFlags に記録し、reconcile が明示指定 > manifest > 従来挙動\nの優先順で target を構成。旧 manifest は推測なしで従来挙動を維持。\n\nWork-Item: WI-326\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: persist install flags in deployment manifest (WI-326)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T13:12:33Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "cbb5f71dbd239f0310c74598dd7de61a3817bbb4",
"body": "matrix 不在かつ StoryCatalog の story ゼロのみ skipWithReason で透過\nSKIP にし、導入直後のオンボーディング阻害を解消。story が存在する\nmatrix 不在や判定不能時は従来どおり fail-closed を維持。\n\nWork-Item: WI-324\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: skip L3-004 on fresh projects with zero stories (WI-324)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T13:09:44Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "3b834b6b78594dc384275950b98bb431e35ffad4",
"body": "…-323)\n\nstop hook の session_id 欠落 exit 2 を WI-314 方針に整合させ、\nstop / post-tool-use を警告 + skip-event 記録 + exit 0 の fail-open に。\nゲートである pre-tool-use は fail-closed を維持し回帰ガードで固定。\n\nWork-Item: WI-323\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: fail-open non-gating hooks on missing payload fields (WI…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T13:03:38Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "ae809f1f885f9664c9488ae94f0f32faec56cf24",
"body": "config なし環境の DEFAULT_CONFIG fallback が coverageThreshold 90 で\nカバレッジゲートを強制していた矛盾を WI-317 の opt-in 思想に整合。\nプリセット定義は不変。fallback 経由の L3-003 透過 SKIP を回帰固定。\n\nWork-Item: WI-322\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: default coverageThreshold fallback to opt-out 0 (WI-322)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T13:03:02Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "0479bf99d96b7f2ed01b431bdd8558cb1b98b95d",
"body": "…WI-321)\n\ncomplete-check の JSON 出力が warning 件数のみで内容不明だったのを、\nci-check と同じ CiCheckResult data ペイロードを pass/fail 双方で返す\n対称形に修正。判定ロジック・exit code は不変。\n\nWork-Item: WI-321\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: include warning details in complete-check data payload (…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T13:02:28Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "4c0af942012c18af357680691992324f0f30237e",
"body": "… path (WI-325)\n\nload 経路の JSON パース失敗が \"Failed to persist config\" と誤表示されて\nいたのを、ConfigPersistenceError のサブクラス ConfigParseError で分離。\ninstanceof 判定による WI-314 fail-open は無変更で互換維持。\n\nWork-Item: WI-325\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: separate ConfigParseError from persistence error on load…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T13:00:55Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "6e590be9f1878ea4a2a852592303a8f6d3c45724",
"body": "…320)\n\nScenario verification of WI-319 showed its filesystem language\ndetection never ran through the real CLI: three upstream spots injected\n[\"typescript\"] before the validator-system adapter could see\n\"undeclared\" — preset resolution (the live wire path), the\nvalidator-system config mapper, and th\n[…]\n skips L3-003 as\nunsupported-language, and an explicit [\"typescript\"] declaration keeps\nthe coverage gate active.\n\nFixes #39.\n\nWork-Item: WI-320\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: let undeclared languages reach filesystem detection (WI-…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T10:53:21Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "bd6364f995b390569271a80b3377525a677a51a3",
"body": "getProjectLanguages() fell back to [\"typescript\"] whenever the config\ndid not declare project.languages, so a pure-Python repository was\ntreated as TypeScript by default: the TS-only validators (L3-002,\nL3-003, L4-003) ran, L3-003 demanded a vitest coverage report, and\nnothing pointed the user at th\n[…]\no detections keep the\nhistorical typescript fallback, so ambiguous JS-only repositories\nbehave exactly as before.\n\nFixes #39.\n\nWork-Item: WI-319\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: detect project languages from filesystem markers (WI-319)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T10:18:47Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "fc3c16930573ee48cd116fc24a19ff40b21b7013",
"body": "phasegate:complete-check aggregated raw validator.passed values, so a\nwarning-only failure exited 1 while validate --layer L2 exited 0 for\nthe identical state. Since the Stop hook gates on complete-check, the\nL2-016 ungated-legacy marker — whose entire purpose is downgrading\nerrors to visible warnin\n[…]\nd as failures. Lint failures still exit 1.\nvalidate, ci-check, and complete-check now share one domain predicate.\n\nFixes #38.\n\nWork-Item: WI-318\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: apply severity-aware aggregation to complete-check (WI-318)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T10:18:13Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0f462f85b638ef6cb27c875a86c18257a33c6007",
"body": "… (WI-317)\n\nL3-003 documented the coverage gate as opt-in and skipped on\nthreshold === null, but that branch was unreachable from real configs:\nevery preset defines coverageThreshold, omitting the key inherits the\npreset value through deepMerge, and the schema rejects null. Setting 0\ndid not help ei\n[…]\nrageThreshold: 0, or declare project.languages for\nnon-JS/TS projects so the language gate skips L3-003 entirely.\n\nFixes #37.\n\nWork-Item: WI-317\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: make the coverage gate opt-out reachable via threshold 0…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T10:17:44Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3456ac874fc8273adbd0c81730da9e58223beb09",
"body": "…I-316)\n\nThe install command accepted both flags in KNOWN_INSTALL_FLAGS and\ndocumented them as \"Include ...\" targets, but never read them: the\nwiring was includeHusky/includeCi = !personal, so every non-personal\ninstall --apply wrote .husky/* and the GitHub Actions workflow\nunconditionally. init and\n[…]\n covering both the flagless and flagged paths. The\nRunInstallUseCase programmatic default (?? true) is unchanged.\n\nFixes #36.\n\nWork-Item: WI-316\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: honor --with-husky and --with-ci in phasegate install (W…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T10:17:13Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "62353531341a263407a683d310a54773397d258d",
"body": "…econcile (WI-315)\n\nThe CLAUDE.md template nests the phasegate:user-section inside the\nmanaged section, so the wholesale managed-block replacement in\nmergeManagedMarkdown/reconcileManagedMarkdown silently replaced\nuser-authored instructions with the template placeholder on every\ninstall --apply or r\n[…]\nlacer function so user text containing $-sequences is not\ninterpreted as substitution patterns by String.replace.\n\nFixes #35.\n\nWork-Item: WI-315\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: preserve the CLAUDE.md user-section across install and r…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T10:16:46Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "ac96d58da7bfdd692aa4c349c9b13ca2f80585d7",
"body": "A schema-invalid phasegate.config.json used to exit 2 before command\ndispatch, so every command died — including `doctor` and `phasegate\nhook pre-tool-use`. With the hook wired into Claude Code that blocked\nBash/Write/Edit entirely, including the edit that would repair the\nconfig: a self-repair dead\n[…]\nnfig file, doctor surviving with the error reported,\nvalidate staying fail-closed, and broken-JSON hook survival.\n\nFixes #40.\n\nWork-Item: WI-314\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: keep hook and doctor alive under an invalid config (WI-314)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T09:43:40Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0452de9a00f022e5b422a5734a51c629f1f23a6e",
"body": "npm's automatic peer installation resolves \">=5.0.0\" to typescript@7,\nwhose \".\" export exposes only the version string — the classic compiler\nAPI (ts.ScriptTarget, ts.ModuleKind) that four adapters import is gone,\nso every command crashes with \"Cannot read properties of undefined\n(reading 'ESNext')\"\n[…]\nScript\nand pin the range with a packaging contract test. Migrating to\ntypescript/unstable/* is a separate effort.\n\nFixes #34.\n\nWork-Item: WI-313\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: restrict typescript peer range below 7 (WI-313)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T09:35:39Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "28679e4ed66ddb10a433300d861015a1ab29f670",
"body": "With the checkout-state-dependent tests fixed (WI-310/311), CI reached\nthe ci-check step for the first time in the current chain and exposed\nthe next latent gap: L3-003 requires a coverage report for its 90%\nthreshold, but the workflow had never generated one — it ran a plain\n`pnpm test` since its i\n[…]\nfy-attestation exit 0, integrity clean.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-312\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] ci: generate coverage before L3 validation (WI-312)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T05:58:50Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "227744d282e433fe3eea1e7a652cdb99f5940c0c",
"body": "Three cli-harness/adapter tests had failed on CI since before Phase C\n(visible in the v0.254.0 run) while passing locally. The shared root\ncause was implicit fixtures: the lint-adapter test scanned whatever\nprocess.cwd() held, and the ci-check / complete-check E2Es asserted\nexit codes that assume th\n[…]\n/ 0 violations, L2 and L3 overall PASS.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-311\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] test: isolate CI harness tests from checkout state (WI-311)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T04:46:11Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "df05fbb964328e4e4a80896bac2c54d8b5ae71a4",
"body": "The WI-308 regression test asserted that this repo's live\n`validate --layer L2 --json` output exceeds 64 KiB — true locally only\nbecause the untracked requirement-test matrix feeds L2-017 its 604\nadopted-legacy warnings. CI runs tests before matrix generation, the\noutput shrank to 1.8 KB, and the fi\n[…]\ncases pass, full cli-harness E2E 62/62.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-310\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] test: make the large-stdout regression test hermetic (WI-310)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T04:39:34Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "634c92eb6d66434f542ff4c3e69e9db2bff10baf",
"body": "…WI-309)\n\nWI-305 implemented and wired DesignChangeDeclarationPolicy into\nvalidator-system but missed the cumulative WI-305 reflection in that\nunit's domain_model.md — an honest gap the story-reflection corpus IT\ncaught as a baseline-exceeding violation during CP-5 verification.\n\nThe domain model no\n[…]\n-STORY-REFLECTION) and L3 overall PASS.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-309\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] docs: restore the WI-305 validator-system domain reflection (…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T02:33:38Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0c7b34d800efa1a2f2d37ebc845f50eee43353ce",
"body": "Enabling World enforcement in the self repo (WI-303) grew\n`validate --layer L2 --json` past 64 KiB — 604 adopted-legacy warnings\nnow ride in the JSON — and exposed a latent CLI defect: process.exit()\nimmediately after console.log does not wait for the piped stdout queue,\nso consumers received JSON t\n[…]\nSS,\nstory-reflection corpus unaffected.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-308\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: drain large CLI stdout before exit (WI-308)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T02:33:23Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "8ab63188e053c423a260a2a2320c8ef854263ac5",
"body": "…he regression suite (WI-307)\n\nExecutes WM-24 of the WI-280 delivery plan (H17-19), the final Phase C\nwork item. The self-repo CI now runs the CP-5 order — test, matrix\ngeneration, a World derive determinism step that runs the pure command\ntwice and compares raw bytes, the L3 check (including the L3\n[…]\nests green, L2 8/8 and L3 overall PASS.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-307\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] ci: integrate the World trust chain into CI, templates, and t…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T01:30:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e1342a65227ff3468b9b605c9322aa8f56a5f7c0",
"body": "Executes WM-23 of the WI-280 delivery plan (H17-18). Attestation\ndocuments gain a v2 envelope (`phasegate-attestation/v2`,\n`.../gate-run/v2`) whose top-level `worldSnapshotRoot` carries the\nWorld corpusRoot as a SHA-256 string inside the canonical signing\nsurface, so an attestation now commits to th\n[…]\nr E2E pass, L2 8/8 and L3 overall\nPASS.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-306\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: pin the World snapshot root in attestation v2 (WI-306)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T00:50:34Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3beb0b9e3e8c3a6d28614317f6162106d0c25001",
"body": "…me (WI-305)\n\nExecutes WM-22 of the WI-280 delivery plan (H17-17), wiring design\nchange events into the existing commit-msg path. When a staged change\ntouches a design fragment that is a pinned endpoint of an explicit\nWorld constraint, the pre-commit integration now requires the commit\nto declare th\n[…]\nrall PASS with the world gates enabled.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-305\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: validate pinned design-change declarations at commit ti…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-17T00:29:57Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e61f7b9cb3330661ec39aa4798584c80ce87aba8",
"body": "Executes WM-21 of the WI-280 delivery plan (H17-16). The SessionStart\nhook now prepends a World open-obligations summary built through an\nagent-integration-owned query port, plain DTO, use case, and formatter,\nwith a world-model query adapter that goes through the public facade\nand re-derives purely\n[…]\nrall PASS with the world gates enabled.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-304\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: summarize open World obligations at session start (WI-304)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T23:57:41Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d46c2db99a9da3efbb89f5980bdded01f7edb38f",
"body": "CP-4 (enforceable MVP) passed on this checkout: full suite 636 files /\n4,657 tests green, mutation E2E and integrity clean, L2/L3 running 8\ncontracts each with both world gates skipping under the disabled\ndefault. With the WM-20 measurement showing both gates complete in\nunder a second each with 604\n[…]\ned: L2-017 WARN / overall\nPASS, L3-008 WARN / overall PASS, self-repo dogfood IT and validator\nusecase suites 99 tests green.\n\nWork-Item: WI-303\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] chore: enable World enforcement in the self repo (WI-303)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T23:30:16Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "259532748524fb2994a53198b80333b085d78083",
"body": "…ate (WI-302)\n\nExecutes WM-20 of the WI-280 delivery plan (H17-15), completing the\nenforcement pair that makes the World Model an enforceable MVP. L3-008\nworld-constraint-rederivation joins the validator registry and RunL3\nwiring with its own port, service, and adapter, and re-derives\nobligations pu\n[…]\nes skipping under the disabled default.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-302\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: register the L3-008 authoritative World re-derivation g…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T23:21:13Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b0e5a1bbe4d4e2deb7161af9c5417fddb8abb60a",
"body": "…h (WI-301)\n\nExecutes WM-19 of the WI-280 delivery plan (H17-14). L2-017\nworld-constraint-admission joins the validator registry and RunL2\nwiring as the local fast-path over World constraint declarations,\nconsuming the WM-18 config projection: with `world.enabled: false`\n(every preset's default, inc\n[…]\nder the disabled default), L3\nall-PASS.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-301\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: register the L2-017 World constraint admission fast-pat…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T22:50:24Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d1562d2698ba272aa240f4d121350f2233381825",
"body": "…g (WI-300)\n\nExecutes WM-18 of the WI-280 delivery plan (H17-13), opening Phase C.\nThe `world` key joins the config v2/v3 schemas with the ADR-037\ncontract intact: every defense preset (minimal/standard/strict)\ndefaults to `enabled: false`, and explicit `world:*` CLI commands run\nregardless of that \n[…]\nal double runs\nafter the config change.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-300\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: add the world config surface and resolved config mappin…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T22:25:39Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "785ceed3d11ebf07775fd1a496cff948d342df86",
"body": "…-299)\n\nThe World Model functional MVP (WI-281..298, v0.231.0-v0.253.0) landed\nwith zero user-facing documentation: README.md, README.ja.md, and\ndocs/guide/cli-reference.md contained no mention of it. This change\ncloses that gap without touching any source or gating behavior.\n\nREADME.md and README.j\n[…]\nis caught up. Verified: validate --layer L2 green (only the declared\nL2-016 ungated-legacy warning), integrity:verify exit 0.\n\nWork-Item: WI-299\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] docs: surface the World Model in README and CLI reference (WI…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T21:24:02Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "48760d98679d9dca60748e0dd4109c3fecb2e178",
"body": "… debt (WI-298)\n\nExecutes WM-17 of the WI-280 delivery plan (H17-12), completing the\nfunctional MVP scope. The initial structural violation set was measured\nper the ADR-031 procedure — double derivation over the clean corpus\nyielding byte-identical candidate sets — landing at exactly 604\nfingerprint\n[…]\nL2 7/7, L3 all-PASS, check-ready 88/88.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-298\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: adopt the self-repo World baseline and declare semantic…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T16:46:01Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "8c786c642b27d10487ebb94146a6b8667dc9ea24",
"body": "…WI-297)\n\nExecutes WM-16 of the WI-280 delivery plan (H17-11), locking the CP-3\nverification surface into fixtures. A repository-shaped base corpus and\nfourteen mutation scenarios with golden fingerprints cover every CP-3\ncase: missing endpoints, content drift on either endpoint, deletion and\nrename\n[…]\nL2 7/7, L3 all-PASS,\ncheck-ready 88/88.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-297\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] test: synthetic World mutation fixtures and determinism E2E (…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T16:29:36Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "4bc745759dc4cc4c6af50710931d335cb6c878fa",
"body": "Executes WM-15 of the WI-280 delivery plan (H17-10), the second CLI\nhotspot landing. world:pin previews ConstraintRecord pin candidates by\ndefault and mutates phasegate.world-constraints.json atomically only\nunder --apply, refusing to write on missing, duplicate, ambiguous, or\nmalformed endpoints; w\n[…]\nL2 7/7; L3 all-PASS;\ncheck-ready 88/88.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-296\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: world:pin and world:derive CLI integration (WI-296)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T16:11:51Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "33e3ec9ae46cfe373cb5f2b986104ee9a7fd347e",
"body": "Executes WM-14 of the WI-280 delivery plan (H17-09) — the application\nintegration point of Phase B. Adds the ADR-035 violation fingerprint\nderiver (ten-field canonical preimage bound to the ruleset version,\nwith sorted candidate digest multisets for WCR-005 and no locators,\nmessages, or evaluation I\n[…]\n/7, L3 all-PASS,\ncheck-ready all green.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-295\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: deterministic World obligation derivation (WI-295)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T15:46:53Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "de711be252a7678cb857da216978aaa80e2373d9",
"body": "…ories (WI-294)\n\nExecutes WM-13 of the WI-280 delivery plan (H17-08). Publishes the four\nfail-closed control schemas ruled by ADR-037 §3 —\nphasegate.world-{constraints,baseline,waivers,debts}.json with\nphasegate-world-*/v1 schema versions — under docs/contracts/, and adds\nthe application-owned repos\n[…]\nnd is left for a separate repayment WI.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-294\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: versioned World control-declaration schemas and reposit…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T15:25:18Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "5e7f58331a4ea9f13f31df4a8bb7f0222cc41f6f",
"body": "Executes WM-12 of the WI-280 delivery plan (H17-07), opening Phase B.\nAdds the immutable ConstraintRecord entity (constraintId, fact type,\nclaimant/premise NodePins, sorted applicable rule IDs, declaration\nprovenance), the NodePin and non-causal ChangeProvenance value objects,\nand the policy-free co\n[…]\nL2 7/7, L3 all-PASS, check-ready 88/88.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-293\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: World constraint records and the WCR evaluator (WI-293)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T15:04:03Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "03f9df82e7359c22a00553cc9697201949f736bd",
"body": "…te (WI-292)\n\nCloses the CP-2 blocker discovered when the regenerated matrix exposed\n33 uncovered ACs from the not-yet-implemented Phase B stories\n(H17-07..H17-12) registered by WM-05. Investigation confirmed the repo\nhad no mechanism for registered-but-unimplemented stories — every prior\nepic lande\n[…]\nn,\nL1 clean, L2 7/7, check-ready 88/88.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-292\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: planned/required story coverage lifecycle for the AC ga…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T14:41:07Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "308cc7a797bea2a5164929b191dbd88a7f055682",
"body": "…LI (WI-291)\n\nExecutes WM-11 of the WI-280 delivery plan (H17-06) — the visualization\nmilestone. Adds the world-model application layer (BuildSnapshot and\nInspectWorld use cases over a consumer-owned fact-source port), the\ncomposition root and public index wiring all Phase A extractors\ntogether with\n[…]\ne; L1 clean, L2 7/7,\ncheck-ready 88/88.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-291\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: assemble the World snapshot and add the world:inspect C…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T14:14:51Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3278ab4176bf0726cf335839221cbdc36eed2c3a",
"body": "Executes WM-10 of the WI-280 delivery plan (H17-05), completing the\nPhase A extractor surface. Adds infrastructure extractors for\nimplementation and test source files (deriving @unit/@layer/\n@work-item-id metadata facts with missing/ambiguous-metadata\ndiagnostics), the requirement-test matrix (owner\n[…]\nall stories. CP-1\nverification is next.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-290\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: World runtime and evidence fact extractors (WI-290)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T13:36:23Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1c940a4dd126b0dabcaa748510b4a38890cba74b",
"body": "Executes WM-09 of the WI-280 delivery plan (H17-04). Adds the\nworld-model infrastructure extractors for the design corpus — product,\ninception/proposal, ADR, and unit-definition facts — built on a shared\nmarkdown design-fact extractor implementing the ADR-032 rules:\n@world-fragment-id markers bound \n[…]\nith 81 diagnostics retained losslessly.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-289\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: World design corpus fact extractors (WI-289)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T13:14:26Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "fcca51633b2c568bbda96bfc4aef53f0d5127ead",
"body": "…(WI-288)\n\nExecutes WM-08 of the WI-280 delivery plan (H17-03). Adds\nTraceabilityWorldReadFacade with plain read DTOs for Units, Stories,\nacceptance criteria, WorkItems, and file-level test references, wired\nthrough a consumer-facing source port and a filesystem adapter plus a\nstructured story-catal\n[…]\n 87 stories / 432 ACs / 270 work items.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-288\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: traceability-model plain DTO read facade for the World …",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T12:48:59Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e842627f05369e08035dbe57cb55c3c674d43bb6",
"body": "Executes WM-07 of the WI-280 delivery plan (H17-02) — the first\nworld-model source slice, domain layer only. Implements the pgw:v1\nidentity codecs for every ADR-032 node form (WorldNodeId with\nnode-type-specific parsing, PathKey, DeclaredKey, Sha256Digest,\nCorpusRole, ArtifactKind), the WorldNode/Ed\n[…]\nce; L1 lint, L2 7/7, check-ready 88/88.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-287\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: World domain primitives and canonical snapshots (WI-287)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T12:28:37Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6a75e27ffb829cf53314c7711460ba9dd775f5e0",
"body": "…nit designs\n\nRepairs the 24 story-reflection violations surfaced by the\nstory-reflection corpus test after the WI-281..284 ADR work items\ndeclared cross-unit affects without product reflection. Each affected\nunit's logical_design.md now carries @work-item-id annotated sections\nderiving the concrete\n[…]\n88.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator). Documents only — no source changes.\n\nWork-Item: WI-281\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] docs: reflect the Phase 0 World ADR contracts into affected u…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T12:07:07Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0e3d99590380ee0b6016637989ac073fe8f98272",
"body": "… attestation facade (WI-286)\n\nExecutes WM-06 of the WI-280 delivery plan (H17-01), implementing the\nADR-033 §8 hashing ruling. The existing node:crypto SHA-256 primitive\nmoves from NodeCryptoContentHasherAdapter into a new\nNodeCryptoSha256Capability behind the plain public contract\nSha256Capability\n[…]\nor immediate repair in the next commit.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator).\n\nWork-Item: WI-286\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: expose a Unit-independent SHA-256 capability behind the…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T11:55:05Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7e2d5052c8af199cdb241ce692c59ca70c369233",
"body": "… (WI-285)\n\nStep B of WM-05, completing Phase 0 of the WI-280 delivery plan. Adds\nEpic H17 with twelve stories (H17-01..H17-12) mapping one-to-one onto\nthe WM-06..WM-17 implementation milestones, registers the world-model\nUnit as a federated read model (fact assembly, canonical snapshots,\npolicy-fre\n[…]\nss.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator). Documents only — no source changes.\n\nWork-Item: WI-285\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] docs: World Model product catalog and construction foundation…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T11:30:34Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "2680606127f930a8383726f2123b5b66884c3ecf",
"body": "…ilenames (WI-285)\n\nStep A of WM-05 under the WI-280 delivery plan, executing the ADR-031\nruling. All 13 hyphen/underscore duplicate pairs in docs/product/units/\nare collapsed: unique content and traceability annotations from the\nunderscore variants (including the WI-168 annotations that existed onl\n[…]\nes.\n\nExecuted by GPT-5.6 sol (Codex CLI), reviewed and approved by Claude\n(orchestrator). Documents only — no source changes.\n\nWork-Item: WI-285\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] docs: canonicalize the Unit definition corpus to kebab-case f…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T11:06:39Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "a650d3cae7ca4f0f7e17c5ca54fdaab4de99c7f1",
"body": "…-284)\n\nFourth and final ADR under WM-04 of the WI-280 delivery plan,\ncompleting Phase 0 decision-making. Fixes three top-level commands —\nworld:inspect (read-only), world:pin (preview by default, --apply\nmutates the reviewed constraints declaration), and world:derive (pure\nby default, --write persi\n[…]\nd by GPT-5.6 sol (Codex CLI) as executor, reviewed and approved by\nClaude (orchestrator). Documents only — no source changes.\n\nWork-Item: WI-284\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] docs: ADR-037 — World CLI and output/persistence contract (WI…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T10:51:35Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d6c5d5a838924ea566a6ab09b1c6f2fb7562955c",
"body": "…oc freshness (WI-284)\n\nThird of four ADRs under WM-04 of the WI-280 delivery plan. Records the\nverified current state of L4-004 (an active validator wired through the\nregistry, composition root, and RunL4 — merely disabled by self-repo\ndogfood config, not removed) and separates responsibilities: L4\n[…]\nd by GPT-5.6 sol (Codex CLI) as executor, reviewed and approved by\nClaude (orchestrator). Documents only — no source changes.\n\nWork-Item: WI-284\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] docs: ADR-036 — coexistence of World constraints and L4-004 d…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T10:40:21Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "5c401fbfe502b2b2a971fa8bd19d2af4bfbbd985",
"body": "…vers (WI-284)\n\nSecond of four ADRs under WM-04 of the WI-280 delivery plan. Separates\nconstraint identity, violation identity, and obligations: the\nviolationFingerprint (pgw:v1:violation-fingerprint:sha256:*) is built\nfrom ruleset version, WCR rule ID, constraint ID, endpoint pins, and\nrule-owned e\n[…]\nd by GPT-5.6 sol (Codex CLI) as executor, reviewed and approved by\nClaude (orchestrator). Documents only — no source changes.\n\nWork-Item: WI-284\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] docs: ADR-035 — World adoption baseline, obligations, and wai…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T10:33:24Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "255600a87b8953f22c01872b6f8653a0f3108133",
"body": "…tric evaluation (WI-284)\n\nFirst of four ADRs under WM-04 of the WI-280 delivery plan. Keeps\nconstraint facts typed and directed (claimant -> premise) while making\nevaluation endpoint-symmetric: a change on either endpoint re-evaluates\nthe same constraint. ConstraintRecords pin both endpoints with p\n[…]\nd by GPT-5.6 sol (Codex CLI) as executor, reviewed and approved by\nClaude (orchestrator). Documents only — no source changes.\n\nWork-Item: WI-284\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] docs: ADR-034 — World constraint semantics and endpoint-symme…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T10:21:31Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "46b74d8a679c8fb22f1b3577882e259c44dc52ba",
"body": "… hashing (WI-283)\n\nExecutes WM-03 of the WI-280 delivery plan. Defines three separate\nderived identities — corpusRoot, constraintRoot, and evaluationId — so\nthe cause of a root change is attributable to corpus facts, constraint\ndeclarations, or evaluation inputs respectively. Fixes the canonical\nJS\n[…]\nd by GPT-5.6 sol (Codex CLI) as executor, reviewed and approved by\nClaude (orchestrator). Documents only — no source changes.\n\nWork-Item: WI-283\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] docs: ADR-033 — canonical World snapshots, version roots, and…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T10:09:48Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3aff80d150c6cc07199c1f2d424ff7d55d6fab7c",
"body": "…282)\n\nExecutes WM-02 of the WI-280 delivery plan. Defines versioned World\nnode IDs (pgw:v1:*), separates path-based file identity from explicit\nfragment identity, and establishes deterministic Markdown fragment\nmarkers (@world-fragment-id in a heading's metadata prelude), the\nwhole-file -> mixed ->\n[…]\nd by GPT-5.6 sol (Codex CLI) as executor, reviewed and approved by\nClaude (orchestrator). Documents only — no source changes.\n\nWork-Item: WI-282\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] docs: ADR-032 — World node identity and fragment locator (WI-…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T09:55:16Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "2cd86678f80f3aa034e97cfbc7863d6a026c69a4",
"body": "…I-281)\n\nExecutes WM-01 of the WI-280 delivery plan. ADR-031 positions the\nworld-model as a federated read model: it observes traceability-model\nIDs/WorkItems/Stories via plain DTOs and public facades instead of\nduplicating them, owns fact assembly and constraint evaluation, and\nleaves gate executio\n[…]\nd by GPT-5.6 sol (Codex CLI) as executor, reviewed and approved by\nClaude (orchestrator). Documents only — no source changes.\n\nWork-Item: WI-281\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] docs: ADR-031 — World Model ownership and corpus lifecycle (W…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T09:38:41Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1d74fe4cd71cb742432aef12e322e9d3eff9507f",
"body": "… constraint re-evaluation environment (WI-280)\n\nRecords the delivery plan for the World Model initiative: representing the\nproject world (Units, domain models, logical designs, stories, ACs, tests,\nADRs) as typed directed facts whose constraints are re-evaluated\nsymmetrically when either endpoint c\n[…]\nLI implements sequentially through WM-17,\napprovals delegated to the orchestrator, npm publish only at checkpoint\nboundaries.\n\nWork-Item: WI-280\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] docs: World Model delivery plan — symmetrize phasegate into a…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T09:13:23Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7b11c0c01fdd1b85a2f67ed5f0e0442ba06c63ca",
"body": "…tests and rebindings (WI-276)\n\nRepays 11 of the 12 rows WI-270 demoted in the phase-dependency-model\ncoverage report. Investigation showed most demotions were severed\ncross-references rather than missing behavior: the five UseCase rows and\nseveral ACs already had real passing tests that the launder\n[…]\nn main's\nunit+integration split), all green; L2 PASS and L3-004/005/007 PASS over\nthe regenerated matrix re-verified on main.\n\nWork-Item: WI-276\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] chore: cover phase-dependency-model's demoted rows with real …",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T06:47:24Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "2b920cb1ab9767cc5bf3e4b59613a040f82cbf81",
"body": "…ed test IDs (WI-278)\n\nInvestigation resolved the UT-TM-001..041 mystery behind WI-270's\ndemotions: unit_test_design.md had assigned those IDs to the five value\nobjects all along, and the VO test files existed and passed — but carried\nno ID markers or @story annotation, so the citations resolved to \n[…]\neadline moves 81.3% to 96.9% (31/32). Suite 264 to 278 green on main;\nL2 PASS, L3-004/005/007 PASS on the regenerated matrix.\n\nWork-Item: WI-278\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] chore: bind traceability-model's five VO rows to their design…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T06:46:28Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "acfb7b65693033fcf9269f1254107dd9b1e2d2b8",
"body": "…-suite's demoted rows (WI-277)\n\nRepays all 13 rows WI-270 demoted in the regression-suite coverage report\nwith 31 new integration tests across 8 files: the seven infrastructure\nadapters are now exercised against the real filesystem and real data\n(IT-ADP-*), and the four cross-layer flows run throug\n[…]\ninput — all left for a\nstory-scoped fix. Suite grows 147 to 178, all green on main;\nL2/L3 (L3-007 included) PASS; lint clean.\n\nWork-Item: WI-277\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] chore: real adapter and flow integration tests for regression…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T06:45:20Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1da4804cded1494374934a48cf75d5a395c1de32",
"body": "…h real tests (WI-279)\n\nRepays two of the three rows WI-270 demoted in the harness-error coverage\nreport. The Severity immutability invariant gains two new domain tests\n(UT-HE-129/130: a frozen instance rejects value and rank reassignment and\nkeeps its original values), and the ADR-reference-on-viol\n[…]\nger or validation\nstep, so this is a source-side feature gap, out of scope for a test-only\nchange and recorded for follow-up.\n\nWork-Item: WI-279\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] chore: cover two of harness-error's demoted coverage rows wit…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T06:38:51Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "9f7a66816972722ba676f5112108e0b1b269ee9a",
"body": "…ed attestations (WI-275)\n\nWith L3-007 live, coverage-report claims can finally be backed by\nmachine-verifiable references. Every checked claim row in five reports —\nci-governance, harness-error, phase-dependency-model, regression-suite,\ntraceability-model — was independently re-verified against the\n[…]\n. On main after landing: L2 PASS with the\nsingle expected warning, L3-007 PASS over the regenerated matrix,\ncorpus tests 3/3.\n\nWork-Item: WI-275\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] chore: repay five ungated-legacy coverage reports with verifi…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T06:23:30Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7f909f6c6c5427b76caa4b3b7078db27d072be43",
"body": "…ck hook (WI-273)\n\nThe git allowlist and its read/write guards (WI-253/269/271) were verified\nonly by hand-run probes at each change; nothing would catch a future edit\nquietly reopening a hole. A new integration test now drives the live hook\ndirectly — spawning bash with PreToolUse JSON on stdin, no\n[…]\ntested — WI-272's byte-identity\ntest anchors it to this verified live version. 66/66 green re-verified on\nmain after landing.\n\nWork-Item: WI-273\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] chore: automated behavioral regression suite for the deny-che…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T05:50:30Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f92b3a7621c4757c6ee8478582c01a22652ff206",
"body": "…WI-274)\n\nSweep of the pre-WI-265 L1 rule-code drift across all documentation. The\nsurvey found current-facing docs (DEVELOPMENT.md, guides, README family,\ntemplates, skills) already canonical — the only reader-misleading remnants\nwere the rule tables in ADR-001 and ADR-015, which now carry an appen\n[…]\nte error-code\nnamespace, unrelated to biome rule codes. The full classification is\nrecorded in the WI-274 inception document.\n\nWork-Item: WI-274\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] docs: annotate historical L1 rule-code drift in ADR-001/015 (…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T05:48:37Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "d57d35bf4369ade047fbe903d5daa99e636f3ba0",
"body": "…ity (WI-270)\n\nThe WI-267 verification proved four coverage_report files cited\nnonexistent test-case IDs as backing for their 100% claims. Following the\nskill-quality/ci-governance self-correction precedent, every cited ID was\nexhaustively re-checked against the real test tree and each report now\nst\n[…]\nrepped). Real suites all green: 202, 147, 347, and 272 tests\nrespectively; L2 overall PASS re-verified on main after landing.\n\nWork-Item: WI-270\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: correct four laundered coverage reports to verified real…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T04:53:16Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "893a8d50f02c6ae5905e26dcceda0a20eded0941",
"body": "…it allowlist (WI-272)\n\nThe WI-269 audit found that templates/.claude/scripts/deny-check.sh — the\ncopy phasegate distributes to consumer repositories — predates the WI-253\ndefault-deny inversion entirely: no GIT_ALLOWED_SUBCOMMANDS, no subcommand\nextraction, none of the guards. Consumer projects wer\n[…]\n in this repo, which excludes\ntemplates/**; the drift test transitively anchors the template to the\npinned live hook instead.\n\nWork-Item: WI-272\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: sync the distributed deny-check template with the live g…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T04:52:22Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "cf3ff5af18b1f32da2416b56c86e26e618bb4926",
"body": "Follow-up to the WI-269 allowlist audit: config sat in the allowlist with\nboth read and write forms permitted, and its write form can re-point\ncore.hooksPath — disabling the entire L0 defence layer, a heavier symptom\nthan the symbolic-ref HEAD loophole.\n\ndeny-check.sh now adjudicates config in a ded\n[…]\nurns rc=0. Integrity manifest re-pinned for the\nedited hook in the same change set; hooks-integration.md documents the\nsplit.\n\nWork-Item: WI-271\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: deny git config write forms in the agent allowlist (WI-271)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T04:51:37Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e07a961f74fb5e75dadc79ff572ac9e6c000cfe1",
"body": "…nerated test matrix (WI-268)\n\nSecond stage of the L2-016 attestation gate, per ADR-030's trust model:\nL2-016 checks only the shape of an @attestation comment, so a fabricated id\nwould go undetected — the gap that blocked honest repayment in WI-267.\n\nL3-007 (coverage-attestation-verification) closes\n[…]\nemonstrated live with a ghost reference before removal. On main: new\nsuites 26/26 green, L3 overall PASS with L3-007 passing.\n\nWork-Item: WI-268\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: L3-007 verifies attestation references against the rege…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T04:44:20Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "f95e5f00c9da594ac13a115f3147291e4759d266",
"body": "…WI-264)\n\nCloses the follow-up deferred in the 0.211.0 CHANGELOG entry: after the\nWI-256 catalog reshape removed three bundled skills, reconcile left their\ndirectories and manifest entries orphaned in consumer projects, requiring\nmanual removal.\n\nreconcile now plans a \"prune\" action for manifest ent\n[…]\nverified RED\nbefore GREEN plus a live sandbox run. The CHANGELOG migration note now\npoints at reconcile instead of manual rm.\n\nWork-Item: WI-264\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: reconcile prunes bundled skills that left the catalog (…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T04:34:56Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "74470da4456dcf652cc50e6e70bbbcd93c27bdf3",
"body": "…y (WI-265)\n\nThe domain registry canonically codes no-code-duplication=L1-006,\nno-ghost-file=L1-007, no-comment-flood=L1-008, but three consumers drifted\nthree rules out of order: the CLI display mapper (RULE_TO_CODE), the\nharness-error payload mapper (RULE_CODE_BY_NAME), and harness-error's\nl1-erro\n[…]\ned on main\n(the worktree's 77 subprocess-e2e failures reproduce only where\nnode_modules is absent, unrelated to this change).\n\nWork-Item: WI-265\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: realign L1 rule-code mappings with the canonical registr…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T04:33:58Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "b76bd445d6c228f8ba6256321afabcebfa309921",
"body": "… coverage reports (WI-267)\n\nAttempted repayment of the six ungated-legacy coverage_report files ends as\nan honest stop with zero markers removed, for two independently blocking\nreasons now recorded in the WI-267 inception document:\n\n1. No legitimate attestation issuer exists yet. L2-016 checks only\n[…]\nked by real\npassing tests. The markers stay as correct visible debt; remediation of the\nfour false reports is a follow-up WI.\n\nWork-Item: WI-267\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] chore: record honest-stop verdicts for the six ungated-legacy…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T04:27:56Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "5b71099a0eaa286d731b327c65e8dad1e7f806a1",
"body": "… allowlist (WI-269)\n\nsymbolic-ref remained in GIT_ALLOWED_SUBCOMMANDS after the WI-253\ndefault-deny inversion, so its write form re-pointed HEAD exactly like the\ndenied checkout/switch family — and a parallel agent exercised it against\nthe main repository today (repaired by hand). Same shape as the\n[…]\nass risk), and the distributed template copy of this hook\npredates the WI-253 allowlist entirely and is not integrity-pinned.\n\nWork-Item: WI-269\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: close the symbolic-ref HEAD-mutation loophole in the git…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T04:26:46Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "4dcb2523d24a4f5ceaa0fe0a0e290b33d5f180a6",
"body": "…tput (WI-266)\n\nThe plain-text lint formatter truncates the violation list to three entries,\nand its \"... and N more\" line never restated the total, so operators reading\nthe list block undercounted violations versus --json's violationCount (the\nreal \"3 vs 11\" confusion from the v0.184.0 dogfooding).\n[…]\nnamed\ndisplayLimit. Regression tests cover the truncated, exact-limit, and empty\ncases; biome-ast-engine suite 260/260 green.\n\nWork-Item: WI-266\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: state the true violation total in truncated lint text ou…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T04:22:10Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "fc3e0be7109c4f870d5c80a6c27f52eb234bda76",
"body": "ADR-030 §Decision.3.① listed the integrity-pin targets as \"SKILL.md × 30\",\na remnant from before the WI-256 catalog reshape settled the bundle at 29\nskills (verified against skills/*/SKILL.md and the 39-entry\nphasegate.integrity.json). Factual count correction only; no other content\nof the Accepted ADR is touched.\n\nWork-Item: WI-263\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] docs: correct ADR-030 pinned-target skill count to 29 (WI-263)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-16T04:18:25Z",
"body_truncated": false,
"is_coding_agent": true
},
{
"oid": "b2505bc0294601b51743c109a1c9bb741668af48",
"body": "…elease (WI-262)\n\nREADME.md gains the month's user-visible changes: L2-016 coverage-attestation\ngate and layer-aware story-reflection on the L2 row, the L3-006 advisory\ninjection scan on L3, a new Security Posture section summarizing ADR-030\n(threat model, L3-CI trust root, five components, residual\n[…]\n and every referenced skill against skills/;\ngreps confirm zero stale-count, codex_hooks, or removed-skill references\nremain.\n\nWork-Item: WI-262\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] docs: refresh README (en) and catch up README.ja to current r…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-15T10:34:32Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0f81787d5ba367f35b67537789f7f319526b0c2c",
"body": "…CI trust-root step (WI-254)\n\nActivation of the WI-254 integrity pin, deliberately deferred until the skill\ncatalog reshape (WI-255/WI-256) was committed so the first pinned manifest\nmatches the committed tree:\n\n- phasegate.integrity.json pinned over 39 instruction-carrying files\n (29 SKILL.md, .cl\n[…]\nile must be\naccompanied by a re-pin in the same change set, which makes tampering visible\nin review and un-launderable in CI.\n\nWork-Item: WI-254\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] feat: activate instruction-file integrity pin — manifest and …",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-15T10:25:33Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1afad89c6ee1a76861e2064b16eca5b18760d533",
"body": "…alth merge, release-publisher (WI-256)\n\nAdopts and completes the parallel session's approved catalog reshape\n(BREAKING for skill consumers; see CHANGELOG for the manual orphan-removal\nmigration):\n\n- Removed implementation-planner (its unit-identification, domain-model\n review, existing-implementat\n[…]\nformance 29/29 with the 8-skill advisory pin green,\ninstallation+setup 92/92, lint clean, reflection corpus regression green.\n\nWork-Item: WI-256\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] chore: reshape skill catalog 30 -> 29 — planner merge, doc-he…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-15T10:24:50Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "479401ba35e948f2839c9d509475c653f1363e54",
"body": "…ions, story-mapper handoff (WI-255)\n\nAdopts the parallel session's docs-only P3 batch (applied in the working\ntree, reviewed and landed by the orchestrator):\n\n- skill-creator/SKILL.md rewritten for phasegate's own skill conventions\n (model:/review: frontmatter, canonical headings, Japanese test ru\n[…]\ncanonical heading\nstructure, and frontmatter contracts are unchanged; the skill-quality corpus\nconformance suite stays green.\n\nWork-Item: WI-255\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] docs: P3 docs batch — skill-creator rewrite, story-ID convent…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-15T10:24:03Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "997fe7963bda0c0cb38654a0c96df297993cbe6d",
"body": "…zation (WI-261)\n\nCreating a new SKILL.md had no legitimate path through the gate: skills/\ncreates fell into the feature category, quick mode's allowedCategories has no\nfeature, the full-mode session category list is hardcoded without it, and\nskills/ paths carry no unit so the design-doc bypass coul\n[…]\ngoes from EXIT=2\n(feature/MIXED_CHANGES) to EXIT=0 (Quick Mode, category=docs), while a .ts\nfile under skills/ still exits 2.\n\nWork-Item: WI-261\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: classify skills/ markdown as docs in quick-mode categori…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-15T10:11:57Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "7391911a225387d1a990195fdd5ce82ba2f123b6",
"body": "…idator failures (WI-260)\n\nphasegate:ci-check exited 1 whenever any validator reported a warning-only\nfailure, because CiCheckResult.fromResults/create aggregated with\nevery(passed || skipped) and never looked at error severity. WI-258's L2-016\nsurfaces a standing ungated-legacy warning set, so ci-c\n[…]\ns e2e case and T-042-01/02/03 are green; validate\n--layer L2 unchanged; lint and the reflection corpus regression stay clean.\n\nWork-Item: WI-260\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: severity-aware ci-check aggregation for warning-only val…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-15T10:00:19Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "8062606dfe75c49af0a015492ca3fcc68ec63298",
"body": "…ying files (WI-259)\n\nImplements ADR-030 §Decision.3.④, completing the five-component injection\ndefense. A new validator-system domain service scans instruction-carrying\nfiles (skills/**/SKILL.md, CLAUDE.md, AGENTS.md, agent-context templates,\n.claude/settings.json) for four narrow finding kinds: in\n[…]\nting noImplicitAnyLet in the L3 use case surfaced by\nthe lint hook during editing (type annotation only, no behavior change).\n\nWork-Item: WI-259\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: L3-006 advisory injection scanner over instruction-carr…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-10T11:07:17Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "212b6b911a6ff0f0389f76ee49315ab4e402eaf9",
"body": "…gacy debt (WI-258)\n\nImplements ADR-030 §Decision.3.② first stage. Coverage reports were ungated\nprose: an agent could claim any AC as achieved by writing a checkmark. A new\nvalidator-system domain service (CoverageAttestationGatingService, registered\nas L2-016 and default-on through the config-foun\n[…]\ns\none ci-gate-run record and has no per-AC granularity; the reference format is\ndefined now so records can bind to it later).\n\nWork-Item: WI-258\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: L2-016 coverage-report attestation gate with visible le…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-10T10:46:42Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "536748318d9baec9fe92e3f43891aa702df15b29",
"body": "Implements ADR-030 §Decision.3.③. A full inventory of the five hook outputs\nfound exactly one interpolation point that relays repo-derived free text to\nthe agent: the working-tree violation detail in the user-prompt-submit\ncontext (config-derived strings such as matched patterns). That detail is now\n[…]\nMANDS (the reflection corpus regression\ncorrectly flagged the missing note — the gate working as designed).\n\nWork-Item: WI-257\nWork-Item: WI-254\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: spotlight repo-derived text in hook output (WI-257)",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-10T10:34:00Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "6fc6d2ca381090a58e6de1a9e11ce1a1609d5b30",
"body": "…on-start warning (WI-254)\n\nImplements ADR-030 §Decision.3.① (integrity pin) as ci-governance domain\nlogic with CLI and hook wiring:\n\n- ci-governance: IntegrityManifest / IntegrityDrift / IntegrityTarget value\n objects, IntegrityChecker domain service, pin/verify use cases, sha256\n hasher + manife\n[…]\night skill catalog\nrestructure from a parallel session is committed, so the first pinned\nmanifest matches the committed tree.\n\nWork-Item: WI-254\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[story] feat: instruction-file integrity pin — CLI, domain, and sessi…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-10T10:20:25Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "e54d238783131e09eb329cca7148c0f0e06c10f2",
"body": "… ADR corpus (WI-248)\n\nAdrFoundationReferenceAdapter passed the project root to\ncreateAdrFoundationModule, but the adr-foundation repository expects the ADR\ndirectory itself, so exists() always returned false and getMetadata() always\nreturned null — a phantom gate that could never find a real ADR. T\n[…]\nd /\n2 passed) and GREEN after the fix (4/4, validator-system suites 417/417,\nlint clean, reflection corpus regression green).\n\nWork-Item: WI-248\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>",
"is_bot": false,
"headline": "[quick] fix: point validator-system ADR reference adapter at the real…",
"author_name": "Jumpei_Nakata",
"author_login": "junpei-9898",
"committed_at": "2026-07-10T09:50:00Z",
"body_truncated": true,
"is_coding_agent": true
}
],
"releases_count": 100,
"commits_last_year": 443,
"latest_release_at": "2026-07-21T12:20:35Z",
"latest_release_tag": "v0.301.0",
"releases_from_tags": true,
"days_since_last_push": 1,
"active_weeks_last_year": 13,
"days_since_latest_release": 1,
"mean_days_between_releases": 0.4
},
"community": {
"has_readme": true,
"has_license": true,
"has_description": true,
"has_contributing": false,
"health_percentage": 71,
"has_issue_template": false,
"has_code_of_conduct": true,
"has_pull_request_template": false
},
"ecosystem": {
"packages": [
{
"name": "phasegate",
"exists": true,
"license": "MIT",
"keywords": [
"quality",
"clean-architecture",
"ddd",
"ai-agent",
"governance",
"phase-gate",
"phasegate"
],
"ecosystem": "npm",
"matches_repo": true,
"registry_url": "https://www.npmjs.com/package/phasegate",
"is_deprecated": false,
"latest_version": "0.283.0",
"repository_url": "https://github.com/junpei-9898/phasegate",
"versions_count": 128,
"total_downloads": null,
"dependents_count": null,
"deprecation_note": null,
"maintainers_count": 1,
"monthly_downloads": 3931,
"first_published_at": "2026-04-03T08:50:00.069000Z",
"latest_published_at": "2026-07-17T22:13:05.405000Z",
"latest_version_yanked": null,
"days_since_latest_publish": 5
}
]
},
"popularity": {
"forks": 0,
"stars": 2,
"watchers": 0,
"fork_history": {
"days": [],
"complete": true,
"collected": 0,
"total_forks": 0
},
"star_history": null,
"open_issues_and_prs": 2
},
"ai_readiness": {
"has_nix": false,
"example_dirs": [
"sample"
],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [
"tsconfig.json"
],
"toolchain_manifests": [
"scripts/harness/__tests__/fixtures/release-smoke/go-monorepo/go.mod"
],
"largest_source_bytes": 149770,
"source_files_sampled": 1859,
"oversized_source_files": 3,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 6751
},
"dependencies": {
"manifests": [
"package.json"
],
"advisories": {
"error": null,
"scope": null,
"source": null,
"findings": [],
"collected": false,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 0,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [
"npm"
],
"dependencies": [
{
"name": "ajv",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^8.18.0"
},
{
"name": "picomatch",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^4.0.4"
},
{
"name": "tinyglobby",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^0.2.15"
},
{
"name": "tsx",
"manifest": "package.json",
"ecosystem": "npm",
"version_constraint": "^4.0.0"
}
],
"all_dependencies": {
"error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
"source": null,
"packages": [],
"collected": false,
"truncated": false,
"total_count": null,
"direct_count": null,
"indirect_count": null
}
},
"maintainership": {
"issues": {
"open_prs": 0,
"merged_prs": 0,
"open_issues": 2,
"closed_ratio": 0.95,
"closed_issues": 38,
"closed_unmerged_prs": 0
},
"bus_factor": 1,
"bot_contributors": 0,
"top_contributors": [
{
"type": "User",
"login": "junpei-9898",
"commits": 151,
"avatar_url": "https://avatars.githubusercontent.com/u/83627275?v=4"
}
],
"contributors_sampled": 1,
"top_contributor_share": 1
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"agent-context-refresh.yml",
"ci.yml",
"release-canary.yml"
],
"has_docs_dir": true,
"linter_configs": [
"biome.json"
],
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [
"pnpm-lock.yaml"
],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 0,
"reason": "branch protection not enabled on development/release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": null,
"reason": "no pull request found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 0,
"reason": "Found 0/30 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 0,
"reason": "project has 0 contributing companies or organizations -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 0,
"reason": "no update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 10,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 10,
"reason": "30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": null,
"reason": "packaging workflow not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 0,
"reason": "dependency not pinned by hash detected -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "no SAST tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 10,
"reason": "security policy file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": null,
"reason": "no releases found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 0,
"reason": "13 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "716b90681b3aaf790cb5706241c8df155acd0258",
"ran_at": "2026-07-23T07:39:59Z",
"aggregate_score": 3.6,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": true,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-21T12:34:34Z",
"oldest_open_prs": [],
"last_merged_pr_at": null,
"ci_last_conclusion": "SUCCESS",
"oldest_open_issues": [
{
"number": 27,
"created_at": "2026-05-15T06:20:37Z",
"last_comment_at": null,
"last_comment_author": null
},
{
"number": 29,
"created_at": "2026-05-24T08:14:27Z",
"last_comment_at": null,
"last_comment_author": null
}
]
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/junpei-9898/phasegate",
"host": "github.com",
"name": "phasegate",
"owner": "junpei-9898"
},
"metrics": {
"overall": {
"key": "overall",
"band": "moderate",
"name": "Overall health",
"note": null,
"notes": [],
"value": 57,
"inputs": {
"security": 36,
"vitality": 79,
"community": 38,
"governance": 50,
"engineering": 74
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "good",
"name": "Vitality",
"value": 79,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "good",
"name": "Development activity",
"note": null,
"notes": [],
"value": 73,
"inputs": {
"commits_last_year": 443,
"human_commit_share": 1,
"days_since_last_push": 1,
"active_weeks_last_year": 13
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 1 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "push_recency",
"params": {
"days": 1
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "13/52 weeks with commits",
"points": 9,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 13
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "443 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 443
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "excellent",
"name": "Release discipline",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 88,
"inputs": {
"releases_count": 100,
"latest_release_tag": "v0.301.0",
"releases_from_tags": true,
"days_since_latest_release": 1,
"mean_days_between_releases": 0.4
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "100 version tags (no GitHub releases)",
"points": 16.2,
"status": "partial",
"details": [
{
"code": "version_tags_no_releases",
"params": {
"count": 100
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 1 days ago",
"points": 36,
"status": "met",
"details": [
{
"code": "release_recency",
"params": {
"days": 1
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~0.4 days",
"points": 27,
"status": "met",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 0.4
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "unverified",
"guards": [],
"signals": [],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": "repository_too_young",
"unanswered_open_prs": null,
"unanswered_open_issues": null,
"days_since_last_merged_pr": null,
"days_since_last_human_commit": null,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "maintenance record not established from the collected data",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_unverified",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "at_risk",
"name": "Community & Adoption",
"value": 38,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 1,
"inputs": {
"forks": 0,
"stars": 2,
"watchers": 0,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "2 stars",
"points": 0,
"status": "missed",
"details": [
{
"code": "stars",
"params": {
"count": 2
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "0 forks",
"points": 0,
"status": "missed",
"details": [
{
"code": "forks",
"params": {
"count": 0
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "0 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 0
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "moderate",
"name": "Community health",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"has_readme": true,
"has_license": true,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": true,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 22.5,
"status": "met",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "recognized license (MIT)",
"points": 22.5,
"status": "met",
"details": [
{
"code": "license_standard",
"params": {}
},
{
"code": "license_spdx",
"params": {
"spdx": "MIT"
}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 13.5,
"status": "met",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
},
{
"key": "ecosystem_adoption",
"band": "moderate",
"name": "Ecosystem adoption (downloads)",
"note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"registry_dependents"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 60,
"inputs": {
"packages": [
"phasegate"
],
"dependents": null,
"ecosystems": "npm",
"total_downloads": null,
"monthly_downloads": 3931
},
"components": [
{
"key": "monthly_downloads",
"name": "Monthly downloads",
"detail": "3,931 downloads/month across npm",
"points": 47.9,
"status": "partial",
"details": [
{
"code": "downloads_monthly",
"params": {
"count": 3931,
"ecosystems": "npm"
}
}
],
"max_points": 80
},
{
"key": "registry_dependents",
"name": "Registry dependents",
"detail": "not reported by this ecosystem",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_reported_by_this_ecosystem",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "moderate",
"name": "Sustainability & Governance",
"value": 50,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "critical",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 10,
"inputs": {
"bus_factor": 1,
"contributors_sampled": 1,
"top_contributor_share": 1
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "1 contributor(s) cover half of all commits",
"points": 9,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 1
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 100% of commits",
"points": 0,
"status": "missed",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 100
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "1 contributors",
"points": 1.4,
"status": "partial",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 1
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 0 contributing companies or organizations -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "good",
"name": "Issue & PR responsiveness",
"note": "Excluded from scoring (no data or not applicable): PR acceptance. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"pr_acceptance"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 72,
"inputs": {
"merged_prs": 0,
"open_issues": 2,
"closed_issues": 38,
"issue_closed_ratio": 0.95,
"closed_unmerged_prs": 0
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "95% of issues closed",
"points": 44.4,
"status": "partial",
"details": [
{
"code": "issues_closed_share",
"params": {
"share": 95
}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "no decided pull requests or no data",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_decided_prs_or_data",
"params": {}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "at_risk",
"name": "Ownership & stewardship",
"note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"verified_domain"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 36,
"inputs": {
"followers": 0,
"owner_type": "User",
"is_verified": null,
"owner_login": "junpei-9898",
"public_repos": 12,
"account_age_days": 1906
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "personal (user) account",
"points": 10,
"status": "partial",
"details": [
{
"code": "owner_personal",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": "not applicable to user accounts",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_applicable_to_user_accounts",
"params": {}
}
],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "0 followers of junpei-9898",
"points": 0,
"status": "missed",
"details": [
{
"code": "owner_followers",
"params": {
"count": 0,
"login": "junpei-9898"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "12 public repos, account ~5 yr old",
"points": 18.5,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 12
}
},
{
"code": "account_age_years",
"params": {
"years": 5
}
}
],
"max_points": 25
}
]
},
{
"key": "package_maintenance",
"band": "excellent",
"name": "Package maintenance",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"packages": [
"phasegate"
],
"ecosystems": "npm",
"any_deprecated": false,
"min_days_since_publish": 5
},
"components": [
{
"key": "published_resolvable",
"name": "Published & resolvable",
"detail": "1 package(s) on npm",
"points": 25,
"status": "met",
"details": [
{
"code": "packages_published",
"params": {
"count": 1,
"ecosystems": "npm"
}
}
],
"max_points": 25
},
{
"key": "publish_recency",
"name": "Publish recency",
"detail": "latest publish 5 days ago",
"points": 35,
"status": "met",
"details": [
{
"code": "publish_recency",
"params": {
"days": 5
}
}
],
"max_points": 35
},
{
"key": "version_history",
"name": "Version history",
"detail": "128 published versions",
"points": 20,
"status": "met",
"details": [
{
"code": "published_versions",
"params": {
"count": 128
}
}
],
"max_points": 20
},
{
"key": "not_deprecated",
"name": "Not deprecated",
"detail": "active, not deprecated or yanked",
"points": 20,
"status": "met",
"details": [
{
"code": "package_not_deprecated",
"params": {}
}
],
"max_points": 20
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "good",
"name": "Engineering Quality",
"value": 74,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "good",
"name": "Engineering practices",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_ci_tests"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 80,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": false,
"has_linter_config": true,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "3 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 3
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": "biome.json",
"points": 16,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "biome.json"
}
}
],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "moderate",
"name": "Documentation",
"note": null,
"notes": [],
"value": 65,
"inputs": {
"topics": [],
"has_wiki": false,
"homepage": null,
"has_readme": true,
"has_docs_dir": true,
"has_description": true
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 30,
"status": "met",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "at_risk",
"name": "Security",
"value": 36,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): CI-Tests, Packaging, Signed-Releases. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"ci_tests",
"packaging",
"signed_releases"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 36,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 15,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 3,
"scorecard_aggregate": 3.6
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection not enabled on development/release branches",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 0 contributing companies or organizations -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "no update tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "30 commit(s) and 30 issue activity found in the last 90 days -- score normalized to 10",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow not detected",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "no SAST tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file detected",
"points": 5,
"status": "met",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "no releases found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "13 existing vulnerabilities detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "good",
"name": "AI Readiness",
"value": 77,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "excellent",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 85,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 1,
"agent_instruction_files": [
"AGENTS.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 6751
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": "AGENTS.md, CLAUDE.md",
"points": 45,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "AGENTS.md, CLAUDE.md"
}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "100 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 100,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "good",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 77,
"inputs": {
"has_nix": false,
"has_tests": true,
"lockfiles": [
"pnpm-lock.yaml"
],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": true,
"typecheck_configs": [
"tsconfig.json"
],
"agent_commit_share": 1,
"toolchain_manifests": [
"scripts/harness/__tests__/fixtures/release-smoke/go-monorepo/go.mod"
],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": "scripts/harness/__tests__/fixtures/release-smoke/go-monorepo/go.mod (toolchain convention, no task runner)",
"points": 12.6,
"status": "partial",
"details": [
{
"code": "toolchain_convention",
"params": {
"files": "scripts/harness/__tests__/fixtures/release-smoke/go-monorepo/go.mod"
}
}
],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": "biome.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "biome.json"
}
}
],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "tsconfig.json",
"points": 11,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "tsconfig.json"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "lockfile",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "lockfile"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "100 of the last 100 commits agent-authored or agent-credited",
"points": 10,
"status": "met",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 100,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"primary_language": "TypeScript",
"largest_source_bytes": 149770,
"source_files_sampled": 1859,
"oversized_source_files": 3
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "TypeScript (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "TypeScript"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "3/1859 source files over 60KB",
"points": 54.9,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 1859,
"oversized": 3
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "at_risk",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"example_dirs": [
"sample"
],
"has_mcp_signal": false,
"api_schema_files": []
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 40
},
{
"key": "mcp_server",
"name": "MCP server",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": "sample",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "sample"
}
}
],
"max_points": 40
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
"GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
"deps.dev does not index npm:phasegate@0.283.0; advisories assessed against the repository dependency graph instead"
],
"report_type": "repository",
"generated_at": "2026-07-23T07:40:06.202490Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/j/junpei-9898/phasegate.svg",
"full_name": "junpei-9898/phasegate",
"license_state": "standard",
"license_spdx": "MIT"
}