Skip to content

spec(evolution): hold the brake 1 fixed-axis prompt fragment and the aggregated comment preamble as copied literals [skills, docs] - #1791

Merged
smileygames merged 3 commits into
mainfrom
1779-specevolution-brake-1-instrument-authored-without-a-literal-check-on-the-instrument-itself
Aug 20, 2026
Merged

spec(evolution): hold the brake 1 fixed-axis prompt fragment and the aggregated comment preamble as copied literals [skills, docs]#1791
smileygames merged 3 commits into
mainfrom
1779-specevolution-brake-1-instrument-authored-without-a-literal-check-on-the-instrument-itself

Conversation

@smileygames

Copy link
Copy Markdown
Member

Closes #1779

brake 1 の計器のうち、親が作文面を持たない場所に書いていた2箇所を、保持された literal を写す形へ置き換える。固定軸のプロンプト片と、step 4 統合コメントの冒頭定型の2手。

射程

issue の切り分けに従い B クラス(親が作文面を持たない場所に書いた)のみを実装した。A クラス(記入済みパートの多義性、7件中6件)は射程外であり、presence-defect-cannot-reach-blank-label-visibility が governing である。本 PR は Axis statement form の5部分に要求を追加していない。

変更内容

  1. skills/evolution-impression-literal-detection/SKILL.md## Prompt literal を新設。固定軸が評価者プロンプトへ入る文言を逐語で保持し、親は写すだけで何も足さない。除外宣言が散文だけで立っていたために開いていた欄が、保持によって無くなる。description に「brake 1 の評価者プロンプトを組んでいて固定軸を載せるとき」を追加。
  2. skills/evolution-parallel-agent-eval/SKILL.md Report shape の Parent's aggregated comment に Preamble を追加。比率の扱いと固定軸 carve-out の2節を1つの literal として保持する。親が自分の言葉で言い直すことが carve-out を跨いだ一般化を生んでいたため、写す形にした。Procedure step 3 / Axis statement form / Ratio is a triage signal の3箇所を保持先を名指すポインタへ差し替え。
  3. docs/2.-Evolution.md = 日本語ミラーを同一 PR 内で追随(skill 表 / 軸の書き方 / 比率 / 3成果物の形)。

brake 1 の順序(issue で確定済み)

本 PR の brake 1 は変更前の計器で走る。 本 PR は brake 1 の計器そのものを変更するため、新しい計器を自分自身の PR に適用すると自己検証になる。採らない。新計器は後続 PR から効く。

  • 固定軸は Prompt literal ではなく、変更前どおり親が固定軸の文言を組んで渡す。
  • 統合コメント冒頭も、変更前どおり Preamble literal を使わない。

brake 判定

  • brake 1 = 必須(skills/**/SKILL.md = governed surface、N>=3、単一ラウンド)。
  • brake 2 = 非発火layer: L1-model のファイルに触れていない(変更は L2 skill 2本 + docs)。

release type

patch。L2 の spec 変更で user/system observable な影響を持たない。

検査

python -m unittest discover -s tests = 73 件 OK。

…aggregated comment preamble as copied literals [skills, docs]

brake 1 の計器のうち、親が作文面を持たない場所に書いていた2箇所を、保持された
literal を写す形へ置き換える。#1779

## 射程

issue の切り分けに従い **B クラス(親が作文面を持たない場所に書いた)のみ**を実装した。
A クラス(記入済みパートの多義性、7件中6件)は射程外である。wiki
`presence-defect-cannot-reach-blank-label-visibility` が
「Axis statement form のパートに要求を足しても空欄ラベルの artifact visibility と
同等の構造性は持てない」と確定させており、A に要求を足す案は同じ壁に当たる。
本 PR では Axis statement form の5部分に要求を追加していない。

B が壁に当たらないのは置換先の構造が実在するからである —— 親が作文せず、
保持された literal を写す形にすればよい。写す形では書き込む欄がそもそも無い。

## 変更内容

### 1. 固定軸のプロンプト片(観測 #5 の形)

`skills/evolution-impression-literal-detection/SKILL.md` に `## Prompt literal` を新設し、
固定軸が評価者プロンプトへ入る文言を逐語で保持した。親は写すだけで、何も足さない。

Axis statement form は固定軸を5部分の対象外と明記していたが、その除外は散文の宣言
だけで立っており、親がプロンプトの残りを書いている軸の上に欄が開いたままだった
(`Scope for this axis = ...` が書き込まれた形)。保持すれば埋める空欄が無い。

literal は Positive / Negative 列挙を内側へ写さず、ファイルを名指して SHA 時点で
取得させる。同一ファイル内の1節下に第二の複製を置けば、それが drift する側になる。
文面は PR 経路にも非 PR 経路(Trigger の他項目)にも当たるよう
`the draft under evaluation` で書いてあり、経路ごとの carve-out を開かない。

`skills/evolution-parallel-agent-eval/SKILL.md` 側は Procedure step 3 と
Axis statement form の2箇所を、保持先を名指すポインタへ差し替えた。

### 2. step 4 統合コメントの冒頭定型(同サイクルの統合コメント欠陥の形)

`skills/evolution-parallel-agent-eval/SKILL.md` Report shape の
Parent's aggregated comment に `Preamble` を追加し、冒頭 literal を保持した。

親は「比率は triage signal であって判定入力ではない」を5軸すべてにかけて書いていたが、
`Ratio is a triage signal` 節自身が固定軸を唯一の数値閾値として carve-out しており、
その一般化は固定軸の位置で偽になる。保持された文言は2節(比率の扱い + carve-out)を
両方 payload として持つため、写す限り carve-out ごと入る。

言語の継ぎ目は明示した。統合コメントの地の文は
`Workspace_Language_Contract` で解決されるため、英語以外へ解決する workspace では
preamble も解決後の言語で描画する。そのとき2節はどちらも落とさない。

### 3. 追随

- `skills/evolution-impression-literal-detection/SKILL.md` の description に
  「brake 1 の評価者プロンプトを組んでいて固定軸を載せるとき」を追加した。
  親が保持先へ到達する経路を description 側でも開けるため。
- `docs/2.-Evolution.md` = 日本語ミラーを同一 PR 内で追随(skill 表 / 軸の書き方 /
  比率 / 3成果物の形の4箇所)。

## brake 1 の順序

**本 PR の brake 1 は変更前の計器で走る。** 新しい計器を自分自身の PR に適用すると
自己検証になるため採らない。新計器は後続 PR から効く。

## 検査

`python -m unittest discover -s tests` = 73 件 OK。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@smileygames

Copy link
Copy Markdown
Member Author

brake 1 統合コメント — N=3 / M=全軸 / P=1 @ 477b5b426d1e7f717a405a287803645cf3f4d137

3体の評価者の報告を統合したもの。所見の採否・順位付け・回答はここでは行わない(裁定は著者側 / Procedure step 7)。

比率(3/3・2/3・1/3)はどこを先に検証するかの安い事前分布であって判定入力ではない。所見の可否はリテラルをソースに突き合わせて決まり、1/3 が採用され 3/3 が却下されうる。ただし固定軸だけはこの線の外にある — 固定軸は自前の spec(skills/evolution-impression-literal-detection/SKILL.md Aggregation)に絶対閾値を持ち、その数値はそこに書かれたとおりに適用される。

なお本 eval は変更前の計器で走らせている(本 PR が追加する Prompt literalPreamble は未使用)。順序は issue #1779 が確定させたとおり。


軸1 — 保持された prompt literal の完全性

所見 1-a(2/3)— Basis パートの解決先が、literal 自身が名乗る非 brake-1 経路で未確定

skills/evolution-impression-literal-detection/SKILL.md:46:

The form this axis enters an evaluator prompt in — on the brake 1 path and on the other Trigger entries alike (skills/evolution-parallel-agent-eval/SKILL.md Trigger). Copy it verbatim; do not re-compose it per spawn, and add nothing to it.

skills/evolution-impression-literal-detection/SKILL.md:48:

The Positive and Negative lists bounding this axis, including the categories that are protected and must not be flagged, are at skills/evolution-impression-literal-detection/SKILL.md; retrieve that file at the named SHA and apply it as written.

Basis は「the named SHA」を経由して解決する。SHA が名指されるのは brake 1 経路だけである。skills/evolution-parallel-agent-eval/SKILL.md:96:

On the brake 1 path the material named in the prompt is the PR URL, the pushed commit SHA, and the green CI run URL — never a path inside the parent's clone...

そして :85:

on the brake 1 path that branch is the PR branch at the SHA the CI run went green on; on the other Trigger entries it is an experimental branch.

step 2 も別形を直接述べている(:90 "Point the evaluator at the draft for direct Read instead.")。:46 が名指す他の4つの Trigger entry(PR フロー外で収束したドラフト / evolution-loop の observe・evaluate / N=1 self-check 後 / spec 改定の直交検証)には PR も push 済み SHA も CI run も無く、Axis selection(:25)は固定軸をそれら全てに載せる。そこでは「the named SHA」に指示対象が無く、親が Basis を閉じるほかない — SHA を自前で名指すか、文を適応させるか。どちらも同じ文が禁じている composition である。

欠陥である理由: 当該節自身が「material は Procedure step 3 で既に確定している」と述べている。非 brake-1 の spawn で literal を写す親は、唯一まだ供給しなければならないパートについて、他所で処理済みだと告げられる。本 PR が塞いでいる形 — spec が「持たない」と言う作文役目を親が持たされる — が、新節が明示的に名乗る4経路で再導入されている。

(1体は本軸を clean と判定した。その根拠は :46 の "The material the prompt names alongside it stays the parent's, fixed at that file's Procedure step 3." が material を明示的に委譲しており、Basis は :131 が許す "the criterion at its path" で足りる、というもの。)

所見 1-b(1/3)— clean 側の報告形が、literal にも委譲先にも無い

skills/evolution-impression-literal-detection/SKILL.md:48:

Report each flagged phrase as a verbatim quote with its path:line.

flag された側の形しか述べていない。clean のときの形は、別途供給される報告形の行(skills/evolution-parallel-agent-eval/SKILL.md:103)が Report shape へ解決し、その clean 分岐は :150:

Axis with no finding: one line — the axis name, the verdict in that axis's own terms, and the path:line the verdict rests on. An axis answered by a repository-wide sweep has no single line to name: give the sweep in re-runnable form (the pattern, and the paths it ran over) and its hit count.

固定軸の clean 判定が立つ根拠は diff の追加・変更行全体(本 PR では3ファイル17行)であり、単一の path:line でもリポジトリ全体の掃引でもない。どちらの分岐も合わないため評価者が clean 側の形を自作することになり、独立に自作された形こそ Axis statement form が消そうとしている割れである。本報告を書く際に実際に形の発明が要った、と当該評価者が明記している。


軸2 — Preamble literal と統合元2節の一致

3体がそれぞれ別の所見を挙げた(いずれも 1/3)。1体は clean。

所見 2-a(1/3)— 裁定節が、ソースが固定軸を除外している場所で無限定に述べられている

skills/evolution-parallel-agent-eval/SKILL.md:157:

Adjudicate each finding by checking its literal against the source at the named SHA, and adopt or drop it on that.

「each finding」を無制限に支配する。skills/evolution-impression-literal-detection/SKILL.md:31-32 は固定軸の採否を著者のリテラル検証ではなく絶対計数に固定している:

  • 2 or more of N=3 flag the same literal → refine immediately.
  • 1 of N=3 flags → do not auto-refine; record the flagged literal in the commit body as the adjudication of that finding, naming the below-threshold count as the reason it was not refined.

2つ目が鋭い — 著者に「計数を、refine しなかった理由として commit body に書く」ことを要求する。Preamble 節は同じ著者に「リテラル検証で採否を決めよ」と指示する。同一の所見に対して別々の commit body が書かれることになり、commit body は親が step 8 で点検する当の面である。

後続の carve-out は届かない。同行:

One axis stands outside this line: the fixed impression-literal axis carries absolute thresholds in its own spec (skills/evolution-impression-literal-detection/SKILL.md Aggregation), and its counts are applied there as written.

外に立つと名乗られているのは counts であり、"this line" は直前の triage-signal 主張に掛かる。draft 自身の注釈(:159 "The first without the second is false where the fixed axis lands.")が、設計上の露出はその1件だけだったことを確認している。裁定節は同じ場所で偽になる2つ目の主張であり、literal にも注釈にも対処が無い。

所見 2-b(1/3)— N=3 を固定値として運んでいるが、ソースは比率一般について述べている

Preamble、skills/evolution-parallel-agent-eval/SKILL.md:157:

The 3/3, 2/3 and 1/3 counts below are a triage signal on where to check first, not a judgment input.

ソース、:75:

The ratio of evaluators reporting a finding (3/3, 2/3, 1/3) is a cheap prior on where to spend verification effort first. It is not a judgment input.

ソースでは主語が "the ratio of evaluators reporting a finding" で、三つ組は既定の例示に過ぎない。Preamble は三つ組を文法上の主語へ昇格させ、比率ではなく特定の3つの計数についての規則にしている。N は下限であって固定値ではない(:187 "minimum N=3"、:53N=3, P=2 -> 6 invocation)。同ファイルの隣接 bullet は N について generic である(:160 "how many of the N raised it")。

欠陥である理由: 下限を超える N では、保持された literal がコメント冒頭でそこに現れない計数を名指し、実際に現れる計数には指示対象が無い。:159 が「作文ではなく写す」と固定しているため、親には使用時点で正す許可された手段が無い — 保持が、狭窄を修正不能なものへ変える。

所見 2-c(1/3)— rendering 節が、保持が防ごうとしている composition を復活させ、かつどちらのソースにも無い

skills/evolution-parallel-agent-eval/SKILL.md:159:

The parent restating this in its own words is what generalizes the first over the carve-out the second names, which is why the wording is held here. Where the workspace resolves to a language other than English the preamble is rendered in it like the rest of the parent's prose (Language below), and rendering carries both clauses.

2文が互いに逆を要求する。述べられた機構は「親が自分の言葉に直してはならない」であり、次の文は英語に解決しない workspace でまさにそれを要求する。保持された literal を別言語へ render することは、それについて親の言葉を作ることである。"rendering carries both clauses" は節のを固定するだけで、保持が防ごうとしている一般化は clause 1 と clause 3 の言い回しの関係の内側にあり、翻訳でも言い換えでも同じだけ失われる。本リポジトリ自身がその該当例である(docs/ は全面日本語で、この bullet のミラーを含む)。

どちらのソース節も言語について何も述べていないため、本節はソースに無いことを主張している。本ファイルの他の保持 literal とも異形である(:190 "Copy this literal into every brake 1 evaluator prompt verbatim; do not re-compose it per spawn"、skills/evolution-impression-literal-detection/SKILL.md:46 "Copy it verbatim" — いずれも rendering の carve-out を持たない)。

Unit についての但し書き(評価者が伏せずに明記): 本節は Preamble bullet の散文部にあり、軸の Scope は覆うが、Unit が名指す blockquote の内側ではない。


軸3 — 射程外 A 類への漏れ

clean(3/3)。 3体とも独立に、変更行のすべてが B 類またはミラーに分類され、Axis statement form の5パートいずれにも要求を追加・強化していないと判定した。計数は 17 content 行(3体一致)/ 空行込み 25 行。境界に最も近い行として3体とも skills/evolution-parallel-agent-eval/SKILL.md:121("Held, the axis carries no blank for one of the parts below to be filled in on it")を挙げ、これは固定軸の除外が何に立つかを述べるもので5パートには何も課さない、と判定している。1体は同行が正味でテキストを削っている点も記録している。


軸4 — ミラー整合と未更新の第三面

所見 4-a(1/3)— 親が統合コメントを書く瞬間に実行する指示が、依然「散文は親のもの」と告げている

skills/evolution-parallel-agent-eval/SKILL.md:106(本 PR で不変):

Consolidation is summary and merge — duplicate findings raised by more than one evaluator collapse into one entry carrying its ratio, and the surrounding prose is the parent's. It stops there.

本 PR が追加した :155-159 の Preamble は、コメント冒頭がまさに親のものではない散文であると定める。Procedure step 4 は親が実際にコメントを作る瞬間に立つ場所であり、Report shape は形の参照先として名指されているが、step 4 自身の包括節が新規則を超えて及んでいる。当該文に冒頭部の carve-out は無い。本 PR が塞ぐために存在するのと同じ失敗クラス — 親が作文役目を持たない場所で作文する — が、その瞬間の読み手が親である唯一の面に残っている。

日本語ミラーはこの文を反復していない(docs/2.-Evolution.md:283 は Report shape をミラーし新 Preamble を正しく運んでいる)ため、英語側のみの欠陥でミラー整合には影響しない。

ミラー整合そのもの

clean(3/3)。 3体とも、変更された規範文すべてに docs/2.-Evolution.md 上の整合的な対応物が同一 PR 内に存在すると判定(:63 skill 表の行 / :280 保持 literal と除外の対 / :282 Design Dimensions のルーティング / :283 Preamble)。掃引は英日両言語で、リポジトリ全体(rules/ skills/ adapter/ docs/ tests/ .github/ scripts/ Li+update.md Li+config.md README.md)に対して実施。英語側パターン例: Prompt literal / Axis statement form / aggregated comment / triage signal / fixed axis / held literal / Report shape。日本語側パターン例: 固定軸 / 統合コメント / 軸文言 / 写す / 保持された literal / 比率 / 評価者プロンプト。第三面のヒットはすべて節スコープのポインタで、本変更に触れられていないことを個別に確認済み。

付随観測2件(所見として挙げられたものではない): tests/test_skill_reference_resolution.py は skill のファイルパスのみを検証し節名は検証しないため、新規の ... SKILL.md Prompt literal 参照は CI では未検証(実際には ## Prompt literal へ解決することは手で確認済み)。tests/test_skill_description_limit.py は充足(description 574 文字 / 上限 1024、terminator 健全、条件5個)。


固定軸 — impression-literal 検出

1 of N=3 が flag。

skills/evolution-impression-literal-detection/SKILL.md Aggregation の絶対閾値により、1/3 は auto-refine しない。当該閾値は、flag されたリテラルを commit body に裁定として記録し、閾値未満の計数を refine しなかった理由として名指すことを要求する。この扱いは比率=triage signal の一般則の外にあり、本コメント冒頭の但し書きのとおりである。

flag されたリテラル、skills/evolution-parallel-agent-eval/SKILL.md:98:

copied verbatim with nothing added to it

文脈(全文): "Each per-draft axis goes into the prompt in the form fixed at Axis statement form; the fixed axis is outside that form's scope and enters as the held literal at skills/evolution-impression-literal-detection/SKILL.md Prompt literal, copied verbatim with nothing added to it."

flag した評価者の除去テスト: 当該節を削ると文は "…enters as the held literal at skills/evolution-impression-literal-detection/SKILL.md Prompt literal." と読める。親はその指示を、名指された節を開かずには実行できず、当該節が最初に述べるのが skills/evolution-impression-literal-detection/SKILL.md:46 "Copy it verbatim; do not re-compose it per spawn, and add nothing to it." である。ゆえに指示は :98 が運ぶか否かに関わらず使用時点で親へ届き、除去しても behavior semantic は変わらない、というもの。Negative list の保護には当たらない(behavior literal でも構造語彙でも referent 付き引用でもなく、explanatory rationale でもない — 防ぐべき誤読が、同じ文が読み手を送る先で既に閉じているため)と判定している。

同評価者は、本 PR 自身の論法が同じ形を拒んでいる点を根拠に挙げている — skills/evolution-impression-literal-detection/SKILL.md:50(同 diff 内、"a second copy of them one section below the first is the copy that drifts")および skills/evolution-parallel-agent-eval/SKILL.md:151("a restatement is a second copy of it, and the second copy is what drifts")。

他の2体は本軸を clean と判定している。両者が最も重く検討したのは skills/evolution-impression-literal-detection/SKILL.md:50skills/evolution-parallel-agent-eval/SKILL.md:121 / :77 で、いずれも「後の編集者が起こす既知の誤読を防ぐ rationale」として Negative list の保護カテゴリに当たる、という判定である。

divergence: 本軸の 1-of-3 割れは skills/evolution-parallel-agent-eval/SKILL.md Design Dimensions, Divergence handling の same-question check → why-diverged の対に掛かる。

Claude Lin & Lay and others added 2 commits August 21, 2026 01:46
brake 1(評価者3体、単一ラウンド、変更前の計器)の指摘に対する裁定。#1779

## 受入(6件、いずれも 1 行)

- 所見 1-a(2/3)— `Prompt literal` の Basis が「the named SHA」で解決していた。SHA が
  名指されるのは brake 1 経路だけで、同節自身が名乗る他 4 経路には指示対象が無い。
  `the revision this prompt names` へ変更し、material の所在も step 3(brake 1)と
  step 2(それ以外)の両方を名指す形にした。
- 所見 1-b(1/3)— literal が flag 側の報告形しか述べておらず、clean 側は
  Report shape のどちらの分岐にも合わなかった(単一の `パス:行` でも
  リポジトリ全体の掃引でもない)。掃引分岐と同型の 1 行形(掃いた draft と
  追加・変更行数)を literal に追加した。
- 所見 2-a(1/3)— Preamble の裁定節が無限定で、固定軸の Aggregation
  (1/3 は計数を理由として commit body に記録する)と衝突していた。本裁定自身が
  その衝突の実例である。carve-out を「両方の文の外に立つ」形へ広げた。
- 所見 2-b(1/3)— `3/3, 2/3 and 1/3` は N=3 を固定値として運んでいた。N は下限であり、
  超えれば literal がそこに現れない計数を名指す。`how many of the N evaluators
  raised it` へ一般化した。
- 所見 2-c(1/3)— render 節が、保持が拒んでいる composition を復活させていた。
  削除し、原文の言語のまま写す形にした。Language bullet の「解決では片づかない継ぎ目」
  にも preamble を加えた(従来「1 つ」と数えていた)。
- 所見 4-a(1/3)— step 4 の `the surrounding prose is the parent's` が、
  本 PR が「親のものではない」と定めた冒頭部まで及んでいた。冒頭 literal を除外した。

`docs/2.-Evolution.md` = 2-a / 2-b / 2-c と Language 継ぎ目の 4 点をミラーへ追随。

## 却下(1件、固定軸 / full)

**固定軸 1 of N=3 — refine しない。**

flag されたリテラル、`skills/evolution-parallel-agent-eval/SKILL.md:98`:

> copied verbatim with nothing added to it

理由 = **閾値未満(1/3)**である。`skills/evolution-impression-literal-detection/SKILL.md`
Aggregation は 2 以上で即 refine、1 では auto-refine せず flag されたリテラルを
commit body に記録し、閾値未満の計数を refine しなかった理由として名指すことを要求する。
この軸の閾値は絶対であり、比率=triage signal の一般則の外にある。したがって本件は
リテラル検証で採否を決めず、計数を理由として却下する(所見 2-a が本 PR で閉じた
衝突の、まさにこの手順である)。閾値は過剰トリムを止めるために在り、
`copied verbatim with nothing added to it` は Prompt literal を開かない読み手に対して
使用時点の要求を運んでいる。

### divergence handling(1-of-3 の割れ)

- **同一問検査 = yes。** 3 体とも「追加・変更行のどの語句が impression literal か」に
  答えており、clean 判定は `:98` を含む全行を見た上での「flag 無し」である。
  軸の書き方の問題ではない。
- **なぜ割れたか = 明確な基準の適用のばらつき。** Negative list の
  `Explanatory rationale that prevents a known misinterpretation` は
  「behavior semantic と revision stability の両方が不変のときのみ impression literal」と
  二肢で書かれている。flag 側は第一肢(指示はポインタ先で届く)で判断し、
  clean 側 2 体は第二肢(revision stability)で保護と判断した。両肢とも明文であり、
  判定基準の曖昧さには遡らない。基準側の修正は行わない。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
親の検分で名指された修正 1 件と、記録漏れの明示 1 件。#1779

## 受入(親の指摘、1 件)

所見 1-a が、修正した段落の 1 つ下で生き残っていた。`## Prompt literal` の
締め段落が `the named SHA` と Procedure step 3 のみを名乗っており、直前の段落を
brake 1 経路 = step 3 / それ以外 = step 2 へ直した後は、同一節が material の
問いに二度、食い違って答える状態になっていた。しかもこの段落は Basis が
ポインタで足りる理由そのものであり、非 brake-1 の spawn を組む親が読む側である。

締め段落から経路の名指しを外し、`at whichever revision the paragraph above
resolved to` として直前段落へ解決させた。step-3 / step-2 の分岐は節内に 1 箇所
(46 行目)だけ残る。二重保持を作らないため、分岐そのものは写していない。

## 記録(新規変更ではない)

literal 末尾の以下の文について、親が「どの所見も要求していない追加」として
名指したため記録する。

> Do not aggregate and do not apply a threshold: this axis's thresholds are
> absolute and are applied to the N reports after yours arrives.

事実関係: この文は裁定コミット `4944acc` の追加ではなく、brake 1 が実際に走った
`477b5b4` の時点で literal に存在していた(`240cf0e` = main には無い)。すなわち
評価対象の draft の一部として N=3 の評価を通っており、どの評価者も flag していない。

役目: 所見 1-b で評価者に clean 行の作文を新たに求めたため、絶対閾値を評価者が
自分で適用するものと読む余地が生じる。この文はその読みを閉じ、閾値の適用主体を
(親の統合後の)裁定側に固定する。1-b の実装が成り立つのはこの文が在るからであり、
1-b の受入と同じ範囲に属する。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

@smileygames smileygames left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

自己レビュー記録(execution mode = semi_auto / patch)

受け入れ条件の確認

#1779 の「結論 — 本 issue の射程は B のみ」と対象ファイルを実物で照合した。

項目 結果
B 類 2 手のみ実装(固定軸の prompt 断片の保持 / 統合コメント冒頭定型の保持)
A 類に手を出していない 済。brake 1 軸3 が clean 3/3。3体とも独立に全変更行を分類し、Axis statement form の5パートいずれにも要求を追加していないと判定
対象ファイルが issue の列挙と一致 済。skills/evolution-impression-literal-detection/SKILL.md / skills/evolution-parallel-agent-eval/SKILL.md / docs/2.-Evolution.md の3件のみ
docs ミラーが同一 PR 内 済。brake 1 軸4 のミラー整合が clean 3/3、英日両言語での掃引付き
brake 1(必須) 済。N=3 / M=全軸 / P=1、単一ラウンド
brake 2 不発火layer: L1-model のファイルに触れていない(L2 skill 2件 + docs)
CI 済。head 79bd872 で governance green

順序の遵守

issue が着手前に確定させた順序——本 PR の brake 1 は変更前の計器で走る——を守った。固定軸は本 PR が追加する Prompt literal ではなく 240cf0e(main)の文言から親が組み、統合コメントにも新 Preamble を使っていない。親のクローンが PR ブランチに残っていたため、計器は origin/main から読み直した。

brake 1 の結果と裁定

所見 7 件(軸1 = 2件 / 軸2 = 3件 / 軸4 = 1件 / 固定軸 = 1件)、clean = 軸3(3/3)とミラー整合(3/3)。

  • 受入 6 件。 最も重いのは軸1 の 2/3 一致——新 Prompt literal は brake 1 経路と他4 Trigger entry を「同様に」覆うと自ら名乗りながら、Basis が the named SHA 経由で解決しており、SHA が名指されるのは brake 1 経路だけだった。本 PR が塞ぐ形が新節自身の中で再現していた。
  • 却下 1 件(固定軸、1 of N=3)。 固定軸の絶対閾値により auto-refine せず、flag されたリテラルを commit body に記録し、閾値未満の計数を理由として名指した。divergence の対(同一問検査 = yes / なぜ割れたか = 明確な基準の適用のばらつき、Negative list の二肢のどちらで判断したかの差)も記録済み。

親の検分(step 8)で出したもの

1 往復。所見 1-a が修正段落の 1 つ下(## Prompt literal 締め段落)で the named SHA / step 3 のみを名乗ったまま生き残っており、同一節が material の問いに二度・食い違って答える状態だった。79bd872 で解消。

親側の誤り 1 件(記録)

同じ検分で、literal 内の Do not aggregate and do not apply a threshold: ... を「どの所見も要求していない、裁定中の追加」として著者に名指した。これは事実誤認だった。 当該文は brake 1 が走った 477b5b4 の時点で既に literal に存在し(240cf0e には無い)、評価対象の draft の一部として N=3 を通っている。著者が来歴を確認して訂正し、79bd872 の commit body に正確な事実として記録された。

誤りの形: 裁定差分(477b5b4..4944acc)の追加行に当該文が無いことを確認しないまま、節全体を読んだ印象から「追加された」と推定した。差分を見ているのに差分で確かめなかった。本 PR の受理判定そのものには影響しない(当該文は評価済みで、誰も flag していない)。

scope からの逸脱

無し。

繰り越し項目

tests/test_skill_reference_resolution.py が skill 参照の節名を検証しないため、本 PR が追加した ... SKILL.md Prompt literal 形式の参照は CI では未検証(解決することは手で確認済み)。brake 1 の評価者2体が付随観測として独立に指摘した。マージ前に #1792 として起票済み。

release type

patch。L2 spec と docs のみで、user/system observable な挙動変化を持たない。rules/operations/release-version-rule.md の「structural change AND user/system observable → minor」に照らし、observable 側が立たないため minor には上げない。semi_auto の patch は人間ゲート無しで AI 直接マージ。

次の段取り

self-review pass により squash マージへ進む。マージ後に memory/promotion_tally.md の当該クラスタ削除と、自己進化 PR の post-merge observation entry を親側で処理する。

@smileygames
smileygames merged commit 61db0fc into main Aug 20, 2026
2 checks passed
@smileygames
smileygames deleted the 1779-specevolution-brake-1-instrument-authored-without-a-literal-check-on-the-instrument-itself branch August 20, 2026 16:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

spec(evolution): brake 1 instrument authored without a literal check on the instrument itself

1 participant