Skip to content

書籍品質向上(誤字脱字/文字種/リンク/レイアウト)実行計画 + 全書籍チェックリスト #102

Description

@ootakazuhiko

書籍品質向上(誤字脱字/文字種/リンク/レイアウト) 実行計画

現状(2026-02-16 時点)

概要

一覧の書籍について、誤字脱字(日本語として不適切なUnicode文字混入を含む)、事実誤認、リンク切れ、Markdown構造不整合、図表/表/コードのレイアウト崩れを継続的に低減するための計画。

ゴール(受入条件)

  • 各書籍で book-formatter ベースのQA(自動検査)がCIで実行され、P0/P1をFailとしてブロックできる
  • 各書籍でQAを1周し、検出事項(P0/P1優先)を修正してGitHub Pagesで正常表示を確認する
  • 以降は運用(定期スキャン+小PR)で品質劣化を抑止する

品質観点(チェック項目)

自動検査(CIで実施)

  • Unicode品質: 不可視文字、互換漢字/互換文字、全角英数、IVS/異体字、紛らわしい記号の検出(疑わしい箇所の一覧化+例外許容リスト)
  • 文章校正: textlint + prh(共通辞書 + 書籍固有辞書)
  • Markdown/構造: 見出しレベル飛び、Front Matter、コードフェンス言語、Mermaidフェンス、箇条書き崩れ等
  • リンク: 内部リンク/アンカーはFail、外部リンクは原則Warn(不安定要因のため)
  • ビルド/表示: ビルド成功+GitHub Pages smoke(トップ200/主要導線の最低限の到達性)

注: 現時点でCIに統合済みなのは Unicode / textlint(PRH) / 内部リンク・アンカー / layout risk scan(long lines/tables/images/unclosed fences) / Markdown/構造lint(見出しレベル/Front Matter/コードフェンス言語等) / Jekyllビルド / built-site smoke(navigation + 共通アセット) までです。(デプロイ後の)GitHub Pages HTTP スモークは未統合です。

手動確認(PRの受入条件)

  • 図表/表/画像のはみ出し、コードブロック横スクロール、モバイル表示(主要ページ)
  • 内容の正誤(バージョン依存、非推奨/廃止、公式リンク、EOL等)
  • 引用/出典/ライセンス表記の整合(CC BY-NC-SA + 商用別契約の前提)

優先度定義(運用ルール)

  • P0: ビルド不可 / Pages表示不可 / 重要ページ404 等(最優先で即修正)
  • P1: 内部リンク切れ、ナビ破綻、誤情報の明確な指摘 等(次優先で修正)
  • P2: Unicode疑義、表記ゆれ、軽微な構造不整合 等(計画的に修正)
  • P3: スタイル改善、冗長表現、リライト 等(余力で対応)

実行計画

Phase 0: 基準整備(メタ合意)

  • QAコマンドと合否条件(Fail/Warn)を確定
  • 共通辞書/ルールの置き場と更新フロー(book-formatter→各書籍)を定義
  • 例外許容の方針(専門用語、固有名詞、外部リンクの扱い)を定義

Phase 1: book-formatter整備(自動検査の中核)

  • Unicode品質検出(疑義箇所レポート+許容リスト)
  • textlint/prh(共通+書籍固有)統合
  • 内部リンク/アンカーチェック(Fail)
  • layout risk scan(long lines / tables / images / unclosed fences)
  • Pages smoke(トップURL + 共通アセットのHTTP 200)
  • ビルド(Jekyll)+導線スモーク(トップ200/主要導線)をCIに統合
  • CIテンプレ/導入手順を整備(README/TROUBLESHOOTING更新)

Phase 2: 各書籍への適用(小粒PRで積み上げ)

  • 原則「カテゴリ別の小PR」(Unicode/リンク/構造/文章/レイアウト)に分割し、レビュー観点を分離
  • P0/P1を優先して修正し、Pagesで表示確認(PC/モバイル)

Phase 3: 継続運用(劣化抑止)

  • PRテンプレに「QA結果」「Pages確認URL」「影響範囲」を必須化
  • 月次/隔週で品質スプリント(P2/P3消化、外部リンク棚卸し)
  • book-formatter pin 更新(book-formatter#74: b7e85c4)の全書籍への横展開(PR一覧は Issue コメント参照)
  • book-formatter更新時の横展開手順(追随PRの作法)を固定化(docs/publishing/operations-playbook.md

Phase 2.1: 追加(Markdownコードフェンス整合性)

layout risk scan に unclosed code fences 検出を追加(book-formatter#73)した上で、既存の崩れを個別修正して表示不具合の潜在リスクを低減する。

Phase 2.2: 追加(EOL環境例の除去: Ubuntu 20.04 / Amazon Linux 2)

方針「20.04向け手順は削除して22.04/24.04のみ残す」「Amazon Linux 2023版とする」に合わせ、残存する例を更新する。

Phase 2.3: 追加(EOLランタイム/イメージの更新: Node.js 18 / Python 3.9 / Ruby 2.7/3.0)

OSに加えて、言語/ツール/コンテナイメージのEOL例(Node.js 18 / Python 3.9 / Ruby 2.7/3.0 等)を更新する。

Phase 2.4: 追加(残存 Python 3.9 ランタイム例の更新)

追加スキャンで検出した python3.9 の残存記述を python3.12 に更新する。


全書籍チェックリスト(消し込み用)

各書籍で最初の1周は下記を全て実施。修正PRはカテゴリ別に分割する。

itdojp/BioinformaticsGuide-book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/IT-engineer-communication-book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/IT-infra-book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/IT-infra-troubleshooting-book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/LogicalThinking-AI-Era-Guide

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/ai-communication-book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/ai-era-engineers-mind-book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/ai-testing-strategy-book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/cloud-infra-book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/computational-physicalism-book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/cs-visionaries-book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/ethereum-learning-bootcamp

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/formal-methods-book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/github-guide-for-beginners-book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/github-workflow-book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/illustrated-linux-basics-book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/it-infra-security-guide-book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/it-infra-software-essentials-book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/linux-infra-textbook(旧版/アーカイブ: linux-infra-textbook2 に置換)

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/linux-infra-textbook2

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/negotiation-for-engineers-book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/pentest-learning-book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/podman-book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/practical-auth-book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/proxmox_book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/small-webapp-software-design-book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/supabase-architecture-patterns-book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/theoretical-computer-science-textbook

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

itdojp/wsl2-linux-essentials-book

  • QA実行(Unicode/textlint(PRH)/内部リンク・アンカー)
  • 検出事項の修正(P0/P1優先)※現時点の検出0
  • レイアウト確認(headless render: PC/モバイル、図表/表/コード中心)
  • GitHub Pagesスモーク(トップURL + 共通アセット)
  • GitHub Pages確認(トップ200、主要導線)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions