文書の種類と読者を決める
まずは「誰に向けて、何の文書を書くのか」を明確にします。これにより伝えるべき情報が絞り込まれ、各節で説明すべき内容と根拠が自然と整理されます。
01 / COMPARISON
WITHOUTスキルなし全文
ファイル取込 Design Doc
1. 概要
ファイル取込処理を非同期化する。APIは受信したファイル本体をオブジェクトストレージへ保存し、保存先をキューへ登録する。ワーカーはキューから保存先を受け取り、オブジェクトストレージ上のファイルを読み込んで解析し、解析結果をDBへ保存する。
2. 背景と目的
APIリクエスト中に解析処理を実行せず、APIの処理時間と負荷を抑える。
ファイル本体をキューに載せず、キューのメッセージサイズ制限に収める。
解析処理をワーカーに分離し、再実行や水平スケールを可能にする。
非同期化により、利用者が解析結果を確認できるまでの時間は同期処理より遅くなる。この遅延は本方式の前提とする。
3. 確定事項
APIはファイル本体をオブジェクトストレージへ保存する。
保存成功後、保存先をキューへ登録する。
オブジェクトストレージへの保存に失敗した場合、APIはHTTP 503を返し、キューには登録しない。
ワーカーは保存先からファイルを読み込み、解析結果をDBへ保存する。
ファイル本体をキューへ載せる方式は採用しない。想定ファイルサイズ10MBに対し、キューのメッセージサイズ上限が1MBのため。
キューへの登録失敗時の回復方法は未決定であり、本Design Docでは確定しない。
4. 処理フロー
利用者 │ ファイル送信 ▼ API │ 1. オブジェクトストレージへ保存 ├─ 失敗 ──> HTTP 503(キュー登録なし) │ │ 2. 保存先情報をキューへ登録 ▼ キュー │ 保存先情報 ▼ ワーカー │ 3. オブジェクトストレージから取得 │ 4. ファイル解析 │ 5. 解析結果をDBへ保存 ▼ DB5. API仕様(実装方針)
5.1 リクエスト
APIはファイルをmultipart/form-data等で受け付ける。
ファイルサイズ上限は、少なくとも想定上限10MBを考慮して設定する。比較のポイント資料の「10MBのファイル」を、入力サイズの上限として読み替えています。このままでは、10MBを超えるファイルを拒否する要件まで決まったように読めます。スキルありは、10MBを処理対象の例として保っています。
受信したファイルには一意な取込IDを付与する。比較のポイント資料にない取込IDを追加し、メッセージやDB設計もこのIDを前提にしています。実装者には、合意済みの仕様と書き手が補った仕様の区別がつきません。スキルありでは、このIDを導入せずに処理の流れを説明しています。
5.2 オブジェクトストレージへの保存
保存先キーには、他の取込と衝突しない値を使用する。例:
imports/{import_id}/source保存時には、実体とあわせて以下のメタデータを管理できるようにする。
取込ID
元ファイル名
Content-Type
ファイルサイズ
保存日時
ハッシュ値(必要に応じて)
保存に失敗した場合は以下を行う。
エラーをログへ出力する。
HTTP 503 Service Unavailableを返す。
キューへの登録処理を実行しない。
クライアントが再試行可能なレスポンスであることを明示する。
5.3 キューへのメッセージ
キューにはファイル本体ではなく、ワーカーが取得に必要な情報だけを登録する。例:
{ "import_id": "01J...", "object_key": "imports/01J.../source", "content_type": "application/pdf", "created_at": "2026-09-22T00:00:00Z" }実際のキューサービスに応じて、バケット名、オブジェクトURI、バージョンIDなどを追加する。
5.4 APIレスポンス
キュー登録まで成功した場合は、解析完了を待たずに受付結果を返す。推奨例:
HTTP 202 Accepted
取込ID
状態確認用のリソース情報(提供する場合)
{ "import_id": "01J...", "status": "queued" }解析結果はAPIレスポンスには含めず、別途状態確認APIまたは既存の結果参照手段で取得する。
6. ワーカー処理
ワーカーはキューからメッセージを受け取ったら、次の順で処理する。
メッセージから取込IDとオブジェクトキーを取得する。
オブジェクトストレージからファイルを読み込む。
ファイル形式・サイズ等の入力検証を行う。
ファイルを解析する。
解析結果をDBへ保存する。
成功時にキューのメッセージを完了扱いにする。
6.1 DB保存
取込IDを一意キーとして扱い、同一メッセージが再配信された場合でも解析結果が重複しないようにする。DB保存は冪等に実装する。
推奨する状態例:
queued: キュー登録済み
processing: ワーカー処理中
completed: 解析結果保存済み
failed: 解析または保存に失敗状態更新と解析結果保存の整合性を保つため、可能な範囲で同一トランザクションにまとめる。
6.2 エラー処理
オブジェクトストレージからの読み込み失敗:一時障害か恒久障害かを判定し、キューサービスの再試行機構に従う。
解析失敗:取込状態を
failedにし、原因を記録する。DB保存失敗:結果が保存できるまでメッセージを再処理可能にする。
再処理時に既に
completedの場合は、重複保存せず成功扱いにする。リトライ回数、デッドレターキューへの移送条件、失敗ファイルの保持期間は実装時に決定する。
7. 重要な未決事項
キュー登録失敗時の回復方法
オブジェクトストレージへの保存後、キュー登録に失敗すると、ファイルは保存済みだがワーカーへ届かない状態になる。回復方法は未決定である。
候補として以下があるが、採用案は別途決定する。
DBに取込状態と保存先を記録し、定期ジョブが未登録データを再送する。
Outboxパターンでキュー登録要求を永続化する。
キュー登録失敗時に同期リトライする。
オブジェクトストレージのイベント通知を利用する。
この事項が決まるまで、キュー登録処理の失敗時にファイルを削除するか、保存済みファイルをどの期間保持するかも確定しない。
8. 非機能要件・実装上の注意
10MBのファイルを扱えるAPI、オブジェクトストレージ、ワーカーの設定にする。
キューにはファイル本体を格納しない。メッセージサイズは1MB未満に収める。
オブジェクトストレージのアクセス権はワーカーに必要最小限だけ付与する。
ログには取込IDを必ず含め、API、キュー、ワーカー、DBの処理を追跡できるようにする。
ファイル名やContent-Typeなどの外部入力をログやキーに利用する場合は、エスケープおよびバリデーションを行う。
一時ファイルは処理完了後に削除し、メモリにファイル全体を保持し続けない。
APIのタイムアウトは、ファイル保存完了までを基準に設定する。解析完了は待機しない。
監視対象として、保存失敗数、キュー登録失敗数、キュー滞留時間、ワーカー失敗数、解析完了時間を計測する。
9. テスト観点
ファイル保存成功後にキューへ正しい保存先が登録されること。
ファイル保存失敗時にHTTP 503が返り、キュー登録されないこと。
10MBのファイルを処理できること。
キューのメッセージにファイル本体が含まれないこと。
ワーカーが保存先からファイルを取得し、解析結果をDBへ保存できること。
同一メッセージの再配信で結果が重複しないこと。
オブジェクトストレージ読み込み失敗、解析失敗、DB保存失敗時に想定した再試行・状態遷移になること。
APIが解析完了を待たず、受付完了を返すこと。
10. スコープと進行状況
今週の実装範囲:API実装比較のポイント今週の担当作業を設計のスコープと一緒に載せています。翌週には古くなる情報が、設計全体の対象と混ざります。スキルありは作業メモを本文から外し、APIからDB保存までの処理をスコープに挙げています。
担当:佐藤
関連チケット:DATA-64
関連PR:#203
今週は、ファイル保存、保存失敗時の503応答、キュー登録に必要なメッセージ生成、および受付レスポンスまでを実装対象とする。キュー登録失敗時の回復機構は未決定のため、実装範囲外として明示的に扱う。
WITHtanteki あり全文
ファイル取込 Design Doc
背景と目的
ファイル取込を同期処理から分離し、APIの受付とファイル解析を別の処理として実行する。APIはファイル本体をオブジェクトストレージへ保存し、保存先をキューへ登録する。ワーカーはキューに登録された保存先からファイルを読み、解析結果をDBへ保存する。
スコープ
APIによるファイル本体の受け付け比較のポイントスコープには、API、ストレージ、キュー、ワーカーが受け持つ処理を挙げています。スキルなしにある今週の作業、担当者、課題IDは本文から外れ、設計が扱う処理を確認しやすくなっています。
オブジェクトストレージへのファイル保存
保存先のキュー登録
ワーカーによるファイル読み出し
解析結果のDB保存
保存およびキュー登録に失敗した場合の扱い
スコープ外
キューへの登録失敗時の回復方法
解析結果を利用者へ提示する具体的な画面やAPI仕様
制約
キューのメッセージ上限は1MBである。取込対象には10MBのファイルがあるため、ファイル本体をキューへ載せる方式は上限を超える。比較のポイント10MBは取込対象、1MBはキューの上限と、二つの数値の役割を分けています。スキルなしのように入力上限を追加せず、ファイル本体を送る案が制約を満たさない理由を読み取れます。キューにはファイル本体ではなく、オブジェクトストレージ上の保存先を登録する必要がある。
採用する設計
APIとワーカーを非同期に分離する。APIは次の順序で処理する。
受け付けたファイルをオブジェクトストレージへ保存する。
保存に成功した場合、保存先をキューへ登録する。
保存に失敗した場合、503を返し、キューには登録しない。
キューから保存先を受け取ったワーカーは、保存先からファイル本体を読み出す。読み出したファイルを解析し、解析結果をDBへ保存する。比較のポイントスキルなしが追加した取込IDやDBの状態名を使わず、保存先からファイルを読むという資料の処理を保っています。実装者は、追加仕様を決定事項と取り違えずに、各構成要素の役割を追えます。
sequenceDiagram participant C as 利用者 participant A as API participant S as オブジェクトストレージ participant Q as キュー participant W as ワーカー participant D as DB C->>A: ファイル送信 A->>S: ファイル保存 S-->>A: 保存結果 alt 保存成功 A->>Q: 保存先を登録 Q-->>A: 登録結果 A-->>C: 受付結果 Q->>W: 保存先を配信 W->>S: ファイル読み出し S-->>W: ファイル本体 W->>W: 解析 W->>D: 解析結果を保存 else 保存失敗 A-->>C: 503 end失敗時の動作
オブジェクトストレージへの保存失敗
APIは503を返す。保存先をキューへ登録してはならない。したがって、保存できていないファイルをワーカーが処理することはない。
キューへの登録失敗
オブジェクトストレージへの保存後にキュー登録が失敗した場合の回復方法は未決定である。保存済みファイルとキュー登録の不整合が発生し得るため、実装時に回復方法と状態管理を決定する必要がある。この決定が完了するまで、キュー登録成功をもって非同期処理へ進める条件を確定してはならない。
代替案と採否
ファイル本体をキューへ載せる案は不採用とする。10MBのファイルがキューの1MB制限を超えるためである。保存先をキューへ登録する方式なら、キューで扱うデータをファイル本体から保存先へ縮小できる。
影響
非同期化により、APIの受付完了から解析結果の提示までに遅延が生じる。利用者は、受付時点で解析結果を受け取れない。結果提示の具体的な方法と、キュー登録失敗時の回復方法は別途決定する必要がある。
未決定事項
キューへの登録に失敗した場合の回復方法
キュー登録失敗時にAPIが返す結果
解析結果を利用者へ提示する方法
根拠
本書は、確定したファイル取込資料に基づく。資料で確定していない事項は、未決定事項として記載した。
実装者向けにファイル取込のDesign Docを作成して。確定した資料: APIはファイルをオブジェクトストレージへ保存し、その保存先をキューへ登録する。保存に失敗したら503を返し、キューには登録しない。ワーカーは保存先から読み、解析結果をDBへ保存する。キューへの登録失敗時の回復方法は未決定。ファイル本体をキューに載せる案は、10MBのファイルがキューの1MB制限を超えるため不採用。非同期化で利用者への結果提示が遅れる。進行メモ: DATA-64、PR #203、今週はAPI実装、担当佐藤。
WITHOUTスキルなし全文
ADR-001: 請求書PDF生成をキューによる非同期処理にする
ステータス: 採用
決定日: 2026-08-20
関連: BILL-218、PR #106
コンテキスト
請求書のPDF生成には最大45秒かかることがある。同期的に生成すると、処理中にAPI接続が切断される可能性があるため、利用者への応答とPDF生成処理を同じリクエスト内で完了させる方式は安定しない。
決定
請求書のPDF生成はキューに投入して非同期で処理する。APIはPDFそのものではなく、受付IDを返す。利用者またはクライアントは受付IDを使って処理状況を確認し、生成完了後にPDFを取得する。比較のポイント資料で決まっているのは、APIが受付IDを返すことまでです。ここでは、そのIDによる状況確認とPDF取得もできると補っています。保守者がこの記述を読むと、確認方法まで採用済みだと受け取るおそれがあります。
選択しなかった案
同期生成
同期生成は採用しない。生成に最大45秒かかり、処理中に接続が切れる可能性があるためである。
影響
利点
長時間のPDF生成によるAPI接続切断の影響を抑えられる。
APIは受付処理を短時間で完了できる。
PDF生成処理をキューのワーカーで独立して処理できる。
欠点・利用者への影響
API応答時点ではPDFは完成していない。
利用者はPDFの完成まで待つ必要がある。
クライアントには、受付IDによる状況確認と、完了後のPDF取得処理が必要になる。
未決事項
生成失敗時の再試行回数の上限は未決定である。運用・障害影響を確認したうえで別途決定する。
完成通知、状態確認API、受付IDの有効期限などの詳細仕様は実装時に確定する。比較のポイント資料で未決定とされたのは再試行の上限だけです。通知や状態確認API、有効期限も並べると、これらの設計作業まで必要と決まったように読めます。スキルありでは、その追加項目を外しています。
進捗メモ
原資料の作業メモでは、本対応の進捗は70%と記録されている。比較のポイント進捗70%は実装時点の作業情報であり、採用した方式や理由は説明しません。本文には課題IDとPR番号もあり、長く参照する決定と短期間で変わる進捗が混ざっています。
WITHtanteki あり全文
請求書PDF生成を非同期キュー処理にする
状態: 採用
決定日: 2026-08-20比較のポイント作業の進捗や課題IDを外しても、決定の状態と日付は残しています。スキルなしのように実装の進み具合を混ぜず、保守者が「何を、いつ採用したか」を確認できます。
背景
請求書のPDF生成には最大45秒かかる。同期生成では、その間に接続が切れるため、APIの応答を完了まで維持できない。
決定
請求書のPDF生成はキューで非同期に処理する。APIは生成完了を待たず、受付IDを返す。利用者は、PDFが完成するまで待つ必要がある。比較のポイントキューによる生成、受付IDの返却、完成まで待つことをまとめています。この反復では、スキルなしが補った状況確認・PDF取得の方法を定めず、資料から分かる決定内容を読めます。
決定理由
同期生成では、最大45秒の処理中に接続が切れるため採用しない。非同期処理なら、PDF生成とAPIの受付を分離できるため、生成処理の完了までAPIの接続を維持する必要がない。
影響
利用者はAPIの応答だけではPDFを受け取れず、受付IDに対応する生成結果が完成するまで待つ必要がある。保守者は、受付IDとキュー処理を前提に、生成中と生成完了後の扱いを実装・運用する必要がある。
再試行の上限は未決定である。再試行処理を追加・変更する場合は、この上限を決めたうえで、キュー処理の設計と整合させる。比較のポイント未決定の項目を、資料にある再試行の上限に絞っています。スキルなしにある通知方式やIDの有効期限を検討項目として増やさず、何がまだ決まっていないかを確認できます。
代替案
同期生成は、最大45秒の処理中に接続が切れるため不採用とした。
将来の保守者向けにADRを書いて。2026-08-20に採用した判断。請求書のPDF生成はキューで処理し、APIは受付IDを返す。同期生成は最大45秒かかって接続が切れるため採らない。非同期では利用者が完成まで待つ必要がある。再試行の上限は未決定。原資料の作業メモには BILL-218、PR #106、進捗70% とある。
WITHOUTスキルなし全文
月次請求CSV出力・経理受け渡し手順書(当番向け)
1. 実施条件
実施日:毎月第1営業日
対象:前月分
開始状態:社内端末で請求管理画面にログイン済み
事前条件:経理が締め処理を終え、当番へ対象月を連絡済み
必要な権限:
請求管理画面の出力権限
社内共有フォルダ『経理受け渡し』への書き込み権限
2. 請求CSVの生成とダウンロード
請求管理画面の『月次請求』を開く。
経理から連絡された対象月を選ぶ。
次の2点を確認する。
選んだ対象月が前月と一致している。
画面の状態が『締め済み』である。
対象月が前月と一致しない、または状態が『締め済み』でない場合は、その場で中止する。以降の操作は行わない。
両方の確認を通過した場合だけ、画面に表示された請求件数を控える。
『CSVを生成』を1回押す。
状態が『生成完了』になったら、『ダウンロード』を押す。
次の場合は中止する。再生成はしない。
状態が『生成失敗』になった。
『CSVを生成』を押してから5分経っても『生成完了』にならない。
3. ダウンロードしたCSVの検査
ダウンロードしたCSVを表計算ソフトで開く。
列が次の3列であることを確認する。
『対象月』
『請求先ID』
『金額』
ヘッダーを除く行数が、控えた請求件数と一致することを確認する。
全行の『対象月』が、選んだ対象月と一致することを確認する。
請求件数が0件の場合は、ヘッダーだけでよい。比較のポイント0件のときの確認基準に、操作と同じ手順番号を付けています。次に行う操作と、その結果をどう判定するかが並ぶため、手順の番号だけでは作業の順番を追いにくくなっています。
次の場合は中止し、経理へ渡さない。
列が違う。
行数が違う。
『対象月』が違う。
ダウンロードに失敗した。
ファイルを開く操作に失敗した。
4. 共有フォルダへの保存
保存先を社内共有フォルダ『経理受け渡し』にする。
ファイル名を
請求-YYYY-MM.csvとする。YYYY-MMには対象月を入れる。
例:対象月が2026年8月の場合は
請求-2026-08.csv保存する前に、共有フォルダ『経理受け渡し』に同名ファイルがあるか確認する。
同名ファイルがある場合は、その場で中止して保存しない。上書きはしない。
同名ファイルがないことを確認したら、検査済みのCSVを指定した名前で1回だけ保存する。
保存に失敗した場合は、その場で中止する。
5. 保存後の確認
保存できたファイルを共有フォルダ『経理受け渡し』から開き直す。
次の内容を確認する。
列が『対象月』『請求先ID』『金額』の3列である。
ヘッダーを除く行数が、控えた請求件数と一致する。
全行の『対象月』が、選んだ対象月と一致する。
請求件数が0件の場合は、ヘッダーだけである。
開き直せない場合、または確認結果が違う場合は、その場で中止する。この場合、経理へ完了連絡をしない。
確認を通過した場合だけ、社内チャット『#経理連携』に次の内容を投稿して完了とする。
対象月
請求件数
保存先
6. 中止時の連絡
中止した場合は、社内チャット『#請求運用』で運用担当へ連絡する。
次の内容を伝える。
対象月
止まった操作
画面の状態または表示されたエラー
再実行せず、運用担当の指示を待つ。
請求先IDや金額の明細はチャットに貼らない。比較のポイント連絡時に守る禁止事項を、最後の操作として番号付きの手順に入れています。実施する操作と、連絡の間ずっと守る条件の違いが見えにくくなっています。
WITHtanteki あり全文
月次請求CSVの出力・経理受け渡し手順書
1. 概要
毎月第1営業日に、当番が前月分の月次請求CSVを出力し、検査済みファイルを共有フォルダ『経理受け渡し』へ保存して経理へ連絡する。
2. 作業前の確認
次の条件を満たしてから開始する。
経理が締め処理を終えている。
経理から対象月の連絡を受けている。
請求管理画面の出力権限がある。
社内共有フォルダ『経理受け渡し』への書き込み権限がある。
社内端末で請求管理画面にログイン済みである。
対象は前月分である。
3. 請求CSVの生成とダウンロード
請求管理画面の『月次請求』を開く。
経理から連絡された対象月を選ぶ。
次の2点を確認する。
対象月が前月と一致している。
画面の状態が『締め済み』である。
2点とも確認できた場合だけ、画面に表示された請求件数を控える。
『CSVを生成』を1回押す。
状態が『生成完了』になったら『ダウンロード』を押す。
対象月が前月と一致しない場合、または状態が『締め済み』でない場合は、その場で中止する。『生成失敗』になった場合、または『CSVを生成』を押してから5分経っても『生成完了』にならない場合も中止する。再生成はしない。
4. ダウンロードしたCSVの検査
ダウンロードしたCSVを表計算ソフトで開く。
列が次の3列であることを確認する。
『対象月』
『請求先ID』
『金額』
ヘッダーを除く行数が、控えた請求件数と一致することを確認する。
全行の『対象月』が、選んだ対象月と一致することを確認する。
請求件数が0件の場合は、ヘッダーだけでよい。比較のポイントスキルなしでは手順5だった確認基準を、番号のない補足へ分けています。ファイルを開き、列・行数・対象月を確かめる操作は番号順に追え、0件の場合の扱いも続けて確認できます。
列、行数、対象月のいずれかが違う場合、またはダウンロードもしくはファイルを開く操作に失敗した場合は、その場で中止し、経理へ渡さない。
5. 共有フォルダへの保存
保存先を共有フォルダ『経理受け渡し』にする。
ファイル名を
請求-YYYY-MM.csvとする。YYYY-MMには対象月を入れる。対象月が2026年8月の場合は請求-2026-08.csvとする。保存前に、共有フォルダに同名ファイルがないことを確認する。
同名ファイルがないことを確認できたら、検査済みのCSVを指定した名前で1回だけ保存する。
同名ファイルがある場合は、その場で中止して保存しない。上書きはしない。保存に失敗した場合も、その場で中止する。
6. 保存後の確認と完了連絡
保存できたファイルを共有フォルダから開き直す。
次の3点を確認する。
列が『対象月』『請求先ID』『金額』の3列である。
ヘッダーを除く行数が、控えた請求件数と一致する。
全行の『対象月』が、選んだ対象月と一致する。
3点を確認できた場合だけ、社内チャット『#経理連携』に対象月、請求件数、保存先を投稿する。
ファイルを開き直せない場合、または確認結果が違う場合は、その場で中止し、経理へ完了連絡をしない。
7. 中止時の連絡
中止した場合は、社内チャット『#請求運用』で運用担当へ連絡する。次の内容を伝える。
対象月
止まった操作
画面の状態または表示されたエラー
再実行せず、運用担当の指示を待つ。請求先IDや金額の明細はチャットに貼らない。比較のポイント連絡の方法と伝える項目を説明した後で、再実行の禁止と明細を貼らない条件を段落で示しています。スキルなしのように最後の操作として数えず、連絡時に守る条件として読めます。
当番向けに、月次請求CSVを出力して経理へ渡す手順書を書いて。次は架空の請求サービスで確定した運用資料です。画面名、ボタン名、条件は変えず、この資料だけで手順を作成して。
作業は毎月第1営業日に当番が行う。対象は前月分。事前に経理が締め処理を終え、当番へ対象月を連絡する。当番には請求管理画面の出力権限と、社内共有フォルダ『経理受け渡し』への書き込み権限が必要。社内端末で請求管理画面にログイン済みの状態から始める。
請求管理画面の『月次請求』を開き、経理から連絡された対象月を選ぶ。対象月が前月と一致し、画面の状態が『締め済み』であることを確かめる。一致しない、または『締め済み』でなければその場で中止し、以降の操作は行わない。両方の確認を通過した場合だけ、画面に表示された請求件数を控える。『CSVを生成』を1回押す。状態が『生成完了』になったら『ダウンロード』を押す。状態が『生成失敗』になった場合、またはボタンを押してから5分経っても『生成完了』にならない場合は中止する。再生成はしない。
ダウンロードしたCSVを表計算ソフトで開く。列は『対象月』『請求先ID』『金額』の3列。ヘッダーを除く行数が控えた請求件数と一致し、全行の『対象月』が選んだ対象月と一致することを確認する。請求件数が0件ならヘッダーだけでよい。列、行数、対象月のどれかが違う場合や、ダウンロードまたはファイルを開く操作に失敗した場合は中止し、経理へ渡さない。
保存先は共有フォルダ『経理受け渡し』、ファイル名は請求-YYYY-MM.csvとする。YYYY-MMには対象月を入れる。対象月が2026年8月なら請求-2026-08.csv。保存する前に、共有フォルダに同名ファイルがあるか確認する。同名ファイルがあれば、その場で中止して保存しない。上書きはしない。同名ファイルがないことを確認してから、検査済みのCSVを指定した名前で1回だけ保存する。保存に失敗した場合もその場で中止する。保存できたファイルを共有フォルダから開き直し、先ほどと同じ3列、行数、全行の対象月を確認する。開き直せない場合や確認結果が違う場合は、その場で中止し、経理へ完了連絡をしない。この確認を通過した場合だけ、社内チャット『#経理連携』に対象月、請求件数、保存先を投稿して完了とする。
中止した場合は社内チャット『#請求運用』で運用担当へ連絡する。対象月、止まった操作、画面の状態または表示されたエラーを伝え、再実行せず運用担当の指示を待つ。請求先IDや金額の明細はチャットに貼らない。
02 / DOCUMENT TYPES
tantekiは、主に以下の文書をサポートします。
文書の種類ごとに「書くべき情報」と「書くべきではない情報」を判定し、書くべきではない情報を文書から削除します。
| 文書の種類 | 書くべき情報 | 書くべきではない情報 |
|---|---|---|
| PRD | 要求・優先度・根拠・制約・検証方法 | 進捗報告・課題IDの台帳 |
| Design Doc | 背景・目的・スコープ・制約に照らした実現方法と採否の理由、影響 | 進捗報告・課題IDの台帳 |
| ADR | 何を決定し、なぜ選んだか。その結果と決定の状態 | 詳細設計・実装の進捗・作業チケットの管理 |
| Runbook | 前提・検知・手順・確認・停止条件・連絡先 | 事故の原因分析・作業の進捗 |
| 調査報告 | 方法・対象・観察・解釈・限界・示唆 | 一人の発言からの市場全体の断定 |
03 / HOW IT WORKS
このスキルは次の原則に従って文書を作成します。
まずは「誰に向けて、何の文書を書くのか」を明確にします。これにより伝えるべき情報が絞り込まれ、各節で説明すべき内容と根拠が自然と整理されます。
いきなり本文を書き始めることはしません。まずは目次や論理展開などの「構成」をチェックし、問題がないことを確認してから本文の執筆に進みます。
書き上がった本文は元の資料と照合し、事実や条件が正確に保たれているか確認します。推測で情報を書き足すことはせず、textlintを用いた機械的な文章チェックも行います。
04 / GET STARTED
使っているエージェントに追加して、
読者と目的を添えて依頼します。
gh skill install iwasa-kosui/tanteki tanteki --scope userターミナルで実行します。文書検査の依存関係は、初回利用時にエージェントが npm ci で導入します。公式のインストール手順 ↗
新しいセッションを開き、
依頼文と草稿を渡します。
tanteki を使って、この設計書を開発者向けに短く推敲して。
実現方式と不採用案の理由、制約、例外は残して。
(ここに草稿を貼る)新規の執筆も依頼できます。原資料と、未決定の内容を添えてください。
PRD(製品要求書)、設計書、ADR(設計上の決定記録)、運用手順、調査報告などに。文書ごとの使い分け ↗
05 / EVIDENCE
同じ依頼を同じモデルに渡し、tanteki一式の導入だけを変えて文書を生成しました。基本の実測では、2課題を各2回比較し、両条件で生成が成功した文書のうち、4組を採点しました。
手順書の例は追加実測から選び、この採点件数には含めていません。
作成者が選んだ課題による小規模な比較です。PRDは含みません。ほかの課題やモデルでも同じ結果になるとは限りません。
2026年9月22日(UTC)に生成を開始しました。各試行を新しいコンテナで実行し、生成後の採点結果は書き手に返していません。
生成は gpt-5.6-luna / low、採点は gpt-5.6-terra / low です。対象は tanteki 07dd7a7 です。
手順書の例は2026年9月20日(UTC)に開始した追加実測です。基本の実測とは別に採点しています。生成は gpt-5.6-luna / low、採点は gpt-5.6-terra / low です。追加実測の本文と評価 ↗ · 実行環境の記録 ↗ · 題材の見直しと本文の所見 ↗