第1幕: 検分 ── 夜明け前の帳場
今朝は、私のほうが先に帳場にいた。
素屋根の隙間は、まだ灰色だった。畳に、光の筋は落ちていない。柱の影と、柱と柱のあいだの暗さの区別が、つかないほどだ。夜のうちに冷えた畳の匂いが、足元から上がってくる。文机の上の灯りだけをつけて、私は野帳を開いた。クロベさんもナギさんも、来ていなかった。素屋根の下に、人の気配が無い時間は、一日のうちで、この朝の一時間ほどしかない。
この野帳は、工事が始まった日から付けてきた控えだ。工程ごとに節が分かれていて、一つの節の終わりには、その日の普請控を写してある。節の縁を、一つずつ折ってあった。頁を繰りながら、折った縁を数えた。十一あった。
昨日の夕方、店主さんに訊かれた。素屋根が外れたあと、勘定のことは、あなたに訊けばいいのですね、と。私は、はい、と答えた。答えてから、何を見て大丈夫だと言うのか、自分が言えないことに気づいた。
野帳の節ごとに、検めの置き場が一つずつある。端末の中で、工程の名前の付いた別々の置き場に分かれていて、走らせ方も、野帳の節の端に控えてあった。
| |
置き場ごとに、-Iの付け方が違う。私は端末を起こして、十一の置き場を、上から順に自分で走らせた。一つ走らせるたびに、出力の最後の行を目で追って、野帳の節の端に印を付ける。緑。緑。緑。端末の出力が流れるたびに、鉛筆が紙を擦る音がした。置き場を替えるたびに、置き場の名前を打ち直して、走らせ方を、野帳の端で確かめる。回り終えるまでに、灯りの下の影の向きが、少し変わった。二十四本が、全部緑だった。
そこで、手が止まった。
緑は十一あった。けれど、店主さんに、これを何と言って見せればいいのかが、私には分からなかった。
窓の外が白んで、素屋根の隙間から、細い筋が畳へ落ちた。鉋屑が、その中をゆっくり降りてくる。
クロベさんが、帳場の奥を抜けて、梁の下に立った。毎朝、建物全体を見上げる人だ。何も考えずにいられる、一日で唯一の時間なのだと、前に聞いたことがある。私は、その時間が終わるまで、声をかけなかった。ナギさんが道具箱を提げて来て、私の横を黙って通り、自分の場所に座った。
見上げが終わったところで、私は先に口を開いた。
「十一の置き場を、全部走らせました。二十四本、全部緑でした」
クロベさんは、頷かずに、私のほうを見た。
「日の締めの検めは、これまでも緑でした。それでも、店主さんに、大丈夫です、と言うのに、私は何を見たと言えばいいのか、分かりません」
クロベさんは、しばらく黙っていた。
「十一の検めは、十一の部品を、それぞれの棚の中で確かめています。部品を組んで、月末の締めを通した検めは、まだ一つもありません」
私は、野帳の頁を一枚繰った。
第2幕: 手が入らない ── 十行の頼み
私は、野帳の節を、上から順にめくっていった。各節の終わりに、その日に手を付けず、次へ送ると決めたことが書いてある。その欄を、読んだ。
「一月ぶんだけの検め。ずれが間違いか決まりかの判断。税率が変わったときの書き換え。値札の検め。コンストラクタが本物のファイルに触れるかの見極め。取り込む箇所が増えたときの手。先月の三角の書き方。大福帳が開けないときの振る舞い。待ち箱の先の印字機。手数料と報告の二段を割るかどうか」
十行あった。
「工事が終わったあとに、私のところへ来る頼みです。これが建物のどこに届くのか、一枚に描いてもらえませんか」
ナギさんが、顔を上げた。
「描くのはナギに任せます」
そう言うと、クロベさんは砥石を取り上げ、窓のほうへ体を向けた。それきり、紙を一度も見なかった。砥石の音だけが、帳場に続いた。
ナギさんは、描く前に、一つ確かめた。税率の関数(Shop::Taxのrate)を八分に書き換えて、十一の置き場を、走らせ直した。赤になったのは、値札の置き場だけだった。ほかの十は、緑のままだった。
| |
決算の置き場も、緑のままだ。私は、そこが気になった。
「税率が変わっても、月末の締めは、追いかけないんですか」
「追いません。呼ぶ側に、0.1と書いてあります」
窓に向けた背中のまま、クロベさんが短く答えた。ナギさんが、決算を呼んでいる行を画面に出した。
| |
税率が、税率の関数の値でなく、呼ぶ行に直接書いてある。関数の値を書き換えても、この行には影響しない。
ナギさんは、紙を一枚取って、鉛筆を持った。鉛筆の芯を、爪の先で一度整えてから、紙の左の端に当てた。
泡と矢印で描く。変わる所を泡で囲み、それが届く先へ矢印を引く。床板を上げた日に見たのと、同じ描き方だった。あの日の図は、今日動かす分だけを描いていた。今日の紙には、その絞りがない。
左の端に、十の頼みが並んだ。真ん中に、泡が五つ。税率の関数、運賃、決算、大福帳、知らせ。頼みから、その頼みが動かす泡へ、矢印が伸びる。泡からは、結果の出る所へ、右へ向かって矢印が伸びていく。
運賃、決算、大福帳、知らせ。四つの泡の矢印は、右へ向かううちに、だんだん紙の同じあたりへ寄っていった。月末の締めを一度通したとき、帳面の行と知らせの文が出てくる、右端の高さだ。
税率の関数の矢印だけが、寄らなかった。決算へは伸びず、下の隅へ向かう。ナギさんは、その隅に、値札の泡と、印字機の泡を、灰色の鉛筆で描き足した。税率の矢印は、値札の泡へ向かっていた。印字機は、待ち箱の先で紙になる所だ。寄っていく四つの矢印とは、別の方角にある。
十のうち、三つは矢印にならなかった。一月ぶんの検めと、ずれの判断と、取り込む箇所。ナギさんは、その三つを、紙の余白に書き留めた。
右端に、矢印が寄っていく。その先に、泡が無かった。
ナギさんは、泡の輪郭を引いた。紙の端から端まで、鉛筆が走る音が続いていたので、止まったときの静かさが、はっきり分かった。中に書く名前が、浮かばないのだ。月末の締めを一度通す所を指す名前が、帳場のコードのどこにも無い。帳面と決算と知らせは、別々の三本の口から呼ばれていて、それをまとめた口は、どこにも無かった。
ナギさんは、鉛筆を紙の上に置いた。
砥石の音が、止まった。それまで、一定の間を置いて続いていた音が、途中で切れた。
音の止んだ帳場で、ナギさんの紙を、野帳の一頁に写した。左の端に、十の頼みを並べた。矢印の出た七つは、細い墨の線で泡へ引いた。矢印にならなかった三つは、線を引かず、頁の余白に書き留めた。泡は実線にして、この図で線の寄らない値札と印字機だけを、薄い墨の破線にした。運賃と決算と大福帳と知らせから右へ引いた線は、太くした。税率の関数から出る線だけは、細く下の隅へ向けた。太い線が寄る先には、点線で輪郭だけを写した。

第3幕: 手立て ── 一か所に置く
クロベさんが、砥石を置いて、卓のほうへ向き直った。
「工事が終わったあとに来る頼みの届く先が、細く集まっている所があります。そこに検めを一つ置けば、集まる分については、少ない検めで、広い範囲の変化に気づけます。本では、Pinch Pointと呼ばれています。日本語の本では、絞り込み点と訳されています」
本が言っているのは、三つだと、クロベさんは続けた。集まる所は、頼みの組で決まる。組が変われば、その一か所も変わる。広く集めすぎると、行き詰まる。もう一つ、そこに置いた検めは、あとで部品ごとの検めが揃えば、消えてよい足場だということ。
「変更の近くに置く検めは、原因に近い。集まる所に置く検めは、少なくて済みますが、原因からは遠いです」
「その一か所は、どうやって決めるんですか」
私が訊ねると、クロベさんの視線が、野帳に落ちた。
「あなたの野帳の十行です。工事が終わったあとに来る頼みの組で決まります」
十行は、私が自分の手で書いてきた欄の写しだった。
「ナギ。月末の締めの手順を、一本の口に書き写してください。新しい計算は、持たせません」
ナギさんは、端末に向かった。書き終えるのに、長くはかからなかった。
| |
運賃、決算、大福帳、知らせ。部品を呼ぶ順に、行が並んでいるだけだ。パッケージ名のShimeは、勘定の締めのローマ字で、この口は、月末の締めを一本にしたものだ。ここでいう入口は、この口のことを指す。本番の組み立てで呼ぶ書き方も、一つの呼び出しで済む。
| |
「税率だけ、書き写しではありません」
ナギさんが、自分から言った。
「呼ぶ行に0.1と手で書いてあったところを、税率の関数から取ります。今日の値は、同じです。税率の関数の値を変えたら、月末の締めも、一緒に変わります」
決算の呼び出しだけが、八分に追いかけなかった。入口が取るようになれば、追いかける。
私は、野帳に二行を分けて書いた。書き写したこと。決めたこと。
「書き写しと、決めたことは、分けて控えてください」
クロベさんが、頷いた。
部品は、元の置き場から写しただけで、一字も変えていない。大福帳の一つだけは、手を入れた後の形を本体の名前に戻したので、packageの一行が違う。
| |
入口に置く検めは、最初の工程と同じ手順で、今の出力をそのまま書き取る形で書いた。違うのは、期待値を、入口を通さずに採ったことだ。部品を、店主さんの手順のとおりに手で順に呼んで、出てきた結果を書き取った。入口の結果が、それと一致するかを見る。
入力は九件。決算の日に使った普通の日の明細に、境目を踏む入力を足した。三件を並べる。
| 名前 | 日数 | 荷(重さ・距離・繁忙期か) | 戻り値(net/fee) |
|---|---|---|---|
| 普通の日(現金500・掛800・掛900は取消し・掛400) | 45 | 6, 12, 1 | 1431 / 1000 |
| 日数31・距離10の境目 | 31 | 6, 10, 1 | 5247 / 750 |
| 空の明細 | 10 | 0, 0, 0 | 0 / 300 |
残りの六件は、日数30と31、重さ5、距離3と10の境目を踏む入力と、掛売りの上乗せと引当の上限の入力だ。見る所は三つ。戻り値、大福帳に書かれた行、知らせの名前と文面。大福帳には、検め用の帳面(書き先が文字列になる、メモリ上のファイルハンドル)を入れた。知らせの文面まで検めるので、名前と引数を控える代役Spy::Lineを入れた。前に使ったStub::Lineは、名前しか控えないからだ。
| |
$nは入力の件数で、ふだんは九だ。このほかに、税率の関数をlocalで検めのあいだだけ八分に差し替えた入力を、九件分、戻り値と帳面の二つの見方で通す。値札の日に覚えた手だ。検めの先頭の一行で、この代役が知らせ口の三つの名前を全部持つことを、Omote::Sunpo::missingに通して確かめてある。寸法を定めた日に書いた検めが、ここでも効いた。
| |
五十本の主は、九件に三つの見方で通す二十七本だ。残りは、税率を八分に差し替えた入力、帳面が開けないとき、代役と読み込みの確認になる。緑だった。
「宮大工の言い方では、締め所です」
クロベさんが言った。この入口が、締め所になる。勘定の締めとは字が同じだが、別の語だ。ここでは、工事が終わったあとに来る頼みの届く先が、細く絞られて集まる所のことを指す。これからは、この入口に置いた検めを、入口の検めと呼ぶ。
私は、野帳の「次の工程へ送ること」の欄に、手を置いた。
「一か所だけ検めて、全部を確かめたことになるんですか」
引き受ける側として、店主さんに大丈夫と答えられるのは、確かめた範囲だけだ。この入口を検めて緑になったとして、確かめたことになるのは、どこまでなのか。
「なりません」
クロベさんは、短く答えた。
「だから、壊して確かめます」
ナギさんは、手を伸ばしかけて、止まった。クロベさんの顔を見て、頷かれてから、手を伸ばした。
第4幕: 検め ── 壊して、赤になるかを見る
壊して確かめる、とは、部品を一か所だけわざと壊して、検めがそれに気づくかを見ることだ。壊した版は、コピーしたツリーの中で作る。本物のlibには、触れない。同じ壊し方を、その部品の元の置き場の検めにも当てて、結果を並べる。
ナギさんが、四十七の壊し方を、一つずつ入れて走らせた。同じ結果になるはずの書き換え(//を||に替えるなど)が三つ混ざっている。残る四十四が、本当の壊しだ。そのうち八つを、表にした。壊して確かめるのは、検めが本当に何かを守っているかを、検める側から確かめるためだ。
| 壊し方 | 入口の検め | その部品の元の検め | 読み方 |
|---|---|---|---|
| 税率の関数を八分に書き換える | 赤 | 赤(値札の置き場だけ) | 税率の書き換えを、入口の検めが見張っている |
30日超の境目の>を>=に | 九件なら赤、先頭の一件だけなら緑 | 赤 | 境目を踏む入力が要る |
| 手数料と報告の順を、誤って割る | 赤 | 赤 | 割る作業の見張りになる |
| 入口が知らせを、帳面より先に出す | 赤(帳面が開けないときの検めで) | 部品側に検めが無い | 入口の配線は、入口の検めだけが見張る |
重さの境目の> 5を>= 5に | 赤 | 緑 | 部品の検めが足りない |
負の金額の△を-に | 緑 | 赤 | 入口が入れない値 |
close_dayの知らせを消す | 緑 | 赤 | 入口が呼ばない関数 |
| 値札が税を足さない | 緑 | 赤 | 入口を通らない部品 |
四十四のうち、入口の検めが赤にしたのは三十四。赤にしなかったのは十だった。
入口は、部品を呼ぶ順を書き写しただけだ。だから、部品を壊せば赤になるのは、当たり前に見える。当たり前でないのは、二つある。部品の検めが緑のままなのに、入口の検めだけが赤になる壊し方。それから、入口の配線そのものを壊したとき、元の置き場の検めには、見張る相手がいない。表の四行目と五行目が、それだ。
二行目は、件数の実演だ。検めを日数45の一件だけにすると、30日超の境目は、踏まれないので緑のままだ。九件に戻すと赤になる。こういう壊し方は、全部で九つあった。30日超の境目、重さの境目、距離の境目、遠方の境目、税の端数、期日の二つの率、上乗せの条件と額。件数ではなく、境目を踏む入力が効く。
六行目から八行目が、赤にならなかった所だ。理由は三つに分かれた。入口が入れない値域(負の金額は、入口から一度も入ってこない)。入口が捨てる値(大福帳のpostの戻り値、知らせの控え)。入口が呼ばない関数と、入口を通らない部品(close_day、値札)。つまり、赤にならなかった十は、入口の検めの穴ではなく、入口の検めの範囲の外だ。
「赤にならない所が、あるんですね」
私が言うと、クロベさんは、一度だけ頷いた。
「あります。それを先に言うのが、締め所の仕事の半分です」
五行目は、別の話だった。入口の検めは赤なのに、その部品の元の検めは、緑のままだった。ナギさんが、運賃の置き場の検めを開いた。境目を踏む入力が、そこには無かった。重さの境目のほか、距離の境目、知らせの文面、帳面が開けないときの言葉の三つが、同じように、元の検めには引っかからなかった。
入口の検めが赤になって、部品の検めへ降りても、緑のまま、原因が見つからない。そういうことが、この四つで起きた。入口の赤は、部品の検めが足りない、という知らせにもなる。
だから、検めは二段になる。一段目は、入口の検めで、全体に届いたかを見る。赤なら、二段目の部品の検めへ降りて、どの部品かを探す。二段目が、緑のまま空振りするときは、その部品の検めが足りない。表の五行目が、それだ。
次に、この検めが言えることと、言えないことを、野帳の十行に当てた。
入口を通って、出力に載り、固定入力が踏む変化には、気づける。それが、入口の検めが言えることだ。
| 持ち越し | 入口の検めは | 根拠 |
|---|---|---|
| 一月ぶんだけの検め | 肩代わりしない(野帳へ送る) | 九件の入力しか見ない。足した分だけ広がる |
| ずれが間違いか決まりかの判断 | 野帳へ送る | 赤は、変わった、としか言えない。判断は人 |
| 税率の書き換え | 肩代わりする | 入口が税率の関数から取るので、八分で赤になる |
| 値札の検め | 野帳へ送る | 値札は入口に載らない |
| 本物のファイルに触れるか | 肩代わりする | 帳面を見る検めで、触れる壊し方が赤になる |
| 取り込む箇所が増えたとき | 野帳へ送る | 入口は取り込みの箇所を数えない |
| 先月の三角の書き方 | 野帳へ送る | 入口は正の金額しか積まない |
| 大福帳が開けないとき | 肩代わりする(止まり方と順序) | 何と言って止まるべきかは野帳 |
| 待ち箱の先の印字機 | 野帳へ送る | 入口が読み込まない |
| 手数料と報告の二段 | 割る作業の見張りは肩代わり、割るか否かは野帳へ | 誤った割り方は赤になる |
範囲の外も、先に言っておかなければならない。日の締めは、入口が写していない。九件以外の入力は、見ていない。入口を通らない部品と、入口が捨てる値は、見えない。本物の大福帳、書状が店主に実際に届くかも、見ていない。これは、九件を一度動かした話だ。毎日使い続けている店の中で何が起きるかは、この九件からは分からない。
私は、野帳の六つ目の節を開いた。前に私が書き残した宿題が、そこにある。通る場所が本当に一つと言えるのはどんなときか、というものだ。ここでは、部品を呼ぶ所が、入口だけと言えるのか、という問いに引き直せる。
「呼ぶ所は、一つ、と言ってよいんですか」
ナギさんが、素の名前で、探した。
| |
検めの側を除けば、どちらも呼ぶ所は二つだった。税率の関数は、入口と値札から。大福帳は、入口と、帳面だけを書くbinの一本から。
クロベさんが答えた。
「言えません。言えるのは、木の中の全部を素の名前で探して、呼ぶ所が入口だけだったときです。それでも、名前を組み立てて呼ぶ所は、探しても出てきません。木の外のものは、数えられません」
私は、野帳に、二行足した。入口のほかに、呼ぶ所が二つあること。木の外は、外に聞くしかないこと。
最後に、消し方の話があった。
「この検めは、重さと距離の境目、知らせの文面、帳面が開けないときの言葉、この四つの部品の検めが揃うまで、消さないでください。元の検めに引っかからなかった四つです。それが揃えば、入口の検めの重なる分は、消せます。入口の配線の検めは、入口がある限り残します。入口が部品を正しく呼んでいるかは、部品の検めには見えないからです」
そのあと、クロベさんは、何も言わなかった。ナギさんが、端末の席から立った。空いた席に、私が座った。
私は、税率の関数を、八分に書き換えた。入口の検めを走らせる。赤だった。帳面の行と、戻り値の数が、期待と違う。値札の検めも、赤。決算の置き場は、緑のままだ。関数を元に戻して、走らせ直した。緑だった。
野帳に、赤になったときの順を、書いた。
クロベさんが、一度だけ訊いた。
「赤になったら、どうしますか」
私は、野帳の行を見ながら、答えた。
「入口の検めが赤になったら、何が変わったかを読みます。戻り値か、帳面か、知らせか。次に、部品の検めを順に走らせて、赤の部品を探します。部品が全部緑なのに、入口だけが赤なら、入口の配線か、部品の検めが足りません。意図した変更なら、期待値を書き換える前に、店主さんに確かめます」
「それでも、どの部品か特定できなかったら」
「外へ頼みます。野帳と控えを添えて。野帳を見せれば、別の大工さんにも、今日までのことが伝わります」
クロベさんは、答えなかった。砥石を持った手を、膝の上に置いた。ナギさんは、立ったまま、道具箱の蓋の留め金に指をかけて、動かなかった。
翌朝は、昨日より早く起きた。
素屋根の隙間は、まだ灰色だった。梁の下に、クロベさんが立っていた。私は、梁の下の、クロベさんの隣に立った。これまで、見上げる背中を、後ろから見ていた。同じ高さから見上げるのは、初めてだった。
隙間の筋が、畳の上を、ゆっくり渡っていく。梁の継手に、細い光が斜めに当たる。鉋屑が、その中を降りてくる。
「今日の形は、このまま残しておいてください。直す前の形を残しておかんと、直ったかどうかが言えません」
クロベさんが、見上げたまま言った。
最初の日に、この帳場で聞いたのと、同じ言葉だった。
二人は、道具箱を土間へ運び出した。鉋と鑿と墨壺が、箱に収まっていく。蓋を閉じるたびに、留め金が、短く鳴った。ナギさんは、運び出す前に、端末の脇へ、紙を一枚貼っていった。土間の石を、箱を提げた足音が、遠ざかっていく。二人の口から、言葉は出なかった。
足音が聞こえなくなってから、私は端末の脇の紙を見た。一行だけ、書いてある。
| |
私は、その一行を、端末に打って、走らせた。
| |
緑だった。店主さんに訊かれたら、今日からは、この一行を走らせて、答える。野帳を閉じた。素屋根の下に、鉋屑の匂いが、薄く残っていた。隙間の筋が、畳に落ちていた。私は、灯りを消した。
普請控
- 見立て: 十一の置き場の検めは、部品ごとには緑でも、月末の締めを通した全体を一度に確かめる手立てが無かった。税率の関数を書き換えても、決算の検めは赤にならなかった。
- 手を入れた所: 締め所(Pinch Point。邦訳では絞り込み点)に検めを一つ置いた。月末の締めの手順を一本の入口
Choba::Shime::runに書き写し、九件の入力で、戻り値と大福帳の行と知らせを書き取った。部品を四十四通りに壊して、その検めが気づくかを確かめた。 - 触っていない所:
Shop::Tax・Delivery・Daikoku::Kessan・Nikai::Daifuku・Omote::Shiraseの五つの部品は、元の置き場から写しただけで、一字も変えていない(大福帳だけ、手を入れた後の形を本体の名前に戻したpackageの一行のみ)。binの三本、値札PriceTag、日の締めのclose_day、待ち箱の先の印字機、先月までの帳面の中身、書状が店主に実際に届くか、十一の置き場の検めそのもの。 - 次の工程へ送ること: 野帳へ送った七つ(一月ぶんだけの検め、ずれの判断、値札、取り込む箇所、先月の三角、印字機、二段を割るか)。重さと距離の境目、知らせの文面、帳面が開けないときの言葉の部品の検めを足すまで、入口の検めは消さない。税率が変わるとき、値札と月末の締めを一緒に動かしてよいかは、店主さんと決める。
- 私が引き受けたこと: 入口の検め一本を自分で走らせ、赤なら部品の検めへ降りて原因を探し、特定できないときだけ、野帳と控えを添えて外へ頼む。棟梁を呼ばなくてよい。自分の手で税率の関数を書き換えて赤を出し、赤を読んで順を書き、訊かれて答えた。
