工程表(ガントチャート)の作成にClaudeを使う手順 — 内訳書からクリティカルパスの確認点まで
工事内訳書に足りない日数と先行関係を表にそろえ、ClaudeのArtifactでガントチャートを出す手順です。11作業・54日の例で余裕日数を検算します。
内訳書だけでは工程表にならない
工事内訳書には工種・数量・単価が並びますが、日数と先行関係は載っていません。ガントチャートの初稿を作るには、内訳書に加えて「各作業が何日かかるか」「何が終わってから始められるか」の2つを渡す必要があります。
ClaudeのArtifactは、この2つがそろった表からガントチャートを描き、クリティカルパス(工期を決める最長の作業の連なり)まで示せます。入力が足りないまま依頼すると、日数と順序をClaudeが補うことになります。その数字は根拠のない仮置きです。
この記事では、次の流れで初稿を作ります。
内訳書から工程表の初稿まで
- 1
作業表を作る
内訳書の行を作業に分け、日数と先行作業の列を足します。
- 2
先行関係を人が直す
Claudeに先行関係の案を表で出させ、現場の段取りに合わせて直します。
- 3
Artifactで描く
確定した表からガントチャートと余裕日数を出させます。
- 4
検算して確認点を洗う
クリティカルパスを手元で再計算し、前提の抜けを点検します。
日数の列は見積書の記載事項から拾う
日数の根拠は、見積書に求められている記載事項にあります。建設業法第20条第1項は、建設業者が請負契約を結ぶ際に、工事の種別ごとの材料費・労務費などの内訳と、工事の工程ごとの作業およびその準備に必要な日数を記載した見積書を作成するよう努めると定めています。努力義務ですが、見積書の側に日数の欄があるなら、そこが工程表の入力の出どころです。
日数の欄が見積書にない場合は、歩掛かりや過去の現場の実績から人が入れます。Claudeに推定させる前提では書きません。
作業表は次の列で作ります。
| 列 | 内容 | 内訳書にあるか |
|---|---|---|
| 作業名 | 内容工種を作業単位に分けた名前 | 内訳書にあるかある |
| 日数 | 内容稼働日ベースの所要日数 | 内訳書にあるかない |
| 先行作業 | 内容終わってから着手する作業 | 内訳書にあるかない |
| 備考 | 内容養生期間・検査・搬入待ちなど | 内訳書にあるかない |
内訳書の1行が1作業になるとは限りません。「木工事」の1行を、躯体と造作に分けたほうが先行関係を書きやすい場合があります。
先行関係はClaudeに案を出させ、人が決める
工程表の品質は先行関係で決まります。日数が合っていても、順序が1か所違えばクリティカルパスが別の作業に移ります。そこで、描画の前に先行関係だけを表で出させます。
次の表は工事内訳書の工種に、私が日数を入れたものです。
日数が空欄の行は、空欄のまま返してください。補わないでください。
[ここに表を貼る(作業名 / 日数 / 備考)]
やってほしいこと:
1. 各作業の「先行作業」の案を、表の新しい列として付けてください。
2. 先行作業の根拠が一般的な施工順序だけの行には「要確認」と書いてください。
3. 同時に進められそうな作業の組を、別に箇条書きで挙げてください。
4. 図やArtifactはまだ作らないでください。返ってきた表のうち、「要確認」の行から順に現場の段取りと照らします。屋根工事と設備配管のように、現場によって順序が入れ替わる作業が典型です。直した表を貼り直したものが、描画の入力になります。
Artifactでガントチャートと余裕日数を出す
Artifactを使うには、Free・Pro・Maxでは「設定 > 機能」、Team・Enterpriseでは組織設定の同じ項目で、コード実行とファイル作成をオンにしておきます。Claudeは「15行を超える分量があり、単体で完結し、あとから編集・再利用しそうな内容」をArtifactにします。作業表からの図は、この基準に収まります。
確定した作業表です(作業名 / 日数 / 先行作業)。
[ここに先行関係を直した表を貼る]
次のArtifactを作ってください。
- 横軸を稼働日(1日目から)としたガントチャート
- 各作業の最早開始・最早終了・最遅開始・最遅終了・余裕日数の表
- 余裕日数が0の作業(クリティカルパス)を色分けして表示
- 日数を画面上で書き換えると、全体工期と色分けが再計算される
- 先行関係に循環があれば、画面にエラーを表示する最後の1行は、先行関係の入力ミスをその場で見つけるための指定です。作業Aの先行がBで、Bの先行がAという表を貼ると、計算が終わらないか、結果が崩れます。
画面に不具合が出たときは、エラー表示の近くにある「Try fixing with Claude」のボタンで、エラー内容を新しいメッセージにコピーして修正を頼めます。成功は保証されません。
11作業・54日の例で結果を読む
次の例は、この記事のために作った架空の小規模改修です。実在の工事の数字ではありません。
| 作業 | 日数 | 先行作業 | 余裕日数 |
|---|---|---|---|
| A仮設工事 | 日数3 | 先行作業なし | 余裕日数0 |
| B解体工事 | 日数4 | 先行作業A | 余裕日数0 |
| C基礎工事 | 日数10 | 先行作業B | 余裕日数0 |
| D木工事(躯体) | 日数15 | 先行作業C | 余裕日数0 |
| E屋根工事 | 日数5 | 先行作業D | 余裕日数2 |
| F外壁工事 | 日数7 | 先行作業D | 余裕日数0 |
| G給排水設備 | 日数6 | 先行作業D | 余裕日数1 |
| H電気配線 | 日数5 | 先行作業D | 余裕日数2 |
| I内装工事 | 日数12 | 先行作業E, F, G, H | 余裕日数0 |
| J外構工事 | 日数6 | 先行作業F | 余裕日数6 |
| K完成検査・手直し | 日数3 | 先行作業I, J | 余裕日数0 |
全体工期は54稼働日で、クリティカルパスはA → B → C → D → F → I → Kです。3+4+10+15+7+12+3を足すと54になります。
読みどころは、屋根工事(余裕2日)ではなく外壁工事(余裕0日)が工期を決めている点です。内装工事は、屋根・外壁・設備・電気のすべてが終わってから始まるため、最も遅い外壁工事が終わる39日目の翌日、40日目に着手します。
余裕日数から読める3つのこと
外壁工事が1日延びると
内装工事と検査も1日ずつ後ろにずれ、全体工期が55日になります。
屋根工事が2日延びても
全体工期は動きません。余裕日数の範囲で吸収されます。
外構工事は6日の余裕
人員配置を見直すときの検討材料です。人員の制約は表に入っていません。
Claudeの出力を手元で検算する
Artifactの画面を見るだけでは、先行関係を入れ違えても気づけません。同じ表を別の方法で計算し、全体工期と余裕日数が一致するかを確かめます。次のPythonは標準ライブラリだけで動き、上の例の数字を再現します。
tasks = { # 作業: (名前, 日数, 先行作業)
"A": ("仮設工事", 3, []), "B": ("解体工事", 4, ["A"]),
"C": ("基礎工事", 10, ["B"]), "D": ("木工事(躯体)", 15, ["C"]),
"E": ("屋根工事", 5, ["D"]), "F": ("外壁工事", 7, ["D"]),
"G": ("給排水設備", 6, ["D"]), "H": ("電気配線", 5, ["D"]),
"I": ("内装工事", 12, ["E", "F", "G", "H"]),
"J": ("外構工事", 6, ["F"]), "K": ("完成検査・手直し", 3, ["I", "J"]),
}
es, ef = {}, {}
for k in tasks: # 先行作業が先に並んでいる前提
_, d, pre = tasks[k]
es[k] = max([ef[p] for p in pre], default=0)
ef[k] = es[k] + d
end = max(ef.values())
ls, lf = {}, {}
for k in reversed(list(tasks)):
succ = [s for s in tasks if k in tasks[s][2]]
lf[k] = min([ls[s] for s in succ], default=end)
ls[k] = lf[k] - tasks[k][1]
for k in tasks:
print(k, tasks[k][0], es[k], ef[k], ls[k], lf[k], "余裕", ls[k] - es[k])
print("全体工期", end)python3 cpm_check.py最終行が 全体工期 54 になり、余裕が0の行がA・B・C・D・F・I・Kだけなら、例の結果と一致しています。自分の表で使うときは、tasks の中身を作業表に置き換えます。作業が先行作業より前に並んでいないと動かないので、並び順だけ確認してください。
Claudeの結果と食い違うときは、日数の転記ミスか先行関係の読み違いが多くなります。食い違った作業名を挙げて、Claudeに先行作業の列を表で再掲させると原因を絞れます。
工期を詰めると、クリティカルパスが入れ替わる
短縮案を試すときも、余裕日数が手がかりになります。上の例で外壁工事を7日から5日に縮めても、全体工期は52日にはなりません。給排水設備の余裕が1日しかないため、外壁工事の短縮は1日分しか効かず、全体は53日です。クリティカルパスはD → G → I → Kに入れ替わります。
短縮を依頼するときは、効果を作業ごとに見せるよう指定します。
外壁工事を2日短縮した場合の全体工期と、新しいクリティカルパスを出してください。
短縮した日数のうち、全体工期に反映されなかった分があれば、その理由も書いてください。クリティカルパスを見たあとの確認点
余裕日数が出たら、次の点を現場の事情と照らします。
- 休工日の扱い:契約書面には、工事を施工しない日または時間帯の定めをするときはその内容を記載します(建設業法第19条第1項第4号)。工程表の「稼働日」と暦日の対応は、この休工日の定めに合わせて変換します
- 天候・養生・検査待ち:日数に含めたか、備考に残したかを分けて持ちます。含めていないものは、クリティカルパス上の作業ほど影響が大きくなります
- 全体工期の妥当性:建設業法第19条の5は、通常必要と認められる期間に比して著しく短い期間を工期とする請負契約を、注文者にも建設業者にも禁じています。短縮案を試すときは、日数を削る根拠を作業ごとに書き残します
- 工期に影響する事象:契約を結ぶまでに、注文者は地盤の沈下などを、建設業者は主要な資材の供給の著しい減少や価格の高騰などを、相手に通知する定めがあります(同法第20条の2第1項・第2項)。クリティカルパス上の作業に関わる事象は、先に洗います
- 人員・機械の競合:今回の表は、並行する作業に人を割けるかを見ていません。同時着手の組(上の例ではE・F・G・H)に同じ職人が必要なら、余裕日数は見かけより小さくなります
建設業許可の更新や業種追加の要件は、建設業許可の更新と業種追加の要件を確認する手順で扱っています。
Artifactで使うときの扱い
日数を直しながら使い続けるなら、データの保存先を決めておきます。Artifactはセッションをまたいでデータを保存でき、保存は個人用と共有用に分かれます。この機能はPro・Max・Team・Enterpriseで、Claudeのウェブ版とデスクトップ版が対象です。容量は1つのArtifactあたり20MBまでで、保存できるのはテキストだけです。
共有用の保存を選ぶと、同じArtifactを開いた人全員が同じデータを見ます。機微な情報を入れる前に、共有用かどうかを確かめてください。単価や協力会社名の入った表を載せるなら、日数と作業名だけに絞ったArtifactにすると事故が減ります。
Artifactは最初は自分だけが見られる状態です。他の人に見せるときの設定と、公開できないときの原因はClaude Artifactsで「can't be shared publicly」が出る原因と対処にあります。
テンプレートから作ったArtifactは「Export」から書き出せ、設計用のテンプレートはPDFやスタンドアロンHTMLなどで書き出せます。提出用の体裁は、実際に作ったArtifactで書き出し先を確かめてから決めてください。
制約を固定したままArtifactで試算する作り方は、新NISAの積立シミュレーションの記事が同じ型です。図の種類を変えたいときは、Claudeでのフローチャート作成手順の依頼文の書き分けが使えます。
まとめ
内訳書から工程表の初稿を作る作業の中心は、日数と先行関係を表にそろえることです。Claudeには先行関係の案出しと描画を任せ、順序の確定と日数の根拠は人が持ちます。描いた結果は、全体工期と余裕日数を別の方法で再計算して突き合わせます。
クリティカルパスは「どこを守れば工期が守れるか」を示すだけで、人員や天候の制約は含みません。初稿として使い、現場の工程会議で直す前提の道具です。