How our gauntlet loop works

A gauntlet lap takes a batch of work from "approved idea" to "proven end to end on a real running copy of the shop", without pushing anything until you say so. Agents build in parallel, reviewers check them, then the whole thing gets deployed to kali and hammered by the purchase matrix until it passes twice in a row.

Map version

Watch it run click Pac-Man to start

Pac-Man = you (サトル). The prompter: you say GO, answer the questions, say push.
Orange ghost house = me (Claude). I plan, write the rulings, send the ghosts, keep the ledger, sort the reds.
Inky: T1 harness. Writes the new matrix tests first.
Blinky: T2 login API (backend).
Clyde: T3 confirmation-mail link (backend).
Pinky: T4 storefront (the pages buyers see).
Purple: the reviewer. Never writes code, only checks it.
Green: the explorer. Tries to break the app by hand in a real browser.
Dots in a lane: one ghost's tests and commits. White to do, red failing, green passing.
Squares on macv2: matrix cells, one real flow each (a purchase, a login, MyPage).
パックマン = サトル。 指示を出す人です。GOを出し、質問に答え、プッシュの合図を出します。
オレンジのゴーストの家 = Claude。 計画を立て、決めごとを書き、ゴーストを送り出し、記録をつけ、赤(失敗)を仕分けます。
Inky: T1 テスト側。新しいマトリクスのテストを最初に書きます。
Blinky: T2 ログインAPI(バックエンド)。
Clyde: T3 確認メールのリンク(バックエンド)。
Pinky: T4 ストアフロント(購入者が見る画面)。
紫: レビュー担当。コードは書かず、チェックだけします。
緑: 探索担当。本物のブラウザで、手作業でアプリを壊しにいきます。
レーンのドット: 1体のゴーストのテストとコミットです。白はこれから、赤は失敗中、緑は成功。
macv2の四角: マトリクスのセルです。1つが実際の流れ1つ(購入、ログイン、マイページ)。

Laps, rounds, waves, runs boxes inside boxes

LapOne batch of work, from your GO to the handoff. Its own base tag, rulings, ledger and handoff. Lap 4 = the buyer login (V3-2459). Laps 1 to 3 were the LP purchase flow.
RoundOne trip from "build" to "exit pair" inside the lap. Round 1 starts with your GO. Round 2 starts when your Q&A answers (or a big finding) ask for changes. Lap 4 had 2.
WaveOne merge of every branch, deployed to kali. A real bug fixed by a ghost means a new wave. Lap 4 had 3.
RunOne pass of the matrix. A setup or test fix only needs another run, not a new wave. Two green runs in a row on one build = the exit pair, which ends the round.

The Q&A part

  • Questions only you can answer are collected in the handoff (§0), never pinged one by one mid-lap.
  • Each question comes with my pick, so "keep" or "yes" is a full answer.
  • You answer them in one message, like "1 keep 2 keep 3 yes ...".
  • Each answer becomes a ruling. If any of them means new work, that is the next round.

What still pings you right away

  • Passwords and logins (only you can type them).
  • Anything outside the safety rails, like pruning Docker on kali (as this morning).
  • Risks to money or live data.
  • Push day: it never starts without your word.

The loop at a glance

1-2Rule + plan rulings, base tag, tasks 3Build agents in parallel 4Review reviewer per task 5Wave merge, deploy to kali 6Matrix + checks tests, gates, explore 7Triage reds bug, harness, or setup 8Exit pair 2 green runs in a row 9-11Handoff, test-server night, push your questions, real AWS test, PRs when you say so real bug: fix round + new wave all green setup or harness fix: just rerun

Red dashed: a product bug goes back to its implementer, then a new wave. Grey: a test-setup or harness problem only needs the matrix run again. Green: two clean runs in a row end the lap.

Who runs what four machines, each with one job

This Mac

controller

  • Me plus the agents (implementers, reviewers, auditor, explorer)
  • Git branches, the ledger, the scripts in tools/lap1/
  • Frontend tsc / vitest only. Never backend tests or containers.

kali (Pi 5)

the lap's test server

  • Serves backend, admin, storefront at one https address on the office LAN
  • Its own Postgres, Redis, a SCORE mock
  • Test slots for backend pytest
  • Also a CI runner for the devs' PRs (shared CPU)

macv2

browser + test box

  • Runs the Playwright browser (pwremote) against kali
  • Backend pytest when CI is not busy there
  • Exploratory browser over an ssh tunnel
  • Also a CI runner

AWS test server

night only

  • Off limits during the lap itself
  • Used on a test-server night: branch images in, matrix at 01/03/05 JST, master back by morning
  • Real Stripe, SCORE, Amazon sandbox, SES

Step by step click a step to open it

Before any code
1
Rule it and check it isn't already builtYour GO, the rulings file, the scope sweep
›

You say GO and pick the options. I write every decision into one binding file, lapN-constraints-and-rulings.md, as numbered rulings (R4-SESSION, R4-READONLY, ...). Every agent reads it before it starts.

  • Scope sweep: before building, search master, open PRs and other devs' branches so we don't rebuild something that exists.
  • Standing rules ride along: commit identity, never push, never rebase mid-lap, tests only on kali/macv2, never prune Docker without you.
Lap 4: option A (our own buyer session, no Firebase), cancel by e-mail only, kali only on night one. The sweep found four approved storefront PRs touching MyPage, so they were merged into the test build too.
2
Freeze a base and split into tasksBase tag, one branch per task, a plan
›

Tag today's master as the lap base (lap4/base). Every branch starts there and the lap never rebases, so a master change mid-lap can't break a run halfway.

  • One task = one branch = one future PR. Tasks that don't touch each other run at the same time.
  • There's always a harness task: the new matrix tests, written first, which must fail on the old code.
Lap 4: T1 harness (test/lap4-matrix), T2 login backend, T3 confirmation-mail link, T4 storefront. All four were dispatched at once at about 21:00.
Build and review
3
Build in parallelOne implementer agent per task, in its own worktree
›

Each implementer works alone on its branch and has to prove its work before it reports back:

  • Red then green: every new test fails on the old code and passes on the fix, with the output in the report.
  • Gates: ruff + ruff format, tsc, vitest/jest; backend pytest through lap-pytest.sh (macv2 if free, else kali).
  • Codex cap: one codex review against the base. Fix P1, and P2 on money, security, privacy or a broken flow. Anything else is a follow-up.
  • Commit locally with your name, no trailers. Nothing is pushed.
Why the cap: without it, review rounds never end. Small issues go to the follow-up list instead of blocking the lap.
4
Review each taskA fresh reviewer agent, then fix rounds
›

A separate reviewer reads the branch against the rulings and either approves it or lists problems by severity.

  • Critical / High / Medium go back to the same implementer as a fix round.
  • Low goes into the handoff's follow-up list.
  • A reviewer finding that changes the design becomes a new ruling (for example R4-READONLY), sent to every task it touches.
  • Questions only you can answer are batched into the handoff, not pinged one by one.
Lap 4: the T4 review found that the buyer token sits where shop tags can read it, so the buyer session became read-only on the server for every write route (ruling R4-READONLY).
Prove it on kali
5
Run a wavewave.sh: merge everything, deploy to kali
›

One script builds a throwaway integration branch (base + every lap branch merged) and puts it on kali:

  • Rebuild both integrations (backend, storefront) from the branch lists.
  • Snapshot kali's DB, then deploy backend (with alembic upgrade heads), admin and storefront.
  • Recreate the test slots, seed the lap data, convert the MIG forms, warm the pages, verify served commits.
  • A disk guard stops it if kali has under 8 GB free.
Why throwaway: the integration is never pushed. Each real branch stays clean, so a conflict stays one task wide.
6
Matrix and checks, side by sideNew cells first, then the whole matrix, plus three parallel checks
›

The matrix is our Playwright suite of real purchases and flows (Stripe card, SCORE, Amazon Pay, coupons, MyPage), run from macv2's browser against kali, on desktop Chrome and a Pixel 7 profile. run-matrix.sh reads kali's settings first and warns if something would make a cell lie.

  • New cells first: just this lap's tests, so a basic break shows in minutes.
  • Then the whole matrix: about 18 minutes, 84 cells now.

Running alongside:

  • Union gates: every test the lap touched, run on the merged tree and compared with the base. Only new reds count.
  • Cross-branch audit (after wave 1): one agent reads all branches together for things no single reviewer could see.
  • Exploratory testing: an agent drives a real browser on macv2 with charters ("try to read another buyer's orders").
Lap 4: exploring confirmed that all 32 storefront write routes refuse a buyer session, and that forged and tampered tokens are rejected.
7
Triage every redIs it the product, the test, or the setup?
›
Kind of redWhat happensLap 4 example
Product bugFix round to the implementer, then a new wave.Codex caught a race in the duplicate e-mail check, fixed with a lock.
HarnessFix the test helper, rerun. No redeploy.A buy hit the 10-a-minute submit limit, so the helper now waits it out.
Setup / dataFix kali's env or data, rerun.The new 10-codes-a-day cap would block BL-10, so kali gets 1000.
LoadFind the cause, rerun on a quiet box.BL-1 mobile missed while a CI job ran on kali, then passed.
Pre-existingSame red on the base too: noted, not ours.13 order-pack unit tests already fail on master.

Every slip becomes a rule so it can't happen twice: R4-RESEED (re-seed is always followed by the MIG convert), R4-DETACH (long runs are detached with a "done" file so a timeout can't orphan a test).

8
Exit pairTwo whole-matrix runs, back to back, both green
›

The lap ends only when the whole matrix passes twice in a row on the same served build, with a fresh re-seed before each run. A red is allowed only if it has its own ticket.

Why two: one green run can be luck. Two in a row on fresh data means it's repeatable.
Lap 4: round 1 exited at 03:06 with 81 passed twice. Round 2 (wave 3) exited at 08:29 with 83 passed twice. The one skip is the real Amazon cell, which only runs in your Keychain job on the test server.
After the lap
9
Handoffdocs/gauntlet/lapN-handoff.md
›
  • §0 your questions, each with my pick, so you answer in one go (lap 4: 7 questions, answered "1 keep, 2 keep, 3 yes ...").
  • What was delivered, results, branch heads, push order, the test-server night plan, chat/Jira drafts, follow-ups.

If your answers ask for changes, that's round 2: back to step 3 with new rulings, same loop, same exit bar.

10
Test-server nightThe real AWS environment, overnight, while nobody's testing
›

kali proves the code; the test server proves it with the real services (Stripe, SCORE, Amazon sandbox, SES, the WAF).

  • Evening (after 20:00 JST): TOALL message, build branch images with unique tags (never :latest), migrate, switch the services, card payments to 仮売上, seed, arm the night.
  • Night: the launchd job runs the matrix at 01, 03, 05 JST using your Keychain passwords (I never see them). I triage between runs.
  • Morning (before 07:30 JST): template edit removed, 即時売上 back, DB downgraded, master services back, branch revisions deleted, TOALL done. A backup watcher does the rollback by itself at 06:45 JST if I haven't.
11
Push dayOnly when you say so
›
  • Fetch master, rebase each lap branch onto it (the no-rebase rule ends here).
  • One PR per ticket (lap 4: backend, storefront, matrix), CI, merge, the lead dev deploys.
  • Jira 完了, the QA heads-up, notes to devs whose work overlaps (lap 4: a teammate's V3-2451).

Safety rails that are always on

RailWhy
Nothing pushed during the lapMaster and the devs never see half-done work.
No rebase mid-lapA run that starts on one build finishes on it.
Tests only on kali / macv2This Mac stays free for the controller.
Disk guard (8 GB)A full Pi breaks the DB and CI.
RailWhy
Ledger line for every stepAnyone can see what ran, when, on which build.
Detached long runs + done filesA tool timeout can't leave a test half-running.
Passwords stay in your KeychainThe night job reads them; I never do.
Questions batched, not pingedYou answer once, in the handoff.

Lap 4 as it actually ran

  1. 09-30 ~21:00 PHTGO. Four tasks dispatched in parallel.
  2. 09-30 nightReviews, fix rounds, wave 1: 81 passed. Audit + explore wave 1 found no Critical/High/Medium issues.
  3. 10-01 03:06Wave 2 exit pair green (81/81). Handoff with 7 questions.
  4. 10-01 morningYour answers became round 2: guest-only mail block, duplicate e-mail block, 10 codes a day.
  5. 10-01 07:40-07:56Wave 3 deployed, new cells 13/14 (one load flake), review H1 fixed on kali.
  6. 10-01 08:29Round 2 EXIT: 83 passed, twice. Union gates clean, harness fixes merged.
  7. 10-01 19:00 PHT (20:00 JST)Test-server night.
  8. When you say soPush day.
Sources: docs/superpowers/specs/2026-09-20-v3-phase1-lap1-design.md, the lap 4 plan, rulings and ledger, tools/lap1/.

ラップ・ラウンド・ウェーブ・ラン 箱の中に箱

ラップひとまとまりの作業です。サトルのGOから引き継ぎメモまでが1ラップで、それぞれにベースタグ、決めごと、記録、引き継ぎメモがあります。ラップ4は購入者ログイン(V3-2459)、ラップ1〜3はLPの購入の流れでした。
ラウンドラップの中で「ビルド」から「出口ペア」までを1周することです。ラウンド1はサトルのGOで始まります。質問への答え(または大きな発見)で変更が必要になったら、ラウンド2が始まります。ラップ4は2ラウンドでした。
ウェーブ全部のブランチを1回マージして、kaliに載せることです。ゴーストが本当の不具合を直したら、新しいウェーブになります。ラップ4は3ウェーブでした。
ランマトリクスを1回流すことです。準備やテストの修正なら、新しいウェーブはいらず、もう1回流すだけです。同じビルドで2回続けて全件成功したら出口ペアで、そこでラウンドが終わります。

質問のところ

  • サトルにしか答えられない質問は引き継ぎメモ(§0)にまとめます。ラップの途中で1つずつ聞くことはしません。
  • どの質問にもClaudeのおすすめを付けるので、「keep」や「yes」だけで答えになります。
  • 答えは「1 keep 2 keep 3 yes ...」のように、1通でまとめて返してもらいます。
  • 答えはそれぞれ決めごとになります。新しい作業が出てきたら、それが次のラウンドです。

それでもすぐに聞くこと

  • パスワードやログイン(入力できるのはサトルだけです)。
  • 安全ルールから外れること。たとえばkaliでのDockerの掃除(今朝のように)。
  • お金や本番データに関わるリスク。
  • プッシュの日。サトルのひと言がない限り始めません。

ループの全体像

1-2決めごと+計画 決めごと・タスク分け 3ビルド エージェントで並行 4レビュー タスクごとに担当 5ウェーブ マージしてkaliへ 6マトリクス確認 テスト・ゲート・探索 7赤の仕分け 不具合/テスト/準備 8出口ペア 2回連続で全件成功 9-11引き継ぎ・夜間テスト・プッシュ サトルへの質問、AWSでの実地テスト、指示でPR 本当の不具合: 修正ラウンド+新ウェーブ 全件成功 準備・テスト側の修正: 流し直すだけ

赤い点線: 製品の不具合は担当のエージェントに戻して、新しいウェーブにします。グレー: テストの準備やテスト側の問題なら、 マトリクスをもう一度流すだけです。緑: 2回続けてきれいに通ったら、ラップは終わりです。

どのマシンが何をするか 4台、それぞれ役目は1つ

このMac

司令塔

  • Claudeとエージェントたち(実装、レビュー担当、横断チェック、探索担当)
  • Gitのブランチ、記録、tools/lap1/ のスクリプト
  • フロントエンドのtsc / vitestだけ。バックエンドのテストやコンテナは動かしません。

kali(Pi 5)

ラップ用のテストサーバー

  • バックエンド、管理画面、ストアフロントを社内LANのhttpsアドレスで動かします
  • 自前のPostgres、Redis、SCOREのモック
  • バックエンドのpytest用の枠
  • 開発メンバーのPRのCIランナーも兼ねています(CPUは共有)

macv2

ブラウザ+テスト用

  • Playwrightのブラウザ(pwremote)でkaliを相手にテスト
  • CIが空いていればバックエンドのpytestも
  • sshトンネル越しの探索用ブラウザ
  • CIランナーも兼ねています

AWSのテスト環境

夜だけ

  • ラップの最中は触りません
  • テスト環境の夜間テストで使います: ブランチのイメージを入れて、01/03/05時(JST)にマトリクス、朝までにmasterへ戻します
  • 本物のStripe、SCORE、Amazonのサンドボックス、SES

ステップごとに クリックで開きます

コードを書く前に
1
決めて、もうできていないか確かめるサトルのGO、決めごとファイル、範囲チェック
›

サトルがGOを出して、選択肢を選びます。Claudeはその決定をすべて1つのファイル lapN-constraints-and-rulings.md に、 番号付きの決めごと(R4-SESSION、R4-READONLY など)として書きます。どのエージェントも作業の前にこれを読みます。

  • 範囲チェック: 作り始める前に、master、開いているPR、ほかのメンバーのブランチを探して、すでにあるものを作り直さないようにします。
  • いつものルールもそのまま付いてきます: コミットの名義、プッシュしない、ラップの途中でリベースしない、テストはkali/macv2だけ、DockerはサトルのOKなしに掃除しない。
ラップ4: 選択肢A(自前の購入者セッション、Firebaseなし)、キャンセルはメールのみ、初日の夜はkaliだけ。 範囲チェックでMyPageに関わる承認済みのストアフロントのPRが4本見つかったので、それもテスト用のビルドにマージしました。
2
ベースを固めて、タスクに分けるベースタグ、タスクごとに1ブランチ、計画
›

今日のmasterにラップのベースとしてタグを付けます(lap4/base)。どのブランチもそこから始めて、ラップ中はリベースしません。 なので、途中でmasterが動いてもランが壊れることはありません。

  • 1タスク=1ブランチ=将来のPR1本。お互いに触らないタスクは同時に進めます。
  • いつもテスト側のタスクが1つあります: 新しいマトリクスのテストを先に書き、古いコードでは失敗することを確かめます。
ラップ4: T1 テスト側(test/lap4-matrix)、T2 ログインのバックエンド、T3 注文確認メールのリンク、 T4 ストアフロント。4つとも21時ごろに一斉に送り出しました。
ビルドとレビュー
3
並行してビルドタスクごとに実装エージェント1体、それぞれ専用のworktreeで
›

実装担当はそれぞれ自分のブランチで1人で作業し、報告の前に動くことを証明します:

  • 赤から緑へ: 新しいテストは古いコードで失敗し、修正で通ること。その出力を報告に付けます。
  • ゲート: ruff+ruff format、tsc、vitest/jest。バックエンドのpytestは lap-pytest.sh で(macv2が空いていればそちら、なければkali)。
  • Codexの上限: ベースに対して codex review を1回。P1は直し、P2はお金・セキュリティ・プライバシー・流れが壊れるものだけ直します。それ以外は後回しの項目へ。
  • コミットはサトルの名前でローカルに、トレーラーなし。何もプッシュしません。
上限がある理由: ないとレビューのやり取りが終わりません。小さな指摘はラップを止めずに、後回しの項目へ回します。
4
タスクごとにレビューまっさらなレビュー担当、そのあと修正ラウンド
›

別のレビュー担当が、決めごとと照らし合わせてブランチを読み、承認するか、問題を重さの順に並べて返します。

  • Critical / High / Medium は同じ実装担当に修正ラウンドとして戻します。
  • Low は引き継ぎメモの後回しの項目へ入れます。
  • 設計が変わるような指摘は新しい決めごとになり(たとえば R4-READONLY)、関係するタスク全部に伝えます。
  • サトルにしか答えられない質問は、1つずつ聞かずに引き継ぎメモにまとめます。
ラップ4: T4のレビューで、購入者のトークンがショップのタグから読める場所にあると分かりました。 そこで購入者セッションは、サーバー側で書き込みをすべて受け付けない、読み取り専用にしました(決めごと R4-READONLY)。
kaliで証明する
5
ウェーブを回すwave.sh: 全部をマージしてkaliへデプロイ
›

スクリプト1本で、使い捨ての統合ブランチ(ベース+ラップの全ブランチをマージ)を作り、kaliに載せます:

  • ブランチの一覧から、両方の統合ブランチ(バックエンド、ストアフロント)を作り直します。
  • kaliのDBのスナップショットを取ってから、バックエンド(alembic upgrade heads 付き)、管理画面、ストアフロントをデプロイします。
  • テスト用の枠を作り直し、ラップのテストデータ投入、移行フォームの変換、ページの暖機、配信中のコミットの確認まで行います。
  • kaliの空きが8GBを切っていたら、ディスクの見張りが止めます。
使い捨てにする理由: 統合ブランチは決してプッシュしません。本物のブランチはそれぞれきれいなままなので、衝突が起きてもタスク1つ分で済みます。
6
マトリクスと確認を並べて新しいセルを先に、次にマトリクス全体、ほかに3つの確認を同時に
›

購入マトリクスは、本物の購入や流れ(Stripeのカード、SCORE、Amazon Pay、クーポン、MyPage)を試すPlaywrightのテスト一式です。 macv2のブラウザからkaliに向けて、デスクトップのChromeとPixel 7の両方で流します。run-matrix.sh は最初にkaliの 設定を読み、セルが正しく判定できない設定があれば警告します。

  • まず新しいセル: このラップのテストだけを流すので、基本的な壊れは数分で分かります。
  • 次にマトリクス全体: 約18分、今は84セルです。

同時に回すもの:

  • ユニオンゲート: ラップで触ったテストを全部、マージ後のコードで流してベースと比べます。数えるのは新しい赤だけです。
  • ブランチ横断チェック(ウェーブ1のあと): エージェント1体が全ブランチをまとめて読み、1人のレビュー担当では見えないことを探します。
  • 探索テスト: エージェントがmacv2の本物のブラウザを操作し、テーマ(「ほかの購入者の注文を読めないか試す」など)に沿って試します。
ラップ4: 探索テストで、ストアフロントの書き込みの32ルートすべてが購入者セッションを断ること、 偽造や改ざんしたトークンがはじかれることを確かめました。
7
赤は全部仕分ける製品か、テストか、準備か
›
赤の種類どうするかラップ4での例
製品の不具合実装担当に修正ラウンド、そのあと新しいウェーブ。メールアドレスの重複チェックの競合をCodexが見つけ、ロックで直しました。
テスト側の問題テストの補助を直して、流し直し。デプロイし直しはなし。購入が1分10件の送信上限に当たったので、補助が待つようにしました。
準備・データkaliの設定やデータを直して、流し直し。新しい「1日10コード」の上限がBL-10を止めてしまうので、kaliは1000にしました。
負荷原因を見つけて、静かなマシンで流し直し。kaliでCIが動いている間にBL-1のモバイルが外れ、そのあと通りました。
もとからある赤ベースでも同じ赤: 記録だけして、ラップの問題ではないとします。注文パックの単体テスト13件は、masterでもともと失敗しています。

つまずきはどれも、二度と起きないようにルールにします: R4-RESEED(テストデータを入れ直したら、必ず移行フォームの変換もする)、 R4-DETACH(長いランは「完了」ファイル付きで切り離して動かし、タイムアウトでテストが置き去りにならないようにする)。

8
出口ペアマトリクス全体を2回続けて流し、両方とも全件成功
›

ラップが終わるのは、マトリクス全体が同じ配信中のビルドで2回続けて通ったときだけです。毎回、流す前にテストデータを入れ直します。 赤が残ってよいのは、その赤に専用のチケットがある場合だけです。

2回の理由: 1回の成功はたまたまかもしれません。新しいデータで2回続けて通れば、くり返し通ると言えます。
ラップ4: ラウンド1は3時06分に81件成功を2回で抜けました。ラウンド2(ウェーブ3)は8時29分に83件成功を2回で抜けました。 1件のスキップは本物のAmazonのセルで、これはテスト環境でサトルのキーチェーンを使うジョブの中でだけ流れます。
ラップのあと
9
引き継ぎメモdocs/gauntlet/lapN-handoff.md
›
  • §0 サトルへの質問: どれにもClaudeのおすすめを付けるので、1回でまとめて答えられます(ラップ4: 質問7つ、答えは「1 keep, 2 keep, 3 yes ...」)。
  • できたもの、結果、ブランチの先頭、プッシュの順番、テスト環境の夜間テストの計画、チャットやJiraの下書き、後回しの項目。

答えで変更が必要になったら、それがラウンド2です。新しい決めごとを持ってステップ3に戻り、同じループ、同じ出口の基準で回します。

10
テスト環境の夜間テスト本物のAWS環境で、だれもテストしていない夜のうちに
›

kaliはコードを証明し、テスト環境は本物のサービス(Stripe、SCORE、Amazonのサンドボックス、SES、WAF)でそれを証明します。

  • 夕方(20時JST以降): TOALLで連絡、ブランチのイメージを固有のタグでビルド(:latest は使わない)、マイグレーション、サービスの切り替え、カードの売上方式を仮売上に、テストデータ投入、夜の準備完了。
  • 夜: launchdのジョブが01、03、05時(JST)に、サトルのキーチェーンのパスワードでマトリクスを流します(Claudeはパスワードを見ません)。ランの合間にClaudeが仕分けます。
  • 朝(7時半JSTまで): テンプレートの手直しを外し、即時売上に戻し、DBを戻し、masterのサービスに戻し、ブランチのリビジョンを消して、TOALLで完了の連絡。 Claudeが戻していなければ、6時45分(JST)に見張り役が自動で戻します。
11
プッシュの日サトルが言ったときだけ
›
  • masterを取ってきて、ラップの各ブランチをその上にリベースします(リベースしないルールはここで終わりです)。
  • チケットごとにPR1本(ラップ4: バックエンド、ストアフロント、マトリクス)、CI、マージ、リード開発者がデプロイ。
  • Jiraを完了に、QAへの連絡、作業が重なるメンバーへのメモ(ラップ4: メンバーのV3-2451)。

いつも守る安全ルール

ルール理由
ラップ中は何もプッシュしないmasterにも開発メンバーにも、作りかけを見せないため。
ラップ中はリベースしないあるビルドで始めたランは、そのビルドのまま終えるため。
テストはkali / macv2だけこのMacは司令塔の仕事に空けておくため。
ディスクの見張り(8GB)Piがいっぱいになると、DBもCIも壊れるため。
ルール理由
どのステップも記録に1行残す何が、いつ、どのビルドで動いたか、だれでも分かるように。
長いランは切り離し+完了ファイルツールのタイムアウトで、テストが途中のまま残らないように。
パスワードはサトルのキーチェーンに読むのは夜のジョブだけで、Claudeは読みません。
質問はまとめて、1つずつ聞かないサトルは引き継ぎメモで1回答えるだけで済みます。

ラップ4の実際の流れ

  1. 09-30 21時ごろ PHTGO。4つのタスクを並行で送り出しました。
  2. 09-30 夜レビュー、修正ラウンド、ウェーブ1: 81件成功。ウェーブ1の横断チェックと探索テストで、Critical/High/Mediumの問題はなし。
  3. 10-01 03:06ウェーブ2の出口ペアが成功(81/81)。質問7つの引き継ぎメモ。
  4. 10-01 朝サトルの答えでラウンド2へ: ゲストの注文だけのメールブロック、メールアドレスの重複の禁止、1日10コードまで。
  5. 10-01 07:40-07:56ウェーブ3をデプロイ、新しいセルは13/14(負荷による1件)、レビューのH1をkaliで修正。
  6. 10-01 08:29ラウンド2を出口: 83件成功を2回。ユニオンゲートも問題なし、テスト側の修正もマージ済み。
  7. 10-01 19:00 PHT(20:00 JST)テスト環境の夜間テスト。
  8. サトルが言ったときプッシュの日。