Bash 3.2.57 をビルド(Linux 上、homebrew 利用)
こんにちは。 Bash 3.2.571 をビルドしました(Linux 上、homebrew 利用)。 $ brew tap kkdd/tap $ brew install kkdd/tap/bash32 $ $ brew test kkdd/tap/bash32 ==> T...
View ArticleClaude Codeのサブエージェントを設計する — 責務分割とツール権限の絞り方
はじめに 当社(合同会社ジョインクラス)では、Claude Codeのサブエージェントを17個運用し、launchdで17本以上のジョブを無人で回しています。「経理」「出版」「朝ダイジェスト」など、社内の部門をそのままサブエージェントにした構成です。 最初からうまくいった...
View Articleなぜ脆弱性診断ツールは「手打ちパッチ」で誤検知を連発するのか? BashとSQLiteで過剰アラートをゼロにする超軽量プローブを作った話
本文 はじめに:セキュリティ診断の現場で起きている「手打ちパッチ地獄」 インフラエンジニアや情シス、あるいはMSP(運用監視)の現場で、定期的にOpenVASやNessusなどの脆弱性スキャナーを回している方は多いと思います。 そして、スキャン結果のレポートを見て、一度...
View Article【書評】 マスタリングLinuxシェルスクリプト 第2版 ―Linuxコマンド、bashスクリプト、シェルプログラミング実践入門
はじめに シェルスクリプトは「小さな自動化の道具」と見られがちですが、サーバー運用、CI/CD、ログ解析、デプロイなど、あらゆる現場の接着剤として使われ続けています。 今回読んだのは、オライリー・ジャパンの『マスタリングLinuxシェルスクリプト 第2版』です。 項...
View Article96。並列で投げた2つのBashコマンドの片方で`cd`が無視された直後、「`id:`が無い」と誤判定された記事の数だった
はじめに 96。 これが今回の数字です。今回の記事を書く前の事前チェックで、「qiitaリポジトリの全記事にid:フィールドが付いているか」をgrep -L "^id:" public/*.mdで確認しました。対象は96本。結果、96本全部が「id:が見つからない」と表示...
View Article【開発環境】#3 — PM2 はパスの空白で再起動ループに入る。args は配列で渡す
書類: No such file or directory で止まらない再起動 自宅の Mac mini で、Python のスケジューラと FastAPI のバックエンドを PM2 で常駐させている。Node.js のアプリではないが、再起動ポリシー・ログのローテーショ...
View Article/skill-doctor でスキルの健全性を診断する ― 13スキル107KBを常時ロードしていた会社の棚卸し記録
はじめに:スキルは増えるが、減らす仕組みがなかった 当社(合同会社ジョインクラス)は、Claude Codeを「AI経営チーム」として運用しています。17のサブエージェントと13のカスタムスキルが .claude/ 配下に住んでおり、launchdから1日40本以上のヘッ...
View Articleサブエージェントを5階層までネストする — 使いどころと破綻点【Claude Code】
はじめに:1人会社で「部長の部下の部下」まで作った話 当社(合同会社ジョインクラス)は、社員が僕1人です。その代わりに Claude Code のエージェントを17体(CTO、CMO、出版部長、税理士…)置いて、launchd で17本以上のジョブを回しています。 組織図...
View ArticleBash の基本文法を、実務でよく使う順に整理しました
1. コマンドの基本形 command option argument 例: ls -la /tmp 意味は、 ls = コマンド -la = オプション /tmp = 対象 です。 複数コマンドを1行に書く場合は ; で区切れます。 pwd; ls; da...
View Articleセルフホスト環境でClaude Codeを動かす — 自社Macで17ジョブを無人運用している構成と注意点
はじめに 当社(合同会社ジョインクラス)は、社員が筆者ひとりの会社です。出版・受託開発・SaaSの3事業を、自宅のMac 1台で動くClaude Codeの無人ジョブ17本で回しています。クラウドの実行基盤は使っていません。理由は単純で、財務データや戦略メモを含むリポジト...
View Article条件付きフックで危険なコマンドを止める — PreToolUse の実装とテスト
きっかけは git push --force でブランチが消えた日 僕は合同会社ジョインクラスで、Claude Code を中心に会社の業務を 98% 自動化して回しています。launchd ジョブが 17 個、記事の自動公開が 1 日 3 チャネル、SNS 配信が 1 ...
View ArticleBashを覚えるとLinux学習が一気に楽になる。ターミナルで学べる無料教材を作りました
Linuxを学習し始めたとき、多くの人が最初に戸惑うのがターミナルです。 GUIならボタンをクリックするだけで済む操作も、Linuxではコマンドを入力して実行する必要があります。 そのため、 lsとは何か分からない cdで移動できない パスの考え方が理解できない エラーが...
View ArticlemacOS の /bin/bash で "$変数(" と書くと、全角文字の1バイト目が変数名に食われる
macOS に最初から入っている /bin/bash(3.2.57)で、次の1行が落ちます。 echo "値=$d(かっこ)" set -u を付けていれば d�: unbound variable で終了します。付けていなければ、$d の値が消え、さらに「(」の先頭1バ...
View Articlelaunchdから~Documentsは見えない - Obsidian Vault自動バックアップで踏んだmacOS TCCの壁
TL;DR Obsidian Vault を Google Drive からローカルへ移し、launchd で日次バックアップを組んだ 移設先に ~/Documents を選んだら、launchd から起動したプロセスが一切アクセスできなかった。macOS の TCC(...
View Article【Linux初心者向け】コマンドの成功・失敗を確認する方法|$?と&&・||を実例で解説
こんにちは、Reoです。 現在はフリーランスのインフラエンジニアとして働きながら、インフラ特化の学習サービス「InfraDojo(インフラ道場)」を運営しています。 Linuxでコマンドを実行したあと、 「何も表示されなかったけど、成功したの?」 「前の処理が失敗したら、次...
View Articlemkdirによるアトミックロックで多重起動を防ぐ — cron/launchdの実践パターン
はじめに 僕は1人会社をほぼ全自動で回していて、現在 launchd ジョブが17個動いています。記事の自動公開、SNS配信、売上集計、朝ダイジェスト。自動化率は98%です。 その運用で一番高くついたバグが「多重起動」でした。Zenn は1日1コンテンツというレートリミッ...
View Article【Linux初心者向け】ファイル名にスペースがあるときは?クォートの使い方を実例で解説
こんにちは、Reoです。 現在はフリーランスのインフラエンジニアとして働きながら、インフラ特化の学習サービス「InfraDojo(インフラ道場)」を運営しています。 Linuxで、存在するはずのファイルを指定したのに、 No such file or directory ...
View Articleエージェント間のデータ受け渡し — ファイル・構造化出力・戻り値の使い分け
はじめに 僕は一人で会社を運営しながら、10部門ぶんのAIエージェントをClaude Codeで回しています。launchdジョブは17個、記事の自動公開は3チャネル/日、自動化率はだいたい98%。AI運用コストは月2万円前後です。 この規模になると、エージェント単体の賢...
View ArticleWSLでWindowsエクスプローラーをいい感じに呼び出す
WSLでWindowsエクスプローラーをいい感じに呼び出す 設定 .bashrcに以下のaliasを入れておきましょう。 alias名(関数名)は、お好みで。 function wexplorer(){ command /mnt/c/Windows/explor...
View Article長時間の pg_dump / pg_restore を実行した際に進捗確認をするためのTips
はじめに 先日、既存DBを壊さず「別名の一時DB」として複製する pg_dump / pg_restore の実践という記事を投稿しました。 この作業に際して、 pg_dump / pg_restore を実行した際に進捗を把握するためにnohup でバックグラウンド実行...
View Article