ドキュメント&知識ベース · nexu-io/html-anything

competitive-teardown

ポジショニングマップ + 機能マトリクス + 価格比較 + 機会ウィンドウ:競合資料を実行可能な製品意思決定レポートへと変換します。

L1 基本 · ソース登録のみV1 コミット固定Dual-pass Audit
Author nexu-ioGitHub nexu-io/html-anything ↗Stars 8827License Apache-2.0(仓库根 LICENSE:Apache License Version 2.0, January 2004;GitHub API spdx_id=Apache-2.0)Commit 553ed98c28
管理レベルは Skill の能力と推奨統制措置を示すものであり、品質や安全性の認証、利用可否の判定ではありません。使用の可否はユーザーおよび管理者が決定します。Agent 環境によって制約が異なるため、自動保護を仮定しないでください。第三者製 Skill の著作権は原著作者に帰属し、利用リスクは利用者が負います。

1仕組みと動作原理

テンプレート自体には実行可能コードが含まれていません:loader は src/lib/templates/skills/<id>/SKILL.md から frontmatter と本文を読み込み、本文(body)を example の内容とともに LoadedSkill として返します。

next/src/lib/templates/loader.ts
const raw = safeRead(path.join(dir, "SKILL.md"));
ここで行われていること:SKILL.md が動作の唯一のソースです——frontmatter はセレクター描画用(zh_name/emoji/aspect_hint/tags/example_* など)、本文全体がプロンプトとして機能します。loader は意味検証を行わず、テンプレートの記述をそのまま渡します。

配信前にホストがプロンプトを規定通りに組み立てます:テンプレート本文は SHARED_DESIGN_DIRECTIVES と【入力フォーマット】/【ユーザーコンテンツ】の間に挟まれます。

next/src/lib/templates/shared.ts
Wrap a per-template instruction body with the shared design directives and
ここで行われていること:テンプレートは「この成果物がどのような外観であるか」(レイアウト/リズム/コンポーネント)のみを定義し、共通指示がテンプレート横断のハード制約(単一ファイル HTML、ファイル操作ツールの禁止、Tailwind および Google Fonts の CDN 経由、コンテンツの真実性、CJK スペース規則)を担います。

共通指示はハード制約をエージェントへの明示的な禁止事項として規定し、コンテンツ駆動による数量決定を強制します(テンプレート内の数値は最小限の参考値にすぎません)。

next/src/lib/templates/shared.ts
**禁止使用 Write / Edit / MultiEdit / Bash / Create / 任何文件系统工具**。
同一ファイル内には次の規則もあります:出力される slide / frame / card / section の数量は、【ユーザーコンテンツ】の実際の長さと情報構造によって完全に決定されます。これにより、コンテンツが長くなってもテンプレートが破綻しない理由が説明されます:各コンテンツブロックにつき最低1つのカード/セクションが割り当てられ、テンプレートはレイアウトプールのみを提供します。

実際に実行を行うのはユーザーのローカル環境にインストールされログイン済みのコーディングエージェント CLI です:ホストが子プロセスを spawn し、プロンプトを渡し、HTML を stdout からストリーミング取得します。

next/src/lib/agents/invoke.ts
import { spawn, type ChildProcessWithoutNullStreams } from "node:child_process";
ここで行われていること:テンプレート skill はプロンプトを提供するのみで、実行能力(コード生成やツール実行を含む)はホスト CLI の既存権限に依存します。skill ディレクトリ自体にはスクリプトのエントリポイントが存在しないため、判定はディレクトリ内のアセットのみを対象とします(ホストの動作は評価対象外)。

/api/convert はテンプレートの実行パスです:skill.body とユーザーコンテンツをプロンプトとして組み立て、invokeAgent に引き渡します。

next/src/app/api/convert/route.ts
prompt = assemblePrompt({ body: skill.body, content, format });
編集モードでは別途 buildEditPrompt が呼び出されます(差分を最小限に抑えた編集、ファイルツールの禁止、完全な HTML の直接ストリーミング出力を要求)。そのため本種別のテンプレートの成果物は安定した構成を保ちます:単一ファイル HTML、インライン CSS/SVG、外部参照はフォントと一部テンプレートが明示的に要求するチャートライブラリのみに限定されます。

テンプレートの核心は9つの固定構造です:Header、Executive takeaway、Positioning map から 30/90/180日間の Recommended moves に至るまで、セクションの欠落は不合格とみなされます。

next/src/lib/templates/skills/competitive-teardown/SKILL.md
【必须输出的结构】
ここで行われていること:競合分析を自由記述から穴埋め式の構造化レポートへと変貌させ、各セクションに厳格な内容要件(例:Executive takeaway は厳密に3項目とし、それぞれに「so what」を含めるなど)を設けています。

ポジショニングマップと機能マトリクスは、定型句の流用ではなくユーザーコンテンツから生成するよう規定されています:軸は素材に基づく必要があり、マトリクスの列には Us / Opportunity を含め、✓/△/— でカバー率を表現します。

next/src/lib/templates/skills/competitive-teardown/SKILL.md
3. Positioning map: 用 2×2 象限或坐标图表现竞品定位。坐标轴必须来自用户内容, 不要套模板词。
同一セクションの第5条では、マトリクスの行を主要機能、列を競合 + Us / Opportunity とし、短い注釈を添えることを義務付けています——マトリクスは単なるチェックリストではなく、意思決定テーブルです。

競合企業ごとに1枚のカードを割り当て、固定フィールド(target user / core promise / pricing signal / primary strength / visible weakness)を設定します。機会ウィンドウには why now、target segment、first move、risk を必須とします。

next/src/lib/templates/skills/competitive-teardown/SKILL.md
8. Opportunity windows: 3 个机会窗口, 每个包含 why now、target segment、first move、risk。
フィールドを固定化することでレポート間の比較可能性を担保します:別々の分析結果を同一形式で横断的に閲覧可能です。「3つの機会ウィンドウ」は最小件数であり、30/90/180日の3段階のアクション提案と連動します。

独立したコンテンツ真実性セクションが存在します:提供された資料のみを使用し、欠落情報は「not found in source」または「unknown」と表記し、市場シェア/ARR/顧客名/価格の捏造を禁止し、情報不足の場合も Evidence gaps に課題を列挙します。

next/src/lib/templates/skills/competitive-teardown/SKILL.md
- 只使用用户提供的竞品、价格、功能、评论。缺失信息用 "not found in source" 或 "unknown" 标注。
これは本テンプレートにおける最も重要な規範です:「数値を捏造しない」ことを検証可能な出力規約(マトリクス内に unknown / not found を明示させる)として落とし込み、単なる抽象的なハルシネーション防止にとどめないようにしています。

3つのスタイル選択肢は assets/ 内の3つの参照用 HTML(デフォルトの war-room-grid、ダーク調情報端末の radar-map、紙面リサーチ調の analyst-dossier)で提供され、入力特性に応じて1つを選択し、混用は禁止されています。

next/src/lib/templates/skills/competitive-teardown/SKILL.md
- `assets/war-room-grid.html`: 默认风格。浅色战情室 / 咨询报告, 适合产品团队、PM、普通商业读者。
ここで行われていること:戦略コンサルティングのビジュアルを実装済みの3つのスタイルテンプレート(各 44〜82 行の HTML)として具現化し、エージェントがゼロから作成することなく変数やコンポーネントを流用できるようにしています。また、本バッチで唯一内部 assets を保持するテンプレートでもあります(ローカルファイルであり、外部送信は発生しません)。

2コア機能

019つの固定レポート構造(header / takeaway / positioning / cards / matrix / pricing / UX / opportunities / moves)
02Executive takeaway:厳密に3つの判断事項、各項目に「so what」を含む
03機能マトリクス(行=主要機能、列=競合 + Us/Opportunity、✓/△/— によるカバー率 + 簡潔な注釈)
04価格/パッケージング分析セクション(ティア構成、トライアル、制限事項、エンタープライズ営業動向)
053種類の選択可能なビジュアルスタイル(war-room-grid / radar-map / analyst-dossier)、デフォルトは war-room-grid
06コンテンツの真実性規範(欠落情報は unknown / not found in source と表記、数値の捏造禁止、情報不足時もレポートを作成し Evidence gaps を記載)
07単一競合時のダウングレード対応(競合が1社のみの場合は deep dive を出力)

4推奨統制措置と判定根拠

安全運用のための推奨統制措置
Agent 向け
自動ロード可能
管理者向け
ソースとバージョンの記録
判定根拠(ファイルパスと抜粋)
  • SKILL.md: 純粋なプロンプト指示およびルールテキストのみであり、スクリプト実行や外部への副作用はなし
監査ノート: 。評価判定は skill 自身のディレクトリのみに基づきます(SKILL.md + example.html + example.md + assets/ 内の3つのスタイル参照 HTML のみで構成され、スクリプトのエントリポイントは存在せず[assets と example 内にそれぞれ Tailwind CDN の <script> 参照が1件ずつ存在]、組み込み CLI、認証情報の読み込み、ディスク書き込み指示もなし)。スクリプトのエントリポイント、同梱 CLI、認証情報アクセス、ディスク書き込みコマンドは一切ありません。SKILL.md 本文は実行時に外部エンドポイントを導入することを要求していません(3つのスタイルはローカルの assets/ ファイルとして提供され、SKILL.md はレイアウトとコンテンツ構造のみを規定)。実行時に外部通信は発生しません。ディレクトリ内に実際に現れるエンドポイントは、assets/*.html および example.html 内の cdn.tailwindcss.com、fonts.googleapis.com/gstatic(スタイル参照および成果物サンプルをブラウザで開く際の利用)のみであり、第4バッチの最終基準に基づき**成果物期参照**に分類されます(生成された HTML がブラウザで開かれた際に CDN/フォントを取得するものであり、skill 実行時のクローリング、ログ送信、素材転送は行わないため、リスク評価の対象外としエンドポイントの列挙にとどめます)。ホスト環境の挙動(loader→assemblePrompt→ローカルエージェント CLI の spawn、プレビュー iframe の sandbox)はホスト側の責務に属し、verdict.risks に記録されます。

5二重目の独立検証

  • [discrepancy] 九段结构在示例中的覆盖度 — example.html 展示了 Header、Executive takeaway(3 条)、Positioning map、3 张竞品卡、Feature matrix(含 not found / unknown 单元格)、30/90/180 天 moves;但第 6 段 Pricing / packaging read 与第 7 段 UX / messaging notes 未独立成节,第 8 段 Opportunity windows 亦未以独立小节出现(部分内容并入卡片与矩阵注释)。模板能力以 SKILL.md 为准,示例属精简演示。
  • [ok] 内容真实性纪律的可见落地 — 矩阵中逐字出现 unknown(Transcript library 行)与 not found(CRM / sales workflow、Cross-interview insight cards 行),与 SKILL.md 要求的标注词一致,证明该纪律可被执行。
  • [ok] 三套 assets 是否为真实不同风格 — war-room-grid:浅色 --paper:#f7f4ec + Inter;radar-map:深色 panel rgba(13,27,45,.76) + 径向雷达网格 repeating-radial-gradient;analyst-dossier:双线规则 .rule + 红色 stamp 旋转 -2deg + IBM Plex Serif 衬线。三份互不相同的实现坐实风格三选一。
  • [ok] 端点与判级 — SKILL.md 正文无 URL/端点要求;端点只出现在 assets 与 example 的 cdn.tailwindcss.com <script> 及字体链接,属产物期引用层,执行期零外发,维持 green。
  • [ok] license / stars / commit 元数据 — GitHub API(api.github.com/repos/nexu-io/html-anything):spdx_id=Apache-2.0、stargazers_count=8827、pushed_at=2026-09-15T03:36:24Z;工作副本 git HEAD = 553ed98c283f9c0f489902d035416a972d6a9699(与任务表 pin 553ed98c283f 同源)。
  • [ok] skill.path 与目录资产面 — pin 目录内该路径存在且含 SKILL.md;目录内文件清单已用 glob 全量核对(含隐藏文件),无 scripts/、无 references/、无二进制资产(competitive-teardown 的 assets/ 为纯 HTML,另行记录)。

6結論

  • 構造が品質を担保:9つの固定フレームワーク(数量およびフィールド要件を含む)により、自由形式の競合分析を納品可能で会議の議論に耐えうるレポートへと変換します。
  • ハルシネーション防止規範がテンプレートに明記され検証可能(unknown / not found in source の明示、ARR/価格/顧客名の捏造禁止、情報不足時の Evidence gaps 列挙)。
  • デザイン面で実装済みの3つのスタイル参照(ライト調ウォー・ルーム / ダーク調レーダーコンソール / 紙面ドシエ)を提供し、入力に応じた択一を義務付けることで、統一感のある外観と選択の自由度を両立。
  • 明確なダウングレード対応:競合 2〜6 社で最適に機能し、単一競合の場合は deep dive に切り替わるため、入力規模の不足を理由に出力を拒否することがありません。
  • マトリクスの Us / Opportunity 列により、競合情報を自社の意思決定へと直結させ、レポートが単なる状況説明にとどまるのを防ぎます。
  • 最適な用途: プロダクトチームや戦略チームが、散在する競合資料(公式サイト、価格表、変更履歴、レビュー、営業フィードバック)を意思決定に直結する分析レポートにまとめる用途に適しています。また、投資調査や業界分析の初期構造化(analyst-dossier スタイル)にも適しています。競合 2〜6 社で、価格・機能・評価情報が揃っている場合に最大の効果を発揮します。
    不向きな用途: マーケティング資料や一般的な記事の作成には適していません(SKILL.md で明示的に除外)。競合素材が一切なく、モデル自身による Web 調査を期待するシナリオには適していません(提供された資料のみを利用)。正式な出典ページ番号の引用が求められるコンプライアンスレポートには適していません(参照インデックスは生成されません)。
    Install Agent-Ready
    ① Verified Mirror 2026-09-15
    Option A · Direct DownloadDownload competitive-teardown.tar.gz
    sha256: 99cee63fe9181008…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 553ed98c28.