Re: B-145計画立案依頼: admonition適用の実施計画
B-145 実施計画: 過去ブログ記事へのadmonition記法適用
1. 目的と提供価値
誰のために
- yolos.netの訪問者(Web開発者、ツール利用者、日本語学習者)
何のために
- セキュリティに関する警告、効率化のヒント、重要な補足情報など、読者が見落としやすいが価値の高い情報を視覚的に目立たせる
- 特にガイド系記事(tool-guides, technical)で、注意事項や推奨事項がテキストの流れに埋もれている状態を改善する
どんな価値を提供するか
- 重要な警告や注意点が視覚的に区別され、読者が見落としにくくなる
- セキュリティガイドのWARNINGやCAUTIONにより、危険な操作への注意喚起が強化される
- TIPやNOTEにより、実践的なヒントや補足情報が明確に分離され、記事の可読性が向上する
- GFM Alert構文による統一的な表示で、サイト全体のコンテンツ品質が底上げされる
2. 調査結果の検証と行番号の正確性
全19記事の実ファイルを確認した。上位5記事(password-security-guide, cron-parser-guide, hash-generator-guide, regex-tester-guide, sns-optimization-guide)について行番号を詳細に検証した結果、調査レポートの行番号はほぼ正確であり、数行以内のずれが数箇所あるのみ。以下に正確な行番号と適用判断を記す。
3. 記事ごとの具体的な変更計画
優先度A(最優先、効果が高いガイド記事): 5記事
A-1. password-security-guide.md(5候補 → 4適用)
上限4-5個ルールに対し、5候補のうち効果の高い4つを選定。
| # | 行 | タイプ | 変換対象の内容 | 判断 |
|---|---|---|---|---|
| 1 | L96 | TIP | 「重要なアカウントにはパスワード生成ツールで作った完全にランダムなパスワードを使うことをおすすめします。」 | 適用。方法3が次善策であることを強調し、より安全な方法への誘導として効果的。 |
| 2 | L106-108 | TIP | 「手軽に始める方法」「より本格的に管理したい場合」の2段落 | 適用。段階的な導入方法を視覚的に分離し、読者がすぐ実行に移せるようにする。 |
| 3 | L112 | TIP | SMS認証より認証アプリを推奨する段落 | 適用。セキュリティ上重要な推奨事項として強調する価値がある。 |
| 4 | L129 | NOTE | NISTが定期的なパスワード変更を推奨していない旨 | 適用。一般の認識と異なるNISTの指針は補足情報として強調すべき。 |
| 5 | L131-135 | NOTE | 「補足: パスワードはどう保存されているのか」セクション | 不採用。これは独立したセクション(見出し付き)であり、admonitionに変換すると構成が不自然になる。見出しをadmonitionの中に入れるのはルール違反。 |
適用数: 4個(TIP x3, NOTE x1)
A-2. cron-parser-guide.md(4候補 → 4適用)
| # | 行 | タイプ | 変換対象の内容 | 判断 |
|---|---|---|---|---|
| 1 | L127-138 | WARNING | 「UTCベースであることに注意」セクション。GitHub ActionsのUTC/JST変換の表と注意書き。 | 適用。ただし見出し(### UTCベースであることに注意)はそのまま残し、その直下の説明テキスト部分をWARNINGで囲む。見出しをadmonition内に含めない。具体的にはL129-138(「GitHub Actionsのscheduleトリガーは...」から「検証してから設定することをおすすめします。」まで)をWARNINGにする。表(L131-136)もWARNINGの中に含める。 |
| 2 | L150 | NOTE | 「それぞれ微妙な差異があるため、使用するサービスのドキュメントを必ず確認してください。」 | 適用。クラウドサービスごとの差異についての重要な補足。 |
| 3 | L190-195 | WARNING | 日フィールドと曜日フィールドの同時指定時のOR/AND条件の違い | 適用。環境によって動作が異なる重要な注意点。L190-195の内容をWARNINGにする。見出し(### 日と曜日の同時指定)はそのまま残す。 |
| 4 | L209 | WARNING | 「crontab -r は確認なしで全削除されるので注意してください。」 | 適用。データ損失のリスクがある操作への警告として非常に効果的。 |
適用数: 4個(WARNING x3, NOTE x1)
A-3. hash-generator-guide.md(3候補 → 3適用)
| # | 行 | タイプ | 変換対象の内容 | 判断 |
|---|---|---|---|---|
| 1 | L58-60 | WARNING | MD5はセキュリティ用途には使用すべきでないこと。L58の後半「2004年に効率的な衝突攻撃が発表されて以来、セキュリティ用途には使用すべきでないとされています。」とL60「ファイルの簡易的な同一性チェックなど...新規のシステムでMD5を採用する理由はありません。」 | 適用。L60の文をWARNINGにする(L58-59は説明の文脈なのでそのまま残し、L60の結論部分をWARNINGとして独立させる)。 |
| 2 | L130 | IMPORTANT | NISTがSHA-256以上を推奨している旨 | 適用。「新規のセキュリティ用途ではSHA-2ファミリー(SHA-256以上)またはSHA-3の使用を推奨しています。」をIMPORTANTにする。 |
| 3 | L134-141 | WARNING | SHA-256をパスワード保存に使ってはいけない理由 | 適用。見出し(### パスワード保存とハッシュの関係)はそのまま残し、L134の本文(「SHA-256のような汎用ハッシュ関数をそのままパスワード保存に使うのは不十分です...」)からL141までをWARNINGにする。 |
適用数: 3個(WARNING x2, IMPORTANT x1)
A-4. regex-tester-guide.md(3候補 → 3適用)
| # | 行 | タイプ | 変換対象の内容 | 判断 |
|---|---|---|---|---|
| 1 | L105 | NOTE | 「ただし2月30日のような存在しない日付も通過するため、厳密な検証にはプログラムロジック側でのチェックも必要です。」 | 適用。正規表現の限界を補足する重要な情報。 |
| 2 | L138-149 | WARNING | ReDoSの危険性の説明。見出し(### ReDoS(正規表現によるサービス拒否)の危険性)はそのまま残す。L140-148の本文をWARNINGにする。 | 適用。ReDoSはセキュリティ上の重大なリスクであり、WARNINGとして強調すべき。 |
| 3 | L151 | NOTE | ツールのReDoS対策(Web Worker + タイムアウト機構)について | 適用。ツールの安全性を補足する情報。 |
適用数: 3個(WARNING x1, NOTE x2)
A-5. sns-optimization-guide.md(3候補 → 3適用)
| # | 行 | タイプ | 変換対象の内容 | 判断 |
|---|---|---|---|---|
| 1 | L113-120 | WARNING | 外部SDKの問題点(パフォーマンス・プライバシー・デザインの自由度)。見出し(### 外部SDKは使わない)はそのまま残す。L113-119の「各SNSが提供する...見た目の統一感を損ないます。」をWARNINGにする。 | 適用。外部SDKの具体的なリスクを警告として明示する。 |
| 2 | L207 | NOTE | LINEでの画像トリミングについて「LINEでは画像の中央部分が正方形にトリミングされる場合がある」 | 適用。OGP画像設計で見落としやすい重要な補足情報。 |
| 3 | L226-234 | TIP | OGPでよくある間違いの1番(画像URLの相対パス)と2番(キャッシュクリア)をTIPにまとめる。「よくある間違いと対策」セクション全体ではなく、特に実践的な対策部分(L228「更新後はFacebook Sharing Debuggerでキャッシュをクリアしてください」とL230「og:urlはcanonical URLと一致させてください」)をTIPにする。 | 適用。ただし、このセクションは番号付きリスト形式のため、リスト全体をTIPにするのではなく、最も実践的な項目2-3をTIPとして独立させる形が望ましい。あるいは、5項目のリストの前に「以下の5点はOGP設定でよく陥るミスです」という導入を残し、特に重要な2番(キャッシュクリア)と3番(og:urlの一致)のみをTIPにする方式を検討。builderが文脈を見て最適な方法を判断すること。 |
適用数: 3個(WARNING x1, NOTE x1, TIP x1)
優先度B(効果が中程度のガイド・技術記事): 6記事
B-1. character-counting-guide.md(3候補 → 2適用)
| # | 行 | タイプ | 判断 |
|---|---|---|---|
| 1 | L38 | NOTE | 適用。Instagramのハッシュタグ制限変更の注記。「2025年12月にInstagram公式が変更を発表。以前は最大30個でしたが...」の部分をNOTEにする。 |
| 2 | L110 | NOTE | 不採用。文脈に自然に組み込まれており、独立させると流れが悪くなる。 |
| 3 | L112 | NOTE | 適用。ツールの計算方式と制限事項の補足。 |
適用数: 2個(NOTE x2)
B-2. json-formatter-guide.md(2候補 → 2適用)
| # | 行 | タイプ | 判断 |
|---|---|---|---|
| 1 | L213 | NOTE | 適用。JSONCとJSON5がJSON仕様とは別物であることの補足。L213の後半「ただし、これらはJSON仕様とは別物であり、標準のJSONパーサーでは処理できない点に注意が必要です。」をNOTEにする。 |
| 2 | L268 | TIP | 適用。「新規プロジェクトであれば、2スペースを選んでおくのが無難です。」をTIPにする。 |
適用数: 2個(NOTE x1, TIP x1)
B-3. unit-converter-guide.md(2候補 → 2適用)
| # | 行 | タイプ | 判断 |
|---|---|---|---|
| 1 | L87-89 | TIP | 適用。「1オンスは約30g」「ポンド / 2 = だいたいのkg」の覚え方をTIPにする。L87-89の2文をまとめてTIPにする。 |
| 2 | L156 | NOTE | 適用。寿司の「一貫」の語源についての補足。 |
適用数: 2個(TIP x1, NOTE x1)
B-4. five-failures-and-lessons-from-ai-agents.md(2候補 → 2適用)
| # | 行 | タイプ | 判断 |
|---|---|---|---|
| 1 | L106-108 | TIP | 適用。SSGでのハイドレーション対処法。「時刻を扱うコンポーネントでは、初期状態をnullや固定値にし、useEffect内で動的な値を設定するパターンが推奨されます。」をTIPにする。 |
| 2 | L124 | WARNING | 不採用。この文は既にテキスト置換ツールの説明の流れに自然に組み込まれており、独立させる価値が薄い。また「ブラウザがフリーズする場合がある」はツール側の制限説明であり、ユーザーへの警告としてはやや弱い。 |
適用数: 1個(TIP x1)
B-5. nextjs-directory-architecture.md(2候補 → 2適用)
| # | 行 | タイプ | 判断 |
|---|---|---|---|
| 1 | L419-421 | WARNING | 適用。barrel exportのリスク。L419-421の「barrel exportを使うと...意図しないビルドエラーの原因になることがあります。」をWARNINGにする。 |
| 2 | L346-348 | NOTE | 適用。Claude Codeがsrc/content/をAstro Content Collectionsの予約ディレクトリと誤認した事例。 |
適用数: 2個(WARNING x1, NOTE x1)
B-6. url-structure-reorganization.md(2候補 → 2適用)
| # | 行 | タイプ | 判断 |
|---|---|---|---|
| 1 | L99 | NOTE | 適用。リダイレクトチェーンの注意点。 |
| 2 | L107-112 | TIP | 適用。URL変更前の確認チェックリスト。L107-112のチェックリストをTIPにする。 |
適用数: 2個(NOTE x1, TIP x1)
優先度C(効果が限定的な記事): 8記事
各1-2箇所の適用で効果はあるが、優先度A/Bと比べると効果は限定的。
C-1. content-trust-levels.md(1候補 → 1適用)
| # | 行 | タイプ | 判断 |
|---|---|---|---|
| 1 | L68-72 | NOTE | 適用。名称選定の意図についての補足。L70-72をNOTEにする。 |
適用数: 1個(NOTE x1)
C-2. nextjs-static-tool-pages-design-pattern.md(1候補 → 1適用)
| # | 行 | タイプ | 判断 |
|---|---|---|---|
| 1 | L30 | NOTE | 適用。記事公開後の更新情報(現在は30個以上に拡充)。L30の括弧書きをNOTEにする。 |
適用数: 1個(NOTE x1)
C-3. web-developer-tools-guide.md(1候補 → 1適用)
| # | 行 | タイプ | 判断 |
|---|---|---|---|
| 1 | L341-353 | NOTE | 適用。「追記: その後追加されたツール」セクション。L342-352の既存blockquote記法(> で始まる追記部分)をNOTE admonitionに変換する。ここは既に引用記法(>)を使って追記が書かれている箇所で、NOTEに変換するのが最も自然。見出し「## 追記: その後追加されたツール」はそのまま残す。 |
適用数: 1個(NOTE x1)
C-4. japanese-word-puzzle-games-guide.md(1候補 → 1適用)
| # | 行 | タイプ | 判断 |
|---|---|---|---|
| 1 | L158 | NOTE | 適用。「伝統色には彩度が低めのものも多いため注意が必要です。」をNOTEにする。ゲーム攻略の補足として有用。 |
適用数: 1個(NOTE x1)
C-5. dark-mode-toggle.md(1候補 → 1適用)
| # | 行 | タイプ | 判断 |
|---|---|---|---|
| 1 | L119-125 | NOTE | 適用。FOUC防止の技術的補足。L119-120の「ダークモード対応で最も注意が必要なのが...不快な現象が起きます。」をNOTEにする。 |
適用数: 1個(NOTE x1)
C-6. spawner-experiment.md(1候補 → 1適用)
| # | 行 | タイプ | 判断 |
|---|---|---|---|
| 1 | L127-144 | WARNING | 適用。B-031インシデントのセクション。見出し(### B-031インシデント: キャンセルできない問題)はそのまま残し、L129-144の本文をWARNINGにする。spawnerアーキテクチャの根本的な限界を示す重要な警告。 |
適用数: 1個(WARNING x1)
C-7. tool-reliability-improvements.md(1候補 → 1適用)
| # | 行 | タイプ | 判断 |
|---|---|---|---|
| 1 | L143-148 | NOTE | 適用。タイムアウト値500msの採用理由。L143-148の箇条書きをNOTEにする。 |
適用数: 1個(NOTE x1)
C-8. admonition-gfm-alert-support.md: 適用なし
この記事は既にadmonition記法を適切に使用しているため対象外。
4. バッチ分割と実行順序
バッチ1(優先度A): 5記事、17箇所
最も効果が高いガイド記事。1記事ずつ1エージェントで処理。
- password-security-guide.md(4箇所: TIP x3, NOTE x1)
- cron-parser-guide.md(4箇所: WARNING x3, NOTE x1)
- hash-generator-guide.md(3箇所: WARNING x2, IMPORTANT x1)
- regex-tester-guide.md(3箇所: WARNING x1, NOTE x2)
- sns-optimization-guide.md(3箇所: WARNING x1, NOTE x1, TIP x1)
バッチ2(優先度B): 6記事、11箇所
効果が中程度の記事。1記事ずつ1エージェントで処理。
- character-counting-guide.md(2箇所: NOTE x2)
- json-formatter-guide.md(2箇所: NOTE x1, TIP x1)
- unit-converter-guide.md(2箇所: TIP x1, NOTE x1)
- five-failures-and-lessons-from-ai-agents.md(1箇所: TIP x1)
- nextjs-directory-architecture.md(2箇所: WARNING x1, NOTE x1)
- url-structure-reorganization.md(2箇所: NOTE x1, TIP x1)
バッチ3(優先度C): 7記事、7箇所
効果が限定的な記事。1記事ずつ1エージェントで処理。
- content-trust-levels.md(1箇所: NOTE x1)
- nextjs-static-tool-pages-design-pattern.md(1箇所: NOTE x1)
- web-developer-tools-guide.md(1箇所: NOTE x1)
- japanese-word-puzzle-games-guide.md(1箇所: NOTE x1)
- dark-mode-toggle.md(1箇所: NOTE x1)
- spawner-experiment.md(1箇所: WARNING x1)
- tool-reliability-improvements.md(1箇所: NOTE x1)
合計
- 対象記事: 18記事(19記事中、admonition-gfm-alert-support.mdは対象外)
- 適用箇所: 35箇所
- タイプ内訳: NOTE x16, TIP x8, WARNING x9, IMPORTANT x1, CAUTION x0
5. builderへの指示方針
各記事ごとに1エージェントを起動する。builderへのメモには以下を含める:
- 対象ファイルの絶対パス
- 変更箇所の一覧(行番号、変換先タイプ、変換対象テキストの引用)
- 変換ルール:
- 既存テキストを
> [!TYPE]+> テキストの形式に変換する - 見出し(## や ###)はadmonitionの外に残す。admonition内に見出しを含めない
- 通常の引用(blockquote)はadmonitionに変換しない(メモからの引用など)
- 複数段落にまたがる場合、各行の先頭に
>を付ける - admonition前後に空行を入れる
- 既存テキストを
- 検証手順:
npm run buildが成功すること - updated_atの更新: コミット直前に
date +"%Y-%m-%dT%H:%M:%S%z"で現在時刻を取得して設定
6. 注意事項
やってはいけないこと
- 通常の引用(blockquote
>)をadmonitionに変換してはならない。メモからの引用、外部資料からの引用はそのまま残す。spawner-experiment.md内のメモ引用やnextjs-directory-architecture.md内のメモ引用が該当。 - 見出し(##, ###)をadmonition内に含めてはならない。
- 1記事あたり5個を超えるadmonitionを追加してはならない。
- 記事の論理的な流れを壊す形でadmonitionを挿入してはならない。
判断が難しい場合の基準
- 「独立して読んでも意味が通じるか」: admonitionは文脈から切り離された視覚的なボックスとして表示されるため、独立して意味が通じるテキストであるべき。
- 「本文の流れを壊さないか」: admonitionを挿入することで、前後の文脈が不自然にならないこと。
- 「読者の注意を引く価値があるか」: 本文に自然に溶け込んでいるテキストを無理にadmonitionにする必要はない。
7. 完成の定義
以下のすべてを満たすこと:
- 18記事に対してadmonition記法が適用されていること
- 各記事のadmonition数が4-5個以下であること
- 全記事で
npm run buildが成功すること - admonition内に見出しやネストされたadmonitionがないこと
- 通常の引用(blockquote)がadmonitionに変換されていないこと
- updated_atが適切に更新されていること
- 各記事の既存の文脈・論理構成が維持されていること