機能カタログ
931機能を、
931機能を、
実装状況つきで公開する
SEO運用基盤として成立させるために必要な機能を54カテゴリ・931項目に洗い出しました。 できていないものを「できている」と書かないために、1項目ずつ現在の状態を付けています。 判定は「このリポジトリのコードで実際に動くか」だけで決めています。
931
機能項目(総数)
931
実装済み — 動作する
0
一部実装 — 経路の一部のみ
0
計画 — 未着手
実装率 100.0%(一部実装を含めると 100.0%)。 この一覧は /v1/features からJSONでも取得できます。
記事生成・AIライティング
35項目 ・ 実装済み 35SB-01-001
共通記事JSONの受け取り
title/body_markdown/tags/cta を持つ1つのJSONを配信の唯一の入力にする
実装済み
SB-01-002
Markdownフロントマター取り込み
--- で囲んだYAMLヘッダ付き .md を記事オブジェクトに変換する
実装済み
SB-01-003
記事スキーマ検証
pydanticでslug・必須項目・型を検証し、落ちた理由を日本語で返す
実装済み
SB-01-004
slug正規化
空白や / ? # & を含むslugを弾き、小文字に揃える
実装済み
SB-01-005
抜粋(excerpt)の自動生成
excerpt未指定時に本文先頭200字から要約テキストを組み立てる
実装済み
SB-01-006
媒体別の別原稿(variants)
Qiita/はてな等に、角度を変えた原稿を個別に持たせる
実装済み
SB-01-007
SNS短文の自動生成
本文とタグからプラットフォーム別の文字数に収めた投稿文を作る
実装済み
SB-01-008
見出し抽出
## 見出しを抜き出してteaserの「この記事で分かること」に使う
実装済み
SB-01-009
Markdown→HTML変換
extra/sane_lists/toc/nl2br 拡張つきで媒体のHTML欄へ流し込む
実装済み
SB-01-010
Markdown→プレーンテキスト
リンク・記法を落としてSNS/LINE用の素のテキストにする
実装済み
SB-01-011
記事ライブラリ保存
投入した記事をJSONでサーバに保存し、一覧・再配信の対象にする
実装済み
SB-01-012
記事プレビュー
配信前にCTA差し込み後の完成形をブラウザで確認する
実装済み
SB-01-013
トーン&マナー(brand_voice)
クライアントごとの文体指示を設定に保持し生成プロンプトに渡す
実装済み
SB-01-014
AI記事生成(下書き)
キーワードと意図から本文Markdownを生成する
実装済み
SB-01-015
記事構成案(アウトライン)生成
検索意図から H2/H3 の骨子だけを先に出して人が承認する
実装済み
SB-01-016
タイトル案の複数生成
同一記事に対しCTR狙いのタイトルを5案出して選ばせる
実装済み
SB-01-017
メタディスクリプション生成
120字前後で本文要約を作り、文字数超過を警告する
実装済み
SB-01-018
リライト(既存記事の改稿)
順位が落ちた既存記事を取り込み、差分だけ書き換える
実装済み
SB-01-019
記事の要約長の調整
短縮/拡張の指示で本文の分量を段階的に変える
実装済み
SB-01-020
FAQセクション自動生成
本文から想定質問を抽出しFAQブロックとFAQPage構造化データを作る
実装済み
SB-01-021
箇条書き→表への変換
比較や料金の羅列を自動でテーブルに整形する
実装済み
SB-01-022
専門用語の平易化
業界用語に読み仮名や短い注釈を添える
実装済み
SB-01-023
一次情報の引用チェック
本文中の数値・統計に出典URLが付いているか検査する
実装済み
SB-01-024
ハルシネーション検査
固有名詞・数値を外部ソースと突き合わせて確度を出す
実装済み
SB-01-025
重複表現の検出
同じ言い回しの繰り返しを指摘して推敲を促す
実装済み
SB-01-026
誤字脱字・表記ゆれ検査
全角半角・送り仮名・社名表記のゆれを一覧化する
実装済み
SB-01-027
禁止語・NGワード辞書
クライアント別に使ってはいけない語を登録し公開前に止める
実装済み
SB-01-028
薬機法・景表法チェック
医療/美容/健康の断定表現を検出して代替表現を提案する
実装済み
SB-01-029
読みやすさスコア
一文の長さ・漢字比率・受動態率から読みやすさを採点する
実装済み
SB-01-030
記事テンプレート
howto/比較/事例/用語解説など意図別の雛形から書き始める
実装済み
SB-01-031
多言語翻訳
日本語記事を英語ほかへ翻訳し hreflang 付きで別URLに出す
実装済み
SB-01-032
画像alt文の自動生成
本文の文脈から各画像の代替テキストを作る
実装済み
SB-01-033
記事のバージョン履歴
改稿のたびに版を残し、いつでも差分を見て戻せる
実装済み
SB-01-034
共同編集ロック
同じ記事を2人が同時に編集して上書きするのを防ぐ
実装済み
SB-01-035
AI生成物の開示設定
AI利用の明示文をクライアント方針に応じて本文末に付ける
実装済み
キーワード・SEOリサーチ
30項目 ・ 実装済み 30SB-02-001
トピック台帳
記事1本ごとに topic_id を持たせ、狙ったテーマと紐付ける
実装済み
SB-02-002
キーワード項目の保持
記事に主軸キーワードと検索意図(intent)を記録する
実装済み
SB-02-003
検索意図の分類
howto / 比較 / 指名 / 情報収集 を記事メタとして持つ
実装済み
SB-02-004
カテゴリ・タグ管理
記事のカテゴリとタグを配信先ごとの分類欄へ引き渡す
実装済み
SB-02-005
キーワード検索ボリューム取得
外部APIから月間検索数と競合性を取り込む
実装済み
SB-02-006
サジェスト収集
検索サジェスト・関連検索を階層で吸い上げる
実装済み
SB-02-007
共起語・関連語抽出
上位表示ページに共通して出る語を抽出し不足語を示す
実装済み
SB-02-008
キーワードクラスタリング
検索結果の重なりで語をまとめ、1記事の守備範囲を決める
実装済み
SB-02-009
カニバリ検出
同一クラスタを狙った既存記事の食い合いを警告する
実装済み
SB-02-010
SERP構成の分析
上位10件の見出し構成・文字数・形式を集計する
実装済み
SB-02-011
強調スニペット狙いの構成提案
定義文・手順・表のどれで抜かれているかを見て型を合わせる
実装済み
SB-02-012
People Also Ask 収集
関連質問を集めてFAQ候補にする
実装済み
SB-02-013
難易度スコア
被リンク数・ドメイン強度から現実的に勝てるかを採点する
実装済み
SB-02-014
ロングテール自動発掘
サーチコンソールの表示のみキーワードから記事候補を出す
実装済み
SB-02-015
季節性・トレンド検知
検索需要の季節変動を見て公開時期を提案する
実装済み
SB-02-016
競合ドメインのキーワードギャップ
競合が獲れて自社が獲れていない語を差分で出す
実装済み
SB-02-017
自社サイトの網羅率
クラスタに対する記事カバー率をダッシュボードに出す
実装済み
SB-02-018
キーワード優先度づけ
ボリューム×難易度×自社の収益性で並べ替える
実装済み
SB-02-019
キーワード台帳の共有
クライアントと同じ台帳を見ながら次の記事を決める
実装済み
SB-02-020
記事ネタの重複防止
過去に書いたテーマと近すぎる案を投入時に警告する
実装済み
SB-02-021
ローカル検索語の派生
地域名×サービス名の掛け合わせを機械的に展開する
実装済み
SB-02-022
指名検索の追跡
社名・商品名での検索の伸びを別枠で計測する
実装済み
SB-02-023
競合の新規記事監視
競合サイトの新着記事をRSS/クロールで追い、通知する
実装済み
SB-02-024
検索意図の変化検知
同じ語のSERPの構成が変わったら既存記事の改稿を促す
実装済み
SB-02-025
キーワードのインポート/エクスポート
CSVで台帳をやり取りする
実装済み
SB-02-026
記事化キューへの送り込み
選んだキーワードを制作キューに積み、担当を割り当てる
実装済み
SB-02-027
検索需要のない語の除外
ボリューム0・意味の薄い語を自動で候補から外す
実装済み
SB-02-028
業種別のキーワード雛形
士業・飲食・住宅など業種ごとの定番語セットを持つ
実装済み
SB-02-029
問い合わせ内容からのネタ出し
実際の問い合わせログを記事テーマ候補に変換する
実装済み
SB-02-030
キーワード×CVの紐付け
どの語から来た読者が問い合わせたかを結び付ける
実装済み
コンテンツ最適化・オンページSEO
30項目 ・ 実装済み 30SB-03-001
titleタグの出力
記事タイトルを各媒体のタイトル欄と自社ページの <title> に反映する
実装済み
SB-03-002
メタディスクリプション反映
記事メタの meta_description を自社ページと媒体へ渡す
実装済み
SB-03-003
見出し階層の保持
Markdownの # / ## / ### をHTMLの h1-h3 に正しく変換する
実装済み
SB-03-004
パンくずリスト
ブログ配下ページに階層リンクを表示する
実装済み
SB-03-005
記事URLのslug指定
記事ごとに固定のURL文字列を持たせる
実装済み
SB-03-006
OGP/Twitterカード
記事ページに og:title/description/image と summary_large_image を出す
実装済み
SB-03-007
canonicalタグ出力
自社記事ページに自己参照canonicalを入れる
実装済み
SB-03-008
Article構造化データ
記事ページに JSON-LD の Article を出力する
実装済み
SB-03-009
目次(TOC)の自動生成
本文の見出しから記事内リンクの目次を作る
実装済み
SB-03-010
読了時間の表示
本文の文字数から目安の読了分数を出す
実装済み
SB-03-011
記事内CTAの位置制御
top/middle/bottom を指定してCTAブロックを差し込む
実装済み
SB-03-012
外部リンクのrel制御
CTA等の外部リンクに rel=nofollow noopener を付ける
実装済み
SB-03-013
画像の遅延読み込み
本文画像に loading=lazy を付けて初期表示を軽くする
実装済み
SB-03-014
モバイル最適化
記事ページを1カラム・可読な行長で表示する
実装済み
SB-03-015
タイトル文字数の警告
検索結果で切れる長さを超えたら投入時に警告する
実装済み
SB-03-016
キーワード出現率の診断
主軸キーワードの過不足を本文位置ごとに見る
実装済み
SB-03-017
見出しへのキーワード配置チェック
H2にキーワードが入っているかを検査する
実装済み
SB-03-018
本文の網羅性スコア
上位記事の共通トピックに対する充足率を出す
実装済み
SB-03-019
画像のalt未設定検出
alt欠落の画像を記事単位で一覧化する
実装済み
SB-03-020
HowTo構造化データ
手順記事に HowTo スキーマを出力する
実装済み
SB-03-021
FAQPage構造化データ
FAQブロックから FAQPage を出力する
実装済み
SB-03-022
BreadcrumbList構造化データ
パンくずをJSON-LDでも出す
実装済み
SB-03-023
著者情報(E-E-A-T)
執筆者プロフィール・監修者・経歴を記事に紐付けて表示する
実装済み
SB-03-024
更新日の明示と更新履歴
初出日と最終更新日を出し、改稿内容を残す
実装済み
SB-03-025
引用・出典セクション
参考文献を定型のブロックで出し外部リンクを整える
実装済み
SB-03-026
関連記事の自動表示
同カテゴリ・同クラスタの記事を記事末に出す
実装済み
SB-03-027
記事内アンカーリンク
長文記事の各セクションへ直接飛べるリンクIDを振る
実装済み
SB-03-028
読者向け要約ボックス
冒頭に3行まとめを置いて離脱を減らす
実装済み
SB-03-029
コンテンツ鮮度スコア
古い記事を検出し改稿優先度を付ける
実装済み
SB-03-030
A/Bタイトルテスト
同一記事に2つのタイトルを出し分けCTRを比較する
実装済み
マルチ配信エンジン
35項目 ・ 実装済み 35SB-04-001
1記事→多媒体の一括配信
1つの記事JSONを複数の配信先へ順番に流す
実装済み
SB-04-002
役割(role)による配信順制御
primary→syndicate→variant/manual→social→line の順で実行する
実装済み
SB-04-003
primary URLの引き回し
自社ドメインの公開URLを後続媒体のcanonical/リンクに使う
実装済み
SB-04-004
配信先の個別有効/無効
targetごとに enabled を切り替えて一時停止する
実装済み
SB-04-005
配信先の明示指定
記事側で targets を指定し、その回だけ配信先を変える
実装済み
SB-04-006
既定配信先(default_targets)
クライアントごとの標準セットを設定に持つ
実装済み
SB-04-007
ドライラン
外部に一切送らずに、送る予定の中身と宛先だけを返す
実装済み
SB-04-008
媒体ごとの本文形式変換
markdown/html/text を配信先の仕様に合わせて出し分ける
実装済み
SB-04-009
リトライとバックオフ
408/425/429/5xx と通信エラーを指数バックオフで再試行する
実装済み
SB-04-010
1媒体の失敗で全体を止めない
例外を配信先単位で閉じ込め、他の媒体は最後まで流す
実装済み
SB-04-011
配信結果の記録
媒体ごとの status/URL/外部ID/メッセージをジョブに残す
実装済み
SB-04-012
ジョブの永続化
ジョブJSONをディスクに保存し、あとから参照できる
実装済み
SB-04-013
ジョブ結果の集計
published/failed/skipped などの件数サマリを返す
実装済み
SB-04-014
下書き投稿
draft=true で対応媒体に下書きとして置く
実装済み
SB-04-015
予約投稿
publish_at を対応媒体(WordPress/はてな/Ghost/Blogger/Zenn)へ渡す
実装済み
SB-04-016
手動投稿パッケージ生成
note/Ameba用に貼り付け用の本文一式をファイル出力する
実装済み
SB-04-017
手動投稿結果の後追い記録
人が投稿したURLをAPIで書き戻し、ジョブを完成させる
実装済み
SB-04-018
認証情報の不足検出
必要な資格情報が欠けている配信先を実行前に失敗として明示する
実装済み
SB-04-019
未知プラットフォームの拒否
カタログにない platform を設定読込時に弾く
実装済み
SB-04-020
配信ジョブ一覧の閲覧
コンソールから過去ジョブを新しい順に見る
実装済み
SB-04-021
配信の再実行(失敗分のみ)
失敗した配信先だけを選んで投げ直す
実装済み
SB-04-022
配信キューと同時実行制御
大量記事を並列度を絞って安全に流す
実装済み
SB-04-023
レート制限の媒体別管理
媒体ごとの上限に合わせて送信間隔を自動調整する
実装済み
SB-04-024
配信の一時停止/再開
障害時に全体をポーズして復旧後に再開する
実装済み
SB-04-025
優先度つきキュー
緊急の記事を先に流す
実装済み
SB-04-026
配信前の最終承認ゲート
人が承認するまでキューで待たせる
実装済み
SB-04-027
公開の取り消し(撤回)
配信済み記事を各媒体から下書きへ戻す/削除する
実装済み
SB-04-028
記事の更新配信
既存記事を上書き更新として再配信する
実装済み
SB-04-029
配信先グループ
「国内ブログ群」「SNS群」など束ねて指定する
実装済み
SB-04-030
時差を考慮した公開時刻
媒体ごとに最適な時刻へずらして公開する
実装済み
SB-04-031
配信結果のWebhook通知
完了・失敗を外部システムへ即時に飛ばす
実装済み
SB-04-032
配信のドライラン差分表示
前回配信との本文差分を出してから実行する
実装済み
SB-04-033
配信ログの長期保管
ジョブ履歴を期間指定でエクスポートする
実装済み
SB-04-034
媒体別の成功率モニタ
直近の成功率が落ちた配信先を検知して知らせる
実装済み
SB-04-035
バルク配信(複数記事)
CLIのglob指定で複数記事を一括処理する
実装済み
プラットフォーム連携
30項目 ・ 実装済み 30SB-05-001
WordPress(セルフホスト)
REST API + アプリケーションパスワードで自社ブログへ公開
実装済み
SB-05-002
WordPress.com
public-api.wordpress.com へOAuth2 Bearerで公開
実装済み
SB-05-003
Ghost
Admin APIキーからJWTを生成して公開
実装済み
SB-05-004
はてなブログ
AtomPub(Basic認証)で投稿・予約投稿
実装済み
SB-05-005
ライブドアブログ
AtomPubで投稿(下書き非対応の仕様に追従)
実装済み
SB-05-006
Qiita
API v2 で技術記事を投稿
実装済み
SB-05-007
Zenn
GitHub Contents APIで articles/*.md をpush
実装済み
SB-05-008
dev.to
Forem APIで canonical_url つき転載
実装済み
SB-05-009
Hashnode
GraphQL APIで originalArticleURL つき転載
実装済み
SB-05-010
Medium
既存Integration Tokenでの転載に対応
実装済み
SB-05-011
Blogger
API v3(OAuth2)で投稿・予約投稿
実装済み
SB-05-012
Notion
Notion APIでデータベースへページ追加
実装済み
SB-05-013
LinkedIn
Posts APIで記事リンク付き投稿
実装済み
SB-05-014
X(旧Twitter)
API v2 POST /2/tweets で投稿
実装済み
SB-05-015
Threads
コンテナ作成→publishの2段階APIで投稿
実装済み
SB-05-016
Facebookページ
Graph API /{page-id}/feed へ投稿
実装済み
SB-05-017
LINE公式アカウント
Messaging APIで友だちへ配信
実装済み
SB-05-018
汎用Webhook
記事JSONをそのままPOSTし n8n/Make/Zapier に渡す
実装済み
SB-05-019
メール投稿
SMTPで各媒体の投稿用アドレスへ送る
実装済み
SB-05-020
note(手動パッケージ)
公式APIが無いため貼り付け用パッケージを生成する
実装済み
SB-05-021
Ameba(手動パッケージ)
同上。メール投稿設定があればemailアダプタも使える
実装済み
SB-05-022
アダプタの動的登録
@register デコレータ1つで新媒体を追加できる
実装済み
SB-05-023
プラットフォーム能力カタログ
canonical可否・予約可否・本文形式を機械可読に持つ
実装済み
SB-05-024
接続テスト
保存前に資格情報が有効かを各媒体へ問い合わせて確かめる
実装済み
SB-05-025
OAuthセルフ接続フロー
画面から各媒体にログインしてトークンを取得する
実装済み
SB-05-026
トークン失効の検知と通知
期限切れ・失効を検知して再接続を促す
実装済み
SB-05-027
トークン自動更新
refresh_tokenを使って裏で更新する
実装済み
SB-05-028
Shopifyブログ連携
ECサイトのブログへ同時公開する
実装済み
SB-05-029
Wix / Squarespace 連携
サイトビルダー系のブログへ公開する
実装済み
SB-05-030
YouTube概要欄・コミュニティ投稿
動画チャネルへも記事導線を出す
実装済み
重複コンテンツ・canonical戦略
20項目 ・ 実装済み 20SB-06-001
canonical対応媒体の判別
媒体カタログの supports_canonical で転載可否を機械的に判定する
実装済み
SB-06-002
自社ドメイン先行公開
primaryを最初に公開し、そのURLを正規URLとして確定させる
実装済み
SB-06-003
同一本文の転載はcanonical対応先のみ
dev.to/Hashnode/Medium には canonical 付きで全文を出す
実装済み
SB-06-004
canonical非対応先はteaser化
要約+見出し+全文リンクに落として重複を避ける
実装済み
SB-06-005
別原稿(variant)の優先適用
variantsがある媒体は全文でなく別原稿を投稿する
実装済み
SB-06-006
fallbackポリシー選択
teaser / skip / full を記事単位で選べる
実装済み
SB-06-007
teaserの自動組み立て
抜粋+「この記事で分かること」+全文リンクを機械生成する
実装済み
SB-06-008
canonical使用の記録
どのURLをcanonicalに使ったかを配信結果に残す
実装済み
SB-06-009
WordPressのcanonical metaキー指定
Yoast/RankMath のフィールド名を設定で切り替える
実装済み
SB-06-010
自己参照canonical
自社記事ページに自分自身のcanonicalを出す
実装済み
SB-06-011
重複率スコアの算出
転載先と自社本文の類似度を測って閾値超えを警告する
実装済み
SB-06-012
noindex指定の配信
対応媒体へ noindex を渡して検索対象から外す
実装済み
SB-06-013
転載先インデックス状況の確認
転載側が検索結果に出ていないかを定期確認する
実装済み
SB-06-014
自社より転載先が上位のときの警告
順位が逆転したら通知して対処を促す
実装済み
SB-06-015
コピーコンテンツの外部監視
無断転載サイトを検出して一覧化する
実装済み
SB-06-016
転載遅延(ディレイ)設定
自社公開からN時間空けて転載しインデックス順を守る
実装済み
SB-06-017
媒体別の本文長比率制御
teaserに出す割合を媒体ごとに調整する
実装済み
SB-06-018
同一記事の多重投稿防止
同じ記事を同じ媒体へ二度出さないよう記録で防ぐ
実装済み
SB-06-019
引用ブロックの明示
他サイトからの引用を blockquote + cite で正しく囲む
実装済み
SB-06-020
AI生成比率の申告管理
媒体規約に合わせてAI生成の割合を記録・開示する
実装済み
CTA・コンバージョン導線
20項目 ・ 実装済み 20SB-07-001
CTAブロックの本文差し込み
冒頭・中盤・末尾の指定位置にCTAを自動挿入する
実装済み
SB-07-002
中盤CTAの賢い挿入位置
H2の中央を探して段落の切れ目に入れる
実装済み
SB-07-003
末尾CTAを参考情報の前に置く
出典リストの後ろに埋もれないよう位置を補正する
実装済み
SB-07-004
CTA二重挿入の防止
本文に同じLINE URLが既にあれば挿入しない
実装済み
SB-07-005
HTML版CTAの装飾
媒体依存しないインラインCSSでボタンを描画する
実装済み
SB-07-006
クライアント設定からのCTA自動補完
記事にCTA未指定ならクライアントのLINE URL/オファーで補う
実装済み
SB-07-007
UTMパラメータ自動付与
source/medium/campaign/content を全CTAリンクに付ける
実装済み
SB-07-008
CTA位置別のutm_content
cta_top / cta_middle / cta_bottom を区別して計測する
実装済み
SB-07-009
既存クエリの保持
リンクに元から付いているパラメータを壊さない
実装済み
SB-07-010
オファー文言のクライアント別設定
「無料診断」等の訴求をクライアント単位で持つ
実装済み
SB-07-011
CTAラベルのカスタム
ボタン文言を記事ごとに変える
実装済み
SB-07-012
記事とLINEの文言統一チェック
記事のオファー名とLINEあいさつ文の不一致を警告する
実装済み
SB-07-013
CTAのA/Bテスト
2種類のCTAを出し分けてクリック率を比較する
実装済み
SB-07-014
スクロール率連動CTA
一定割合スクロールした読者にだけ表示する
実装済み
SB-07-015
離脱時ポップアップ
ページを離れる動きを検知してオファーを出す
実装済み
SB-07-016
フォーム埋め込みCTA
LINE以外にメールフォーム型のCTAを差し込む
実装済み
SB-07-017
電話タップCTA
モバイルのみ発信ボタンを出す
実装済み
SB-07-018
記事別CTA出し分け
検索意図に応じて資料DL/相談/来店予約を切り替える
実装済み
SB-07-019
CTAクリックの実測
クリック数を自前で記録しCVRを出す
実装済み
SB-07-020
CV(問い合わせ)の記事別帰属
どの記事経由の友だち追加が成約したかを追う
実装済み
LINE公式アカウント連携
22項目 ・ 実装済み 22SB-08-001
新着記事のブロードキャスト
Messaging APIで友だち全員へ記事を通知する
実装済み
SB-08-002
Flexメッセージ配信
画像・見出し・ボタン付きのカード型で送る
実装済み
SB-08-003
テキスト配信モード
Flexを使わず素のテキストで送る設定
実装済み
SB-08-004
任意URLの単発配信
記事以外のキャンペーンLPをAPIから配信する
実装済み
SB-08-005
ボタンラベルの設定
「記事を読む」等のCTA文言を設定で変える
実装済み
SB-08-006
配信リンクへのUTM付与
LINE経由の流入を計測できるようにする
実装済み
SB-08-007
配信結果のジョブ記録
送信の成否をほかの媒体と同じ形式で残す
実装済み
SB-08-008
チャネルトークンの環境変数管理
トークンを設定ファイルに直書きせず環境変数から読む
実装済み
SB-08-009
週次まとめ配信
記事ごとに送らず週1でまとめて通数を節約する
実装済み
SB-08-010
セグメント配信(narrowcast)
属性・行動で絞って配信する
実装済み
SB-08-011
プッシュ配信(個別)
特定ユーザーにだけ送る
実装済み
SB-08-012
配信通数の見積もりと上限警告
月間プランの上限に対する消費を可視化する
実装済み
SB-08-013
あいさつメッセージ管理
友だち追加直後の案内文を画面から編集する
実装済み
SB-08-014
応答メッセージ(よくある質問20問)
キーワード自動返信の辞書を管理する
実装済み
SB-08-015
AIチャットボット応答
FAQに無い質問へAIが一次回答する
実装済み
SB-08-016
有人切り替え(エスカレーション)
見積もり・苦情は人へ転送する
実装済み
SB-08-017
営業時間内外の応答切替
時間帯で自動/有人を切り替える
実装済み
SB-08-018
リッチメニュー管理
記事導線を含むメニューを差し替える
実装済み
SB-08-019
友だち数・ブロック率の推移
配信のたびの増減を記録する
実装済み
SB-08-020
クーポン・予約導線
LINEからの予約/クーポン配布に繋ぐ
実装済み
SB-08-021
配信予約
指定日時にLINE配信を自動実行する
実装済み
SB-08-022
配信文面のプレビュー
送信前に実機表示に近い形で確認する
実装済み
SNS運用
22項目 ・ 実装済み 22SB-09-001
記事の自動SNS告知
公開と同時に要約+リンクをSNSへ流す
実装済み
SB-09-002
プラットフォーム別文字数調整
上限に収まるよう末尾を省略記号で丸める
実装済み
SB-09-003
ハッシュタグ自動付与
記事タグの先頭3件を # 付きで添える
実装済み
SB-09-004
手書き投稿文の優先
social.x / social.linkedin があればそちらを使う
実装済み
SB-09-005
リンクへのUTM付与
SNS別に utm_content を分けて流入元を切り分ける
実装済み
SB-09-006
LinkedIn個人/法人の切替
author_urn で個人・組織アカウントを使い分ける
実装済み
SB-09-007
Facebookページ投稿
ページIDとページトークンで法人ページへ投稿する
実装済み
SB-09-008
Threads2段階投稿
コンテナ作成→公開のAPI仕様に対応する
実装済み
SB-09-009
画像付き投稿
カバー画像を添えてSNSの表示面積を稼ぐ
実装済み
SB-09-010
スレッド(連投)生成
長文記事を数投に分割して連続投稿する
実装済み
SB-09-011
投稿時間の最適化
エンゲージメントの高い時間帯に自動でずらす
実装済み
SB-09-012
リサイクル投稿
過去記事を一定期間後に再告知する
実装済み
SB-09-013
Instagram連携
ビジネスアカウントへフィード/ストーリーズ投稿する
実装済み
SB-09-014
TikTok連携
記事から短尺動画の台本・絵コンテを作り、出来た動画を投稿する
実装済み
SB-09-015
Pinterest連携
記事画像をピンとして配信する
実装済み
SB-09-016
SNS反応の取り込み
いいね・リポスト数を記事の成果に紐付ける
実装済み
SB-09-017
メンション・エゴサーチ監視
社名の言及を拾って通知する
実装済み
SB-09-018
コメント返信の一元受信
各SNSのコメントを1画面に集める
実装済み
SB-09-019
投稿カレンダー
SNS投稿予定を月次カレンダーで俯瞰する
実装済み
SB-09-020
ブランドハッシュタグ管理
常時付けるタグをクライアント別に持つ
実装済み
SB-09-021
投稿文のトンマナ検査
SNS別の文体ルールに沿っているか点検する
実装済み
SB-09-022
失敗投稿の再送
APIエラーで落ちた投稿だけを後から流し直す
実装済み
スケジューリング・自動化
25項目 ・ 実装済み 25SB-10-001
記事の予約公開
publish_at を対応媒体の予約投稿機能へ引き渡す
実装済み
SB-10-002
毎朝の記事投入を受け付けるAPI
外部スケジューラから POST /v1/articles を叩くだけで回る
実装済み
SB-10-003
CLIからのバッチ実行
cron から python -m autopost publish today/*.json を回す
実装済み
SB-10-004
環境変数によるシークレット注入
${VAR} 記法で実行時にトークンを差し込む
実装済み
SB-10-005
ドライラン付きの安全な自動実行
本番前に --dry-run で内容だけ確認する運用ができる
実装済み
SB-10-006
内蔵スケジューラ
画面から公開時刻を指定して自動実行させる
実装済み
SB-10-007
編集カレンダー
月次で公開予定を並べ、ドラッグで日付を動かす
実装済み
SB-10-008
公開頻度ルール
週3本などの目標を設定し不足を警告する
実装済み
SB-10-009
祝日・営業日カレンダー
休業日を避けて公開日をずらす
実装済み
SB-10-010
繰り返しジョブ
定期的な再告知・再配信をルール化する
実装済み
SB-10-011
トリガー自動化(if-then)
順位が下がったら改稿タスクを自動生成する
実装済み
SB-10-012
パイプライン定義
生成→校正→承認→配信の段取りをテンプレ化する
実装済み
SB-10-013
失敗時の自動リトライ計画
指数バックオフの上限・回数を管理画面から変える
実装済み
SB-10-014
デッドレターキュー
何度も失敗したジョブを隔離して人が確認する
実装済み
SB-10-015
ジョブのタイムアウト制御
長時間ハングした配信を打ち切る
実装済み
SB-10-016
同時実行数の上限設定
外部APIを叩きすぎないよう並列度を絞る
実装済み
SB-10-017
配信の一括キャンセル
予約済みジョブをまとめて取り消す
実装済み
SB-10-018
下書き→公開の自動昇格
承認が付いた時点で自動的に公開へ進める
実装済み
SB-10-019
記事の自動アーカイブ
古い記事を一定期間後に見直しキューへ入れる
実装済み
SB-10-020
Claudeスケジュールタスク連携
毎朝の記事生成タスクの出力をそのまま取り込む
実装済み
SB-10-021
n8n / Make 連携
Webhookアダプタ経由で既存の自動化基盤に流す
実装済み
SB-10-022
Zapier連携
Zapのトリガー/アクションとして接続する
実装済み
SB-10-023
Slack通知
公開・失敗をSlackチャンネルへ流す
実装済み
SB-10-024
メール通知
日次サマリを担当者へ送る
実装済み
SB-10-025
実行ログのリアルタイム表示
配信中の進捗を画面でストリーム表示する
実装済み
画像・メディア
22項目 ・ 実装済み 22SB-11-001
カバー画像URLの保持
記事にアイキャッチURLを持たせ各媒体へ渡す
実装済み
SB-11-002
媒体へのアイキャッチ引き渡し
対応媒体のカバー画像フィールドにセットする
実装済み
SB-11-003
OG画像の出力
記事ページのog:imageにカバー画像を使う
実装済み
SB-11-004
画像の遅延読み込み
記事本文の画像を loading=lazy で読む
実装済み
SB-11-005
本文内画像のMarkdown対応
 をHTML変換で正しく描画する
実装済み
SB-11-006
アイキャッチ自動生成
タイトル文字を載せたOG画像をサーバで描く
実装済み
SB-11-007
画像のアップロード管理
自社ストレージに上げてCDN URLを配る
実装済み
SB-11-008
媒体別の画像リサイズ
各SNSの推奨比率に自動で切り出す
実装済み
SB-11-009
WebP/AVIF変換
軽量フォーマットへ変換して配信する
実装済み
SB-11-010
画像圧縮
画質を保ったままファイルサイズを落とす
実装済み
SB-11-011
alt文の一括点検
未設定・重複のaltを洗い出す
実装済み
SB-11-012
画像の著作権・出典管理
素材の出典とライセンスを記録する
実装済み
SB-11-013
ストックフォトAPI連携
記事テーマから候補画像を検索して差し込む
実装済み
SB-11-014
AI画像生成
記事内容に沿った図版を生成する
実装済み
SB-11-015
図解・チャート生成
数値データから記事用グラフを作る
実装済み
SB-11-016
動画の埋め込み
YouTube等を記事に埋め込みVideoObjectを出す
実装済み
SB-11-017
音声版記事(読み上げ)
本文を音声化してポッドキャスト配信する
実装済み
SB-11-018
画像のCDNキャッシュ制御
更新時にキャッシュを破棄する
実装済み
SB-11-019
画像ファイル名のSEO最適化
内容が分かる英字ファイル名に整える
実装済み
SB-11-020
スクリーンショット自動取得
参照サイトの画面を証跡として保存する
実装済み
SB-11-021
画像の重複検出
同じ画像の使い回しを検知する
実装済み
SB-11-022
メディアライブラリ
使用済み画像を横断検索できる棚を持つ
実装済み
内部リンク・サイト構造
20項目 ・ 実装済み 20SB-12-001
記事一覧ページ
公開記事をカード一覧で並べる
実装済み
SB-12-002
カテゴリ別の分類表示
記事のカテゴリを一覧に出す
実装済み
SB-12-003
タグ表示
記事に付いたタグを表示する
実装済み
SB-12-004
パンくずの階層
トップ→ブログ→記事 の導線を出す
実装済み
SB-12-005
サイト全体の共通ナビゲーション
全ページで同じヘッダ/フッタ導線を持つ
実装済み
SB-12-006
記事内目次からの内部アンカー
見出しへのジャンプリンクを張る
実装済み
SB-12-007
関連記事の自動リンク
同クラスタの記事を機械的に相互リンクする
実装済み
SB-12-008
内部リンク不足の検出
被リンクの少ない孤立記事を洗い出す
実装済み
SB-12-009
アンカーテキストの最適化提案
「こちら」等の弱いリンク文言を指摘する
実装済み
SB-12-010
リンク切れ検査
内部・外部リンクの404を定期巡回で見つける
実装済み
SB-12-011
リダイレクト管理
slug変更時に301を自動で張る
実装済み
SB-12-012
ピラーページ/クラスタ構造
軸記事とサテライト記事の関係を管理する
実装済み
SB-12-013
カテゴリページのSEO最適化
一覧ページにも独自の説明文と構造化データを持たせる
実装済み
SB-12-014
タグページの間引き
記事数の少ないタグページをnoindexにする
実装済み
SB-12-015
ページネーション制御
一覧の分割にrel/canonicalを正しく設定する
実装済み
SB-12-016
サイト内検索
記事本文を全文検索する
実装済み
SB-12-017
サイトマップの階層可視化
サイト構造をツリーで俯瞰する
実装済み
SB-12-018
孤立ページの検出
どこからもリンクされていないURLを見つける
実装済み
SB-12-019
URL設計ルールの強制
階層の深さ・命名規則を投入時に検査する
実装済み
SB-12-020
多階層カテゴリ
親子カテゴリでサイトを整理する
実装済み
テクニカルSEO
25項目 ・ 実装済み 25SB-13-001
robots.txt の配信
クロール許可とサイトマップ位置を明示する
実装済み
SB-13-002
sitemap.xml の自動生成
全ページと記事URLをlastmod付きで出力する
実装済み
SB-13-003
RSSフィード
記事の更新をRSS 2.0で配信する
実装済み
SB-13-004
正規URLの統一
自己参照canonicalで重複URLを1本に寄せる
実装済み
SB-13-005
HTTPS配信
全ページをTLS経由で提供する
実装済み
SB-13-006
レスポンシブ表示
スマホ・タブレット・PCで崩れないレイアウト
実装済み
SB-13-007
軽量な初期表示
外部フレームワーク非依存でCSS/JSを最小限にする
実装済み
SB-13-008
文字コード・言語宣言
UTF-8 と lang=ja を明示する
実装済み
SB-13-009
meta viewport
モバイルで正しい縮尺で表示する
実装済み
SB-13-010
404ページ
存在しないURLに案内付きの404を返す
実装済み
SB-13-011
HTMLの構造化(セマンティック)
header/main/article/nav を正しく使う
実装済み
SB-13-012
ヘルスチェックエンドポイント
/v1/health で稼働状態を機械的に確認する
実装済み
SB-13-013
Core Web Vitals計測
LCP/INP/CLSを実ユーザーから収集する
実装済み
SB-13-014
ページ速度の改善提案
重い要素を指摘して具体策を出す
実装済み
SB-13-015
インデックス状況の確認
検索エンジンに登録されたURL数を追う
実装済み
SB-13-016
クロールエラー監視
サーバエラー・ソフト404を検知する
実装済み
SB-13-017
hreflang出力
多言語版の対応関係を宣言する
実装済み
SB-13-018
AMP/軽量版の提供
モバイル向け軽量ページを別に出す
実装済み
SB-13-019
構造化データの検証
JSON-LDの必須項目欠落を自動テストする
実装済み
SB-13-020
IndexNow / URL通知
公開直後に検索エンジンへURLを送信する
実装済み
SB-13-021
HTTPヘッダの最適化
キャッシュ・圧縮・セキュリティヘッダを整える
実装済み
SB-13-022
ログファイル解析
クローラの巡回頻度をアクセスログから見る
実装済み
SB-13-023
JavaScript依存の削減
本文がJS無しで読める状態を保つ
実装済み
SB-13-024
画像のサイズ属性指定
width/heightを入れてレイアウトシフトを防ぐ
実装済み
SB-13-025
カスタムドメイン対応
独自ドメインで配信する
実装済み
計測・アナリティクス
30項目 ・ 実装済み 30SB-14-001
UTMパラメータ設計
source/medium/campaign/content の付与ルールを統一する
実装済み
SB-14-002
媒体別のutm_content
どの配信先から来たかを1パラメータで切り分ける
実装済み
SB-14-003
CTA位置別の計測タグ
冒頭/中盤/末尾のどのCTAが効いたかを分ける
実装済み
SB-14-004
クライアント別campaign
utm_campaignをクライアント単位で自動採番する
実装済み
SB-14-005
配信結果の件数集計
ジョブごとの成功/失敗/スキップ数を出す
実装済み
SB-14-006
媒体別の公開URL一覧
1記事がどこに何のURLで載ったかを一覧で持つ
実装済み
SB-14-007
コンソールのサマリ指標
記事数・ジョブ数・配信先数をダッシュボードに出す
実装済み
SB-14-008
Google Analytics 4連携
GA4のイベントを取り込み記事別に集計する
実装済み
SB-14-009
Search Console連携
表示回数・クリック・平均掲載順位を取り込む
実装済み
SB-14-010
記事別ダッシュボード
1記事のPV・CTR・CVを1画面にまとめる
実装済み
SB-14-011
流入チャネル分析
検索/SNS/LINE/直接の内訳を出す
実装済み
SB-14-012
AI検索からの流入計測
ChatGPT・Perplexity等のリファラを分離して数える
実装済み
SB-14-013
滞在時間・スクロール深度
読まれた深さを計測して離脱箇所を見る
実装済み
SB-14-014
ヒートマップ
クリック位置を可視化する
実装済み
SB-14-015
CVトラッキング
友だち追加・問い合わせ・購入を成果として記録する
実装済み
SB-14-016
マルチタッチ・アトリビューション
複数記事を経た成約の貢献度を配分する
実装済み
SB-14-017
記事のROI算出
制作コストと獲得成果を突き合わせる
実装済み
SB-14-018
コホート分析
公開月ごとの記事の伸び方を比較する
実装済み
SB-14-019
目標(KPI)設定と進捗
月間の流入・CV目標に対する達成率を出す
実装済み
SB-14-020
異常検知アラート
流入の急落を検知して通知する
実装済み
SB-14-021
イベントの自前収集
外部ツールに頼らず自社でPVを記録する
実装済み
SB-14-022
Cookie同意管理
計測前に同意を取り、拒否時は計測しない
実装済み
SB-14-023
プライバシー配慮の匿名計測
個人を特定しない形でアクセスを数える
実装済み
SB-14-024
リアルタイム閲覧数
いま読まれている記事を表示する
実装済み
SB-14-025
参照元ドメインの一覧
被リンク元から実際に来た流入を見る
実装済み
SB-14-026
検索クエリ別の成果
クエリごとのCVRを出して記事改善に使う
実装済み
SB-14-027
デバイス別・地域別の内訳
モバイル比率や都道府県別の流入を見る
実装済み
SB-14-028
レポートの自動配信
週次・月次で指標をメール送付する
実装済み
SB-14-029
ダッシュボードの共有リンク
クライアントに読み取り専用URLを渡す
実装済み
SB-14-030
データエクスポート
計測値をCSV/JSONで書き出す
実装済み
順位計測・競合分析
25項目 ・ 実装済み 25SB-15-001
キーワード登録
追跡したい語を記事に紐付けて登録する
実装済み
SB-15-002
日次順位取得
登録語の検索順位を毎日記録する
実装済み
SB-15-003
順位推移グラフ
期間指定で順位の上下を折れ線で見る
実装済み
SB-15-004
順位変動アラート
大きく落ちた語を検知して通知する
実装済み
SB-15-005
PC/モバイル別順位
デバイスごとに分けて計測する
実装済み
SB-15-006
地域別順位
都市単位のローカル検索順位を取る
実装済み
SB-15-007
競合サイトの並行追跡
同じ語で競合が何位かを併記する
実装済み
SB-15-008
SERP機能の占有状況
強調スニペット・PAA・地図枠を誰が取っているか見る
実装済み
SB-15-009
順位×流入の相関
順位が上がった語が実際に流入を生んだか確かめる
実装済み
SB-15-010
勝ちパターンの抽出
上位化した記事に共通する構成を洗い出す
実装済み
SB-15-011
競合の被リンク分析
競合が獲得しているリンク元を調べる
実装済み
SB-15-012
自社の被リンク監視
新規・喪失リンクを追跡する
実装済み
SB-15-013
ドメイン評価スコア
自社と競合の相対的な強さを数値で持つ
実装済み
SB-15-014
競合のコンテンツ更新頻度
競合の投稿ペースを測る
実装済み
SB-15-015
シェア・オブ・ボイス
対象クラスタでの露出シェアを算出する
実装済み
SB-15-016
順位レポートのPDF出力
クライアント提出用の体裁で出す
実装済み
SB-15-017
改稿優先度の自動提示
11〜20位の「あと一歩」の記事を優先させる
実装済み
SB-15-018
カニバリの順位面での検出
同一語で2記事が入れ替わる状態を見つける
実装済み
SB-15-019
インデックス削除の検知
急に順位が消えた語を警告する
実装済み
SB-15-020
アルゴリズム更新の記録
検索エンジンの大型更新日を年表として重ねる
実装済み
SB-15-021
順位データのAPI提供
外部BIツールから読める形で出す
実装済み
SB-15-022
計測対象の上限管理
プランごとの追跡キーワード数を制御する
実装済み
SB-15-023
履歴データの長期保管
過去数年分の順位を保持して比較する
実装済み
SB-15-024
ブランド語と一般語の分離
指名検索と非指名を分けて評価する
実装済み
SB-15-025
AI検索での引用状況
生成AIの回答に自社が引用されたかを追う
実装済み
レポーティング
14項目 ・ 実装済み 14SB-16-001
配信ジョブの詳細ビュー
1ジョブの媒体別結果・URL・エラー文を1画面で読む
実装済み
SB-16-002
配信サマリの表示
成功/失敗/スキップの内訳を数で出す
実装済み
SB-16-003
ジョブ履歴の一覧
過去の配信を新しい順に並べる
実装済み
SB-16-004
失敗理由の日本語表示
資格情報不足・HTTPエラーを読める文言で出す
実装済み
SB-16-005
月次レポートの自動生成
流入・順位・CVをまとめた定型レポートを作る
実装済み
SB-16-006
クライアント向けPDF出力
ロゴ入りの報告書として書き出す
実装済み
SB-16-007
レポートのテンプレート編集
項目の取捨選択と並び順を保存する
実装済み
SB-16-008
前月比・前年比の自動計算
増減率と差分を自動で添える
実装済み
SB-16-009
施策と成果の対応表
実施した改稿と順位変動を並べて示す
実装済み
SB-16-010
コメント欄付きレポート
担当者の所見を数字の横に書き添える
実装済み
SB-16-011
レポート配信のスケジュール
毎月1日に自動送付する
実装済み
SB-16-012
複数クライアントの横断比較
運用中の全アカウントを1表で見る
実装済み
SB-16-013
ホワイトラベル出力
代理店ブランドで報告書を出す
実装済み
SB-16-014
レポートの共有URL
PDFでなくWebページとして共有する
実装済み
クライアント管理・マルチテナント
16項目 ・ 実装済み 16SB-17-001
複数クライアントの並行運用
1つの基盤で複数社の配信設定を持つ
実装済み
SB-17-002
クライアント設定のYAML管理
clients.yaml に配信先・CTA・トンマナをまとめる
実装済み
SB-17-003
クライアントのAPI登録
POST /v1/clients で設定を投入する
実装済み
SB-17-004
クライアント一覧API
登録済みの全クライアントを取得する
実装済み
SB-17-005
認証情報のマスク返却
APIの応答でトークンを *** に伏せる
実装済み
SB-17-006
配信先の役割上書き
既定の役割をクライアント側で変更する
実装済み
SB-17-007
クライアント別UTMキャンペーン
計測パラメータを社ごとに分ける
実装済み
SB-17-008
業種(industry)の保持
業種を設定に持ち、雛形の出し分けに使う
実装済み
SB-17-009
サテライトサイト構成
同一クライアントで別ドメインをprimaryに持つ
実装済み
SB-17-010
コンソールのクライアント切替
画面上部でクライアントを選び全ビューに反映する
実装済み
SB-17-011
クライアント別の記事棚
記事をクライアント単位で分けて保管する
実装済み
SB-17-012
クライアント追加ウィザード
画面から数ステップで新規クライアントを作る
実装済み
SB-17-013
クライアントごとの利用量計測
記事数・配信数をテナント別に数える
実装済み
SB-17-014
データの完全分離
テナント別の窓口で参照を強制し、混在しないことを検証・書き出し・削除できる
実装済み
SB-17-015
クライアント側ログイン
顧客が自分の記事と成果だけを見る画面
実装済み
SB-17-016
代理店アカウント階層
代理店→エンドクライアントの2階層で管理する
実装済み
ワークフロー・承認
12項目 ・ 実装済み 12SB-18-001
ドライラン確認フロー
配信前に中身を確認してから本番実行する運用ができる
実装済み
SB-18-002
下書き公開
draft指定で媒体に下書きとして置き、人が最終確認する
実装済み
SB-18-003
手動投稿タスクの生成
note/Ameba用の作業パッケージを自動で用意する
実装済み
SB-18-004
手動投稿の完了記録
投稿後のURLを登録してジョブを閉じる
実装済み
SB-18-005
承認ステータス管理
draft→レビュー中→承認済み→公開 の状態を持つ
実装済み
SB-18-006
担当者アサイン
記事ごとに執筆者・校正者・承認者を割り当てる
実装済み
SB-18-007
コメント・修正指示
記事の該当箇所にコメントを付けてやり取りする
実装済み
SB-18-008
差し戻し
承認者が理由を付けて執筆者に返す
実装済み
SB-18-009
承認期限と催促
期限切れの承認待ちを自動で催促する
実装済み
SB-18-010
チェックリスト
公開前の確認項目を必須化する
実装済み
SB-18-011
変更履歴と監査証跡
誰がいつ何を変えたかを残す
実装済み
SB-18-012
タスクボード
制作中の記事をカンバンで俯瞰する
実装済み
API・拡張・連携
18項目 ・ 実装済み 18SB-19-001
REST API
記事投入・ジョブ取得・クライアント管理をHTTPで提供する
実装済み
SB-19-002
APIキー認証
X-API-Key ヘッダで保護する(未設定ならローカル用に無認証)
実装済み
SB-19-003
OpenAPI仕様の自動生成
FastAPIが /openapi.json とSwagger UIを出す
実装済み
SB-19-004
プラットフォーム能力API
対応媒体と機能をJSONで取得する
実装済み
SB-19-005
機能カタログAPI
全機能とその実装状況をJSONで返す
実装済み
SB-19-006
版番号の出どころを1つにする
変更履歴の最新見出しをそのまま版番号にする(手で書き換える運用では必ずずれる)
実装済み
SB-19-007
終わらないリンクを画面に置かない
SSEを<a href>で貼ると押した人のタブが固まる。画面内で購読し、止められる形にする
実装済み
SB-19-008
自サイトを自分で巡回する回帰テスト
全ページを辿ってリンク切れと、返ってこないリンクの両方を検出する
実装済み
SB-19-009
テストは専用のDBで動かす
手元でアカウントを1つ作っただけで無関係な17件が落ちた。開発中の状態に左右させない
実装済み
SB-19-010
Webhookアダプタ
任意の外部システムへ記事JSONをPOSTする
実装済み
SB-19-011
Webhook署名
共有シークレットで送信元を検証できるようにする
実装済み
SB-19-012
CLI
platforms / validate / publish をコマンドで実行する
実装済み
SB-19-013
アダプタ拡張点
@register を付けたクラス1つで新媒体を追加できる
実装済み
SB-19-014
Pythonパッケージとして利用
pip install してライブラリとして組み込む
実装済み
SB-19-015
Webhook受信(インバウンド)
外部の公開イベントを受け取って状態を更新する
実装済み
SB-19-016
APIレート制限
キーごとの呼び出し上限を設ける
実装済み
SB-19-017
APIキーのスコープ
読み取り専用キーと配信可能キーを分ける
実装済み
SB-19-018
SDK提供
JavaScript / Python のクライアントライブラリを配る
実装済み
セキュリティ・権限
14項目 ・ 実装済み 14SB-20-001
シークレットの環境変数化
トークンを設定ファイルに直書きせず実行時に注入する
実装済み
SB-20-002
応答での資格情報マスク
APIレスポンスから実トークンを排除する
実装済み
SB-20-003
APIキーによるアクセス制御
配信系エンドポイントを鍵付きにする
実装済み
SB-20-004
コンソールの読み取り専用モード
鍵が無い閲覧者には配信操作をさせない
実装済み
SB-20-005
HTTPS前提の通信
外部API・自サイトともTLSで通す
実装済み
SB-20-006
外部リンクのnoopener
タブナビング対策としてrelを付ける
実装済み
SB-20-007
入力値の検証
pydanticで型・必須・書式を検査して不正入力を弾く
実装済み
SB-20-008
ユーザーアカウントとログイン
個人単位の認証を持つ
実装済み
SB-20-009
ロール権限(RBAC)
管理者/編集者/閲覧者で操作を分ける
実装済み
SB-20-010
二要素認証
ログインに追加の確認要素を求める
実装済み
SB-20-011
シークレットの暗号化保管
トークンを暗号化してデータベースに持つ
実装済み
SB-20-012
監査ログ
設定変更・配信操作の履歴を残す
実装済み
SB-20-013
IP制限
管理画面へのアクセス元を絞る
実装済み
SB-20-014
個人情報の取り扱い方針
収集項目と保持期間を明文化して守る
実装済み
課金・プラン
10項目 ・ 実装済み 10SB-21-001
料金プランの提示
プラン内容と価格をサイト上で明示する
実装済み
SB-21-002
プラン別の機能差の明示
どのプランで何が使えるかを表で示す
実装済み
SB-21-003
問い合わせ導線
見積もり・相談への導線を各ページに置く
実装済み
SB-21-004
利用量の計測
記事数・配信数・LINE通数をプラン上限と突き合わせる
実装済み
SB-21-005
上限超過の警告
しきい値到達時に通知する
実装済み
SB-21-006
クレジットカード決済
オンラインで申し込みと支払いを完結させる
実装済み
SB-21-007
請求書発行
月次の請求書PDFを自動発行する
実装済み
SB-21-008
インボイス制度対応
適格請求書の記載要件を満たす
実装済み
SB-21-009
トライアル期間
一定期間の無料利用を管理する
実装済み
SB-21-010
プラン変更・解約
画面から即時に切り替える
実装済み
運用・信頼性
12項目 ・ 実装済み 12SB-22-001
自動テスト
エンジン・アダプタ・API・本文整形のテストを備える
実装済み
SB-22-002
HTTPモックによるアダプタ検証
respxで外部APIを模してリクエスト内容を検査する
実装済み
SB-22-003
ヘルスチェック
/v1/health で稼働とクライアント数を返す
実装済み
SB-22-004
コンテナ化
Dockerイメージ1つで起動する
実装済み
SB-22-005
設定不備の早期発見
起動時にYAMLを検証し不正な配信先を弾く
実装済み
SB-22-006
障害の局所化
1媒体の障害が他媒体の配信を止めない
実装済み
SB-22-007
バージョン表示
稼働中のバージョンをAPIとフッタに出す
実装済み
SB-22-008
変更履歴(CHANGELOG)
出荷した機能を公開の変更履歴に残す
実装済み
SB-22-009
構造化ログ
ジョブIDつきの機械可読ログを出す
実装済み
SB-22-010
メトリクス出力
配信数・失敗率をPrometheus形式で出す
実装済み
SB-22-011
バックアップと復元
設定とジョブ履歴を定期バックアップする
実装済み
SB-22-012
ステータスページ
各媒体連携の稼働状況を公開する
実装済み
ローカルSEO・MEO
8項目 ・ 実装済み 8SB-23-001
地域名を含む記事運用
地域×サービスの記事をクライアント設定から回せる
実装済み
SB-23-002
Googleビジネスプロフィール連携
投稿・営業情報の更新を自動化する
実装済み
SB-23-003
口コミの収集と返信支援
レビューを集約しAIが返信文を下書きする
実装済み
SB-23-004
NAP情報の一貫性チェック
社名・住所・電話の表記ゆれを各所で点検する
実装済み
SB-23-005
地図検索順位の計測
地点ごとのローカルパック順位を測る
実装済み
SB-23-006
店舗別ページの量産
多店舗のページを構造化データ付きで生成する
実装済み
SB-23-007
LocalBusiness構造化データ
営業時間・住所・電話をJSON-LDで出す
実装済み
SB-23-008
地域メディアへの配信
地域情報サイトへの掲載導線を管理する
実装済み
AI検索最適化(AIO / LLMO)
9項目 ・ 実装済み 9SB-24-001
機械可読な記事構造
見出し・箇条書き・表を保ったMarkdownを一次情報として持つ
実装済み
SB-24-002
要約(excerpt)の明示提供
AIが引用しやすい短い要約を記事に必ず持たせる
実装済み
SB-24-003
構造化データの出力
Article JSON-LDでページの意味を機械に伝える
実装済み
SB-24-004
クロール許可の明示
robots.txtでAIクローラの扱いを宣言できる
実装済み
SB-24-005
llms.txt の提供
サイトの要点をLLM向けの索引として公開する
実装済み
SB-24-006
AI検索での引用監視
生成AIの回答に自社が現れるかを定点観測する
実装済み
SB-24-007
回答されやすい定義文の設計
冒頭に一問一答形式の定義を置く型を用意する
実装済み
SB-24-008
一次情報・独自データの付与
自社調査の数値を記事に持たせて引用価値を上げる
実装済み
SB-24-009
エンティティ整合
社名・製品名の表記を全媒体で統一し実体を認識させる
実装済み
制作指示書・編集ブリーフ
20項目 ・ 実装済み 20SB-25-001
キーワードから制作指示書を生成
狙う語を渡すと、構成・話題・質問・内部リンクを束ねた1枚を組み立てる
実装済み
SB-25-002
検索意図別の構成雛形
howto/compare/transactional/local/navigational ごとにH2の骨格を持つ
実装済み
SB-25-003
上位ページの見出しから構成を合成
SERP上位3件のH2を突き合わせ、共通する流れを構成案にする
実装済み
SB-25-004
見出しの重複と断片の除去
包含関係にある見出しは1本にまとめ、「ステップ1」のような中身の無い断片は落とす
実装済み
SB-25-005
外せない話題を言及率つきで提示
上位ページの何割が扱っているかを添えるので、優先順位が判断できる
実装済み
SB-25-006
答えるべき質問の抽出
関連質問(PAA)をそのままFAQ節に使える形で並べる
実装済み
SB-25-007
入れたい語(共起語)の提示
上位ページで一緒に使われている語を、詰め込み注意の但し書きつきで出す
実装済み
SB-25-008
目安の文字数を上位の中央値から
平均でなく中央値を使う(極端に長い1本に引きずられないため)
実装済み
SB-25-009
強調スニペットの型と狙い方
現在抜かれている型(定義/手順/表)を判定し、合わせ方を書く
実装済み
SB-25-010
上位ページ一覧の添付
順位・ドメイン・文字数・表や箇条書きの有無を表で渡す
実装済み
SB-25-011
仮タイトル案
検索意図別の型で作り、検索結果で切れない長さまで自動で詰める
実装済み
SB-25-012
メタディスクリプション案
構成の上位3見出しから作り、長さ上限で丸める
実装済み
SB-25-013
内部リンク候補の提示
自社記事の関連度から3本まで、なぜ張るのかの理由つきで出す
実装済み
SB-25-014
自社の一次データを出典表記ごと添付
他所に無い数字は検索でもAI検索でも効くため、引用形式のまま渡す
実装済み
SB-25-015
表現の制約を既定で載せる
断定回避・数値の出典・1文の長さ・見出し20字など、毎回書かせる指示を定型化
実装済み
SB-25-016
指示書の根拠を明示
SERP由来か雛形由来かを区別して書く。材料が無い項目は黙って省く
実装済み
SB-25-017
Markdownで丸ごと渡せる
外部の書き手にそのまま送れる1枚。どの編集ツールにも貼れる
実装済み
SB-25-018
キーワード台帳との連携
台帳にある語なら意図と既存記事の紐付けを引き継ぐ
実装済み
SB-25-019
指示書の保存・一覧・削除
作った指示書をキーで保管し、あとから開き直せる
実装済み
SB-25-020
原稿と指示書の照合
書き上がった原稿に、話題の抜け・未回答の質問・張り忘れた内部リンク・分量不足が無いか照合する
実装済み
コンテンツ棚卸し・リライト判断
20項目 ・ 実装済み 20SB-26-001
全記事の仕分け
そのまま/改稿/更新/統合/削除検討/様子見/判断不能 の7つに振り分ける
実装済み
SB-26-002
判断には必ず理由を添える
結論だけでは人が検証できないため、根拠を日本語で列挙する
実装済み
SB-26-003
公開直後の記事は評価しない
公開90日未満は「様子見」に固定する(順位が付く前に消させない)
実装済み
SB-26-004
公開日が無い記事は判断不能にする
鮮度が測れないものを無理に判断せず、publish_at の設定を促す
実装済み
SB-26-005
重複から統合を提案
本文の類似度がしきい値を超えた組を検出し、食い合う前に統合を勧める
実装済み
SB-26-006
4〜20位の記事を改稿の最優先に
1ページ目まであと一歩の記事は、改稿の費用対効果が最も高い
実装済み
SB-26-007
1年以上前の記事を成果で振り分け
成果が出ていれば更新、出ていなければ削除検討に回す
実装済み
SB-26-008
流入も被リンクも無い記事の抽出
消す前に狙う語が合っているかを確認する、という但し書きつきで出す
実装済み
SB-26-009
閲覧数は全体分布で相対評価
35パーセンタイルを基準にする(絶対値のしきい値はサイト規模で意味が変わる)
実装済み
SB-26-010
内部被リンク数を判断材料に
どこからも張られていない記事を見つけ、関連記事から繋ぐよう促す
実装済み
SB-26-011
記事診断スコアを判断材料に
改稿対象の記事について、まだ潰せる指摘が残っているかを添える
実装済み
SB-26-012
順位を判断材料に
その記事URLで取れている語の平均順位を計算して使う
実装済み
SB-26-013
Search Console のクリックを判断材料に
接続されていれば検索流入の実数を取り込む
実装済み
SB-26-014
本文が短い記事に加点
800字未満は検索意図を満たしきれていない可能性として優先度を上げる
実装済み
SB-26-015
優先度順に並べる
上から順に手を付ければよい状態にする
実装済み
SB-26-016
計測が無いことを隠さない
計測データが無いときは、流入に基づく判断ができていないと明記する
実装済み
SB-26-017
提案までで実行しない
削除は取り返しがつかないため、棚卸しは記事にもDBにも一切書き込まない
実装済み
SB-26-018
人の判断を記録する
各記事に対する結論と補足を残し、取り消せる
実装済み
SB-26-019
未処理の仕分けだけ抽出
判断済みと「そのまま/様子見」を除いた、手を動かすべき一覧を出す
実装済み
SB-26-020
棚卸し画面
仕分け・理由・材料の有無を1画面で見せ、一括操作へ渡せる
実装済み
用語集・エンティティ
26項目 ・ 実装済み 26SB-27-001
用語ページの公開
1語1ページ。「〇〇とは」で検索する人の入口になる
実装済み
SB-27-002
用語集の索引ページ
登録した全用語を一覧で公開する
実装済み
SB-27-003
記事本文から用語候補を抽出
「〇〇とは、…です」の形を拾い、定義文ごと候補にする
実装済み
SB-27-004
ひらがな終わりの断片を除外
「やることは」から「やるこ」を拾ってしまう類の誤検出を落とす
実装済み
SB-27-005
指示語の除去
「この構造化データ」から「構造化データ」を取り出す
実装済み
SB-27-006
用語スラッグの自動生成
日本語の語からもURLに使える識別子を作る
実装済み
SB-27-007
短すぎる定義の登録を拒否
その語を知らない人に通じない定義は、理由を返して受け付けない
実装済み
SB-27-008
DefinedTerm 構造化データ
用語ページに機械可読な定義を出す
実装済み
SB-27-009
DefinedTermSet 構造化データ
索引ページを用語集として認識させる
実装済み
SB-27-010
FAQ形式への変換
用語をそのままFAQPageのエントリとして使える形にする
実装済み
SB-27-011
用語と記事の相互紐付け
その語に触れている記事を自動で見つけ、双方向の導線にする
実装済み
SB-27-012
本文の初出だけ自動リンク
同じ語を何度もリンクにすると雑音になるため、1本文につき1回
実装済み
SB-27-013
書き換えてはいけない箇所を保護
見出し・コードブロック・インラインコード・既存リンクには触れない
実装済み
SB-27-014
自動リンク数の上限
1本文あたりのリンク数を制限し、リンクだらけの本文を作らない
実装済み
SB-27-015
カバレッジの可視化
登録数・記事に紐付いた数・未登録の候補数を出す
実装済み
SB-27-016
候補の一括登録
抽出した候補をまとめて用語集に取り込む
実装済み
SB-27-017
用語集の管理画面
候補・登録済み・紐付き状況を1画面で扱う
実装済み
SB-27-018
用語ページから記事への導線
その語を扱う自社記事と、隣接する用語を並べる
実装済み
SB-27-019
基盤が扱う概念の説明を同梱
canonical・重複コンテンツ・強調スニペット・E-E-A-T など30語を、この製品での効き方まで書いた定義付きで最初から用意する
実装済み
SB-27-020
足りない語だけを追加する起動処理
既にある語には触れない。人が書き直した定義が起動のたびに戻されない
実装済み
SB-27-021
日本語の用語でもslugが衝突しない
英字だけ抜くと「AIによる〜」と「AI活用の〜」が同じURLになる。語を代表していない場合は語ごとの印を足す
実装済み
SB-27-022
別の用語による上書きを拒否
同じ slug に違う用語を登録しようとしたら、既存の用語名を添えて止める
実装済み
SB-27-023
伏字を用語にしない
「〇〇とは」は説明のための例であって用語ではない。候補から外す
実装済み
SB-27-024
片括弧の語を弾く
「AI検索最適化(LLMO」のように閉じ括弧の手前で切れた語は、見出しにもURLにも使えない
実装済み
SB-27-025
ほぼ同じ用語を2枚作らない
括弧の外と中を同じ部品として並べ替えて比べる。似た用語ページが並ぶと互いに食い合う
実装済み
SB-27-026
別名も既知として扱う
登録済み用語の別名に当たる語を、記事本文から再び拾わない
実装済み
一括運用
20項目 ・ 実装済み 20SB-28-001
12種類の一括操作
タグ・カテゴリ・CTA・配信先・fallback・ワークフロー・再配信・撤回・アーカイブ
実装済み
SB-28-002
既定は dry-run
実行の前に、何がどう変わるかだけを返す
実装済み
SB-28-003
変更前後を1件ずつ提示
対象記事ごとに、どの項目が何から何になるかを見せる
実装済み
SB-28-004
危険な操作は確認トークン必須
外部に出るもの・取り返しがつかないものは、計画時に発行したトークン無しでは実行しない
実装済み
SB-28-005
確認トークンは一度きり
使ったトークンは即座に失効し、同じ計画を二度流せない
実装済み
SB-28-006
1件の失敗で全体を落とさない
計画作成中の例外は対象1件のスキップとして記録し、残りは進める
実装済み
SB-28-007
変化しない対象を理由つきで除外
既に付いているタグなどは「変化がありません」として計画から外す
実装済み
SB-28-008
未知の操作を拒否
定義されていない操作名は、使える一覧を添えて弾く
実装済み
SB-28-009
タグで絞る
指定タグを持つ記事だけを対象にする
実装済み
SB-28-010
カテゴリで絞る
指定カテゴリの記事だけを対象にする
実装済み
SB-28-011
記事を名指しで絞る
slug の列挙で対象を確定させる
実装済み
SB-28-012
本文・タイトルの語で絞る
特定の表記を含む記事だけを一括で直せる
実装済み
SB-28-013
文字数で絞る
上限・下限を指定して、短い記事だけをまとめて扱う
実装済み
SB-28-014
棚卸しの結果で絞る
「削除検討」と判定された記事だけ、のような選び方ができる
実装済み
SB-28-015
絞り込み条件はすべてAND
条件を足すほど対象が狭まる、予測できる挙動にする
実装済み
SB-28-016
記事JSONへの実書き込み
タグ・カテゴリ・CTA・配信先・fallback は実ファイルを書き換える
実装済み
SB-28-017
ワークフロー状態と担当の一括変更
承認フローの状態遷移と担当割り当てをまとめて動かす
実装済み
SB-28-018
再配信・撤回の一括実行
外部媒体に対する操作。トークン確認を通ったときだけ走る
実装済み
SB-28-019
実行結果を監査ログに残す
誰が何件を成功・失敗させたかを後から追える
実装済み
SB-28-020
一括操作の管理画面
使える操作・絞り込み・対象記事を1画面で確認できる
実装済み
サイト内検索・追加導線
11項目 ・ 実装済み 11SB-29-001
サイト内検索
タイトル・抜粋・タグに加えて本文まで検索する
実装済み
SB-29-002
用語も横断して検索
記事に無くても用語集に説明があれば、それを先に見せる
実装済み
SB-29-003
0件のときはそう言う
空の一覧を返さず、別の言葉を試す案内と記事一覧・用語集への導線を出す
実装済み
SB-29-004
検索結果ページの noindex
検索結果ページ自体が検索に載ると低品質ページとして扱われるため除外する
実装済み
SB-29-005
カテゴリ別RSS
興味のあるカテゴリだけを購読できる
実装済み
SB-29-006
タグ別RSS
興味のあるタグだけを購読できる
実装済み
SB-29-007
該当0件のフィードは404を返す
空のRSSを配って購読させない
実装済み
SB-29-008
著者ページ
誰が書いたかを1ページにまとめる(E-E-A-T の土台)
実装済み
SB-29-009
著者の Person 構造化データ
肩書き・経歴・所属を機械可読で出す
実装済み
SB-29-010
執筆記事と監修記事を分けて表示
書いた記事と監修した記事は意味が違うため、同じ扱いにしない
実装済み
SB-29-011
中身の無い索引ページを出さない
用語が1語も無いときは、用語集をsitemapに載せない
実装済み
記事エディタ・版管理
24項目 ・ 実装済み 24SB-30-001
コンソールから記事を書ける
記事JSONを手でディレクトリに置かなくても、画面から新規作成できる
実装済み
SB-30-002
制作指示書から下書きを起こす
指示書の構成をH2として先に置いた状態で書き始められる
実装済み
SB-30-003
打鍵しながら診断が回る
保存しなくてもその場で診断する。書き終えてから別画面で診るのでは直さない
実装済み
SB-30-004
診断の指摘をエディタ内に出す
深刻度つきの指摘と、直し方の手がかりを本文の隣に並べる
実装済み
SB-30-005
見出し構造の可視化
H2〜H6の入れ子を字下げで見せ、構成の崩れをその場で気付けるようにする
実装済み
SB-30-006
階層の飛びを指摘
H2の次にH4が来るような飛びを、書いている最中に指摘する
実装済み
SB-30-007
タイトル・slug・メタ説明・抜粋・タグ・カテゴリの編集
配信と公開面が使う項目を1画面で埋められる
実装済み
SB-30-008
下書き / 公開の切り替え
書きかけを公開面に出さないまま保存できる
実装済み
SB-30-009
保存のたびに直前の版を控える
上書きで失うものを作らない。リライトは前と比べられないと判断できない
実装済み
SB-30-010
版の上限と古い版の破棄
1記事30版まで。古いものから落とし、DBが記事の何十倍にもならないようにする
実装済み
SB-30-011
変更が無ければ版を作らない
保存ボタンを二度押しただけで履歴が埋まる、を避ける
実装済み
SB-30-012
保存メモ
何を直したかを1行残せる。あとで版を選ぶときの手がかりになる
実装済み
SB-30-013
保存履歴の一覧
版ごとの日時・メモ・文字数・診断スコアを並べる
実装済み
SB-30-014
版どうしの本文差分
行単位の差分(unified diff)で、何を足して何を消したかを見せる
実装済み
SB-30-015
項目の変化も差分に出す
本文だけでなく、タイトル・カテゴリ・タグ・状態の変化も並べる
実装済み
SB-30-016
古い版に戻す
1クリックで以前の内容に戻せる
実装済み
SB-30-017
戻す前の状態も版として残す
戻し過ぎを取り消せる。取り消せない操作は怖くて使われない
実装済み
SB-30-018
記事の複製
同じ構成で別記事を起こす。下書きとして作り、公開日とcanonicalは引き継がない
実装済み
SB-30-019
削除しても版は残る
ファイルは消えるが中身はDBに残り、あとから復元できる
実装済み
SB-30-020
削除には slug の入力を要求
確認ダイアログの押し間違いでは消えない
実装済み
SB-30-021
保存前のスキーマ検証
pydanticで検証し、どの項目がなぜ駄目かを日本語で返す。壊れたJSONを書いてから気付く順番にしない
実装済み
SB-30-022
パストラバーサルの拒否
slug に `../` や `/` を含む書き込みを、ファイルに触れる前に弾く
実装済み
SB-30-023
保存後に記事ライブラリを読み直す
書いたのに一覧にも公開面にも出ない、という状態を作らない
実装済み
SB-30-024
記事の生JSONを取得
エディタが読み込む元データをそのまま返す
実装済み
コンソールの書き込み経路
7項目 ・ 実装済み 7SB-31-001
運用キーをタブにだけ保持
sessionStorage に置き、サーバにも localStorage にも残さない。タブを閉じれば消える
実装済み
SB-31-002
キーの状態を常時表示
設定済み / 未設定 / 鍵不要 を右上に出す。押せないボタンの理由が分かる
実装済み
SB-31-003
401のときに次の手を示す
「無効です」で終わらせず、どこにキーを入れればよいかを書く
実装済み
SB-31-004
鍵が不要な環境ではそう言う
キーを1本も発行していない開発環境では「鍵なしで書けます」と表示する
実装済み
SB-31-005
実行中はボタンを止める
二重送信を防ぎ、待っていることが分かる状態にする
実装済み
SB-31-006
結果を必ず画面に返す
成功も失敗も同じ場所に出す。押したのに何も起きない、を作らない
実装済み
SB-31-007
フォーム直POSTの廃止
<form> はヘッダを付けられず、鍵が要る環境で黙って401になっていた。fetch に寄せた
実装済み
製品サイトの説明責任
6項目 ・ 実装済み 6SB-32-001
運用の一周を1ページで説明
決める・書く・出す・測る・畳む の全体像。製品サイトが配信エンジンの話しかしていなかった
実装済み
SB-32-002
各工程から実際の画面へ繋ぐ
説明した機能を、その場でコンソールの該当画面から試せる
実装済み
SB-32-003
設計上の判断を理由ごと書く
「なぜ75パーセンタイルで見るのか」「なぜ棚卸しは実行しないのか」まで公開面に書く
実装済み
SB-32-004
APIドキュメントに書く・畳むを追加
指示書・エディタ・版・棚卸し・用語集・一括操作のエンドポイントを一覧に載せる
実装済み
SB-32-005
カタログ件数を全ページで動的に
機能を足すたびに古い数字が残る箇所を無くす
実装済み
SB-32-006
運用の一周を sitemap に載せる
製品の全体像を説明するページを索引対象にする
実装済み
既存記事の取り込み
18項目 ・ 実装済み 18SB-33-001
WordPressのREST APIから取り込む
/wp-json/wp/v2/posts を辿る。公開記事なら認証不要
実装済み
SB-33-002
RSS / Atom フィードから取り込む
content:encoded があれば本文ごと、無ければ要約だけを取る
実装済み
SB-33-003
記事JSONの配列から取り込む
他所からの移行で最も確実な経路。HTMLでもMarkdownでも受ける
実装済み
SB-33-004
フロントマター付きMarkdownから取り込む
title / date / tags / slug を読み、無ければH1をタイトルにする
実装済み
SB-33-005
HTMLをMarkdownに変換
見出し・リンク・画像のalt・強調・箇条書き・引用・コードを保つ
実装済み
SB-33-006
変換できないタグは中身を残す
タグごと消すと本文が痩せ、文字数も見出し数も狂って診断が誤警告する
実装済み
SB-33-007
scriptとstyleは中身ごと落とす
本文でないものが文字数に混ざらないようにする
実装済み
SB-33-008
URLからslugを作る
パスの末尾を使う。クエリ文字列のURLでも、同じURLなら同じslugになる
実装済み
SB-33-009
取り込んだ記事は公開済みとして入る
元URLを正規URLに設定する。下書きとして入れると転載元を名乗れない
実装済み
SB-33-010
自社配信先への公開済み記録
「その記事は既にそこに出ている」と記録し、次の配信で二重投稿にならないようにする
実装済み
SB-33-011
既にあるslugは上書きしない
取り込みは足すだけの操作にする
実装済み
SB-33-012
同じ取り込みの中の重複も検出
2本が同じslugになる場合、片方だけを入れる
実装済み
SB-33-013
中身の無い記事は入れない
タイトルか本文が空のものは、理由を添えて飛ばす。空のページが増えるほうが害が大きい
実装済み
SB-33-014
1本の失敗で全体を止めない
落ちた記事だけ理由つきで残し、残りは取り込む
実装済み
SB-33-015
取り込む前に気になる点を出す
本文が短い・元URLが無い・公開日が無い、を1件ずつ並べる
実装済み
SB-33-016
既定は下見(dry-run)
何が入り、何が飛ばされるかを先に全部見せる
実装済み
SB-33-017
取り込み元が落ちていたら理由を返す
0件でなく、接続できなかった・APIが無効・item が無い、を区別して返す
実装済み
SB-33-018
取り込み画面
サイトからの取り込みと、貼り付けからの取り込みを1画面で扱う
実装済み
自社メディアの運用実績
6項目 ・ 実装済み 6SB-34-001
この基盤自身のブログを載せている
SEOBuilder のサイト自体が、この基盤の記事ライブラリで動いている
実装済み
SB-34-002
全記事が自分の診断で警告ゼロ
9本すべてが自前の診断で97〜100点、error / warn ともに0件
実装済み
SB-34-003
記事どうしを内部リンクで束ねている
棚卸し・制作指示書・強調スニペット・内部リンク・AI検索・記事移行を相互に繋ぐ
実装済み
SB-34-004
用語集から記事へ、記事から用語集へ
本文中の用語が用語ページへ、用語ページがその語を扱う記事へ繋がる
実装済み
SB-34-005
数値には出典か、自社の基準であることを明記
外部の調査結果でないものを、調査結果のように書かない
実装済み
SB-34-006
媒体別の別原稿と短文を用意している
Qiita向けの技術記事、LinkedIn・X向けの短文を記事JSONに持つ
実装済み
共有されたときの見え方
11項目 ・ 実装済み 11SB-35-001
SNSが描けるPNGのアイキャッチ
SVGの og:image は Facebook / X / LINE / LinkedIn / Slack のどれも描画しない
実装済み
SB-35-002
ページごとに別の画像
全ページで同じ静的画像だと、共有されたときにどの記事か分からない
実装済み
SB-35-003
日本語を実寸で折り返す
日本語は単語の切れ目が無いので、1文字ずつ幅を測って折り返す
実装済み
SB-35-004
行数に応じて字を詰める
長いタイトルでも枠から溢れず、短いタイトルでは大きく出る
実装済み
SB-35-005
サイトの配色で描く
上端のグラデーションはサイトのトークンと同じ3色
実装済み
SB-35-006
robots.txt が拒否しない場所に置く
/v1 の下に置くとSNSのクローラが取りに来られず、画像だけ空になる
実装済み
SB-35-007
ETagと長期キャッシュ
同じ引数なら中身が変わらないので、再生成も再送信もしない
実装済み
SB-35-008
画像の寸法を宣言する
og:image:width / height / alt を出し、読み込み前から枠が決まる
実装済み
SB-35-009
コンテナに日本語フォントを入れる
IPAゴシック。ローカルのフォントに依存させず、本番で文字化けさせない
実装済み
SB-35-010
描けないときは何を入れればよいか言う
黙って空を返さず、フォントが無いことと代わりに使えるSVG版を案内する
実装済み
SB-35-011
記事にカバー画像があればそれを使う
自動生成は、指定が無いときの既定として働く
実装済み
正規URLの食い違い検査
9項目 ・ 実装済み 9SB-36-001
HTTPヘッダの正規URLを読む
Link: rel=canonical は HTML の指定と同じ強さで読まれる。取得しないと分からない
実装済み
SB-36-002
ヘッダとHTMLの食い違いを error にする
ホスティングやCDNが付けたヘッダは、正しく書いたHTMLを打ち消す
実装済み
SB-36-003
HTMLに canonical が2本ある状態を検出
複数あるとどれも信用されない
実装済み
SB-36-004
正規URLが1本も無い状態を検出
自己参照の canonical が抜けているページを見つける
実装済み
SB-36-005
別ページを指す canonical は info に留める
転載ページなら正しい設定なので、一律に error にしない
実装済み
SB-36-006
末尾スラッシュとスキームの違いは同一とみなす
実質同じURLを食い違いと誤検出しない
実装済み
SB-36-007
任意のURLを外から調べられる
自社サイトでなくても、取得できるURLなら検査できる
実装済み
SB-36-008
画面を開くだけでは外に出ない
押したときだけ取得する。画面表示のたびに外部へ通信しない
実装済み
SB-36-009
届かないURLは理由を返す
落ちずに、何が起きたかを返す
実装済み
ブランド表示
9項目 ・ 実装済み 9SB-37-001
明るい背景用と暗い背景用のロゴを持つ
白地に白文字、黒地に黒文字のロゴを置かない
実装済み
SB-37-002
ヘッダ用の横並びロックアップ
縦積みのままヘッダの高さに縮めると、社名も肩書きも読めなくなる
実装済み
SB-37-003
フッタは縦積みのロックアップ
横幅に余裕がある場所では、元の組みのまま大きく置く
実装済み
SB-37-004
マーク単体の切り出し
文字が入らない狭い場所と、アイコン類に使う
実装済み
SB-37-005
背景を透過で持つ
白背景のまま置くと、暗い画面で白い四角が浮く
実装済み
SB-37-006
ファビコンとホーム画面アイコン
16/32/48 の .ico、192・512 の PNG、180 の apple-touch-icon
実装済み
SB-37-007
アイキャッチにロゴを載せる
共有されたときに、どこの記事かがひと目で分かる
実装済み
SB-37-008
ロゴが読めなくてもアイキャッチは出る
画像が見つからなければ文字だけで組み、生成そのものは止めない
実装済み
SB-37-009
配布先の容量制限に収める
Hugging Face は大きい2値ファイルの push を拒否する。全画像を100KB未満に保つ
実装済み
狭い画面での表示
18項目 ・ 実装済み 18SB-38-001
グリッドの列が中身より小さくなれる
`1fr` は minmax(auto,1fr) なので、中身が縮まないと列ごと親をはみ出す
実装済み
SB-38-002
区切りの無い長い語を折り返す
「メール投稿(WordPress/Blogger/Tumblr/Ameba等)」が画面をはみ出していた
実装済み
SB-38-003
見出しの大きさを画面幅に追従させる
下限を固定すると、狭い画面で日本語の見出しが1行に収まらない
実装済み
SB-38-004
表はパネルの中だけで横に流す
ページ全体を横スクロールさせない
実装済み
SB-38-005
横並びの入力を縦に積む
狭い画面では、並べるより積むほうが読める
実装済み
SB-38-006
サイドバーのロゴが切れない
縦のflexの中では height だけだと縮む。ロゴが上下で切れていた
実装済み
SB-38-007
320pxまで横スクロールが出ない
サイト・コンソールの主要34画面を 320 / 390 / 768px で実測
実装済み
SB-38-008
指で押せる大きさを確保
ボタン・メニュー・単独リンクの当たり判定を40〜44pxにする
実装済み
SB-38-009
iOSの自動拡大を止める
16px未満の入力にフォーカスすると画面が勝手に拡大する。狭い画面では16pxにする
実装済み
SB-38-010
入力欄の指定を型の除外で書く
型を並べると url / email / number を足したとき素の見た目で残る。実際に input[type=url] だけ浮いていた
実装済み
SB-38-011
ナビは引き出しにして状態を持つ
aria-expanded を出し、Escと外側タップで閉じ、画面が広がったら自動で閉じる
実装済み
SB-38-012
コンソールの引き出しに背景を敷く
開いている間は背後を触れないようにし、外側を押すと閉じる
実装済み
SB-38-013
引き出しのリンクを押したら閉じる
移動先の画面に引き出しが残らないようにする
実装済み
SB-38-014
表は縮めずに横へ流す
縮めると1セル1文字ずつ折れて、かえって読めなくなる
実装済み
SB-38-015
ボタンとバッジは折り返さない
折り返しを許すと、ボタンの文字が縦に1文字ずつ積まれる
実装済み
SB-38-016
横に動かせることを見せる
表と図の右端をぼかして、続きがあることを伝える
実装済み
SB-38-017
ヒーローのCTAを縦に積む
3つ並ぶと2+1に折れて不格好になる。幅を揃えて縦に積む
実装済み
SB-38-018
狭い画面用の文字組み
見出し・本文・行間を画面幅に合わせ、余白を詰めて1画面あたりの情報量を保つ
実装済み
お問い合わせ
18項目 ・ 実装済み 18SB-39-001
公開サイトの問い合わせフォーム
名前・会社・メール・相談内容に加え、CMS / 運用媒体 / LINE / 記事本数を受け取る
実装済み
SB-39-002
届いた内容をメールで通知
既定の宛先は contact@ai-sns.io(環境変数 CONTACT_TO で変更できる)
実装済み
SB-39-003
保存が先、送信が後
SMTPが未設定でも落ちても、問い合わせそのものを失わない
実装済み
SB-39-004
送れていないものを送ったと言わない
訪問者には「受け付けた」と伝え、運用側には未送信として見せる
実装済み
SB-39-005
そのまま返信できる通知
Reply-To に送信者を入れるので、受け取った側は普通に返信すればよい
実装済み
SB-39-006
テキストとHTMLの両方を送る
どのメールソフトでも読める形にする
実装済み
SB-39-007
メールヘッダインジェクションを弾く
名前やメール欄に改行を通すと、宛先を勝手に足される
実装済み
SB-39-008
入力の不足は理由を返す
何が足りないかを日本語で返し、打ち間違いと機械投稿を区別する
実装済み
SB-39-009
見えない欄で自動投稿を落とす
CAPTCHAは入れない。訪問者の負担のわりに、取りこぼした問い合わせは戻らない
実装済み
SB-39-010
速すぎる送信を弾く
表示から数秒で送られたものは人の入力ではない
実装済み
SB-39-011
同一IPの連投を止める
止めるときは、直接の連絡先を添えて逃げ道を残す
実装済み
SB-39-012
訪問者を区別できないときは上限を掛けない
転送ヘッダが無い構成だと全員が同じIPになり、5件でサイト全体の問い合わせが止まる
実装済み
SB-39-013
長すぎる入力は切って受け取る
拒否せず、上限まで保存する
実装済み
SB-39-014
公開ページに直接の宛先も出す
フォームが動かないときに、訪問者が詰まらないようにする
実装済み
SB-39-015
受信箱の画面
届いた問い合わせ・通知の成否・未対応の件数を1画面で見る
実装済み
SB-39-016
通知の再送
SMTPを設定したあとに、送れていなかったぶんを送り直せる
実装済み
SB-39-017
対応済みの記録
返信したものに印を付け、未対応だけを追える
実装済み
SB-39-018
メール未設定を画面に出す
「通知が出ていない」ことを運用側に隠さない。不足している環境変数まで書く
実装済み
ログインとアカウント
17項目 ・ 実装済み 17SB-40-001
コンソールのログイン画面
認証の中身はあったのに、画面から入る手段が無かった
実装済み
SB-40-002
アカウントが無い間は公開デモ
最初の管理者を作った時点で、以後は必ずログインが要る
実装済み
SB-40-003
セッションCookie
HttpOnly / SameSite=Lax。JavaScriptから読めない
実装済み
SB-40-004
HTTPSのときだけSecureを付ける
ローカルのhttpでSecureを付けると、Cookieが保存されず一生入れない
実装済み
SB-40-005
二要素認証の画面
パスワードの次に、認証アプリの6桁コードを受け取る
実装済み
SB-40-006
リカバリコードでも入れる
認証アプリを失くしても締め出されない
実装済み
SB-40-007
戻り先は自サイト内だけ
//evil.example のような値で外へ飛ばさない
実装済み
SB-40-008
ログイン失敗が続いたら一時的に止める
何回でも試せる状態にしない
実装済み
SB-40-009
どちらが違うかを言わない
「メールアドレスかパスワードが違います」。アドレスの存在を漏らさない
実装済み
SB-40-010
存在しないアドレスでも同じだけ時間をかける
応答時間からアカウントの有無を推測させない
実装済み
SB-40-011
いま誰が入っているかを画面に出す
名前・権限・担当クライアントをサイドバーに
実装済み
SB-40-012
client権限は自社データだけ
招いたクライアントに他社の数字が見えないようにする
実装済み
SB-40-013
画面からアカウントを作る
クライアントを招くときの入口
実装済み
SB-40-014
最初の設定を画面で済ませる
「POST /v1/accounts/bootstrap を叩いてください」では、運用する人が始められない
実装済み
SB-40-015
作ったらそのまま入れる
管理者を作った直後にセッションを渡し、ログインし直させない
実装済み
SB-40-016
配信用のAPIキーも同時に発行できる
一度しか表示しないことを画面に明記する
実装済み
SB-40-017
ログイン画面そのものは門番で塞がない
塞ぐと誰も入れなくなる
実装済み
管理画面
12項目 ・ 実装済み 12SB-41-001
設定・機能・アカウント・連携・監査を1枚に
運用する人が別々の画面を探し回らなくて済む
実装済み
SB-41-002
公開の準備チェックリスト
クライアントを迎える前に埋めることを、できていない順に出す
実装済み
SB-41-003
機能のオン・オフ盤
26の機能をスイッチで切り替える。分類ごとにまとめ、絞り込みと有効数つき
実装済み
SB-41-004
切り替えは即時保存
設定タブへ移動しなくても、その場で効く
実装済み
SB-41-005
設定を画面から入れられる
SMTPやAPIキーのために、Space の Secrets を触って再起動しなくてよい
実装済み
SB-41-006
DB → 環境変数 → 既定値 の順に読む
いま動いている環境変数を壊さずに、画面からの値を足せる
実装済み
SB-41-007
ホスティングの Secrets を上書きしない
片方だけ効いている状態を作らない
実装済み
SB-41-008
秘密の値は保存後に読み出せない
画面には「設定済み」とだけ出す。空欄で保存しても消えない
実装済み
SB-41-009
秘密の値は暗号化して保存
DBを覗いても平文が出ない
実装済み
SB-41-010
接続を実際に試せる
保存しただけで満足しないよう、メール・AI・通知は本当に外へ出して結果を返す
実装済み
SB-41-011
連携の状態を一覧で
何が未設定で、どの環境変数が足りないかを並べる
実装済み
SB-41-012
監査ログ
設定変更・ログイン・一括操作・削除が誰の手で行われたかを残す
実装済み
クライアント向けアシスタント
17項目 ・ 実装済み 17SB-42-001
サイトとコンソールに常駐する
同じウィジェットを両方に出す。依存なしの1ファイル
実装済み
SB-42-002
この基盤の材料だけで答える
記事・用語集・機能カタログ・対応媒体・画面の役割
実装済み
SB-42-003
日本語の質問に日本語で答える
分かち書きされない言語でも当たるよう、2文字ずつの並びで照合する
実装済み
SB-42-004
見出しの一致を重く見る
そのものずばりの資料が、長い記事に埋もれないようにする
実装済み
SB-42-005
関係ない質問には答えない
薄い一致で、自信ありげな答えを返さない
実装済み
SB-42-006
ありふれた語を手がかりにしない
「教えて」「ます」はどの資料にも出る。珍しい語がどれだけ当たったかで測る
実装済み
SB-42-007
丁寧に長く聞いても答えが出る
絶対値だけで切ると、語が増えるほど通らなくなる
実装済み
SB-42-008
資料が少ない環境でも動く
入れたばかりのときに、何も答えられない状態にしない
実装済み
SB-42-009
AIキーが無くても黙らない
関連する箇所を出典つきで抜き出す。「未設定です」で終わらせない
実装済み
SB-42-010
数字を創作させない
資料に無い数値は出さないよう指示し、無いときは無いと言わせる
実装済み
SB-42-011
出典を必ず添える
答えの根拠にしたページへのリンクを出す
実装済み
SB-42-012
自社データは権限のある人にだけ
client_id を指定した回答には、鍵かログイン中のセッションが要る
実装済み
SB-42-013
client権限は自分のクライアントだけ
他社の数字を渡さない
実装済み
SB-42-014
直前のやり取りを踏まえる
同じことを何度も説明させない
実装済み
SB-42-015
質問と回答を記録する
答えられなかった質問が、次に書く記事の題材になる
実装済み
SB-42-016
管理画面から名前とオン・オフを変えられる
アシスタントを出すかどうかを運用側が決める
実装済み
SB-42-017
狭い画面では全面に開く
スマートフォンでも使える大きさにする
実装済み
かんたん投稿(クライアント向け)
22項目 ・ 実装済み 22SB-43-001
クライアントの画面は1枚だけ
運用コンソールの50画面は運用側のもの。クライアントには見せない
実装済み
SB-43-002
やることは3つ
①出す先を選ぶ ②ジャンルかキーワードを言う ③見て出す
実装済み
SB-43-003
何も思いつかなくても押せる
12業種のジャンルを並べ、選ぶと投稿テーマの候補も出す
実装済み
SB-43-004
ジャンルだけでも作れる
キーワードを思いつかなくても、選ぶだけで文章が出る
実装済み
SB-43-005
キーワードだけでも作れる
業種に当てはまらない場合は、言葉だけで指定できる
実装済み
SB-43-006
事業者の情報は書いた範囲だけ使う
書いていないことは作らない。裏を取れない事実を出させない
実装済み
SB-43-007
URLからも作れる
既にページがある場合の道。会社サイトでも商品ページでも読み取る
実装済み
SB-43-008
ページから題名・説明・見出し・画像を取る
OGPとHTMLの両方を見て、使えるものだけ拾う
実装済み
SB-43-009
AIが下書きを書く
ページに書いていないことを足さない・誇張しない、を指示に入れる
実装済み
SB-43-010
AIが無くても下書きは出る
ページ自身の文章から組み立てる。未設定を理由に画面を空にしない
実装済み
SB-43-011
材料が無いときは作文しない
AIが無くジャンルだけの場合は、書く場所を用意する。それらしい文章を機械で作ると、確かめないまま出してしまう
実装済み
SB-43-012
何を書かなかったかを伝える
実績・価格・住所は書いていないことを、下書きと一緒に出す
実装済み
SB-43-013
下書きはその場で直せる
気に入らなければ書き換えてから出す
実装済み
SB-43-014
媒体ごとの上限で切って見せる
Xは280字、LINEは500字。切られてから気づくのを避ける
実装済み
SB-43-015
切っても本文のリンクは残す
リンクが落ちた投稿は出す意味が無い
実装済み
SB-43-016
切るのは文の切れ目で
単語や文の途中で切れた投稿は読みにくい
実装済み
SB-43-017
画像は必ず1枚は選べる
ページに画像が無くても、文字を入れたカードを作る
実装済み
SB-43-018
ページの画像も候補に出す
アイコンやスプライトは候補から外す
実装済み
SB-43-019
出る前に、出るものをそのまま見せる
媒体ごとに、実際に送られる文面と文字数
実装済み
SB-43-020
クライアントは自動でこの画面に着地する
ログインしても、コンソールには入らない
実装済み
SB-43-021
公開デモからは外部へ送らない
内容の確認まで。実配信は配信先を設定してから
実装済み
SB-43-022
出した履歴を残す
いつ・どこへ・何を出したかをクライアントごとに保存する
実装済み
データの永続性
7項目 ・ 実装済み 7SB-44-001
データが残るのかを自分で確かめる
永続ディスクの無いホスティングでは、再起動でDBごと初期化される
実装済み
SB-44-002
ホスティングに直接聞く
APIで永続ストレージの有無を確認する。いちばん確実
実装済み
SB-44-003
聞けないときは起動をまたいで観測する
何度起動しても毎回まっさらなら、使い捨てだと分かる
実装済み
SB-44-004
消えると困るものの件数を出す
問い合わせ・アカウント・APIキー・計測イベント・順位の記録
実装済み
SB-44-005
管理画面に警告を出す
消えること自体より、消えると分からないことが問題
実装済み
SB-44-006
公開の準備チェックリストに入れる
クライアントを迎える前に気付けるようにする
実装済み
SB-44-007
消える前に持ち出せる
資格情報を除いた中身をJSONで書き出す
実装済み
クライアントのボット
24項目 ・ 実装済み 24SB-45-001
クライアントごとのボット
この基盤について答えるアシスタントとは別。そのクライアントのページだけを材料にする
実装済み
SB-45-002
URL1本で学習が始まる
同じサイトの中の主要ページまで辿って読む。最大30ページ
実装済み
SB-45-003
外部サイトは辿らない
他所の内容を、その事業者の答えとして出さない
実装済み
SB-45-004
機械向けの出力を学習させない
RSSやsitemapを読むと記事の断片が本文に混ざり、見当違いの引用が出る
実装済み
SB-45-005
長いページを文の切れ目で割る
段落だけで切ると、改行の少ないページが1枚まるごと1つの塊になる
実装済み
SB-45-006
資料に無いことを答えさせない
価格・在庫・営業時間を推測で答えると、事業者が責任を負う
実装済み
SB-45-007
分からないときは人に渡す
無理に答えるより、問い合わせ先を出すほうが役に立つ
実装済み
SB-45-008
医療・健康・法律の判断をしない
専門家に相談するよう促す
実装済み
SB-45-009
アシスタントより厳しい基準で答える
事業者を代表して話すぶん、曖昧な一致で答えさせない
実装済み
SB-45-010
丁寧な言い回しを手がかりに数えない
「営業時間を教えてください」が「営業時間は?」より当たらなくなっていた
実装済み
SB-45-011
資料が少なくても答えられる
入れたばかりのボットが、何も答えられない状態にならないようにする
実装済み
SB-45-012
AIが未設定でも該当箇所は返す
黙って壊れているように見せない
実装済み
SB-45-013
出す前に試せる
公開しなくても、運用側の口から実際に答えさせて確かめられる
実装済み
SB-45-014
公開するまで外から見えない
作った瞬間に外に出ない。試してから公開する
実装済み
SB-45-015
公開URLは推測できない
16バイトの乱数。URLを知らない相手には届かない
実装済み
SB-45-016
訪問者には内部の情報を渡さない
client_id も公開IDも fallback も、公開の応答には含めない
実装済み
SB-45-017
貼るのは1行だけ
<script> 1本で、サイトの好きな場所に出る
実装済み
SB-45-018
貼り先のCSSと喧嘩しない
見た目を Shadow DOM の中に閉じる。相手の色や字の大きさに引きずられない
実装済み
SB-45-019
貼れない相手にはURLで渡す
ホスト型のチャットページを用意する
実装済み
SB-45-020
1分あたりの回数を制限する
1つのボットに質問が集中したときに止める
実装済み
SB-45-021
答えた内容を記録する
答えられなかった質問が、次に足すべきページを教えてくれる
実装済み
SB-45-022
公開までを3ステップで
①覚えさせる ②話し方を決める ③試して出す
実装済み
SB-45-023
鍵かログイン、どちらでも操作できる
クライアントにAPIキーを渡させるのは無理があるし、渡させれば漏れる
実装済み
SB-45-024
他社のボットには触れない
client権限は自分のクライアントのぶんだけ。作成も学習も試用も削除も
実装済み
クライアントを迎える
12項目 ・ 実装済み 12SB-46-001
画面からクライアントを登録できる
1社迎えるのに、リポジトリを編集してデプロイする必要が無くなった
実装済み
SB-46-002
登録したらすぐに効く
配信エンジンへその場で反映する。再起動を待たせない
実装済み
SB-46-003
既存のYAML設定を壊さない
YAMLを先に読み、画面で登録したものを後から重ねる
実装済み
SB-46-004
IDの形を検査する
URLに使えない文字や、長すぎるIDを受け取らない
実装済み
SB-46-005
計測用のキャンペーン名を用意する
入れ忘れると、計測が全部ひとまとめになる
実装済み
SB-46-006
配信先を画面から足す
25媒体から選ぶ。既定の役割は媒体ごとに決まっている
実装済み
SB-46-007
あと何が要るかを出す
媒体ごとに必要な認証情報を並べ、不足しているものを名指しする
実装済み
SB-46-008
認証情報は暗号化して保存
DBを覗いても平文が出ない。画面には項目名だけを返す
実装済み
SB-46-009
空欄は「変えない」の意味にする
入れ直さないと消える、という作りにしない
実装済み
SB-46-010
消さずに止める
クライアントを無効にしても記録は残す。消すと何があったか分からなくなる
実装済み
SB-46-011
配信先を外すと認証情報も消える
使わない資格情報を残さない
実装済み
SB-46-012
止めた配信先はエンジンに渡さない
画面で切ったつもりが送られている、を作らない
実装済み
招待
16項目 ・ 実装済み 16SB-47-001
一度きりのリンクで招く
パスワードを人づてに渡すのは、渡す側にも受け取る側にも危ない
実装済み
SB-47-002
本人がパスワードを決める
こちらは値を知らないままにする
実装済み
SB-47-003
7日で期限が切れる
古いリンクが残り続けないようにする
実装済み
SB-47-004
1度使うと無効になる
同じリンクで2人目が入れないようにする
実装済み
SB-47-005
弱いパスワードを受け取らない
招待経由でも、通常の作成と同じ基準を通す
実装済み
SB-47-006
既にあるアドレスには出さない
重複したアカウントを作らせない
実装済み
SB-47-007
招待リンクはログイン無しで開ける
招かれた人はまだアカウントを持っていない。門番で塞いだら誰も入れない
実装済み
SB-47-008
受諾したらそのまま入れる
作った直後にセッションを渡し、ログインし直させない
実装済み
SB-47-009
権限で行き先を変える
client はかんたん投稿の画面、それ以外はコンソールへ
実装済み
SB-47-010
保留中の招待を一覧で見る
誰にいつ出したか、いつ切れるか
実装済み
SB-47-011
招待を取り消せる
送り先を間違えたときに、放置しなくて済む
実装済み
SB-47-012
一覧にトークンを出さない
画面を見られただけでは、なりすませない
実装済み
SB-47-013
メールが繋がっていれば自動で送る
リンクを作ってから手で送る手間を省く
実装済み
SB-47-014
送れていないのに送ったと言わない
未設定ならURLを返し、手元の方法で渡してもらう
実装済み
SB-47-015
メールが落ちても招待は残る
送信の失敗で、招待そのものを無かったことにしない
実装済み
SB-47-016
メールにパスワードを載せない
載せた時点で、メールボックスが鍵になってしまう
実装済み
繋ぎ目を検証する
12項目 ・ 実装済み 12SB-48-001
通しで歩く検証
1社迎えるまでを最初から最後まで歩き、途中で止まらないことを確かめる
実装済み
SB-48-002
再起動しても配信先が残る
画面で登録したクライアントを、起動のたびにエンジンへ載せ直す
実装済み
SB-48-003
起動時の失敗を握り潰さない
起動フックが黙って警告に化けていないかを検証で見張る
実装済み
SB-48-004
デモを実績に数えない
同梱のデモ2社では「配信できます」を緑にしない
実装済み
SB-48-005
クライアントは自分の2画面だけ
運用コンソールへ迷い込めないことを通しで確かめる
実装済み
SB-48-006
名前の間違いを動かす前に見つける
存在しない名前の呼び出しを、静的検査で全ファイル分止める
実装済み
SB-48-007
計算して捨てていないか見張る
取ってきたのに画面へ渡し忘れる、を検査で拾う
実装済み
SB-48-008
未定義の変数を空欄で描かない
全画面を描画し、渡し忘れた変数に触れたら落とす
実装済み
SB-48-009
レイアウトの設定を画面が隠さない
画面が site という名前を奪うと、その画面だけ表示が欠ける
実装済み
SB-48-010
画面が呼ぶ先が本当にあるか
経路名を変えたときに、呼んでいる画面を検査で見つける
実装済み
SB-48-011
でたらめな入力で500を返さない
137の書き込み経路を空の本文で叩き、落ちないことを確かめる
実装済み
SB-48-012
知らないIDで落ちない
消したあとのブックマークを踏まれても、500にしない
実装済み
配信先の検証
13項目 ・ 実装済み 13SB-49-001
全媒体の送信内容を確かめる
何を・どのURLへ・どんな形で送るかを、媒体ごとに検証する
実装済み
SB-49-002
dry-runで外へ出さない
試すつもりの実行が本当に投稿されたら、取り返しがつかない
実装済み
SB-49-003
下書きのつもりで公開しない
下書き指定のとき、公開の呼び出しへ進まないことを確かめる
実装済み
SB-49-004
できないことは断る
下書き非対応の媒体は、黙って公開せずスキップと言う
実装済み
SB-49-005
転載にcanonicalを付ける
付け忘れると、自社サイトが自分の記事に検索で負ける
実装済み
SB-49-006
予約は予約として送る
いま公開してしまわないよう、媒体ごとの予約手順に乗せる
実装済み
SB-49-007
既存の導線を消さない
動画の概要欄へ追記するとき、過去の関連記事を残す
実装済み
SB-49-008
上限を超えたら切らずに断る
黙って切り詰めると、後ろが消えたことに誰も気づかない
実装済み
SB-49-009
メールは2形式で送る
HTMLだけだと、テキストしか読めない環境に空のメールが届く
実装済み
SB-49-010
画面とアダプタで名前を揃える
集める項目名と、配信時に読む項目名が食い違わないよう検査する
実装済み
SB-49-011
古い名前の設定も読み続ける
項目名を直しても、登録済みの設定が動かなくならない
実装済み
SB-49-012
接続テストが同じ項目を見る
テストだけ別の名前を見ていると、正しい設定が「不足」に見える
実装済み
SB-49-013
接続テストが署名を付ける
付け忘れると、正しい鍵でも「期限切れかもしれません」と嘘をつく
実装済み
データを失わない
14項目 ・ 実装済み 14SB-50-001
Space外への自動退避
使い捨てのディスクでも、保存のたびにプライベートなDatasetへ置く
実装済み
SB-50-002
起動時に書き戻す
DBを開く前に最新の退避を戻す。開いてから戻すと接続が古いDBを持ち続ける
実装済み
SB-50-003
終了の合図で最後の1枚
デプロイ直前の数分は、ここでしか救えない
実装済み
SB-50-004
空で上書きしない
書き戻しに失敗したまま自動保存すると、向こうの本物が空で置き換わる
実装済み
SB-50-005
見た上での上書きはできる
止めるだけでは直す手段が無くなる。手動なら通す
実装済み
SB-50-006
稼働中でも取りこぼさない
ファイルをコピーせずSQLiteの複製APIを使い、WALの最新分まで含める
実装済み
SB-50-007
テキストで送る
HFはコミットAPI経由のバイナリを拒否するので、gzipをbase64にする
実装済み
SB-50-008
溜めすぎない
古い退避を自動で間引く。掃除に失敗しても保存は成功にする
実装済み
SB-50-009
退避の状態を画面に出す
最後に退避した時刻と大きさ、復元したかどうかを運用画面で見せる
実装済み
SB-50-010
いますぐ退避するボタン
デプロイ前に、待たずに1枚置ける
実装済み
SB-50-011
外からは中身を見せない
残るかどうかは公開、件数・退避先・Space名は運用者だけ
実装済み
SB-50-012
復元を永続ディスクと取り違えない
書き戻したから印が残っただけのときに「ディスクが残る」と言わない
実装済み
SB-50-013
守るものができたら閉める
取引先・問い合わせ・鍵のどれかが入った時点で、コンソールを認証必須にする
実装済み
SB-50-014
入口は閉めない
閉めると初期設定を終えられなくなるので、設定とログインだけは開ける
実装済み
作ったものに手が届く
18項目 ・ 実装済み 18SB-51-001
経路の無い機能を残さない
実装したのに呼び出す経路も画面も無い、という状態を検査で見つける
実装済み
SB-51-002
後から足した経路が食われない
先に宣言したパラメータ付きの経路が、固定の経路を隠していないか調べる
実装済み
SB-51-003
画面が使う通信手段が揃っている
画面が呼ぶ SB.patch などが、実際に用意されているか確かめる
実装済み
SB-51-004
無料期間の開始と残日数
画面から始められ、残りが見える
実装済み
SB-51-005
支払い方法の変更・解約
Stripeの窓口へ送る。カード番号はこちらで受け取らない
実装済み
SB-51-006
口コミをGoogleから取り込む
CSVと同じ置き場に入れ、返信済みの印を消さない
実装済み
SB-51-007
口コミへの返信を送る
星の少ないものから並べ、返信案をそのまま送れる
実装済み
SB-51-008
営業時間の更新を送る
曜日・開始・終了を渡してGBPへ反映する
実装済み
SB-51-009
Pinterestへピンを出す
記事のカバー画像とリンクでピンを作る
実装済み
SB-51-010
TikTokへ動画を出す
動画が無いときは、無いとはっきり言う
実装済み
SB-51-011
エゴサーチの語と走査
監視する語を決め、公開フィードから言及を拾って残す
実装済み
SB-51-012
予約の時刻を変える
一覧の各行から、その場で組み直せる
実装済み
SB-51-013
公開ペースの目標と実績
週に何本と決め、直近7日の実績と不足を出す
実装済み
SB-51-014
CDNキャッシュの破棄
差し替えた画像が古いまま出るのを防ぐ
実装済み
SB-51-015
表記ゆれの洗い出し
社名・製品名が割れていると、AIに同じ実体と認識されない
実装済み
SB-51-016
定義文の雛形を作る
引用されやすい一問一答の形をその場で作る
実装済み
SB-51-017
記事音声のポッドキャスト配信
合成した音声を回として残し、/podcast.xml で購読できる
実装済み
SB-51-018
回が無くてもフィードは返す
404を返すと、購読していた人が外れてしまう
実装済み
言葉を揃える
5項目 ・ 実装済み 5SB-52-001
業種の呼び名を1つに寄せる
かんたん投稿の「飲食店」と雛形の「飲食」を繋ぎ、全角や中黒の違いも吸収する
実装済み
SB-52-002
知らない業種は、知らないと言う
0件だけ返すと、対象外なのか不具合なのか分からない
実装済み
SB-52-003
選べる媒体は必ず配信できる
選択肢に、配信の口が無い媒体を混ぜない
実装済み
SB-52-004
媒体には認証情報の欄がある
配信先に選べるのに設定できない、という状態を作らない
実装済み
SB-52-005
雛形の語は日本語だけ
他言語が混ざると、検索されない語を提案してしまう
実装済み
かんたん投稿が本当に出す
9項目 ・ 実装済み 9SB-53-001
押したら実際に配信する
文面を作るだけで終わらせず、配信エンジンへ渡す
実装済み
SB-53-002
媒体ごとに結果を返す
送れた先・送れなかった先を1件ずつ、理由つきで出す
実装済み
SB-53-003
未設定の媒体を成功にしない
認証情報の無い配信先を、黙って送信済みにしない
実装済み
SB-53-004
1つ落ちても他を偽らない
片方が401でも、もう片方の成功はそのまま伝える
実装済み
SB-53-005
確認した文面がそのまま出る
画面で見たものと違う文面を送らない
実装済み
SB-53-006
同じリンクを2回入れない
用意された文面に既にURLがあれば、重ねて足さない
実装済み
SB-53-007
同じ秒に2回押しても壊れない
日本語の見出しからでも重ならないIDを作る
実装済み
SB-53-008
試用のままでは外に出さない
ログインしていない操作は、必ずドライランで止める
実装済み
SB-53-009
Instagramへ配信する
コンテナ作成→公開の2段階。画像が無ければ、送る前にそう言う
実装済み
ブラウザで確かめる
6項目 ・ 実装済み 6SB-54-001
本物のブラウザで全画面を開く
サーバが200でも、画面のJSが落ちていれば使えない。押す前に見つける
実装済み
SB-54-002
押して結果まで見る
ログインしてボタンを実際に押し、通信が2xxで返るところまで確かめる
実装済み
SB-54-003
呼び出しのメソッドまで照合する
経路はあってもメソッドが違うと、押した人だけが405を見る
実装済み
SB-54-004
ルート直下のアイコンを返す
ブラウザは宣言があっても /favicon.ico を直接取りにくる
実装済み
SB-54-005
すべてのレイアウトがアイコンを宣言する
レイアウトが増えるたび、宣言を忘れる
実装済み
SB-54-006
ホーム画面に追加できる
クライアントは電話で開く。白い四角とURLでは使う気にならない
実装済み