Community이미지github.com

xingcanlee/wisp-writer

Wisp(Astro 技术博客主题)站点中写作的 skill。支持创建、改写、扩写博客文章,批量生成草稿,检查 frontmatter 和格式合规性。提供模板、脚本和中文技术写作规范,确保文章风格一致。

wisp-writer란 무엇인가요?

Wisp Writer 是一个专为 Wisp(基于 Astro 的技术博客主题)站点设计的 AI 写作辅助 skill。它帮助开发者用户高效地撰写、改写、扩写博客文章,将笔记、论文或对话整理成结构清晰的博文,也能批量生成文章草稿并检查 frontmatter、格式、标签的规范。该 skill 在 Claude Code、Cursor 等支持技能的 AI 代理平台上运行,通过 Python 脚本(支持 uv 或直接 Python3)实现文章创建、合规检查等功能,并提供详细的写作指南(风格指南、元素写法、frontmatter 模板)。严格遵循中文技术写作规范,强调准确、克制、不编造事实的风格,确保文章与主题视觉和语气一致。配图和交互组件委托给 wisp-diagram skill,本 skill 专注于纯内容创作和检查。

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/xingcanlee/astro-wisp/tree/HEAD/skills/wisp-writer

Installed? Explore more 이미지 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

wisp-writer: Wisp 主题で一貫性のある記事を書く

Wisp の指向は「静か、正確、抑制的」です。記事は src/content/posts/<slug>/index.mdx(または index.md)に書き、frontmatter は src/content.config.ts に従います。本スキルは以下を提供します:

SKILL.md
reference/   frontmatter.md  style-guide.md  elements.md  templates/
scripts/     new_post.py  check_post.py  tests/   (Python + uv、PEP 723 インラインディペンデンシー、インストール不要)

コマンド規約

すべてのコマンドはサイトのルートディレクトリで実行し、uv run skills/wisp-writer/scripts/<スクリプト>.py ... と記述します。本スキルを他の Wisp サイトにコピーする場合:

  • <サイト>/skills/wisp-writer/ に配置:コマンドはそのまま。
  • <サイト>/.claude/skills/wisp-writer/ または ~/.claude/skills/wisp-writer/ に配置:パスを実際の場所に変更。スクリプトはカレントディレクトリから上位に向けて astro.config.* または src/content を探します。--root <サイトのルート> で指定することも可能。
  • サイトが見つからない場合、スクリプトはエラーを表示し、終了コード 2 で終了します。ファイルは書き込みません。
  • uv がない場合:python3 <パス>/new_post.py ... でも実行可能です(標準ライブラリのみ使用、Python 3.10+ が必要)。

ワークフロー

  1. 読者と要点を明確にする。 書き始める前に以下の 3 つを書き留めます:読者は誰か(何ができて、何ができないか)、読後に持ち帰ってほしいこと(一文の結論)、記事のタイプ。情報が不足している場合はまずユーザーに質問し、事実、データ、引用を捏造してはいけません。
  2. 記事を作成する。 タイプに応じてテンプレートを選択:tutorial チュートリアル、deep-dive 原理深掘り、algorithm アルゴリズム解説(インタラクティブコンポーネント付き)、note 短いメモ、paper-reading 論文解説。
    uv run skills/wisp-writer/scripts/new_post.py attention-explained \
      --title "自己注意機構の解説" --template deep-dive \
      --tags "LLM,Transformer" --category 機械学習 \
      --description "直感から数式まで、自己注意の計算過程を明確に説明します。"
    
    slug は kebab-case を使用。既存の場合はエラー。スクリプトは既存のタグとカテゴリをリスト表示するので、優先的に再利用してください。パラメータ:--draft、--md/--mdx、--date、--list-templates。
  3. 執筆。 style-guide に従い、要素の書き方は elements、フィールドは frontmatter を参照。テンプレート内の TODO をすべて置き換えます。
  4. 図とインタラクション。 図が必要な場合は、wisp-diagram スキルを使用してソースファイルと .wisp.svg を生成し、図表参照構文で記事に挿入。簡単なフローは Mermaid を直接使用。インタラクティブなデモが必要な場合は、既存の explainer コンポーネント(現在は MatMul)を使用。他のアルゴリズムには新しいコンポーネントが必要で、その方法は docs/guide/explainers.md にあります。これはコード変更に該当するため、個別に説明し同意を得た上で行い、記事作成中に一緒に変更してはいけません。
  5. チェックと修正。
    uv run skills/wisp-writer/scripts/check_post.py attention-explained --strict
    
    出力形式:ファイル:行番号 レベル ルール 説明。error は必ず修正。warning は一つずつ判断し、修正可能なら修正。info は単なるヒント。--json でプログラム読み取り可能、--all ですべての記事をチェック。
  6. プレビュー。 pnpm build が必ず通ること(frontmatter と Mermaid を検証)。見た目を確認するには pnpm dev。オプション:Playwright を使って記事ページをライトテーマとダークテーマでそれぞれ 1 枚ずつスクリーンショットを撮り、数式、図表、コードブロックがはみ出していないか、ダークモードでも見やすいか確認。

ハードルール

  1. 本文は h2 から始め、h1 は書かない。見出しレベルを飛ばさない。h2 は名詞句にする。
  2. title は 80 文字以内、description は 200 文字以内。description にはその記事が何を解決するかを明確に書く。
  3. タグとカテゴリは既存の表記を再利用し、大文字小文字を統一する(llm と LLM が混在しないように)。
  4. 日本語段落では全角句読点を使用。日本語と英単語の間には手動でスペースを入れない。強調は **太字** を使用し、斜体は使わない。
  5. 専門用語が初出のときは英語表記を併記する(例:「自己注意(self-attention)」)。
  6. すべてのコードブロックに言語識別子を付ける。長いコードブロックの折りたたみはオプション。デフォルトでは気にしない。
  7. すべての画像に alt 属性を付け、図が伝えたい結論を説明する。図のキャプションは "図 N:説明" の形式。
  8. 色をハードコードしない、style= を書かない、Tailwind の色階調を使わない。色はテーマ変数のみから使用。
  9. コンポーネントを使用する記事は必ず .mdx ファイルとし、import を記述。インタラクティブコンポーネントには client:visible を付ける。
  10. 事実、データ、引用、リンクを捏造しない。確信がない内容は明示的にその旨を記載するか削除する。
  11. 既存の記事は、ユーザーが要求した場合を除き変更しない。作業は src/content/posts/<slug>/ 内のみ。

サンプル(文体に合った例)

以下は、Wisp のトーンに合った例です(一つのことを明確に説明し、前置きや誇張なし):

## なぜ √d で割るのか

$q$ と $k$ の各成分が分散 1 の独立な確率変数だとすると、ドット積 $q \cdot k$ の分散は $d_k$ になります。次元が大きくなるほどドット積は大きくなり、softmax は one-hot に近づいて勾配が非常に小さくなります。

$\sqrt{d_k}$ で割ることで、分散が約 1 に戻り、softmax の出力は穏やかな範囲に保たれます。このステップがないと、深いネットワークは訓練が困難になります。

比較:「ご存知の通り、この超シンプルでありながら非常に重要な小ワザは効果を劇的に向上させます!」——空虚で、過度な強調、情報がありません。

よくある間違い

  • 冒頭を「本稿では〜を紹介します」「〜の発展に伴い」で始める。結論や問題を直接書くべき。
  • 本文中に # タイトル と書く。または h2 の直後に h4 を書く。
  • 見出しを文で書く(「実装方法を見てみよう」)— 名詞句(「実装方法」)にするべき。
  • 日本語の中で半角カンマや括弧を混在させる。日本語の強調に斜体を使う。
  • .md ファイルにコンポーネントを書く、または .mdx で import を忘れる。インタラクティブコンポーネントで client:visible を忘れる。
  • 画像に alt がない。まだ生成されていない .excalidraw を参照する(先に図を描き、その後参照)。ソースファイルではなく .wisp.svg を参照する。
  • 同じ概念に新しいタグを使う(既存の LLM があるのに Llm や 大規模言語モデル を追加する)。
  • Mermaid のノードテキストが長すぎてレンダリング後に重なる。約 12 文字以内に短縮する。
  • TODO プレースホルダーを残したまま納品する。check_post.py --strict で発見可能。
  • コードだけ書いて説明がない:コードの前に目的を説明し、コードの後に重要なポイントや期待される出力を説明する。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

관련 스킬