Skip to content

NDF Factory: Cognito の認証(Google・GitHub)とプランごとの利用量 #2170

Closed as not planned

Description

@takemi-ohama

移した先: https://github.com/volareinc/nd-factory/issues/26(Factory の開発は移した先で続ける。手順は #2646)

親: #2168(Neural Development Factory)。前提: #2169(v10.25.0 で完了)。

形と契約は #2169 の確定仕様 docs/specifications/ndf-factory-service-boundary.md の「サービス全体の契約(子課題が実装する)」にある。この課題は集約「アカウント」(根: アカウント、エンティティ: 席、値オブジェクト: プラン・使える量・実行の形態)の持ち主である。

依頼(原文)

  • Cognitoによる認証(Google, Githubの認証に対応)
    • Claude.aiと類似の認証・課金モデル(Free, 個人PRo, 個人Max, Team(standard/premium sear) etc)

(書き手: 利用者、日付: 2026-10-30。#2168 の構想を伝えた会話の原文のうち、この課題が受け持つ 2 行。全文は #2169 の「依頼(原文)」にある)

親+機能別の子課題(#2168 を親に子課題 6 本。最初のスプリントは置き場・ライセンスの切り離し・全体設計)

(書き手: 利用者、日付: 2026-10-30。分け方の問いへの回答)

factory/ の TypeScript のパッケージの管理の道具(npm・pnpm)を決める課題を #2171 から #2170 へ移す。最初に TypeScript のコード(factory/web/・factory/api/)を置くのは #2170 であり、道具はその時点で決まっている必要がある。

(書き手: 起票者、日付: 2026-10-30。PR #2185 #2185 の本文が「2026-10-30 の利用者の決定」として記録した文。利用者の原文は確かめられないため、利用者の文としては扱わず、決定の中身(道具を決める課題を #2170 が持つ)だけを利用者の決定として読む)

ランナーが Claude を呼ぶ方法を、アカウントごとに ① local 手元のランナー・② byok キーの持ち込み・③ managed サービスの Bedrock の 3 つから選ぶ。Free は ① と ② だけを選べる。同時のスプリントの数の上限は全形態に掛かり、月の token の上限は ③ だけに掛かる。

(書き手: 起票者、日付: 2026-10-30。PR #2190 #2190 の確定仕様 docs/specifications/ndf-factory-service-boundary.md の「実行の形態」が「2026-10-30 の利用者の決定」として記録した内容の要約。claude.ai のログインをサービスが預かる形は Anthropic の規約が認めないため。この課題が受け持つのは形態の値と選べる条件だけで、ランナーとキーの保存は #2186・#2189、課金は #2174 が持つ)

起票者の推定

題・本文のうち、利用者の指示の原文に無く起票者が推して足した条件。承認ゲート 1 で利用者が確かめるまで、利用者の決定として扱わない。

# 条件 推した出所 この要求での扱い
S1 使える量は「同時に流せるスプリントの数」と「月の token の上限」の 2 つ #2169 の確定仕様の「受け持つ課題」の表(起票者が、並列の実行と token 課金から推した) 受け入れ条件 6〜8。ほかの量(リポジトリの数など)は含まない
S2 上限に達した操作は断られ、理由が出る この課題の旧本文の受け入れ条件 2 受け入れ条件 7。断る操作そのもの(スプリントの開始)は #2186 が持ち、この課題は判定を返す
S3 Team では席(standard / premium)ごとに使える量が分かれる 原文「Team(standard/premium sear)」の「sear」を「seat(席)」と読んだ 受け入れ条件 9〜11・前提 5
S4 認可の token から account_id が取れ、#2171・#2186・#2174 が使う #2169 の確定仕様の「受け持つ課題」の表 受け入れ条件 4・5
S5 画面は factory/web/(React の SPA)、API は factory/api/(Node の Lambda)に TypeScript で置く #2169 の確定仕様の「構成と言語」(決定 2。ゲート 1 で利用者が承認済み) 前提とする取り決め
S6 Cognito の利用者プールなどインフラの定義と決済は範囲外 #2168 の方針(インフラは private リポジトリ)と子課題の分け方(決済は #2174) 含まない
S7 個人 Pro・個人 Max の「個人」はアカウントが 1 人のものを指し、Team はアカウントが複数の席を持つ 原文「個人PRo, 個人Max, Team(…)」 前提 4

目的

前提

  • 前提 1: Cognito の利用者プール・アプリのクライアント・外部の IdP(Google・GitHub)の登録・ドメインはインフラであり、private リポジトリが作る。この課題はその定義を書かず、受け取る変数の名前を factory/.env.example に足すだけにする(確定仕様の「データ・設定」。値は書かない、I6)
  • 前提 2: GitHub のログインを Cognito へつなぐ形(Cognito の OIDC の IdP として直に登録できるか、OIDC の仲立ちのプログラムが要るか)は設計で確かめる。仲立ちが要り、それがインフラでなくサービスのコードなら factory/api/ に置く。仲立ちの秘密(GitHub の OAuth の client secret)は Secrets Manager の ARN(*_SECRET_ARN)だけで受ける
  • 前提 3: 1 人の人が Google と GitHub の両方でログインしたとき、2 つは別の利用者として扱い、自動で 1 つにまとめない(メールアドレスの一致でまとめると、片方の IdP でメールを偽れたときに他人のアカウントへ入れるため)。まとめる機能はこの課題に含めない
  • 前提 4: アカウントは「個人」か「チーム」のどちらか。初めてログインした利用者には、その人だけの個人のアカウントがプラン Free で 1 つ作られる。チームのアカウントは席を持ち、席はそれぞれ 1 人の利用者と種類(standard / premium)を持つ。個人のアカウントは席を持たない(使える量はプランから決まる)
  • 前提 5: チームへ人を入れるのは、チームの持ち主(チームを作った利用者)が、既に 1 度ログインした利用者を指して席を足す操作だけにする。招待のメールの送信はこの課題に含めない
  • 前提 6: プランごと・席の種類ごとの使える量の値(同時のスプリントの数・月の token の上限)は、コードの分岐でなく 1 つの表(設定かデータ)で持つ。初めの値は設計で案を出し、ゲート 1 で利用者が決める。値を変えるのは表の 1 か所だけで済む
  • 前提 7: 使える量の判定に要る「今の値」(動いているスプリントの実行の数・その月に使った token の数)は、この課題が持たない(スプリントの実行は NDF Factory: スプリントの実行の制御とランナー #2186、使用量の台帳は NDF Factory: サブスクリプションと Bedrock の token 課金 #2174 の集約)。判定は呼び出す側が今の値を渡し、この課題は上限と照らした結果を返す。これで確定仕様の「使う契約は無い」を保つ
  • 前提 8: プランを Free 以外へ変える経路(決済の後に誰が何を呼ぶか)は NDF Factory: サブスクリプションと Bedrock の token 課金 #2174 が決める。この課題は、アカウントのプランを書き換える操作を API の内側の関数として持つが、利用者が画面から自分のプランを変える経路は持たない
  • 前提 9: 月の境目は UTC の暦月で数える(使用量の事象の at が UTC のため、確定仕様の「進捗の正本」)
  • 前提 10: 実行の形態(local / byok / managed)はアカウントの値で、この課題は値と選べる条件だけを持つ。形態ごとのランナー・持ち込んだキーの保存・実行は NDF Factory: スプリントの実行の制御とランナー #2186・NDF Factory: 手元のマシン(利用者の環境で、利用者の claude ログインで実行する) #2189、managed の token の課金は NDF Factory: サブスクリプションと Bedrock の token 課金 #2174 が持つ(確定仕様の「実行の形態」)

対象範囲

含む:

  • 画面(factory/web/): Google か GitHub でログイン・ログアウトする画面と、自分のアカウント(プラン・使える量・チームなら席)を見る画面
  • API(factory/api/): Cognito の token の検証と account_id の解決、アカウント・席・プラン・実行の形態の読み書き、使える量の問い合わせと判定
  • チームのアカウントの作成と、席の追加・種類の変更・削除(チームの持ち主だけ)
  • factory/ の TypeScript のパッケージの管理の道具の決定と、factory/web/・factory/api/ の雛形(依存の宣言・ロックファイル・型検査・テストのコマンド)
  • factory/web/・factory/api/ のテストと型検査を Pull Request で走らせる CI のジョブ
  • factory/.env.example への変数の名前の追加と、用語集への語の追加

含まない:

提供する契約

契約 中身 使う課題
認可の token と account_id 検証を通った token と要求から、操作しているアカウントの account_id を得る関数(受け入れ条件 4・5) #2171・#2186・#2174
使える量の問い合わせと判定 上限の問い合わせと、今の値を渡した判定(受け入れ条件 6・7) #2186・#2174
アカウントの実行の形態 アカウントの実行の形態(local / byok / managed)の読み出し(受け入れ条件 18) #2186・#2189・#2174

ドメインイベント

# イベント 引き金 失敗したとき 順序の前提
E1 利用者が Google か GitHub でログインした 画面のログインの操作 IdP が拒んだ・利用者が取り消した → 画面がログインの画面へ戻り、理由を出す(受け入れ条件 2) —
E2 初めてログインした利用者に、個人のアカウント(Free)を作った E1 の後、その利用者にアカウントが無い 作れなかった → API は 5xx を返し、次のログインで作り直す。同じ利用者に 2 つ作らない(受け入れ条件 12) E1
E3 API が token を検証し、account_id を解決した 画面か他の子課題の API への要求 token が無い・壊れている・期限切れ・別の利用者プールのもの → 401(受け入れ条件 4) E2
E4 利用者がチームのアカウントを作った 画面の操作 — E2
E5 チームの持ち主が席を足した・種類を変えた・外した 画面の操作 持ち主でない → 403。相手が未ログイン・既に席を持つ → 断り、理由を出す(受け入れ条件 10・11) E4
E6 アカウントのプランを変えた #2174 が呼ぶ内側の関数(前提 8) 知らないプラン → 変えずに失敗を返す E2 か E4
E7 使える量を問い合わせた・判定した #2186(スプリントの開始)か画面 上限に達した → 断る結果と理由を返す(受け入れ条件 7・8) E3
E8 ログアウトした 画面の操作 — E1
E9 アカウントの持ち主が実行の形態を変えた 画面か API の操作 持ち主でない → 403。Free で managed → 断り、理由を出す(受け入れ条件 19) E2 か E4

用語

用語 意味
アカウント Neural Development Factory で、プランと使える量を持ち、リポジトリの登録とスプリントの実行を持つ単位。個人とチームの 2 種類。account_id で指す
席 チームのアカウントの中で、1 人の利用者に割り当てる枠。種類は standard と premium
プラン アカウントの契約の種類。Free・個人 Pro・個人 Max・Team の 4 つ。Team の使える量は席の種類で決まる
使える量 プランか席の種類ごとに決まる上限。同時に動かせるスプリントの実行の数と、月の token の上限の 2 つ
実行の形態 アカウントのランナーが Claude をどう呼ぶか。local(手元のランナー)・byok(キーの持ち込み)・managed(サービスの Bedrock)の 3 つで、アカウントごとに 1 つ持つ。Free は managed を選べず、月の token の上限は managed だけに掛かる

受け入れ条件

ログイン:

  • 1. ログインの画面に Google と GitHub の 2 つのログインの操作があり、どちらでも Cognito を経てログインでき、ログイン後の画面に自分のアカウントのプランが出る
  • 2. IdP の画面で利用者が取り消したか IdP が拒んだとき、ログインの画面へ戻り、ログインできなかったことが出る。token は保存されない
  • 3. ログアウトすると、画面が保存した token が消え、API を呼ぶ画面を開くとログインの画面へ移る

認可の token と account_id:

プランと使える量:

  • 6. 使える量の問い合わせに account_id(チームなら席の利用者も)を渡すと、同時に動かせるスプリントの実行の数と月の token の上限が返る。値はプラン(個人のアカウント)か席の種類(チームのアカウント)で決まり、Free・個人 Pro・個人 Max・Team standard・Team premium の 5 つで、表(前提 6)の値と一致する
  • 7. 使える量の判定に今の値(動いているスプリントの実行の数・その月の token の数)を渡すと、上限より小さければ許す結果、上限に達していれば断る結果と理由(どの量が・上限がいくつで・今がいくつか)が返る。上限ちょうど・上限より 1 少ない・上限より多いの 3 つの境目をテストで確かめる。月の token を照らすのは実行の形態が managed のときだけである(受け入れ条件 20)
  • 8. 画面の自分のアカウントの画面に、使える量の 2 つの上限が出る

チームと席:

  • 9. 利用者がチームのアカウントを作ると、作った利用者がチームの持ち主になり、持ち主自身の席が 1 つ(種類は作るときに選ぶ)できる
  • 10. チームの持ち主は、既に 1 度ログインした利用者を指して席を足し、席の種類を変え、席を外せる。持ち主でない利用者が同じ操作をすると 403 で、席は変わらない
  • 11. 未ログインの利用者を指して席を足す・同じチームに既に席を持つ利用者を足す・持ち主自身の席を外すのどれも断られ、理由が出る。席は変わらない

起きてはいけないこと:

  • 12. 同じ利用者が何度ログインしても、個人のアカウントは 1 つだけである(並べて 2 回ログインしても 2 つにならない)
  • 13. 利用者 A の token で、A が席を持たないアカウント(他人の個人のアカウント・入っていないチーム)のプラン・使える量・席を読もうとしても書こうとしても 403 で、相手のアカウントの有無と中身が応答に出ない
  • 14. このリポジトリに、Cognito の利用者プールなどインフラの定義・秘密・.env の実ファイルが入らない。境界の検査(python3 scripts/check-service-boundary.py)が 0 で終わる

パッケージの管理と検査:

  • 15. factory/ の TypeScript のパッケージの管理の道具が 1 つに決まり、factory/web/・factory/api/ に依存の宣言とロックファイルがある。決めた道具と理由が設計文書にあり、後続の子課題が従う規則として factory/README.md に書いてある
  • 16. factory/web/・factory/api/ の型検査とテストが、それぞれ 1 つのコマンドで手元と CI の両方で走る。CI のジョブは factory/ を変える Pull Request で走り、落ちれば Pull Request が赤になる
  • 17. 既存のテスト(uv run --frozen --project . --all-extras pytest . -q -n 4)・claude plugin validate .・既存の CI の必須チェックが、この変更の前と同じに通る。プラグインの配布物と CLI だけで使う人の振る舞いは変わらない

実行の形態:

非機能の条件

大項目 条件
セキュリティ token は API で毎回検証し、画面の判定だけで認可しない(受け入れ条件 4・13)。秘密は Secrets Manager の ARN だけで受け、値をコード・ログ・応答に出さない。token と利用者のメールアドレスをログに出さない。この変更は共通原則の C2(認証・認可を変える)に当たる
運用・保守性 使える量の値は表の 1 か所で変える(前提 6)。断った判定の理由は、利用者に出す文と同じ中身を API の応答に構造で返す
システム環境 画面は React の SPA(Vite)、API は Node の Lambda、TypeScript(確定仕様の「構成と言語」)。Node の版は設計で決め、factory/ の中で 1 つに揃える

影響

対象 影響
公開インタフェース プラグインの Skill・hook・スクリプトは変わらない。factory/api/ に新しい API ができる(初めての公開で、互換を保つ前の版は無い)
データ 新しい表(アカウント・席)。既存のデータの移行は無い
既存の振る舞い CI に factory/ のテストと型検査のジョブが 1 つ増える。factory/.env.example に変数の名前が増える

検証手段

項目 手段
テスト factory/web/・factory/api/ のテストのコマンド(道具と一緒に設計で決める)。Cognito の token は、テストの中で作った鍵で署名した token と、偽の公開鍵の一覧で確かめる。既存は uv run --frozen --project . --all-extras pytest . -q -n 4
静的解析・型検査 factory/ の型検査のコマンド(設計で決める)・python3 scripts/check-service-boundary.py・claude plugin validate .・python3 plugins/ndf/scripts/instructions-check.py --root .
手動確認 private リポジトリのインフラが利用者プールを作った後、実際の Google と GitHub のアカウントでログインし、プラン Free のアカウントができることを見る(インフラがそろうまで確かめられないため、リリース後テストへ回す)

前提とする取り決め

項目 参照先 / 決めたこと
プロジェクト構造 確定仕様の「構成と言語」と factory/README.md の「置くもの」。画面は factory/web/、API は factory/api/。plugins/ からは参照しない(境界の検査の I1)。インフラの定義は置かない(I3)
コーディング規約 AGENTS.md の「最小限のコード実装」。TypeScript の型検査を通す。形の正は確定仕様で、契約を変えるときは確定仕様を先に直す
テスト戦略 token の検証・account_id の解決・使える量の判定・席の操作の権限を単体テストで、画面のログインの流れはテストの中の偽の Cognito で確かめる。.md の文言を照合するテストは書かない

境界

区分 内容
常に行う 既存テスト・claude plugin validate .・境界の検査の実行。使うコマンドとライブラリの挙動を書く前に確かめる
確認してから行う パッケージの管理の道具・使える量の初めの値・GitHub のログインのつなぎ方・CI のジョブの追加(どれもゲート 1 の承認資料に載せ、承認ゲートで人が見る)
行わない private リポジトリへの書き込み、秘密の値の記入、決済とプランの有料化の経路、#2171・#2172〜#2174・#2186 の実装の先取り

承認の扱い: この変更は共通原則の C2(認証・認可を変える)に当たるため、ゲート 1・2 を MVV の判定で自動に通さず、人が承認ゲートで見る(.ndf/pace.json の fast / auto でも同じ)。承認の工程は足さない。

未決

項目 誰が決めるか 期限
パッケージの管理の道具(npm か pnpm)と Node の版 設計(ゲート 1 で利用者が承認) #2170 の設計 Pull Request
使える量の初めの値(5 つのプランと席の種類ごとの同時のスプリントの数・月の token の上限) 設計が案を出し、ゲート 1 で利用者が決める #2170 の設計 Pull Request
GitHub のログインを Cognito へつなぐ形と、仲立ちが要るときの置き場(前提 2) 設計(ゲート 1 で利用者が承認) #2170 の設計 Pull Request
1 人が個人とチームの両方のアカウントを持つとき、要求がどちらのアカウントとして操作するかを画面と API がどう示すか(受け入れ条件 5) 設計 #2170 の設計 Pull Request
account_id を token の主張に載せるか(Cognito の token を作る前の Lambda)、API が利用者の識別子から引くか 設計 #2170 の設計 Pull Request
プランを有料へ変える経路(前提 8) #2174 の設計 #2174

進行

モード: —

  • 要求と受け入れ条件 — 2026-10-30 08:50
  • 作業場所の用意 — 2026-10-30 11:37
  • 設計 — 2026-10-30 08:54
  • 素材の収集と出典の確定
  • ドキュメント再構成
  • ドキュメントレビュー
  • 計画 — 2026-10-30 11:37
  • 実装 — 2026-10-30 11:38
  • 構造改善 — 2026-10-30 12:29
  • 実装レビュー — 2026-10-30 13:14
  • 完了判定 — 2026-10-30 12:02
  • Pull Request — 2026-10-30 12:14
  • 確定仕様化 — 2026-10-30 14:29
  • 後片付け — 2026-10-30 14:29
  • 配布 — 2026-10-30 13:50
  • 体裁レビュー
  • リリース後テスト — 2026-10-30 14:28
  • 振り返り — 2026-10-30 15:00
  • 棚卸し — 2026-10-30 15:00

振り返り: #2170 (comment)

残っていること

実装・配布(ndf v10.26.0、PR https://github.com/devbasex/ai-plugins/pull/2195)は済んでいる。残りは、実環境の Cognito・Google・GitHub・DynamoDB が要る受け入れ条件 1・2・3・4・12 のリリース後テストだけである。インフラ(Cognito の利用者プール・IdP・秘密)は private リポジトリの認証の課題が作り、それができた時点で実際のアカウントでログインして確かめる。

Activity

  1. takemi-ohama commented on Oct 30, 2026

    @takemi-ohama
    ContributorAuthor

    振り返り(2026-10-30)

    対象: issue #2170 / 設計 PR #2188 / 実装 PR #2191 / 検査 PR #2192 / 即時修正 PR #2193 / 配布 PR #2195

    Neural Development Factory の最初の TypeScript のコードとして、factory/ を npm の workspaces にし、Cognito の access token の検証・アカウントと席・プランごとの使える量の判定・実行の形態(local / byok / managed)を factory/api/ に、ログインと自分のアカウントとチームの画面を factory/web/ に置いた。GitHub のログインは Cognito の OIDC の IdP として受ける仲立ちを factory/api/ に置いた。ndf v10.26.0 として配布した。

    何が起きたか

    観点 事実
    受け入れ条件 関門 1 の承認の直後に、利用者が実行の形態を 3 つにする方針へ変えた(claude.ai のログインをサービスが預かる形を Anthropic の規約が認めないため)。受け入れ条件 18〜20 を足し、設計 PR #2188 を直して承認を取り直した。① 手元のランナーは #2189 へ分けた
    手戻り 検査(PR #2192)で構造改善を 3 件採用し、レビューの指摘 5 件を直した。構造改善の提案 20 件は時間の上限で見送った
    工程の停止(1) 検査で factory/ の *.test.ts が pytest の suite へ振られて止まった。即時修正 PR #2193 で suite factory を宣言に足したが、宣言をメインディレクトリの未コミットの .ndf/project.json から先に読むため、まだ止まった(既知の #1709 の再発。#1709 に追記済み)。メインディレクトリへ同じ suite を足して回避し、その未コミットの差分が今度は開発版の verify の pull を止めた。プランの外の手当てが 2 度目の停止を生んだ
    工程の停止(2) 本番の release のステップで、タグ ndf--v10.26.0 を push した後に GitHub Release の作成が HTTP 500 で失敗した。打ち直すたびに「タグは既にある」で止まり、5 回の失敗で judge が stop した。Release を手で作り、record から再開した(#2198 として起票)
    見落とし リリース後テスト(PR #2195 のコメント)で、実環境の Cognito・Google・GitHub・DynamoDB が要る 5 行(受け入れ条件 1・2・3・4・12)が保留になった。インフラは private リポジトリが作るが、このリポジトリから辿れる課題が無く、実施の契機が無い(#2200 として起票)。手元で確かめられる条件はすべて合格(web 16 件・api 119 件のテスト、境界の検査、3 経路の導入の確認)
    範囲 範囲は広げなかった。招待のメール・2 つの IdP の統合・プランの有料化の経路は外したまま
    工程 素材の収集・ドキュメント再構成・ドキュメントレビュー・体裁レビューは通していない(standard のコードの変更で、対象の文書の種類に当たらない)

    context window の大きさ

    測ったのは #2170 の取り込み以降を通した conductor のセッション 3 本(--session を 3 回)。設計と実装の supervisor は supervise.py の queue で動いたため、この表に入っていない。

    層 フェーズ モデル 件数 固定費の中央値 実作業の中央値 実作業 < 固定費 最大充填の最大 目印
    conductor - claude-opus-5-5 3 44169 164977 0 216499 割る候補
    supervisor 取り込み claude-opus-5-5 1 47381 155403 0 202784 割る候補
    supervisor 仕上げ claude-opus-5-5 1 47977 98020 0 145997
    supervisor その他 claude-opus-5-5 1 39072 76161 0 115233
    層 件数 固定費の合計 実作業の合計 総消費
    conductor 3 130589 409401 539990
    supervisor 3 134430 329584 464014
    合計 6 265019 738985 1004004

    用語集の変化

    コンテキスト 足した語 廃止した語 意味を変えた語
    ndf-factory アカウント・席・プラン・使える量・利用者・チームの持ち主・使える量の判定・GitHub の仲立ち・実行の形態(9 語) — —

    承認ゲートの差し戻し

    gate-rejections.py count --issue 2170 --pr 2188 --pr 2195: 関門 1 が 0 件・関門 2 が 0 件。関門 1 は承認の後に利用者が方針を変えて取り直したが、差し戻しとしては記録されていない。差し戻しの記録の漏れに気づけない件は既存の #2183 が持つ。

    MVV を見直すか

    project-mvv.py signals(版 3): 覆し 0 件(閾値 3)・判定できない 0 件(閾値 5)・続けて 0 回(閾値 3)・流出不具合 0 件(閾値 3)。どの兆候も閾値に届いていない。この起動は人に問えない(3 層の supervisor)ため、改訂するかの問いは conductor から利用者へ渡す。材料はこの集計で、推奨は「改訂しない」(兆候が 0 のため)。

    次に変えること

    変えること 落とし先 状態
    本番の release のステップを、タグが既にあり Release だけが無い形から再開できるようにする release の手順(release-steps.py) #2198 として起票
    時間で見送った構造改善の提案を課題に残し、子課題が同じ重複を写す前に直す 次の変更で試すこと #2199 として起票
    インフラが要る受け入れ条件を、インフラの課題から辿れるようにし、保留の実施の契機を作る 次の変更で試すこと #2200 として起票
    宣言をメインディレクトリから読む不具合(#1709)を、メインディレクトリへ回避の差分を置く手当てで済ませない。手当てが開発版の verify を止めた 2 度目の害を #1709 の順位の材料にする cross-refactoring の手順(宣言の読み方) 既存の #1709(再発を追記済み)

    途中で起票した課題

    番号 何を見つけたか 見つけた場面
    #2189 実行の形態 ①(手元のランナー)を #2186 から分けた 関門 1 の後の方針の変更
    #2198 GitHub Release の作成だけが失敗すると release のステップを再開できない 本番の配布(この振り返りで拾った)
    #2199 factory/ の構造改善の提案 20 件が時間で見送られ、課題に残っていない 検査(この振り返りで拾った)
    #2200 インフラの課題を辿れず、実環境の受け入れの契機が無い リリース後テスト
    #1709(既存) 宣言をメインディレクトリから読み、PR が足した suite が検証に入らない 検査(再発を追記)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions