NeuralOS
GuideIntermediate

不可侵の守護者 · あなたのユーザーに届く前に、すべての変更をチェックするCI

AIで作るどんなプロジェクトにも、一人ではなくなる瞬間が訪れます。もう、自分のコンピュータでテストしているあなた一人ではありません。向こう側には本物のユーザーがいて、あなたがプッシュするすべての変更が彼らに触れる可能性があります。そこで恐怖が生まれます。なぜなら、建設モードのAIは、アプリが「動く」ことに集中し、混入したシークレットキーや、開けてしまったデータベースの穴や、知らないうちに壊したファイルを狩ることには集中しないからです。この教材は、あなたに守護者を組み立てます。7人の検査官を持つCI(継続的インテグレーション)が、本番環境に届く前に、すべての変更をチェックし、たった1人でも不合格なら、あなたが直すまで変更をブロックします。理論ではありません。本物の、検証済みのリポジトリで、4つのファイルにコピーし、3つのデータを調整し、プッシュ1つで起動します。コストは実質ゼロ、一度組み立てれば永遠にあなたを守ります。これをインターネット上でアプリを保護すること(それは別の教材です)と混同しないでください。これは、あなたのコードが世界に存在する前に通過する、自動のゲートです。

Jul 19, 202614 min
これは誰のため?
AIで開発していて、すでに本物のユーザーがいる(またはこれから持つ)人なら誰でも — プログラマーである必要はありません。あなたのプロジェクトがGitHubに存在し、データベース(Supabase)に接続しているなら、この守護者はあなたが下せる最良の決断の一つです。4つのファイルをコピーして一度インストールすれば、そこから先は、すべての変更が誰にも触れる前に7人の自動検査官を通過します。あなたは緑のチェックが見えたら承認するだけです。

その瞬間 · 必要性が現れるとき

最初は一人で開発します。何かを変えて、画面を更新して、動くのを見て、完了。リスクはありません。エラーで苦しむのはあなただけ、自分のマシンの上で、2分で直します。この段階は楽園です — そして罠でもあります。なぜなら「自分の画面で動くなら、大丈夫」ということに慣れてしまうからです。

その瞬間が変わるのは、他の誰かがあなたのアプリに依存する日です。登録する最初のユーザー。すでに支払っている顧客。コードにも触れる仲間。そこから先、あなたがプッシュする変更はもうあなただけに影響するのではありません。本物の人のアプリを壊したり、もっと悪いことに、彼らのデータを漏らしたりする可能性があります。そしてここに問題があります — あなたはもう、すべての変更を一つ一つ見ていません。AIに何かを頼み、8つのファイルを作り、あなたは2つ読み、承認し、プッシュする。読まなかった6つの中に、大惨事が潜んでいる可能性があります。

こうイメージしてみて
空港を思い浮かべてください。一人で開発しているとき、あなたは自分の家の中を歩いています。検査もいらないし、必要もありません。でも、あなたのコードが本物のユーザーに向かって「飛び立つ」日には、搭乗ゲートにセキュリティチェックが必要です。この教材の守護者がそのチェックです。チェックされずに通れる者はいません。急いでいようが「きっと大丈夫」だろうが関係なく — マシンは同じように、いつも、疲れも気の散りもなくチェックします。

その痛み · どこから生まれ、なぜこんなに痛むのか

痛みは最初から劇的ではありません。ハッカー映画ではありません。むしろ、積み重なるとあなたに高くつく、小さな事故の連続です。そしてすべては同じ場所から生まれます。建設モードのAIは楽観的なのです。 新しい機能を動かすことを考えていて、その変更が別の何かを壊しうる千通りの方法を考えていません。それがAIの性質であり — 夢中で作っているときのあなたの性質でもあります。

最も高くつく事故は、シークレットキーの漏洩です。AIにサービスを接続するよう頼むと、「早く動かすために」あなたのAPIキーをファイルに直接貼り付けます。あなたは気づかず、承認し、GitHubにプッシュします。そのキーは今、公開されています。GitHubを24時間スキャンしてまさにそれを探しているボットがいます — 数分で見つけ、あなたのお金を使い始めたり、あなたのシステムに侵入したりできます。洗練された攻撃ではありません。あなたが落としたことに気づかない財布を拾うように、他人のマシンが地面から拾った不注意です。

2つ目は、データベースの穴です。知らないうちに、あなたのユーザーのテーブルを誰でもアクセスできる状態にしたり、持つべきでない権限を持つ関数を作ったりする変更。見えません。アプリはまったく同じように動き続けます。でもあなたは今、誰かが見つけるまで誰も閉めない窓を開けたままにしたのです — そしてその頃にはもう手遅れです。

3つ目は最も一般的で、最も華やかさに欠けます。前は動いていた何かを壊した。 ボタンAを直して、知らないうちにボタンBを切断した。素早いテストではAだけを触ったので、それが見えませんでした。Bを使っていたユーザーは壊れたアプリに遭遇します。プログラミングではこれに名前があります — リグレッション(退行)— そして日々の本当の痛みの80%がこれです。

正直に · これは事故であって、黙示録ではない
恐怖を売るつもりはありません。これらの失敗のほとんどは、時間内に狩れば数分で直ります。問題はそれらが解決不可能な大惨事であることではありません — 静かに紛れ込み、あなたが最も予想しないときに爆発することです。金曜の夜、怒った顧客とともに、何を変えたかもう思い出せないときに。守護者はあなたがミスを犯すのを防ぎません(みんなミスします)。それらのミスがあなたのユーザーに届くのを防ぎます。ゲートで、まだ直すのにゼロコストのうちに狩ります。

では、もしやらなかったら? 何も起きません…しばらくは。それが罠です。守護者なしで何週間も動き、あなたは油断し、そしてプロジェクトが本当に重要になり始めたまさにそのとき — ユーザー、お金、評判が懸かっているとき — 30秒で回避できたはずの事故が訪れます。守護者は、とても高くつく一日に対する安い保険です。

7人の検査官 · それぞれが何をチェックするか

守護者は魔法のブロックではありません。7つの具体的なチェックで、各変更に対して自動で走ります。7つすべてが通れば、緑のチェックが見え、変更は進めます。たった1つでも不合格なら、赤くなり、あなたが直すまで変更はブロックされます。それだけシンプルで、それだけ厳格です。走る順番に、一つずつ見ていきましょう。

こうイメージしてみて
セキュリティチェックに一列に並ぶ7人の検査官です。1人目はポケットに危険物がないかチェックします(シークレット)。2人目 — 責任者 — は金庫室の扉が開いていないかチェックします(データベース)。残りはあなたのスーツケースがきちんと作られているか、何も壊れていないか、すべてが噛み合っているかをチェックします。検査官が1人でも「ダメ」と言えば、搭乗できません。 例外なし、「急いでいるから」もなし。

1 · Gitleaks — 誤ってシークレットキーを入れたか? 変更全体をスキャンして、認証情報らしきものを探します。APIキー、パスワード、トークン。シークレットの匂いがするものを見つけたら、ピシャリと止まります。すべての中で最も高くつく事故からあなたを救う検査官なので、真っ先に走ります — 何かをインストールするより前に、gitのクリーンなツリーの上で。そのキーが公開リポジトリへ一歩も進まないように。

2 · セキュリティゲート(Supabase advisors) — この変更はデータベースに穴を開けたか? これは責任者の検査官で、だからコードをチェックする者の中で真っ先に走ります。 Supabaseに直接尋ねます。ユーザーのテーブルが鍵(RLS)なしになっていないか? 誰かが危険な権限を持つ関数を作らなかったか? 与えるべきでないアクセスを付与しなかったか? 答えがイエスなら、ブロックします。これが、静かな不注意からあなたのユーザーのデータを守る検査官です。

3 · Type-check — 型は噛み合っているか? 現代のプログラミングでは、各データには「型」があります(これは数値、これはテキスト、これは日付)。この検査官は、たとえばテキストと日付を足していないことを確認します。アプリが起動すらする前に、膨大な種類のバグを狩ります — さもなければ、最悪のタイミングでユーザーの顔の前に現れるエラーです。

4 · Lint — コードはきれいか? リンターは悪い習慣の検査官です。宣言されて一度も使われない変数、死んだコード、問題を引き起こすと知られたパターン。気まぐれな美学ではありません — 汚いコードはバグが隠れる場所です。リンターは、本当の汚れが見えるように、家を整頓しておくことを強制します。

5 · Format — 書式は一貫しているか? すべてのコードが同じに見えること。同じスペース、同じ引用符、同じスタイル。こだわりのように聞こえますが、共通の言語です。複数の人(または複数のAIセッション)が、合意された書式なしに同じプロジェクトを触ると、各変更は、あなたがやったことを、動かされた引用符と並べ替えられたインデントの群れと混ぜてしまい — もうアイデアとノイズの区別がつきません。検査官は全員に同じ方言を、一度で永遠に課します。だから誰も二度と議論する必要がありません。

6 · Tests — 前に動いていたものは、まだ動くか? これがリグレッションを狩る検査官、上の痛み#3です。主要な機能が正しい結果を出し続けることを検証する自動テストです。ボタンAを直した。テストはB、C、Dがまだ動くことを確認します。大きな変更を恐れずにできるようにする検査官です。なぜなら、何かを壊したら即座に知らせてくれると分かっているからです。

7 · Build — 本当にコンパイルされるか? 最後の検査官は、公開されるかのように、アプリをゼロから組み立てます。なぜなら「自分のコンピュータで動く」ことと、最初からクリーンにビルドできることは別物だからです。もしビルドがここで、ゲートで失敗するなら、ユーザーが白い画面を見ている本番環境で失敗するよりも無限にマシです。

順番が重要 · 責任者が最初
セキュリティゲートが最初に走ることに注目してください(type-check、lint、format、tests、buildより先)。これは意図的です。あなたのユーザーのデータのセキュリティが最も重要なので、他の何かに時間を費やす前にチェックされます。データベースに穴があるなら、コードが美しかろうと関係なく — 変更は即座にブロックされます。快適さではなく、被害で並べられた優先順位です。

そのコスト · なぜこれが実質無料なのか

企業レベルの守護者ならお金がかかると思うでしょう。いいえ。これは~$0で、チェック1回あたり約15秒しか追加しません。正直な内訳です。Supabaseのadvisorsは無料。GitHub Actions(検査官を走らせるエンジン)は、プライベートリポジトリで月2,000分の無料枠をくれます — そして公開リポジトリでは無制限かつ無料です。7つのチェック1回は数秒で終わるので、2,000分あれば月に数千回のチェックを一銭も払わずにできます。

ナプキンの上の計算
1日10回変更するなら、月に~300回です。1回~15秒として、無料の2,000分のうち~75分を使います。1,925分余ります。訳すと、普通のプロジェクトなら、これは永遠に無料です。 その代わり、最初の高くつく事故を回避できます — APIキーを1つ漏らさないだけで、もう千回分の元が取れています。建設者としてのあなたの人生で、これほど露骨にあなたに有利なコスト対効果の決断はほとんどありません。

そのリポジトリ · あなたがコピーするもの

何も発明する必要はありません。守護者のすべては、公開の、検証済みの、コピーする準備のできたリポジトリにパッケージされています。あなたのプロジェクトに持っていく4つのファイルと、ステップごとの日本語インストールガイドです。純粋なJavaScriptで書かれていて、変なものには一切依存しません。

MentexDev/NeuralOS-CI-Blindaje
REPO

7人の検査官を備えた再利用可能なCIテンプレート。GitHub Actionsのワークフロー(backend-ci.template.yml)、Gitleaksの設定(gitleaks.toml.template)、Supabaseセキュリティゲートのスクリプト(scripts/supabase-advisors-gate.mjs)とそのallowlist(scripts/supabase-advisors-allowlist.json)、日本語ガイド(GUIA-agregar-ci-a-un-proyecto.md)、そしてゲートが強制する『10の不可侵のルール』である標準 BACKEND_SUPABASE_STANDARDS.md。コピーして、3つのデータを調整し、プッシュで起動します。

JavaScriptView on GitHub
プロジェクトにコピーする4つのファイル
`backend-ci.template.yml` → 7人の検査官を備えたワークフロー(あなたの .github/workflows/ フォルダに入れます)。
`gitleaks.toml.template` → シークレットハンターの設定。
`scripts/supabase-advisors-gate.mjs` → Supabaseにセキュリティの穴について尋ねるスクリプト。
`scripts/supabase-advisors-allowlist.json` → 承認済みの例外リスト(空で始まります)。

インストールの手順 · 一度きり、永遠に

ここが良いところです。一度インストールすれば永遠にあなたを守ります。 日々のメンテナンスはなく、走らせることを覚えておく必要もありません。あなたのリポジトリに住み、各変更で自動的に起動します。インストールは6ステップで、下のマスタープロンプトをあなたのAIに貼れば、一緒にやってくれます。まずは全体像を見て、何が起こるか理解しましょう。

インストールの6ステップ
4つのファイルをコピーリポジトリからあなたのプロジェクトへ(ワークフローを .github/workflows/ にコピーするときに .template は取り除きます)。
3つのデータを調整ファイル内の <<<CAMBIAR>>> でマークされたもの。あなたのプロジェクトのフォルダ、パス、パッケージ名。
1つのスクリプトを追加あなたの package.json に、セキュリティゲートを実行できるように。
PROJECT_REFをコピーあなたのSupabaseプロジェクトから(プロジェクトの設定にあります)。
GitHubに2つのsecretを作成(Settings → Secrets)。SUPABASE_PROJECT_REFSUPABASE_ACCESS_TOKEN。決してコードには入れず — GitHubの金庫に保管します。
Leaked Password Protectionを有効化Supabaseで(Auth → Settings)して push します。プッシュで7つのチェックが走るのが見えます — 緑を目指してください。
json
// Paso 3: el script que añades a tu package.json (en la sección "scripts")
{
  "scripts": {
    "db:advisors:gate": "node scripts/supabase-advisors-gate.mjs"
  }
}
bash
# Los 2 secrets del paso 5 se crean en GitHub, NO en el código:
# Repositorio → Settings → Secrets and variables → Actions → New secret
#
#   SUPABASE_PROJECT_REF   → el ref de tu proyecto (cambia por proyecto)
#   SUPABASE_ACCESS_TOKEN  → tu token de cuenta (el mismo para todos tus proyectos)
#
# El gate está hecho para saltarse solo (con aviso) si estos secrets faltan,
# así que nunca rompe un proyecto que aún no los tiene configurados.
secretsの黄金ルール
Supabaseの2つのデータは、GitHubのSecretsに保管され、決してプロジェクトのファイルには入れません。 それがすべての肝です。漏洩したシークレットを狩る守護者が、自分自身でシークレットを漏らすことはできません。アクセストークンはあなたのアカウントのもの(すべてのプロジェクトで使えます)。PROJECT_REFは各プロジェクトで変わります。もしこの2つのどちらかが .yml.js ファイルの中に書かれているのを見たら、何かが間違っています — そこから取り出してください。

マスタープロンプト · あなたのAIに貼って、インストールさせよう

これがあなたに必要な唯一のプロンプトです。プロジェクトの中に立った状態で、あなたのコーディングエージェント(Claude Code、Cursor、または使っているもの)に貼れば、6ステップを案内し、3つのデータをあなたの代わりに調整し、一つ一つの動きを説明してくれます。送信する前に [かっこ] をあなたのものに埋めてください。

マスタープロンプト · 私のプロジェクトにCIの守護者をインストールしてテキスト
このプロジェクトに、本番環境に届く前にすべての変更をチェックする継続的インテグレーション(CI)の守護者を組み立てたい。テンプレートは公開リポジトリ github.com/MentexDev/NeuralOS-CI-Blindaje にあり、7人の検査官を備えている:Gitleaks(シークレット)、Supabase advisorsのセキュリティゲート(コードをチェックする者の中で最初に走る)、type-check、lint、format、tests、build。1つでも不合格なら、変更はブロックされる。

私のプロジェクトの背景:
- データベース:Supabase。
- パッケージマネージャー:[npm / pnpm / yarn]。
- 私のパッケージ名(package.jsonの"name"):[名前]。

プログラミングの知識がなくてもいいように、この順番でステップごとに案内して:

1. テンプレートの4つのファイル(backend-ci.template.yml、gitleaks.toml.template、scripts/supabase-advisors-gate.mjs、scripts/supabase-advisors-allowlist.json)を持ってきて、あるべき場所に置いて。ワークフローは .template の接尾辞なしで .github/workflows/ に入れること。

2. ファイルの中の3つの <<<CAMBIAR>>> マーカーを探して、私のプロジェクトの実際のデータ(フォルダ、パス、パッケージ名)に置き換えて。それぞれ何を変えたか正確に見せて。

3. 私のpackage.jsonに、既存のスクリプトを消さずに "db:advisors:gate": "node scripts/supabase-advisors-gate.mjs" を追加して。

4. 私のPROJECT_REFをSupabaseのどこで見つけるか、そしてアカウントのACCESS_TOKENをどう生成するかを、正確に説明して。

5. GitHubに2つのsecret(SUPABASE_PROJECT_REF と SUPABASE_ACCESS_TOKEN)を作る方法をステップごとに教えて。決してプロジェクトのファイルの中に入れず、GitHubのSecretsだけに入れることを念押しして。

6. Supabaseで「Leaked Password Protection」を有効化する(Auth → Settings)ことを念押しして。

最後に:
- これらのファイルをcommitしてpushする正確なコマンドを教えて。そしてGitHubのチェックのタブで何が見えるべきか(7人の検査官が走ること、そしてどれが最初に走るか)を教えて。
- もし今のままの私のプロジェクトで、どれかの検査官が赤になりそうなら(たとえば、テストがない、コードに型エラーがあるなど)、事前に知らせて。そして検査官を無効化せずに、正直に緑にする一番シンプルな方法を教えて。
守護者を「通す」ために絶対にやってはいけないこと
検査官が赤になったとき、「一気に通す」ために無効化したくなる誘惑が来ます。やってはいけません。 チェックを飛ばすために検査官を無効化するのは、空港のセキュリティの目を塞ぐようなものです。問題は消えず、あなたが見なくなるだけです。検査官が不合格なら、指摘するものを直してください — そのためにあるのです。邪魔になると無効化する守護者は、守護者ではなく、飾りです。

その習慣 · これがあなたの日々のどこに住むか

守護者の美しさは、あなたの側に規律を要求しないことです。「水を飲む」や「運動する」のように覚えておくべき習慣ではありません。一度インストールすれば、変更をプッシュするたびに自動で起動します。あなたの唯一の仕事は色を見ることです。緑なら進む、赤なら検査官が指摘するものを続ける前に直す。

それを体験する瞬間は、まさにGitHubに変更をプッシュするとき(またはブランチで作業しているなら「プルリクエスト」を開くとき — 並行ブランチの教材を参照)です。そこでGitHubが自動的に7人の検査官を起動します。数秒で判定が出ます。AIと作業しているなら、これがAIの建設者としての楽観主義が、感情に流されない監査官と出会う地点です。AIが熱く建てたものを、マシンが冷たくチェックします。

C-A-Rとの架け橋
この守護者は、[C-A-Rプロトコル](/recursos/protocolo-car-construir-sin-bugs)の監査フェーズの自動化された永続版です。C-A-Rはあなたの頭の中で建設モードと監査モードを分けることを教えます。守護者はそれをマシンの中であなたの代わりにやります。各変更は、世界に存在する前に必ず冷たい監査官を通過します。建設は動くことを考え、守護者はどう失敗しうるかを考える — そして決して疲れません。

最も簡単な道 · あなたが何をして、マシンが何をするか

どこにあなたが手を置き、どこに置かないかをはっきりさせるために。インストールは一度だけあなたがやります(上のプロンプトで、AIが付き添います)。その後はすべて自動です。これが実際の労力の分担です。

あなた(一度だけ、インストール時に)
マスタープロンプトをAIに貼り、一緒に6ステップを進める。
SupabaseのPROJECT_REFをコピーし、GitHubに2つのsecretを作る。
Supabaseで漏洩パスワード保護を有効化する。
最初のpushをして、7つのチェックが走るのを見る。
マシン(永遠に、各変更で)
各pushで7人の検査官を自動的に起動する。
1つでも不合格なら、何が不合格だったかの詳細とともに変更をブロックする。
まだsecretがないプロジェクトでは、警告とともにゲートを飛ばす(何も壊さない)。
すべて通れば緑のチェックを見せる — 進めて安全だという合図。
テストについての正直な一言
もしあなたのプロジェクトにまだテスト(自動テスト)がないなら、検査官#6はリグレッションを狩りません。検証するものがないからです — そしてそれは始めとして問題ありません。守護者は他の6人(シークレット、データのセキュリティ、型、清潔さ、書式、ビルド)であなたを守り続けます。テストは時間とともに足していくピースです。守護者は、あなたがテストを持ったらすぐに使う準備ができています。残りを組み立てるのに、完璧なテストを持つまで待たないでください。

締めくくり · 眠らない守護者

AIで作るのは速くて中毒性があり、その速さこそが危険にします。速すぎて、プッシュされるすべてが見えないのです。守護者はあなたを止めません — 下に安全ネットを敷いた上で速く行かせます。各変更は数秒で7人の検査官を通過し、何かが怪しければ、たった一人のユーザーにも触れる前に止まります。コストはゼロ、一度組み立てるだけ、そして普通お金では買えないものをあなたに与えます。不注意で壊れたものが本番環境に届かないと知って、安心して眠れること。

NeuralOSでは、この守護者はすでに家の一部
あなたが今、手で組み立てたこのすべては、NeuralOSでは、プラットフォーム自身がどう作られるかの一部です。Supabase advisorsのセキュリティゲートは最優先で、警告を検知すれば変更をブロックします。まさにこの教材の検査官#2の通りです。「各変更は誰にも触れる前に自動の監査官にチェックされる」は未来への約束ではなく — 製品が立ち上げられる本物の規律です。そして正直さは完璧です。ここではあなたに何も売らず、あなた自身のプロジェクトのために同じ守護者を、本物の公開されたリポジトリとともに、あなたが持てるように渡しました。
守護者の前に · すべてをGitHubに保存する
守護者はGitHubに住み、各変更をチェックします。もしまだプロジェクトをそこにバックアップしていないなら、これから始めてください — それがステップゼロです。
C-A-Rプロトコル · 公開する前に監査する
守護者は監査の自動版です。この教材は、その背後にある考え方 — 建設者と監査官を分けること — を教え、すべてが噛み合うようにします。
#ci-cd#セキュリティ#自動化#supabase#github-actions#本番環境
Ready to build?

Start building in
under 3 minutes

Join 4,200+ builders. No credit card. Build your first app with AI in minutes.