我が家の妻側が丸見え 労働安全衛生法のレビュー

隣の家の解体が終わり、家の妻側が丸見えに
長い間、外壁も手入れをしていないので少しくたびれています
夕方にキクと散歩

建設アシストの法規制管理の見直しを貸しする・・これで2回目となる
それなりに満足できる法規制の特定とはなっているが、もう一度判定に使っているAIを検討した結果、AIに頼らず、条件選定で多くが可能なことが分かってきたので変更を検討するが、今まで法規制の解釈のためにベースとなる体系(Excel→CSVで取込)を見直しをする必要ができてきた
2回目も、かなり突っ込んできたが、途中でかなり妥協をしていたので、今回は腰を入れて見直しを開始する・・・やはり、安衛法の解釈は複雑、言葉の定義から、法規制と思っていたのが実は「ガイドライン」だったり、新しい発見も多い・・・1ち日をかけて約半分まで終わったが・・・疲れる

ここで、もう一度「元請」周りの安衛法による定義を確認する

呼称意味根拠
事業者労働者を使用する者すべて(元請も下請も)法2条3号
注文者仕事を他人に請け負わせる者(下に出せば中間業者も注文者)法31条等
元方事業者一の場所の仕事の一部を下請に請け負わせている事業者=元請(全業種共通法15条1項
特定元方事業者元方事業者のうち建設業・造船業(特定事業)のもの法15条1項
関係請負人元方事業者の下のすべての請負人(一次・二次…下請全部)法15条1項

選任される「人」の呼称

呼称誰が選任役割根拠
統括安全衛生責任者特定元方事業者現場全体の安全衛生を統括管理する人法15条
元方安全衛生管理者特定元方事業者統括の管理事項のうち技術的事項を管理する人法15条の2
店社安全衛生管理者特定元方事業者(中小規模現場)店社(支店等)から現場を指導・巡視する人法15条の3
安全衛生責任者各下請(関係請負人)統括安全衛生責任者との連絡役法16条
  • 元方事業者(全業種)→ 法29条:関係請負人とその労働者が法令違反しないよう指導する義務。建設業ではさらに法29条の2で危険場所の技術的指導。
  • 特定元方事業者(建設・造船)→ 法30条:統括管理措置。協議組織の設置・運営、作業間の連絡・調整、作業場所の巡視、関係請負人の安全衛生教育の指導・援助、仕事の工程・機械設備の配置計画と関係法令措置の指導、その他労働災害防止に必要な事項の6つです。
  • 注文者(設備等を請負人に使わせる者)→ 法31条:足場・型枠支保工等の設備面の措置

雨のみなと公園 コードのレビュー

キクとみなと公園の散歩 雨はかなり降っている

台風の接近で朝からかなりの雨です・・・甲斐犬のキクの散歩は予定通り、上下に登山用のレインコートを着込んで散歩、でも40年前のゴアテックスは効果が薄く、かなり浸み込んできました・・・やはり、新しいのを使わないと大雨は無理かな

雨のみなと公園をまわる
公園には誰もいない

環境側面であるコードのレビューを実施した
\environment\edit_environment.blade.php
\environment\index.blade.php

1.最優先:CSPとインラインハンドラの矛盾

これが一番の地雷です。直近で@alpinejs/cspに移行してscript-srcから unsafe-eval を外したのに、1-1.この2画面はインラインイベントハンドラだらけonclick=”openAiModal()” / “closeAiModal()” / “runAiEstimate()”
onclick=”addCustomRow()” / “removeCustomRow(this)”
onclick=”window.print()”
script-srcからunsafe-inlineも外す方針なら、これらは全滅
Alpineだけ対応しても、素のonclickが残っていればCSPの一貫性は崩れる・・セキュリティ監査を目標にするなら、unsafe-inline除去は通過点になるはずなので、ここはaddEventListener方式へ統一すべき・・幸い既に477〜492行で同パターンを使っているのでdata-action=”open-ai-modal”のような属性+委譲リスナーに寄せれば機械的に直せる

▶この続きを見る・・・・

iso_app 開発ロードマップ

1. プロジェクト概要

so_app は、建設会社の作業所管理をシステム化した業務アプリケーションです。ISO監査・施工計画・環境側面・リスクアセスメント・安全パトロール・法規制管理を統合した、建設DXを目指した詳細な管理システム

項目内容
技術スタックLaravel(PHP) + Vite + Tailwind CSS + SQLite/MySQL
AI機能Claude API(法規制選定・環境側面推論・監査支援)
モデル数約45モデル(ISO監査・工事管理・環境・安全・リスクなど)
現在の状態複数社でテスト運用中
目標建設業界のDX化
特徴セキュリティを重視した「統制下でのAI活用」の実証システム

2. フェーズ別ロードマップ

Phase 1: 品質と信頼性の確立(現フェーズ)
作業状態
セキュリティ監査(Critical 1〜4 テナント分離)✅ 完了
セキュリティ監査(High 7〜9 認可漏れ)✅ 完了
AI送信情報のガード機構(InputValidator)⏳ 次タスク
AI送信内容の透明性確保(ユーザー画面への明示)⏳ 予定
Medium 13 ファイル名処理⏳ 予定
Phase 2: 保守性と共通化
今後作業効果
Blade コンポーネント化(写真・添付・印刷UI)新機能追加が高速化
AI Service の共通基底クラスAI呼び出しの一元管理
PrintHelper・共通ヘルパー関数の整備重複コードの削減
トレイト化(HasPhotos, HasAttachments等)モデルの統一化
Policy への移行(Phase 3)認可の構造的解決
グローバルスコープによるテナント自動分離忘れて漏れる事故の防止

4. 直近のアクションアイテム

作業内容対象ファイル状態
InputValidator の実装(AI送信ガード機構)app/Services/Ai/InputValidator.php
既存AI Serviceへの組み込み(5箇所)AiRecommendationService等
Environment + RiskAssessmentへのトレイト確認完了確認
ai_usage_logs テーブルの設計・作成database/migrations/
プロンプトキャッシュの実装全AI Service📅
ログローテーション設定(.env変更)config/logging.php📅

5. 業界への影響と目標

このシステムは「技術者が作った業務システム」ではなく、「業務実践者がAIを道具として使って作った業務システム」です。建設業界のDX化に向けて、特に以下の点で先進的な位置付けにあります

  • ISO監査・施工計画・環境・安全・法規制管理の統合(業界で類を見ない)
  • 「機密情報は外部AIに出さない」設計によるセキュリティと利便性の両立
  • 大手企業の情報セキュリティ要件に対応可能な「統制下でのAI活用」の実証
  • 30年以上の建設業務経験と20年のISO審査経験が詰め込まれた業務知識

今AIの活用に伴い、AIのセキュリティが大きな課題となっていますが、「AI使用禁止」ではなく、「適切な制御下での活用」という選択肢を具体例として示すことが目標とし、このシステムが業界全体のAI活用推進のモデルケースとなることを目指します

Phase 3: AIゲートウェイ・セキュリティ監視
今後作業期待効果
AI利用ログテーブル(ai_usage_logs)の実装コストの可視化・会社別分析
コスト制御(予算上限・アラート)コスト制御(予算上限・アラート)APIコストの自動管理
ルールベース匿名化サービス機密文書の安全なAI活用
セキュリティ監視Console Command日次自動チェック
セキュリティダッシュボード運用状況の可視化
プロンプトキャッシュの実装APIコスト最大90%削減
Phase 4: 組織内AI・高度なセキュリティ
今後作業内容
Ollama + ローカルLLMの検証自前AIの感触をつかむ(無料)
契約書・技術文書の匿名化処理機密情報を外部に出さない仕組み
統合AIパイプライン匿名化→外部AI→復元の一連の流れ
AI利用の完全監査ログセキュリティ監査員AI
管理ダッシュボードの高度化リアルタイム監視・異常検知
Phase 5: 商用化準備
今後作業内容
サーバーセキュリティの強化ファイアウォール・HTTPS・バックアップ
ユーザー管理のセキュリティ強化パスワードポリシー・2FA・セッション管理
スケーラビリティ対応複数社本格導入への対応
SLA・サポート体制の整備商用化に向けた運用体制

3. サーバー・ユーザー管理セキュリティ計画

3.1 ユーザー管理の強化(優先度高)
項目内容優先度
パスワードポリシー複雑性要件・有効期限の設定
ログイン試行回数制限ブルートフォース攻撃対策
セッションタイムアウト一定時間後の自動ログアウト
退職者の即時無効化アカウント無効化フローの整備
二要素認証(2FA)重要操作時の追加認証
アクセスログ閲覧UI管理者向けの操作履歴確認機能
3.2 サーバーセキュリティ(段階的に対応)
項目内容難易度
HTTPS の徹底SSL証明書の設定・自動更新
不要ポートの閉鎖ファイアウォール設定
OS・PHP・Laravelのアップデート方針定期更新のルール化
バックアップ体制自動バックアップの設定・復旧手順
ログローテーション日次ローテーション設定(保存14日)
依存ライブラリの脆弱性チェックcomposer audit の定期実行

新しいマザーボードに交換

現在のパソコンの構成

  • マザー ASUS ROG STRIX B550-A GAMING
  • CPU Ryzen9 3950X(16C32T 3.5-4.7GHz)
  • メモリ DDR4 PC4-28800 3600MHz 2✕32GB=64GB
  • グラフィックボード GeForce RTX™ 4070 Ti
  • M.2SSD PCle4.0 NVMe M.2 Kingston KC3000 1021GB PCIe Gen 4.0 x4 70000MB/S
  • M.2 SSD PCIe Gen4x4 NVMe M.2 diloca EN760 2TB 2280 4800MB/s
  • 電源 MSI 750W MAG A750GL PCIE5  PS1326
    ・PCIe 5.0 GPU ネイティブ16ピン(12VHPWR)450W対応
    ・ATX 3.0 対応/フルモジュラー設計
    ・80 PLUS Gold認証取得
  • ケース NZXT(CA-H510E-B1)
マザーを交換してケースに組込む
マザーに仮組して、稼働を確認
ASUS ROG STRIX B550-A GAMINGでAMD Ryzen 5000シリーズ AM4 対応 メモリはDDR4
新しいマザーボードが届いていた

今回は、パソコンの修理は、マザーだけを交換する、他のパーツはすべて前のを流用・・さっそく裸で組んで、テストをすると無事に起動、ケースをパーツを清掃して組込み、12時前にセットが完了した

ログインに関するセキュリティ

1.ログインに関するセキュリティ

SaaS運用に向けたセキュリティ強化として、フェーズ1(必須項目)の完了およびフェーズ2の主要項目を実装した。

1-1. HTTPS強制(フェーズ1)
  • iPadのChromeブラウザでログインフォーム送信時に「送信されている情報は保護されません」の警告が表示されていた。
  • XサーバのSSL化は設定済みだったが、LaravelのURL生成がHTTPになっていた。
    ① `app/Providers/AppServiceProvider.php` に追記
    “`php
    use Illuminate\Support\Facades\URL;

    public function boot(): void
    {
    if (!app()->environment(‘local’)) {
    URL::forceScheme(‘https’);
    }
    }
    ② `bootstrap/app.php` にTrustProxies設定を追加
    “`php
    $middleware->trustProxies(at: ‘*’);
    “`

結果

  • iPadでの警告が解消された。
  • ローカル環境(HTTP)では適用しない条件分岐を追加し、ローカルの動作も正常化。
1-2. セッションのセキュア設定(フェーズ1)

本番・ローカル各.envに以下を追記:

項目本番ローカル
SESSION_SECURE_COOKIEtruefalse
SESSION_ENCRYPTtruetrue
SESSION_SAME_SITEstrictlax

結果

  • セッションCookieのHTTPS限定送信を設定。
  • セッションデータの暗号化を有効化。
  • 既存ログインユーザーのセッションが一度無効化されたが、再ログインで正常動作を確認。
1-3. ログイン失敗のロック機構(フェーズ1)

app/Http/Requests/Auth/LoginRequest.php を確認した結果、Laravel標準のRateLimiterによる以下の機能がすでに実装済みであることを確認した。

  • 5回失敗でアカウント一時ロック
  • メール+IPアドレスの組み合わせでカウント
  • 時間経過で自動解除
  • Lockoutイベントの発火

結果

  • 追加実装不要。実装済みを確認。
1-4. セキュリティヘッダーの実装(フェーズ2)

app/Http/Middleware/SecurityHeadersMiddleware.phpを新規作成し、bootstrap/app.php` に登録。

設定したヘッダー:

ヘッダー設定値効果
Strict-Transport-Securitymax-age=31536000HTTPS強制をブラウザに記憶
X-Frame-OptionsDENYクリックジャッキング防止
X-Content-Type-OptionsnosniffMIMEタイプ誤判定防止
Referrer-Policystrict-origin-when-cross-originURL漏洩防止
Content-Security-Policyself + unsafe-inlineXSS対策

注意事項

  • ローカル環境(APP_ENV=local)では全ヘッダーをスキップする条件を追加。
  • TipTapエディタ・Axios使用のため、CSPは段階的に厳格化する方針とした。
1-4. セキュリティヘッダーの実装(フェーズ2)

app/Http/Middleware/SecurityHeadersMiddleware.hpを新規作成し、bootstrap/app.php` に登録。

設定したヘッダー:

ヘッダー設定値効果
Strict-Transport-Securitymax-age=31536000HTTPS強制をブラウザに記憶
X-Frame-OptionsDENYクリックジャッキング防止
X-Content-Type-OptionsnosniffMIMEタイプ誤判定防止
Referrer-Policystrict-origin-when-cross-originURL漏洩防止
Content-Security-Policyself + unsafe-inlineXSS対策

注意事項

  • ローカル環境(APP_ENV=local)では全ヘッダーをスキップする条件を追加。
  • TipTapエディタ・Axios使用のため、CSPは段階的に厳格化する方針とした。
1-5. 不審ログイン通知メール(フェーズ2)

新しいIPアドレスからのログインを検知し、登録メールアドレスへ通知メールを自動送信する機能を実装。
新規作成ファイル
app/Mail/SuspiciousLoginMail.php
resources/views/emails/suspicious_login.blade.php
resources/views/emails/suspicious_login_text.blade.php(HTML/テキスト両形式対応)

    修正ファイル
    app/Http/Controllers/Auth/AuthenticatedSessionController.php

      検知ロジック:

      $isNewIp = !LoginLog::where(‘user_id’, $user->id) ->where(‘ip_address’, $request->ip()) ->where(‘id’, ‘!=’, $log->id) ->exists(); if ($isNewIp && $user->email) { Mail::to($user->email)->send( new SuspiciousLoginMail($user, $request->ip(), now()->format(‘Y年m月d日 H:i’)) ); }

      メール設定

      環境設定
      本番Xサーバ SMTPサーバ(sv13426.xserver.jp:587)
      ローカルMAIL_MAILER=log(ログファイルに出力)

      動作確認結果

      • Gmail:受信トレイに正常届を確認 ✅
      • MSN(Outlook):迷惑メールフォルダに届くことを確認 ✅

      残課題

      MSN/Outlookの迷惑メール判定を解消するため、DNSへのSPFレコード追加を推奨。
      レコード種別:TXT
      値:v=spf1 include:xserver.jp ~all

      2.フェーズ別進捗

      フェーズ1(必須・リリース前)
      項目状態
      パスワードのハッシュ化(bcrypt)✅ 完了(実装済み確認)
      HTTPS強制✅ 完了
      セッションのセキュア設定✅ 完了
      ログイン失敗のロック機構✅ 完了(実装済み確認)
      フェーズ2(リリース後早めに)
      項目状態
      セキュリティヘッダー(HSTS等)✅ 完了
      不審ログイン通知メール✅ 完了
      SPF・DKIMの設定⬜ 未対応(推奨)
      パスワードリセットフローの強化⬜ 未対応(次回

      MACmini4にLaravelローカル環境構築

      元宇品の森に散歩
      MACmini4に建設アシストLaravelのローカルな環境を構築する・・・なれないMACで一日かかった
      マザーを交換することにする このマザーは6年前に購入したASUS ROG STRIX B550-F GAMING(ちょっと高級品)でAMD Ryzen 5000シリーズ AM4 対応だが、最近はメモリが高騰して数倍になっているので、高いDDR5を避けてDDR4のAM4が人気があり、まだ現役バリバリだった
      マザーは同じくB550だが、LANが2.5G対応のASUS ROG STRIX B550-A GAMING を手配する

      パソコンのエラー

      朝は京橋川の土手をキクと散歩
      ケースからマザーを取り出して、清掃して裸にして色々と試す
      とりあえず、MACmini4を使えるようにして、Laravelのシステムの再構築を行う
      メモリも交換、電源の交換、BIOS更新、USBの清掃・・・すべてやってみたが、USB device over current status detected(USB過電流検出)のエラーメッセージは消えない

      建設アシストセキュリティ監査

      1. セキュリティ監査の実施

      iso_app (建設アシスト)のセキュリティ強化を実施する

      1.1 監査方法

      Claude Code(Opus 4.7)を「セキュリティ監査員」として起用し、以下の観点でアプリケーション全体を調査しました。

      • 認証・認可の漏れ(全コントローラーを網羅的に調査)
      • テナント分離の実装状況(マルチカンパニー対応の確認)
      • ファイルアクセス制御
      • AI API への機密情報送信リスク
      • 入力検証・出力エスケープ
      • 依存ライブラリの脆弱性
      1.2 監査サマリー
      重大度 件数対応状況
      Critical6件 4件完了・2件対応中
      High8件7件完了・1件対応中
      Medium2件計画中
      合計16件 11件完了

      3. High 項目の詳細

      項目コントローラー内容状態
      認可漏れChecklistControllergetEvidence で他社データをJSON取得可能✅ 完了
      認可漏れEnvironmentControllerindex/edit/save/aiEstimate でテナント確認なし✅ 完了
      認可漏れRiskAssessmentControllerdownloadAttachment で他社ファイルダウンロード可能(16メソッド)✅ 完了
      AI情報AuditAiService被監査対象名・業務概要がAPI送信される⚠ 対応中
      AI情報SafetyPatrolController作業内容・使用機械の詳細が送信される⚠ 対応中
      AI情報risk_assessment.blade.php下請業者名・プロジェクト名がプロンプトに含まれる⚠ 対応中

      4. 是正処置の内容

      4.1 共通トレイトの新規作成

      認可ロジックを一元化する AuthorizesTenantAccess トレイトを作成しました。

      app/Http/Controllers/Concerns/AuthorizesTenantAccess.php

      このトレイトにより:

      • 認可ロジックが1箇所で管理される
      • 各コントローラーへの適用が use 一行で済む
      • 将来の Policy 移行への布石となる
      • 役割ベースの例外(システム管理者は全社アクセス可)を正しく処理
      4.2 適用したコントローラーと保護されたメソッド数
      コントローラー保護メソッド数対応回
      ProjectController8メソッド第1回
      ConstructionPlanController15メソッド第1回
      SafetyPatrolController14メソッド第1回
      ChecklistController6メソッド第1回
      EnvironmentController4メソッド第2回
      RiskAssessmentController16メソッド第2回
      合計63メソッド
      4.3 テストケース(26件 全PASS)

      各コントローラーに対して以下のパターンを網羅的にテスト:

      • 他社ユーザーが各リソースにアクセス → 403
      • 自社ユーザーがアクセス → 200(正常)
      • role=1 システム管理者 → 全社アクセス可(200)
      • 削除・変更系でDBの状態が変わらないことを確認
      4.4 実施コストと効果
      項目内容
      実施時間(合計)約2時間半
      API利用コスト$6.51(約1030円)
      外注した場合の市場価格130〜350万円相当
      コスト比約1300〜3500倍の費用対効果
      コード変更量673行追加、12行削除
      テスト件数26件 全PASS

      2. Critical 項目の詳細

      2.1 テナント分離の欠落(Critical 1〜4) ✅ 完了

      最も重大な問題でした。URL のIDを変えるだけで他社のデータに読み取り・編集・削除アクセスが可能な状態でした

      対象コントローラー影響範囲重大度
      ProjectControllershow/edit/update/destroy/editOverview/updateOverview/uploadPhoto(8メソッド)Critical
      ConstructionPlanControllerdownloadDocx/downloadXlsx/generatePdf/diagramEditor等(15メソッド)Critical
      SafetyPatrolControllercreate/store/index/show/destroy/generateAiChecklist等(14メソッド)Critical
      ChecklistControllerdeleteEvidence/getEvidence等(6メソッド)Critical
      2.2 AI API への機密情報送信(Critical 5〜6) ⚠ 対応中

      発注者名・予算・下請業者名・近隣企業名などが、マスキングなしで Anthropic Claude API に送信される可能性がありました。

      【現状の評価(設計意図の確認後)】
      現状のAI利用は「チェックボックス選択による固定語彙のみを送信」という設計になっており、実質的な機密情報漏洩リスクは低い状態です。ただし、将来の機能拡張で誰かがフリーテキストを送る実装をしてしまうリスクの予防として、コードレベルのガード機構を実装予定です。

      5. 進捗状況

      フェーズ内容状態
      Phase Aリスクアセスメント(自主監査)✅ 完了
      Phase B-1Critical 1〜4 テナント分離✅ 完了
      Phase B-2High 7〜9 認可漏れ(Environment, RiskAssessment)✅ 完了
      Phase B-3Critical 5〜6, High 10〜12 AI関連⏳ 次フェーズ
      Phase B-4Medium 13 ファイル名処理⏳ 後ほど
      Phase CAIゲートウェイ構築・匿名化📅 来月
      Phase D監視・運用体制の確立📅 数ヶ月後
      Phase E継続的改善(PDCA)継続

      6. 次フェーズの計画

      6.1 AI送信情報のガード機構(InputValidator)

      現在の「固定語彙のみ送信」という設計意図をコードで強制するバリデータークラスを実装します。

      • 会社名・個人名らしき文字列の検出
      • 長い数字列(電話番号・契約番号等)の検出
      • 検出時の警告ログ記録
      • 既存のAI Serviceへの組み込み(5箇所)
      6.2 将来計画:ローカル AI 前処理

      契約事項・技術的背景・経営内容の文書化を扱う際、自前サーバーに置いたローカルAIで一般化処理をしてから外部AIに送信する仕組みを構築予定です。

      • ルールベース匿名化サービス(Phase 1): 氏名・会社名・金額の自動マスキング
      • ローカルLLM検証(Phase 2): Ollama + Llama 3.2 などで自前AIの感触をつかむ
      • 統合AIゲートウェイ(Phase 3): 匿名化→外部AI→復元のパイプライン構築

      Claude Code 最適化

      1. プロジェクト容量の実測結果

      Claude Codeのトークン消費がものすごい・・・いくら請求が来るやら(トークン量は1億となっていた!!)、これは大変なのでトークン削減・コスト最適化の実践を考える
      iso_app プロジェクトの容量分析結果(2026年5月実測):

      フォルダサイズ(MB)分類除外対象
      node_modules/103.25npmライブラリ
      ✅ 除外必須
      vendor/73.14Composerライブラリ✅ 除外必須
      storage/app/59.91写真・添付ファイル✅ 除外必須
      storage/logs/4.33ログファイル✅ 除外必須
      storage/fonts/5.87IPAexフォント✅ 除外必須
      storage/framework/0.27Laravelキャッシュ✅ 除外必須
      public/18.39ビルド成果物・画像⚠ 一部除外
      resources/1.32ビュー・CSS・JS❌ 必要(含める)
      database/0.86マイグレーション❌ 必要(含める)
      app/0.38実コード❌ 必要(含める)

      ⚠ 実コード(app/, resources/, database/, routes/, config/)の合計はわずか 2.7MB。全体の 1% です。

      2. .claudeignore の設定

      .claudeignore ファイルをプロジェクトルートに作成することで、Claude Code が読み込む対象を 268MB から 2.7MB に削減できます。

      依存ライブラリ(最重要)
      vendor/
      node_modules/
      アップロードされた写真・添付ファイル(iso_app固有)
      storage/app/public/photos/
      storage/app/public/evidence/
      storage/app/public/plans/
      storage/app/public/ra_attachments/
      Laravelキャッシュ・ログ
      storage/logs/
      storage/framework/
      storage/fonts/
      ビルド成果物
      public/build/
      public/storage/
      手書きCSSは含める
      !public/css/print-common.css
      Git・IDE
      .git/
      .idea/
      .vscode/
      バイナリ・大容量ファイル
      *.zip *.tar.gz *.pdf *.xlsx *.sql *.sqlite

      ▶この続きを見る・・・・

      Laravel 基礎知識

      1. Laravel と

      Laravel は PHP で書かれたオープンソースの Web アプリケーションフレームワークです。2011 年に Taylor Otwell によって作られ、現在では PHP フレームワークの中で最も人気のあるものの一つとなっています。MVC(Model-View-Controller)アーキテクチャを採用しており、ビジネスロジック・データ・表示を分離して開発できます。

      1.1 主要な機能
      機能説明
      Eloquent ORMデータベース操作をオブジェクト指向で直感的に扱える。SQLをほとんど書かずにDB操作が可能
      Blade テンプレートシンプルかつ強力なテンプレート構文。HTMLとPHPを綺麗に分離
      Artisanコマンドラインツール。コードの自動生成・マイグレーション・キャッシュクリアを効率化
      ルーティングRoute::get(‘/users’, …) のような直感的な記述でURLとコントローラーを結びつける
      認証(Auth)ログイン・登録・パスワードリセットなどの認証機能を標準装備
      マイグレーションデータベース構造のバージョン管理
      キューと スケジューラ非同期処理・タスクの定期実行

      2.Composer による依存管理

      2.1 Composer とは

      Composer は PHP の依存管理ツールです。JavaScript の npm、Python の pip に相当します。Laravel 自体も Composer を使ってインストール・管理されます。「アプリの部品調達係」と考えると理解しやすいです

      2.2 Composer の3つの役割
      • 買い物リストの管理: composer.json = 「このアプリに必要な部品リスト」
      • 部品の調達と配置: Packagist からライブラリを取得して vendor/ に配置
      • 部品同士の互換性チェック: バージョン矛盾がないか自動確認

      2.3 ライブラリの所在
      場所役割
      Packagist (packagist.org)PHPライブラリのカタログ(Amazonのサイトに相当)
      GitHub実際のソースコードの置き場所(Amazonの倉庫に相当)
      vendor/ フォルダあなたのPCに取ってきた完成品(自宅に届いた荷物)
      ローカルキャッシュ一度落としたものの控え(物置に置いてある予備)
      2.4 よく使うコマンド

      composer install               # composer.lock通りにインストール
      composer update                # 制約内で更新
      composer require guzzlehttp/guzzle  # 新規パッケージ追加
      composer remove vendor/package      # パッケージ削除
      composer dump-autoload         # オートローダーの再生成

      ▶この続きを見る・・・・

      日曜日も天気が良い

      元宇品の森の中
      元宇品のプリンスホテル側を散歩
      Codexをインストールする

      建設アシストのコードが多くなってきたので、Claude Codeのトークン消費が多くなってくる(毎回、コードを読み込んで応答するため)・・・2日ごとにクレジット要求が来るようになったので、今噂のchatJPのClaude Code向けのプラグインであるCodexをインストールをして、さっそく工事管理のフロントエンドを修正させたが、ずいぶん時間がかかり、おまけにClaude codeも消費しているようで、またクレジットが切れてしまった・・・いくら請求が来るのか戦々恐々・・・Codexが使えるようであればFreeから契約するかと思っていたが、もう少し様子をみる必要がある・・・・Claude Codeを使わなくても、Clude,Geminiなどでもコード作成はできるが、スピードとシステム全体の網羅性はClaude Codeを使いだすと数倍以上に効率が良いため、中々戻れない

      ▶この続きを見る・・・・

      内部監査システムを構築

      昨日に引き続き内部監査のシステムを構築する・・・ようやく、難しい監査チェックシートを作成、かなりClaudeを使い倒していると、昨日に引き続きもう追加のクレジットの要求・・・かなりの金食い虫だが、仕事は素晴らしいので対価としては多少納得
      内部監査システムはかなり完成に近い、明日で細かな詳細を仕上げるかな

      朝の散歩では、宇品波止場にはクルーズ船が停泊
      内部監査の個別監査計画書
      内部監査リスト
      監査チェックシート ISOシステムはタブメニューで
      監査チェックシートはCSVで雛形を取り込み

      内部監査の複雑な仕組みのアプリうケーションが作成できれば、どのような業務アプリも作成できる自信がついた

      監査指摘シート
      監査での不適合 是正処置報告書

      京橋川の散歩

      朝は、雲が多いが晴れていたが、15時過ぎから雷が鳴り雨が降った
      先週から良い天気だったので久しぶりの雨

      甲斐犬のキクと京橋川を散歩

      今日は内部監査システムの監査チェックシートに使うテンプレートを作成・・・やはり、このデータは自分で作らないとAI任せとはできない(しかし最後は自分で作成した内容をAIでコ―ディング)

      キクらしいが白い花が映えている
      朝食は卵丼
      隣の家が解体されて、通りから我家が見えるように

      雨の4月の最終日

      4月の最終日は、朝から雨となり一日中降り続く・・・ゆっくりと朝食をした後に、レインコートを着込んでキクの散歩・・いつもより短いコースで切上げる
      今日は、ネットワーク工程表のアプリを仕上げることに・・・しかし、最近のClaudeは少しポンコツ気味なってきた、要求が難しいのもあるが、中々良い結果を返さない・・・何回も繰り返していると、トークンが増えて、またクレジットを要求される・・・今回はかなりつぎ込んだな

      朝から雨が降る レインコードでキクの散歩
      建設アシストでネットワーク工程表アプリを作成する
      ネットワーク工程設定画面

      雨の日曜日

      朝はまだ雨は小雨 元宇品の森を散歩 今日は山歩きは辛かった

      朝から少しづつ降り出した雨は、昼頃から本降りの雨となって夜半まで降り続く・・・朝は、キクと元宇品の森を散歩で歩く、日曜日なのでマラソンする人や、犬の散歩など多くの人が来ていて、灯台の駐車場は満車の状態・・・散歩の帰りには、ガソリンが警告灯が付いたので、四国の旅行で給油したときから給油していない・・忘れないうちにスタンドで給油、まだガソリンは¥157と安かった
      昼前に買い物に行き、明日の厨房の大工仕事のため、木材を購入する
      昼からは、ネットワーク工程表のアプリケーションを作成する・・・やはりネットワーク工程表は中々難しいが、Claudeが手助けしてくれるが、難しい依頼はトークンの消費が激しく、クレジットの要求がすぐ来るので、使い方は考えながらする必要がある
      夕方には、ほぼ納得できるような工程表が作れるアプリケーションが出来上がった・・・実際に入り色な工程を作成して調整してゆく必要があるが、問題は印刷のスケールをどのように調整するかが当面の課題、ネットワークがうまく表現できない

      建設アシストで工程表の作成アプリケーションを作成中

      元宇品の散歩 Claude Codeの話

      元宇品の海岸をキクと散歩
      天気は下り坂

      Claude Codeを使っていてnpm版v2.1.83となっているが、廃止されて、新しくネイティブに切り替えをした・・Pathの設定に手間取ったが、新しいClaude Code v2.1.112(ネイティブ版) Sonnet 4.6 · API (モデル)Opus 4.7 xhigh!となった
      今回のモデルでは/effortによって、精度と速度を変更できる・・・当然、hightにすれば、API従量課金が増えることになる・・・今までネットなどで話題となっているが、claude codeの従量が増大して課金が増える問題がある・・・・TAMも今週になって一気に$25を消費してしまった
      原因を探ると、今までのプロセスをすべて読み直して推論している結果だった・・Clude codeを使いだしてから、まだ1ヶ月にはならないが、ずーと継続していたことになる・・・あるミッションが終われば、一度、/clearして、今までのプロセスを終了させる必要がある
      Web版 vs Claude Code の使い分け

      用途推奨理由
      方向性の検討・設計Web版無制限に議論できる・課金なし
      エラーの原因分析Web版繰り返し質問してもコスト増えない
      アーキテクチャ相談Web版長い議論に向いている
      実際のコード編集Claude Codeファイル操作が必要なため
      ファイル生成・実行Claude Codeターミナル操作が必要なため

      建設アシスト Help作成

      各ページにHelpのモーダルを設置

      きょうから少し天気は下り坂
      建設アシストも予定していたメニューは、ほぼ出来上がったので、各ページにHelpのモーダルをつくり、使い方などの説明を書いてゆく
      それに合わせて、動きやメニューボタンの配置など細かな操作部分の改修を行ってゆく・・・地味な作業だが、これが重要・・・・しかし、割と単調なので疲れてしまう
      AIの選定の調整も重要なので、条件を変えて確認する

      小雨の桜は八分咲き

      京橋川の土手の桜は八分咲き
      建設アシストの環境側面のアプリを作成
      春ですね

      昨日にようやくClaude Codeに渡す要件ができたので、改めてもう一要件を見直して、修正する
      昼過ぎからClaude Codeに要件を渡すと、修正を含めて2時間ほどで、環境側面のアプリケーションが作成できた・・・Claude Codeは素晴らしく優秀、しかし昨日に月の利用限度は超えてしまい、追加のクレジットを購入することになった
      さてこれから、色々データを与えて正しい判断をするかを確認しなくてはならない

      昼からディスプレイの配置換え

      散歩でキクは猫ちゃんとご挨拶

      午前中は散歩から帰ると、建設アシストのリスクアセスメント作成手順のデザイン変更とAIによるRA項目の特定を調整する・・・かなり使えるようになってきた

      天気の良い、京橋川の土手
      昼から机のディスプレイの配置換え

      誕生日会 Cluadeに乗換

      今までソフトウエア開発にGemini3 Proを使っていたが、調子がおかしくなりエラーを繰り返す・・最近評判のClaude codeに乗り換える・・・使ってみた感想は、すごい!!・・・Geminiを使ってみたときも感激したが、Cluadeはさらにその上を行く、特にコード開発に特化した、Cluade codeは素晴らしく、開発スピードは10倍以上、恐ろしい世の中になったものだ
      あっという間に技術が進む、AIの世界
      夕方は誕生日会でラグーンに、19:30からの予約しか取れなかったようだが、多くのお客で混雑していた・・・ラグーンは4月から改装で休館らしい

      ラグーンでいつもの誕生日会 かなり混雑していた
      Gemini3 ProからClaude codeに乗り換え
      いつもの焼肉
      ▶この続きを見る・・・・

      彼岸の中日は墓参り

      良い天気なので、前の日に花を購入して墓参りにRIEと行く、中日なので墓参りの人が多くて混雑していた・・そのあと、買い物に、かなり多くのものを購入

      今日はお寺も混雑
      甲斐犬のキクと元宇品の散歩
      元宇品には椿が咲いていた
      Build-Assist申込画面
      メールが送付される

      下松から広島に Build-Assist申込画面

      下松での仕事は予定通り、今日で完了
      ここの組織も3年間ほど訪問したが、今回が最後となる
      少し早く終わったが、新幹線の時間が悪く、1時間弱、徳山駅で待つ

      下松での出張は朝から雨となり、帰宅まで雨は降っている

      そろそろBuild-Assistの試験運用を始めてゆくので、申し込み用の入口をつくる・・申し込みをホームページから受付して、メール認証を経て、IDの発行をする過程・・中々複雑で、難しい、ゆくゆくは電話認証も組み入れたいが、当面は、メール認証のみで運用予定

      朝の散歩 下松に出張

      京橋川の土手を歩く 良い天気でモクレンが奇麗
      昼から下松に出張

      今日は朝から暖かい良い天気、散歩の後、Build-Asasistの施工計画書を手直し、やはり計画書は工事の種類、発注先によって多様な纏め方が存在して、一様な標準化したスタイルは難しい・・・試行錯誤しながら、最適を求めてゆくしかない・・・新たに、組織ごとに独自の内容が追加登録できるタイプに変更した

      昼から二日間の予定で下松に出張、ちょうど良いのぞみが連絡出来て最短時間で下松駅に到着できた

      施工計画書のテンプレート化を図っているが、2~3種類では収まらない

      気持ちの良い土曜日だが、デスクワーク

      天気の良い京橋川の土手を歩く
      甲斐犬のキクと散歩
      3/24には研修の資料は月曜日には送付しなくては

      三日間、VFKさんと九州で遊んだので、いよいよ資料の提出までの時間がない・・・散歩が終わるとPPTの作成を夕方まで頑張る
      どうやら、全体の構成が完成した・・基本的には3年前の資料を修正するつもりだったが、3年も経つと情勢が変化して内容が陳腐化するので、ほとんど作り直し

      夕方からBild-Assist(建設アシスト)の新しいページとして、施工計画書の作成に取り掛かったが、これは中々手ごわい、どこで妥協するかがポイントか

      Build-Assistでは施工計画の開発着手

      午前中は研修資料、昼から安全パトロール写真台帳

      元宇品の森をキクと歩く

      研修用の資料提出が来週初めと迫ってきたので、今日は午前中はPPTの編集、午後からはBuild-Assistの安全パトリール写真台帳をLaravelで作成

      広島港の入口の灯台
      砂浜で甲斐犬のキク 三日ぶりの散歩
      安全パトロールの写真台帳をつくる・・・写真撮影用
      ▶この続きを見る・・・・

      元宇品を散歩

      元宇品の先端にあるクスノキの大木と灯台
      広島港の出入り口の灯台
      宇品波止場公園には大型のクルーズ船が入港
      明日の旅行に控えて車を洗車

      散歩して、ガソリンを満タンに、洗車して、銀行によって帰ると10時過ぎ、食事をして朝ぶろに入る
      昼食を食べると急に眠気が、15時まで昼寝・・・15時すぎから、報告書をまとめて、夕方からBulud-systemのAI判定部分のサブルーチン化を図る、共通のルーチンを使うことにより保守メンテの効率を上げる
      それから、安全パトロールの管理画面をつくる・・・あとはパトロールの写真管理だな

      安全パトローの実施管理画面

      明日からVFKさんと二人で二泊三日で九州の小国に温泉ざんまいに、ちょと煮炊きができるようにキャンプ道具を積んでおく

      安全パトロールシステムの完成

      キクと京橋川の土手を散歩
      ようやく安全パトロール表がPDFで出力できた
      AIでチェック項目を作成させた安全パトロールチェック表 タブレット対応
      安全パトロール出力 条件入力

      昨日からトラブっていた、PDF印刷をプラウザ経由に変更してようやくまともに、AI判定のボーダルの変更、追加機能を色々加えて、どうやら原型は出来上がった

      春が近い

      モモの花が咲いている 春近し

      今日は春らしい暖かい天気
      散歩は少し長めに京橋川の土手を歩く

      京橋川の西の護岸から東の護岸を歩く

      今日は施工計画書のシステム計画書をつくり、昨日からの安全パトロール表の修正をするが、中々Geminiは良い答えを出さない・・・特にパトロール表をPDFに出力で、文字化けがひどく、夕方まで色々と試みたが、ついにあきらめて匙を投げる

      • 2026年6月
        1234567
        891011121314
        15161718192021
        22232425262728
        2930