ステージ1: キックオフ
目標: ビジネスに関する唯一の真実のページ、およびメソッドが期待するすべてのファイルを持つ空のプロジェクトを作成すること。まだデザインや構築は何も行われていません。
手順
- 既存のライブサイトはありますか? ある場合は、駐車中のドメインではなく、稼働中のビジネスとして扱ってください。まず棚卸しを実施します(
references/discovery-brief.md、"既存サイト"セクション):- すべてのURL(サイトマップから)、フォーム、決済ステップ、ブログ投稿、連絡先詳細;
- Search Consoleデータ(所有者が共有できる場合);
- 現在収益を上げているもの。再構築では、これらすべてが機能し続けるようにする必要があります。 丁寧にクロールする: 最初に利用規約を読み(robots.txtは許可ではありません)、リクエスト間隔は2秒以上空けてください。
- ディスカバリーブリーフ。
references/discovery-brief.mdの質問を尋ね、回答をdocs/BRIEF.mdに書き込みます。各事実には出典(所有者、文書、クロール)を明記してください。不明な事実はPENDING-<who>と記述し、決して推測しないでください。 - スタック。
references/stack.mdのデフォルトから開始します。レイヤーを変更する場合は、その理由を明示できる場合のみとし、DECISIONS.mdに記録します。 - プロジェクトを作成する キットのscaffolderを使用します(このスキルから2つ上のフォルダ):
bash <kit>/bin/wp-site-new --name "Acme Tours" --slug acme-tours --prefix acme \ --domain example.com --dir ~/sites/acme-tours --gitslug: 小文字とハイフン。DDEVプロジェクト、フォルダ、テキストドメインの名前になります。prefix: 2~12文字の小文字または数字。すべての関数、オプション、投稿タイプ、メタキー、フック、nonceは<prefix>_で始まります。
AGENTS.mdを記入する:- サイトの内容;
- デザインと顧客向けコピーを承認する担当者;
- ロックされた決定事項;
- 規制されたクレーム、表示すべきライセンス、所有者が絶対に使用したくない言葉など、このビジネスに固有の厳格なルール。
- プライベートリモート、初日から設定。 所有者がプライベートリポジトリを作成し、プッシュします。ローカルサイトが存在したら(ステージ3)、
scripts/backup.shを実行し、コピーを別のマシンに1つ保持します。 - クレデンシャル棚卸し(
docs/reference/CREDENTIALS_INVENTORY.md):- すべてのアカウント(レジストラ、DNS、ホスト、SMTP、アナリティクス、Search Console、決済、CDN)をリストアップ;
- 各シークレットの保管場所を記述;
- 名前のみ、値は決して記述しない。
- ブリーフの承認日、最初のコミットSHA、リモート名を証拠として
SITE_STATUS.mdのキックオフゲートにチェックを入れます。
ゲート
-
docs/BRIEF.mdが所有者によって承認されている(日付) - ロックされた決定事項とビジネスの厳格なルールが
AGENTS.mdに記載されている - プロジェクトが作成されコミットされている; プライベートリモートが存在する
- クレデンシャル棚卸しが開始されている(名前のみ)
- ライブサイトを置き換える場合: URLと機能の棚卸しが
docs/data/legacy/に保存されている(または「該当なし」)
私たちが遭遇した落とし穴
- 「カットオーバー」を単なるDNS変更として扱い、その日に旧サイトが有料予約を受け付けていた。
- 旧サイトのレビュー数(「1,118件のレビュー」)が実際には作り話だった。引き継がないこと。
- Cloudflare経由でドメインをプロキシしたところ、旧ホストがIP単位でレート制限をかけていた。ホストはCloudflareのIPしか認識せず、実際の訪問者は429エラーを受け取った。プロキシを有効にする前に、オリジンの制限を確認すること。
- 別のエージェントの「解決済み」と書かれたメモを信頼した。修正はプッシュされておらず、テストもされておらず、デプロイもされていなかった。実際のものを確認すること。
- 誰かがAPIキーをエージェントのチャットに貼り付けた。エージェントが見たキーはすべてローテーションすること。