diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index b2ac812c1..26d059b0b 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -9,7 +9,7 @@ { "name": "ndf", "source": "./plugins/ndf", - "description": "Claude Code plugin (v10.27.24-dev.1): 8 specialized agents (plus 1 worker agent for the 3-layer workflow) and 49 focused NDF skills for PR/review workflows, cross-review, implementation planning, plan-to-spec, Docker container access, statusline, external AI delegation (Codex/agy), transcript retention guard, and optional Slack notifications.", + "description": "Claude Code plugin (v10.27.24): 8 specialized agents (plus 1 worker agent for the 3-layer workflow) and 49 focused NDF skills for PR/review workflows, cross-review, implementation planning, plan-to-spec, Docker container access, statusline, external AI delegation (Codex/agy), transcript retention guard, and optional Slack notifications.", "policy": { "installation": "AVAILABLE", "authentication": "ON_INSTALL" diff --git a/README.md b/README.md index ee1da058a..8e877d171 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ Claude Code では `/ndf:` と打って呼びます。**Skill** は | プラグイン名 | バージョン | できること | 詳細 | | --- | --- | --- | --- | -| **ndf** | 10.27.24-dev.1 | 開発の作業手順(Skill)と専門のサブエージェント。Claude Code と Codex へ同じ名前で入る | [README](./plugins/ndf/README.md) | +| **ndf** | 10.27.24 | 開発の作業手順(Skill)と専門のサブエージェント。Claude Code と Codex へ同じ名前で入る | [README](./plugins/ndf/README.md) | | **playwright-kit** | 4.0.0 | Playwright による E2E テストの計画・スクリプト作成・証跡のレポート | [README](./plugins/playwright-kit/README.md) | 外部サービスへつなぐ MCP サーバーの設定のプラグインが 10 個あります(Claude Code / Codex 向け)。 @@ -69,7 +69,7 @@ Claude Code では `/ndf:` と打って呼びます。**Skill** は ### NDF プラグインの Skill の一覧 -**NDFプラグイン v10.27.24-dev.1** に入る Skill の数は、AI ツールごとに違います。 +**NDFプラグイン v10.27.24** に入る Skill の数は、AI ツールごとに違います。 Claude Code向け core 49個、Codex向け core 45個です。 元Skills(49個)の内訳は次のとおりです。 - Pull Request とレビュー (7): pr, pr-tests, fix, pr-review, cherry-pick-pr, deploy, merged diff --git a/docs/metrics/ndf-token-usage/2026-11-05-4.json b/docs/metrics/ndf-token-usage/2026-11-05-4.json new file mode 100644 index 000000000..ade0c48e4 --- /dev/null +++ b/docs/metrics/ndf-token-usage/2026-11-05-4.json @@ -0,0 +1,812 @@ +{ + "per_pr": [ + { + "version": "10.27.19", + "mode": "standard", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "sessions": 12, + "sessions_with_pr": 0, + "prs": 0 + }, + { + "version": "10.27.19", + "mode": "不明", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "sessions": 25, + "sessions_with_pr": 0, + "prs": 0 + }, + { + "version": "10.27.21", + "mode": "light", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "sessions": 1, + "sessions_with_pr": 0, + "prs": 0 + }, + { + "version": "10.27.21", + "mode": "standard", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "sessions": 18, + "sessions_with_pr": 0, + "prs": 0 + }, + { + "version": "10.27.21", + "mode": "不明", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "sessions": 18, + "sessions_with_pr": 0, + "prs": 0 + }, + { + "version": "10.27.21", + "mode": "不明", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "claude+codex", + "sessions": 1, + "sessions_with_pr": 0, + "prs": 0 + } + ], + "per_role": [ + { + "version": "10.27.19", + "mode": "standard", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "conductor", + "role": "-", + "agent_type": "-", + "count": 12, + "cost": 620281.65, + "context": 4266516.833333333, + "out": 25148.5, + "minutes": 31.499813890126017, + "p": 61902.333333333336, + "k": 32.916666666666664, + "w5": 0.0, + "w1h": 144178.5, + "rewrites": 2, + "rewrites_after_5m": 2, + "rewrites_untimed": 0, + "rewrite_tokens": 224461, + "rewrite_tokens_after_5m": 224461, + "read_tokens_after_5m": 1587662, + "rewrite_gap_median": 119.9926833331585 + }, + { + "version": "10.27.19", + "mode": "standard", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "supervisor", + "role": "mvv", + "agent_type": "claude -p", + "count": 1, + "cost": 81701.55, + "context": 38176.0, + "out": 1293.0, + "minutes": 0.25666666666666665, + "k": 1.0, + "w5": 0.0, + "w1h": 37603.0 + }, + { + "version": "10.27.19", + "mode": "standard", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "supervisor", + "role": "pr", + "agent_type": "claude -p", + "count": 5, + "cost": 27659.620000000003, + "context": 14137.6, + "out": 1267.4, + "minutes": 0.21466666666666664, + "k": 1.0, + "w5": 0.0, + "w1h": 10571.2 + }, + { + "version": "10.27.19", + "mode": "standard", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "worker", + "role": "work", + "agent_type": "claude -p", + "count": 11, + "cost": 298297.2545454545, + "context": 2081535.9090909092, + "out": 14507.818181818182, + "minutes": 9.311363636363636, + "k": 23.727272727272727, + "w5": 0.0, + "w1h": 62379.0 + }, + { + "version": "10.27.19", + "mode": "不明", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "conductor", + "role": "-", + "agent_type": "-", + "count": 25, + "cost": 362717.274, + "context": 2357318.56, + "out": 12851.44, + "minutes": 7.609897333780924, + "p": 61524.68, + "k": 21.96, + "w5": 0.0, + "w1h": 92590.44, + "rewrites": 0, + "rewrites_after_5m": 0, + "rewrites_untimed": 0, + "rewrite_tokens": 0, + "rewrite_tokens_after_5m": 0, + "read_tokens_after_5m": 859526, + "rewrite_gap_median": null + }, + { + "version": "10.27.19", + "mode": "不明", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "supervisor", + "role": "judge", + "agent_type": "claude -p", + "count": 1, + "cost": 28709.0, + "context": 13478.0, + "out": 351.0, + "minutes": 0.08499999999999999, + "k": 1.0, + "w5": 0.0, + "w1h": 13476.0 + }, + { + "version": "10.27.19", + "mode": "不明", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "supervisor", + "role": "mvv", + "agent_type": "claude -p", + "count": 6, + "cost": 46902.38333333333, + "context": 29780.166666666668, + "out": 1507.0, + "minutes": 0.305, + "k": 1.0, + "w5": 0.0, + "w1h": 19423.833333333332 + }, + { + "version": "10.27.19", + "mode": "不明", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "supervisor", + "role": "pr", + "agent_type": "claude -p", + "count": 5, + "cost": 18005.6, + "context": 13672.4, + "out": 915.6, + "minutes": 0.22400000000000003, + "k": 1.0, + "w5": 0.0, + "w1h": 6534.4 + }, + { + "version": "10.27.19", + "mode": "不明", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "supervisor", + "role": "その他", + "agent_type": "ndf:worker", + "count": 14, + "cost": 321881.71785714285, + "context": 2480525.0714285714, + "out": 16455.785714285714, + "minutes": 2.9858321422622316, + "p": 24603.714285714286, + "k": 28.642857142857142, + "w5": 96268.42857142857, + "w1h": 0.0, + "rewrites": 2, + "rewrites_after_5m": 0, + "rewrites_untimed": 0, + "rewrite_tokens": 57188, + "rewrite_tokens_after_5m": 0, + "read_tokens_after_5m": 0, + "rewrite_gap_median": 0.5998999973138174 + }, + { + "version": "10.27.19", + "mode": "不明", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "worker", + "role": "work", + "agent_type": "claude -p", + "count": 17, + "cost": 155429.82352941178, + "context": 774343.5882352941, + "out": 7741.35294117647, + "minutes": 4.139705882352941, + "k": 18.294117647058822, + "w5": 0.0, + "w1h": 39987.94117647059 + }, + { + "version": "10.27.21", + "mode": "light", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "conductor", + "role": "-", + "agent_type": "-", + "count": 1, + "cost": 278396.6, + "context": 1635254.0, + "out": 5450.0, + "minutes": 21.207466665903727, + "p": 45646.0, + "k": 16.0, + "w5": 0.0, + "w1h": 86846.0, + "rewrites": 0, + "rewrites_after_5m": 0, + "rewrites_untimed": 0, + "rewrite_tokens": 0, + "rewrite_tokens_after_5m": 0, + "read_tokens_after_5m": 113587, + "rewrite_gap_median": null + }, + { + "version": "10.27.21", + "mode": "standard", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "conductor", + "role": "-", + "agent_type": "-", + "count": 18, + "cost": 537027.9055555556, + "context": 3757045.388888889, + "out": 20419.055555555555, + "minutes": 32.76583888883944, + "p": 60050.555555555555, + "k": 31.27777777777778, + "w5": 0.0, + "w1h": 126675.72222222222, + "rewrites": 2, + "rewrites_after_5m": 2, + "rewrites_untimed": 0, + "rewrite_tokens": 193001, + "rewrite_tokens_after_5m": 193001, + "read_tokens_after_5m": 2060517, + "rewrite_gap_median": 114.12099166711171 + }, + { + "version": "10.27.21", + "mode": "standard", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "supervisor", + "role": "judge", + "agent_type": "claude -p", + "count": 2, + "cost": 28049.5, + "context": 13477.0, + "out": 219.5, + "minutes": 0.07083333333333333, + "k": 1.0, + "w5": 0.0, + "w1h": 13475.0 + }, + { + "version": "10.27.21", + "mode": "standard", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "supervisor", + "role": "mvv", + "agent_type": "claude -p", + "count": 1, + "cost": 50513.0, + "context": 20180.0, + "out": 2031.0, + "minutes": 0.38333333333333336, + "k": 1.0, + "w5": 0.0, + "w1h": 20178.0 + }, + { + "version": "10.27.21", + "mode": "standard", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "supervisor", + "role": "pr", + "agent_type": "claude -p", + "count": 2, + "cost": 16202.95, + "context": 14054.5, + "out": 1101.5, + "minutes": 0.18666666666666665, + "k": 1.0, + "w5": 0.0, + "w1h": 5123.5 + }, + { + "version": "10.27.21", + "mode": "standard", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "supervisor", + "role": "その他", + "agent_type": "ndf:worker", + "count": 2, + "cost": 642557.7749999999, + "context": 5474422.5, + "out": 37932.0, + "minutes": 8.820508335034052, + "p": 39192.5, + "k": 43.0, + "w5": 149245.0, + "w1h": 0.0, + "rewrites": 0, + "rewrites_after_5m": 0, + "rewrites_untimed": 0, + "rewrite_tokens": 0, + "rewrite_tokens_after_5m": 0, + "read_tokens_after_5m": 0, + "rewrite_gap_median": null + }, + { + "version": "10.27.21", + "mode": "standard", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "worker", + "role": "work", + "agent_type": "claude -p", + "count": 18, + "cost": 100399.96388888889, + "context": 403989.05555555556, + "out": 4041.8888888888887, + "minutes": 5.20787037037037, + "k": 10.166666666666666, + "w5": 0.0, + "w1h": 30755.555555555555 + }, + { + "version": "10.27.21", + "mode": "不明", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "conductor", + "role": "-", + "agent_type": "-", + "count": 18, + "cost": 294163.7833333333, + "context": 1694663.0, + "out": 10508.111111111111, + "minutes": 4.2267101855189715, + "p": 61148.944444444445, + "k": 16.944444444444443, + "w5": 0.0, + "w1h": 80439.77777777778, + "rewrites": 0, + "rewrites_after_5m": 0, + "rewrites_untimed": 0, + "rewrite_tokens": 0, + "rewrite_tokens_after_5m": 0, + "read_tokens_after_5m": 106920, + "rewrite_gap_median": null + }, + { + "version": "10.27.21", + "mode": "不明", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "supervisor", + "role": "judge", + "agent_type": "claude -p", + "count": 1, + "cost": 28670.0, + "context": 13471.0, + "out": 346.0, + "minutes": 0.10333333333333333, + "k": 1.0, + "w5": 0.0, + "w1h": 13469.0 + }, + { + "version": "10.27.21", + "mode": "不明", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "supervisor", + "role": "mvv", + "agent_type": "claude -p", + "count": 1, + "cost": 44985.55, + "context": 19543.0, + "out": 1403.0, + "minutes": 0.26999999999999996, + "k": 1.0, + "w5": 0.0, + "w1h": 18970.0 + }, + { + "version": "10.27.21", + "mode": "不明", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "supervisor", + "role": "pr", + "agent_type": "claude -p", + "count": 9, + "cost": 17742.17777777778, + "context": 13894.444444444445, + "out": 1086.4444444444443, + "minutes": 0.1988888888888889, + "k": 1.0, + "w5": 0.0, + "w1h": 5955.555555555556 + }, + { + "version": "10.27.21", + "mode": "不明", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "supervisor", + "role": "その他", + "agent_type": "general-purpose", + "count": 4, + "cost": 93726.1, + "context": 96657.0, + "out": 3363.25, + "minutes": 0.6167708327372868, + "p": 36594.0, + "k": 2.0, + "w5": 60061.0, + "w1h": 0.0, + "rewrites": 0, + "rewrites_after_5m": 0, + "rewrites_untimed": 0, + "rewrite_tokens": 0, + "rewrite_tokens_after_5m": 0, + "read_tokens_after_5m": 0, + "rewrite_gap_median": null + }, + { + "version": "10.27.21", + "mode": "不明", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "supervisor", + "role": "その他", + "agent_type": "ndf:worker", + "count": 4, + "cost": 73399.2375, + "context": 64504.75, + "out": 4546.0, + "minutes": 0.8831958333651225, + "p": 24969.25, + "k": 2.0, + "w5": 39533.5, + "w1h": 0.0, + "rewrites": 0, + "rewrites_after_5m": 0, + "rewrites_untimed": 0, + "rewrite_tokens": 0, + "rewrite_tokens_after_5m": 0, + "read_tokens_after_5m": 0, + "rewrite_gap_median": null + }, + { + "version": "10.27.21", + "mode": "不明", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "supervisor", + "role": "仕上げ", + "agent_type": "ndf:worker", + "count": 2, + "cost": 352426.125, + "context": 2606552.5, + "out": 20614.5, + "minutes": 3.953683332602183, + "p": 25633.0, + "k": 34.0, + "w5": 99134.5, + "w1h": 0.0, + "rewrites": 0, + "rewrites_after_5m": 0, + "rewrites_untimed": 0, + "rewrite_tokens": 0, + "rewrite_tokens_after_5m": 0, + "read_tokens_after_5m": 0, + "rewrite_gap_median": null + }, + { + "version": "10.27.21", + "mode": "不明", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "layer": "worker", + "role": "work", + "agent_type": "claude -p", + "count": 16, + "cost": 146426.4125, + "context": 854988.4375, + "out": 6133.625, + "minutes": 4.634062500000001, + "k": 15.0625, + "w5": 0.0, + "w1h": 37426.4375 + }, + { + "version": "10.27.21", + "mode": "不明", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "claude+codex", + "layer": "conductor", + "role": "-", + "agent_type": "-", + "count": 1, + "cost": 142067.9, + "context": 511422.0, + "out": 1975.0, + "minutes": 2.3665000001589456, + "p": 45638.0, + "k": 6.0, + "w5": 0.0, + "w1h": 54672.0, + "rewrites": 0, + "rewrites_after_5m": 0, + "rewrites_untimed": 0, + "rewrite_tokens": 0, + "rewrite_tokens_after_5m": 0, + "read_tokens_after_5m": 0, + "rewrite_gap_median": null + }, + { + "version": "10.27.21", + "mode": "不明", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "claude+codex", + "layer": "supervisor", + "role": "judge", + "agent_type": "claude -p", + "count": 1, + "cost": 31103.0, + "context": 14805.0, + "out": 299.0, + "minutes": 0.09833333333333334, + "k": 1.0, + "w5": 0.0, + "w1h": 14803.0 + }, + { + "version": "10.27.21", + "mode": "不明", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "claude+codex", + "layer": "worker", + "role": "work", + "agent_type": "claude -p", + "count": 5, + "cost": 125844.06000000001, + "context": 577738.2, + "out": 6012.2, + "minutes": 9.383000000000001, + "k": 13.0, + "w5": 0.0, + "w1h": 34295.0 + } + ], + "external": [ + { + "version": "10.27.19", + "mode": "不明", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "runtime": "claude", + "skill": "cross-refactoring", + "cli_model": "claude-opus-5-5", + "count": 2, + "context": 421792.0, + "out": 7926.5, + "cost": 143051.52500000002, + "minutes": 5.60952499906222, + "p": 30231.0, + "k": 11.0, + "w5": 0.0, + "w1h": 42209.5, + "rewrites": 0, + "rewrites_after_5m": 0, + "rewrites_untimed": 0, + "rewrite_tokens": 0, + "rewrite_tokens_after_5m": 0, + "read_tokens_after_5m": 39179, + "rewrite_gap_median": null, + "call_seats": 2 + }, + { + "version": "10.27.21", + "mode": "standard", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "runtime": "claude", + "skill": "cross-refactoring", + "cli_model": "claude-opus-5-5", + "count": 8, + "context": 349912.0, + "out": 5484.5, + "cost": 121540.73124999998, + "minutes": 1.6192791665593782, + "p": 24674.25, + "k": 8.5, + "w5": 0.0, + "w1h": 39285.375, + "rewrites": 0, + "rewrites_after_5m": 0, + "rewrites_untimed": 0, + "rewrite_tokens": 0, + "rewrite_tokens_after_5m": 0, + "read_tokens_after_5m": 0, + "rewrite_gap_median": null, + "call_seats": 8 + }, + { + "version": "10.27.21", + "mode": "standard", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "-", + "runtime": "codex", + "skill": "cross-refactoring", + "cli_model": "gpt-6.1-sol", + "count": 1, + "input": 1352397.0, + "cached": 1224832.0, + "out": 7317.0, + "minutes": 4.2646999994913735, + "p": 27034.0, + "k": 15.0, + "rewrites": 1, + "rewrites_after_5m": 0, + "rewrites_untimed": 0, + "rewrite_tokens": 27664, + "rewrite_tokens_after_5m": 0, + "read_tokens_after_5m": 0, + "rewrite_gap_median": 0.11771666606267293, + "call_seats": 1 + }, + { + "version": "10.27.21", + "mode": "不明", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "claude+codex", + "runtime": "claude", + "skill": "cross-review", + "cli_model": "claude-opus-5-5", + "count": 2, + "context": 308244.0, + "out": 4399.5, + "cost": 107451.375, + "minutes": 0.8740500013033549, + "p": 25160.0, + "k": 7.5, + "w5": 0.0, + "w1h": 35911.5, + "rewrites": 0, + "rewrites_after_5m": 0, + "rewrites_untimed": 0, + "rewrite_tokens": 0, + "rewrite_tokens_after_5m": 0, + "read_tokens_after_5m": 0, + "rewrite_gap_median": null, + "call_seats": 2 + }, + { + "version": "10.27.21", + "mode": "不明", + "model": "claude-opus-5-5", + "cc": "2.1.318", + "reviewers": "claude+codex", + "runtime": "codex", + "skill": "cross-review", + "cli_model": "gpt-6.1-sol", + "count": 3, + "input": 266679.0, + "cached": 224256.0, + "out": 1924.0, + "minutes": 1.017683333820767, + "p": 26146.0, + "k": 6.0, + "rewrites": 0, + "rewrites_after_5m": 0, + "rewrites_untimed": 0, + "rewrite_tokens": 0, + "rewrite_tokens_after_5m": 0, + "read_tokens_after_5m": 0, + "rewrite_gap_median": null, + "call_seats": 3 + } + ], + "meta": { + "by": [ + "version", + "mode", + "model", + "cc", + "reviewers" + ], + "min_version": "10.27.19", + "until": "2026-11-05T18:52:00Z", + "sessions": 75, + "sessions_with_pr": 0, + "unlinked_external": 3187, + "unlinked_ledger": 0, + "skipped": { + "ndf の Skill が無い": 932, + "版を判定できない": 22 + }, + "released": "10.27.24", + "previous": "2026-11-05-3.json" + } +} diff --git a/docs/metrics/ndf-token-usage/2026-11-05-4.md b/docs/metrics/ndf-token-usage/2026-11-05-4.md new file mode 100644 index 000000000..ad2b8a509 --- /dev/null +++ b/docs/metrics/ndf-token-usage/2026-11-05-4.md @@ -0,0 +1,117 @@ +# ndf の版ごとのトークン消費と所要時間(2026-11-05 集計・10.27.24 の配布) + +**10.27.24 を正式版として出したときの記録である。** 打ち切りの時刻は `2026-11-05T18:52:00Z`。表の最初の行は 10.27.19(前の記録: 2026-11-05-3.md)。既定では前の記録の最後の版で、記録どうしが 1 行ずつ重なる。生の記録・会話の本文・リポジトリ名・会話の ID は残していない。集計した日時点の記録で、以後の記録の増減には追随しない。 + +## 作り方 + +同じ打ち切りの時刻で走らせ直すと、記録が残っている間は同じ `.json` ができる。ただし kiro の記録はターンに時刻を持たないため、打ち切りをまたいで進行中だった席は credit が変わりうる。 + +```bash +python3 scripts/token-usage-snapshot.py --released 10.27.24 --until 2026-11-05T18:52:00Z --min-version 10.27.19 +python3 scripts/token-usage.py --min-version 10.27.19 --until 2026-11-05T18:52:00Z --by version # 末尾の「集計の出力」 +``` + +## 比べるときの注意 + +- **PR を作った会話が 2 件以下の版:** 無し。作業の中身の違いが版の違いより大きい +- **CHANGELOG.md にあって表に出ない版:** 10.27.19, 10.27.21, 10.27.22, 10.27.23, 10.27.24。その版で始めた PR つきの会話が無い(会話の版は最初に読んだ版で決まる) +- **打ち切りの 30 分前以降にも行がある会話を含む版:** 10.27.21。進行中だった会話は、値が打ち切りの時刻までの分である + +## 版ごとの差(PR 1 本あたり) + +換算の合計は conductor・supervisor・worker の換算の和。前の版との差は、表の 1 つ上の行との比である。±30% を超えた版を下の「読み取り」で扱う。 + +| ndf の版 | 会話 | PR | 換算の合計 | 前の版との差 | conductor | supervisor | worker | 入力 | 所要 | codex 入力 | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | + +## 版と層ごとの呼び出しとキャッシュ(1 起動あたり) + +P と k と書き込みは 1 起動あたり、書き直しとうち 5 分超は合計の回数である。 + +| ndf の版 | 層 | 起動 | P | k | 書き込み 5 分 | 書き込み 1 時間 | 書き直し | うち 5 分超 | 1 起動あたりの書き直し | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | +| 10.27.19 | conductor | 37 | 61.6k | 25.5 | 0.00M | 0.11M | 2 | 2 | 0.05 | +| 10.27.19 | supervisor | 32 | 24.6k | 13.1 | 0.04M | 0.01M | 2 | 0 | 0.14 | +| 10.27.19 | worker | 28 | - | 20.4 | 0.00M | 0.05M | - | - | - | +| 10.27.21 | conductor | 38 | 59.8k | 23.4 | 0.00M | 0.10M | 2 | 2 | 0.05 | +| 10.27.21 | supervisor | 29 | 31.3k | 6.4 | 0.03M | 0.01M | 0 | 0 | 0.00 | +| 10.27.21 | worker | 39 | - | 12.5 | 0.00M | 0.03M | - | - | - | + +## 読み取り + +差の大きい版は無い(すべて ±30% の内)。読み取りは要らない。 + +## 集計の出力 + +対象の会話: 75 件 / PR を作った会話: 0 件 / 寄せ先の無い外部 CLI: 3187 件 / 寄せ先の無い帳簿の行: 0 件 + +換算は input を 1 とした費用(cache read はモデル別: claude-opus-5-5 0.05 / claude-fable-5-1 0.025 / 他 0.1。cache write 5 分 1.25・1 時間 2 / output 5)。入力は input + cache read + cache write。所要は分。 + +### PR 1 本あたり + +| 動いた版 | 会話 | PR | conductor 換算 | supervisor 換算 | worker 換算 | 入力 | 出力 | 所要 | codex 入力 | codex 出力 | kiro credit | claude 席 換算 | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | + +### フェーズごと(1 起動あたり) + +| 動いた版 | 層 | フェーズ | 定義 | 起動 | 換算 | 入力 | 出力 | 所要 | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | +| 10.27.19 | conductor | - | - | 37 | 0.45M | 2.98M | 16.8k | 15.4 | +| 10.27.19 | supervisor | judge | claude -p | 1 | 0.03M | 0.01M | 0.4k | 0.1 | +| 10.27.19 | supervisor | mvv | claude -p | 7 | 0.05M | 0.03M | 1.5k | 0.3 | +| 10.27.19 | supervisor | pr | claude -p | 10 | 0.02M | 0.01M | 1.1k | 0.2 | +| 10.27.19 | supervisor | その他 | ndf:worker | 14 | 0.32M | 2.48M | 16.5k | 3.0 | +| 10.27.19 | worker | work | claude -p | 28 | 0.21M | 1.29M | 10.4k | 6.2 | +| 10.27.21 | conductor | - | - | 38 | 0.40M | 2.64M | 14.8k | 18.1 | +| 10.27.21 | supervisor | judge | claude -p | 4 | 0.03M | 0.01M | 0.3k | 0.1 | +| 10.27.21 | supervisor | mvv | claude -p | 2 | 0.05M | 0.02M | 1.7k | 0.3 | +| 10.27.21 | supervisor | pr | claude -p | 11 | 0.02M | 0.01M | 1.1k | 0.2 | +| 10.27.21 | supervisor | その他 | general-purpose | 4 | 0.09M | 0.10M | 3.4k | 0.6 | +| 10.27.21 | supervisor | その他 | ndf:worker | 6 | 0.26M | 1.87M | 15.7k | 3.5 | +| 10.27.21 | supervisor | 仕上げ | ndf:worker | 2 | 0.35M | 2.61M | 20.6k | 4.0 | +| 10.27.21 | worker | work | claude -p | 39 | 0.12M | 0.61M | 5.2k | 5.5 | + +### フェーズごとの呼び出しとキャッシュ + +P は起動ごとの固定費(最初の呼び出しの文脈)、k は呼び出し回数(どちらも 1 起動あたり)。書き直しは 2 回目以降の呼び出しのうち、書き込みが文脈の 50% を超え、かつ 20k を超えたものの回数(合計)。5 分超はそのうち直前の呼び出しとの間隔が 5 分を超えた回数、間隔は直前の間隔の中央値(分)。5 分超の書き直し・読み込みは、直前の間隔が 5 分を超えた呼び出しの書き直しの量と、書き直しでない呼び出しの読み込みの量(どちらも合計)。定義はサブエージェントの定義の名前。 + +| 動いた版 | 層 | フェーズ | 定義 | 起動 | P | k | 書き込み 5 分 | 書き込み 1 時間 | 書き直し | 5 分超 | 5 分超の書き直し | 5 分超の読み込み | 間隔 | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | +| 10.27.19 | conductor | - | - | 37 | 61.6k | 25.5 | 0.00M | 0.11M | 2 | 2 | 0.22M | 2.45M | 120.0 | +| 10.27.19 | supervisor | judge | claude -p | 1 | - | 1.0 | 0.00M | 0.01M | - | - | - | - | - | +| 10.27.19 | supervisor | mvv | claude -p | 7 | - | 1.0 | 0.00M | 0.02M | - | - | - | - | - | +| 10.27.19 | supervisor | pr | claude -p | 10 | - | 1.0 | 0.00M | 0.01M | - | - | - | - | - | +| 10.27.19 | supervisor | その他 | ndf:worker | 14 | 24.6k | 28.6 | 0.10M | 0.00M | 2 | 0 | 0.00M | 0.00M | 0.6 | +| 10.27.19 | worker | work | claude -p | 28 | - | 20.4 | 0.00M | 0.05M | - | - | - | - | - | +| 10.27.21 | conductor | - | - | 38 | 59.8k | 23.4 | 0.00M | 0.10M | 2 | 2 | 0.19M | 2.28M | 114.1 | +| 10.27.21 | supervisor | judge | claude -p | 4 | - | 1.0 | 0.00M | 0.01M | - | - | - | - | - | +| 10.27.21 | supervisor | mvv | claude -p | 2 | - | 1.0 | 0.00M | 0.02M | - | - | - | - | - | +| 10.27.21 | supervisor | pr | claude -p | 11 | - | 1.0 | 0.00M | 0.01M | - | - | - | - | - | +| 10.27.21 | supervisor | その他 | general-purpose | 4 | 36.6k | 2.0 | 0.06M | 0.00M | 0 | 0 | 0.00M | 0.00M | - | +| 10.27.21 | supervisor | その他 | ndf:worker | 6 | 29.7k | 15.7 | 0.08M | 0.00M | 0 | 0 | 0.00M | 0.00M | - | +| 10.27.21 | supervisor | 仕上げ | ndf:worker | 2 | 25.6k | 34.0 | 0.10M | 0.00M | 0 | 0 | 0.00M | 0.00M | - | +| 10.27.21 | worker | work | claude -p | 39 | - | 12.5 | 0.00M | 0.03M | - | - | - | - | - | + +### 外部 CLI(1 起動あたり) + +kiro はトークン数を記録しない(値が 0)ため credit だけを載せる。agy は読まない。 + +| 動いた版 | ランタイム | Skill | モデル | 起動 | 入力 | cache | 出力 | credit | 所要 | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | +| 10.27.19 | claude | cross-refactoring | claude-opus-5-5 | 2 | 0.42M | 0.00M | 7.9k | 0.00 | 5.6 | +| 10.27.21 | claude | cross-review | claude-opus-5-5 | 2 | 0.31M | 0.00M | 4.4k | 0.00 | 0.9 | +| 10.27.21 | claude | cross-refactoring | claude-opus-5-5 | 8 | 0.35M | 0.00M | 5.5k | 0.00 | 1.6 | +| 10.27.21 | codex | cross-review | gpt-6.1-sol | 3 | 0.27M | 0.22M | 1.9k | 0.00 | 1.0 | +| 10.27.21 | codex | cross-refactoring | gpt-6.1-sol | 1 | 1.35M | 1.22M | 7.3k | 0.00 | 4.3 | + +### 外部 CLI の呼び出しとキャッシュ(1 起動あたり) + +codex は input のうち cached に当たらなかった分を書き込みとみなし、呼び出しごとの値(last_token_usage)を持つ席だけで数える。kiro は呼び出し回数を記録しない(利用者のターン数は JSON の turns)。取れない値は -。 + +| 動いた版 | ランタイム | Skill | モデル | 起動 | P | k | 書き直し | 5 分超 | 5 分超の書き直し | 5 分超の読み込み | 間隔 | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | +| 10.27.19 | claude | cross-refactoring | claude-opus-5-5 | 2 | 30.2k | 11.0 | 0 | 0 | 0.00M | 0.04M | - | +| 10.27.21 | claude | cross-review | claude-opus-5-5 | 2 | 25.2k | 7.5 | 0 | 0 | 0.00M | 0.00M | - | +| 10.27.21 | claude | cross-refactoring | claude-opus-5-5 | 8 | 24.7k | 8.5 | 0 | 0 | 0.00M | 0.00M | - | +| 10.27.21 | codex | cross-review | gpt-6.1-sol | 3 | 26.1k | 6.0 | 0 | 0 | 0.00M | 0.00M | - | +| 10.27.21 | codex | cross-refactoring | gpt-6.1-sol | 1 | 27.0k | 15.0 | 1 | 0 | 0.00M | 0.00M | 0.1 | diff --git a/plugins/ndf/.claude-plugin/plugin.json b/plugins/ndf/.claude-plugin/plugin.json index e543723bc..c082afb62 100644 --- a/plugins/ndf/.claude-plugin/plugin.json +++ b/plugins/ndf/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "ndf", - "version": "10.27.24-dev.1", - "description": "Claude Code plugin (v10.27.24-dev.1): 8 specialized agents (plus 2 supervisor agents and 1 worker agent for the 3-layer workflow) and 49 focused NDF skills for PR/review workflows, cross-review, implementation planning, plan-to-spec, Docker container access, statusline, external AI delegation (Codex/agy), transcript retention guard, and optional Slack notifications.", + "version": "10.27.24", + "description": "Claude Code plugin (v10.27.24): 8 specialized agents (plus 2 supervisor agents and 1 worker agent for the 3-layer workflow) and 49 focused NDF skills for PR/review workflows, cross-review, implementation planning, plan-to-spec, Docker container access, statusline, external AI delegation (Codex/agy), transcript retention guard, and optional Slack notifications.", "author": { "name": "takemi-ohama", "url": "https://github.com/takemi-ohama" diff --git a/plugins/ndf/.codex-plugin/plugin.json b/plugins/ndf/.codex-plugin/plugin.json index d1107ace9..c7201e848 100644 --- a/plugins/ndf/.codex-plugin/plugin.json +++ b/plugins/ndf/.codex-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "ndf", - "version": "10.27.24-dev.1", - "description": "Codex plugin (v10.27.24-dev.1): 45 focused NDF skills for PR/review workflows, cross-review, implementation planning, plan-to-spec, Docker container access, external AI delegation (Codex/agy), and optional Slack completion notifications.", + "version": "10.27.24", + "description": "Codex plugin (v10.27.24): 45 focused NDF skills for PR/review workflows, cross-review, implementation planning, plan-to-spec, Docker container access, external AI delegation (Codex/agy), and optional Slack completion notifications.", "skills": [ "./skills/cherry-pick-pr", "./skills/cross-refactoring", diff --git a/plugins/ndf/README.md b/plugins/ndf/README.md index 8ffab0425..8ddb59aab 100644 --- a/plugins/ndf/README.md +++ b/plugins/ndf/README.md @@ -350,7 +350,7 @@ agy models # 認証確認 ```text # 動く: 実体パスを示して読ませる -~/.codex/plugins/cache/ai-plugins/ndf/10.27.24-dev.1/skills/deploy/SKILL.md を読んで、その手順どおりに qa/staging へ deploy PR を作成してください。 +~/.codex/plugins/cache/ai-plugins/ndf/10.27.24/skills/deploy/SKILL.md を読んで、その手順どおりに qa/staging へ deploy PR を作成してください。 # 動かない: 明示起動 ($ は展開されない) $deploy qa/staging @@ -372,14 +372,14 @@ marketplace 経由でインストールした場合、Skill の実体は **ワ ```text $CODEX_HOME/plugins/cache////skills//SKILL.md # 既定 ($CODEX_HOME=~/.codex) の例: -# ~/.codex/plugins/cache/ai-plugins/ndf/10.27.24-dev.1/skills/deploy/SKILL.md +# ~/.codex/plugins/cache/ai-plugins/ndf/10.27.24/skills/deploy/SKILL.md ``` そのため「`deploy` の SKILL.md を探して読んで」のような曖昧な依頼は、Codex のファイル探索がワークスペース内に限られる状況では失敗しえます。**抑止した Skill は `$` が展開されない**ので、`codex plugin list` で実体パスを確認し、絶対パスを渡してください。 ```bash codex plugin list | grep 'ndf@ai-plugins' -# => ndf@ai-plugins installed, enabled 10.27.24-dev.1 +# => ndf@ai-plugins installed, enabled 10.27.24 ``` 抑止していない Skill(`document-style` など)はキャッシュ配下でも `$` で解決するため、そちらは `$` 起動が使えます。