Reports
n nanco — Reports AIハーネス地図

2026-10-06 生成 / Claude(Opus セッション)+姉崎 / 状態: 幹1 は姉崎さんの GitLab 設定待ち

AIハーネス地図 2026-10

Claude を動かす仕組み(権限・hook・CI・評価役・指示書)を、何から・どのリポジトリで直すかの地図。正本は nanco-knowledge/ops/harness-roadmap.md。

TL;DR

今は姉崎さんが「検査役」をやっている。それを機械に置き換えると、ループもグラフも回り出す。順番は「門(CI)→ ルールを仕組みに → 評価役 → 指示書を削る → 測る」。実装は各リポジトリで、束ねるのは nanco-knowledge だけ。

幹は1つ:検査役を人から機械へ

ルールも役者もたくさん作ってきた。足りないのは「本当に終わったか」を判定する仕組み。今はそこを全部、姉崎さんが手でやっている。

今:人が検査役

  • 「必ず〜する」は CLAUDE.md の文章。守られなくても止まらない
  • staging へのマージは手元でやる。CI はマージのあとに走る
  • 誤り(GTM・Inngest 重複・招待44件)を見つけたのは毎回姉崎さん
  • AI の報告は「確信度:高」という自己申告

目指す姿:機械が検査役、人は較正役

  • 守らせたいことは CI と hook が止める
  • CI が緑のものしか staging に入らない
  • 評価役(テスト・判定器)が「終わった」を判定する
  • 姉崎さんは月1で、評価役の判定と自分の判定のズレを直す

状態・ループ・グラフ

Anthropic が「ハーネス」と呼んでいる考え方は3つの部品でできている。nanco はすでに「状態」を持っていて、ここからの伸びしろは「ループ」と「グラフ」。

STATE / 状態

記憶をファイルで渡す

会話 1 会話 2 ops/now.md・decision-log

AI は会話をまたいで覚えていない。だから「今どこまで進んだか」をファイルに書いて次に渡す。

nanco:できている。decision-log・sessions・ops/now.md。

LOOP / ループ

合格するまで回す

作る 評価役 完了 不合格 → 直す 合格

「終わった?」を作った本人ではなく評価役が判定し、合格するまで自動で回す。/goal や Stop hook がこれ。

nanco:評価役が足りない。在庫の不変条件テストが1本目。

GRAPH / グラフ

並列で見て、まとめる

差分 型・DB 権限 不変条件 まとめ

観点を分けた評価役を1回だけ並列に流し、指摘を一括で直す。往復を減らす仕組み。

nanco:手でやっている。Fable × Codex の2ラウンド議論がこれ。

5本の幹と、いまの状況

上から順に通す。上が通ると下が楽になる。4(指示書を削る)を2より先にやると、削ったルールが守られなくなる。

1 門を機械に MR+CI 必須 2 仕組みに移す CI・hook 3 評価役 ループの燃料 4 指示書を削る 749→200行 5 測る 月1で数字を見る 評価役は CI に載せて初めて門になる 土台
色=状況。紫:姉崎さん待ち/黄:進行中/薄緑:未着手。
1

門を機械にする

CI が緑のものしか staging に入らないようにする。ここが立つと、この先は全部「CI に1本足す」で済む。

済み
CLAUDE.md の開発フローを MR+自動マージに書き換え、hook で staging への直接 push を止めた(ブランチ上・未 push)
次の一手
GitLab の保護ブランチ設定と「Pipelines must succeed」、glab の導入
姉崎さん待ち
2

守らせたいことを仕組みに移す

「必ず〜する」を文章で書く代わりに、破ったら CI か hook が止める。

済み
本番操作を止める hook、権限の整理(nanco-next / flutter)
次の一手
fix のコミットにテストが無ければ CI で落とす/巨大ファイルの行数上限/knowledge 側の hook 3本
進行中
3

評価役をそろえる

「終わった?」を機械が判定する部品。これがあると /goal や Stop hook で「緑になるまで回す」が使える。

済み
在庫の不変条件テスト(ランダムな操作で帳簿を検算)。最初の実行で不具合を1件発見・修正
次の一手
OPS に出荷・入荷を足す/ai-tone-check-cases を合否付きの評価セットに/UI の見た目を比べる評価役
進行中
4

指示書を短くする

長い指示書ほど1つひとつのルールが守られにくい。仕組みに移したルールから消していく。

今
nanco-next の CLAUDE.md が 749 行(目安は200行未満)。8か月前の作業状況も残っている
次の一手
幹2のあと。作業状況は issue へ、手順は skill へ。AGENTS.md とのずれも直す
未着手
5

効いているか測る

ハーネスはモデルの世代が変わると古くなる。数字を見ていないと気づけない。

見る数字
fix の比率・テスト付きの fix の比率・レビュー往復回数・初回で承認された割合
次の一手
幹1〜3が通ってから、月1で見る
未着手

リポジトリごとの分担

実装はそれぞれのリポジトリで、1リポジトリ=1セッション=1MRで進める。CI も hook も CLAUDE.md もリポジトリ単位で効くので、まとめて1か所ではやれない。優先順と進捗を束ねるのは nanco-knowledge の ops/harness-roadmap.md だけ。このページはその読む用のスナップショット。

幹 nanco-nextWeb・API(GitLab) nanco-flutterアプリ(GitLab) nanco-knowledge戦略・ルール(GitHub) そのほかreports / analytics(GitHub)
1 門 保護ブランチ+MR 自動マージ。CLAUDE.md と hook はブランチ上で済み 同じ GitLab 設定。hook はブランチ上で済み draft PR → 姉崎がマージ、の運用はすでにある 同じく PR 運用
2 仕組み fix にテスト必須の CI チェック、max-lines 同じ CI チェック。dart_code_metrics・custom_lint を実際に効かせる hook 3本(Linear ラベル全置換・レビューなしの外向け文章・裏取りなしの decision-log) analytics は lint の hook あり
3 評価役 不変条件テスト(1本目済み)→ OPS 追加、UI の見た目の比較 後回し。既存の maestro を評価役に使える ai-tone-check-cases を合否付きの評価セットに —
4 指示書 CLAUDE.md 749 行 → 200 行未満、AGENTS.md と揃える CLAUDE.md は 63 行で短い。AGENTS.md とのずれだけ確認 CLAUDE.md 274 行、AGENTS.md が旧5層のまま —
5 測る 元データ(git 履歴) 元データ(git 履歴) 月1で集計してロードマップを更新(ここで束ねる) 集計の仕組みは analytics に置く案

共通で使うもの(本番操作を止める hook など)は、片方で作ってもう片方へコピーしている。増えてきたら Claude Code のプラグインにまとめる。

文章・hook・CI の役割分担

同じルールを3か所に書くと、少しずつずれていく。ルールの中身は1か所(CI / lint の設定)だけに置き、ほかはそこを呼ぶか説明するだけにする。

CI / lint本体・最後の門
誰が書いても効く。破ったら staging に入らない
例:max-lines: 800、fix にテスト必須のチェック、不変条件テスト
hook早く知らせる
Claude が動いた瞬間に止める・知らせる。Claude の中でしか効かない
例:本番操作の防止、保存直後の lint、「終わりました」の前のテスト確認
CLAUDE.md理由を書く
なぜそのルールがあるかを1行。チェックの中身は書かない
例:「巨大ファイルは AI の精度を落とすので 800 行まで(max-lines)」

根拠の数字

nanco-next の git 履歴から(2026年9月、マージを除く。71 件の行だけ 6月以降)。

3 / 346
MR 経由のマージ
残りは手元で staging にマージ。CI はそのあと → 幹1
244 / 506
fix で始まるコミット
同じブランチ内の手直しも含む。どのモデルでも同じ傾向 → ハーネス側の問題
67%
テストを伴う fix(160 / 239)
3件に1件は再発防止テストがない → 幹2
71
「レビュー指摘」を直した fix
レビュー → 修正 → 再レビューの往復 → グラフで1回にまとめる
749 行
nanco-next の CLAUDE.md
目安は200行未満 → 幹4
1
不変条件テストが初回で見つけた不具合
履歴の差し込みで「その時点の在庫」がずれていた。修正済み → 幹3 が効く証拠

いま止まっていること

幹1は姉崎さんの作業が終わらないと効かない。合わせて10分ほど。

GitLab の設定

  • brew install glab && glab auth login
  • Protected branches:staging / pre-prod / release を「Allowed to push: No one」
  • Merge requests:「Pipelines must succeed」「Delete source branch by default」をオン

push 待ちのブランチ(Mac から)

  • nanco-next chore/claude-harness:権限・hook・開発フロー
  • nanco-next test/stock-invariants:不変条件テスト+不具合修正
  • nanco-flutter chore/claude-harness:権限・hook

権限と hook は staging に入るまで効かない。

枝葉(幹が通ってからでよい)

効いていない設定

  • flutter の dart_code_metrics・custom_lint が実質無効
  • flutter の GitHub workflow は GitLab なので動かない
  • nanco-next の noImplicitAny: false
  • git に入った不要物(dogfood-output 70MB など)、リモートブランチ約190本
  • e2e のリトライ回数を数えていない

nanco-knowledge 側

  • 役者15体以上を「検証できる単位」に整理し、判定の一致率を測る
  • 止まっているセッション(24件中19件)を閉じる
  • AGENTS.md と .codex/agents のずれ
  • daily-sync を「報告する」から「閉じる」に

在庫テストの OPS 追加(別セッション)

  • 出荷・入荷の実行と取消 ← 最優先
  • アーカイブ・ゴミ箱・復元
  • 合算/棚卸の反映と取消/CSV 取込

nanco-reports 側

  • 左の目次(reports-rail)がページごとに揃っていない。エンジニアリングの群があるのは一部のページだけ

迷ったときの4原則

書く
強制する

「必ず」と書きたくなったら、まず CI か hook にできないか考える。

自己申告
外から確かめる

9/11 に本番監視でやった「送ったではなく届いた」を AI の作業にも当てはめる。

役者を増やす
評価セットを増やす

人格の代わりに「合否と理由」のデータを貯める。不変条件テストはその1本目。

毎回承認する
月1で較正する

人は毎回 OK を出す係ではなく、評価役とのズレを直す係になる。