{"id":"c8c9cfa0-3d38-4877-9f02-0ef6b19e5e7f","slug":"japanese-writer","kind":"skill","name":"japanese-writer","summary":"","owner":"usadamasa","repoUrl":"https://github.com/usadamasa/japanese-writer","license":"MIT","licenseTier":"permissive","trust":"community","stars":3,"match":null,"fewStars":true,"format":"skill","createdAt":"2026-09-23T04:21:09.000Z","addedAt":"2026-10-22T03:40:56.376Z","logoUrl":"https://avatars.githubusercontent.com/u/513226?u=286bed5690b4b0869f23e83367a42d252ee69110&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["writing"],"tags":["gh-managed"],"runtime":"go","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-25T21:00:17.798Z","sample":false,"url":"https://conduits.dev/tools/japanese-writer","language":"Go","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# japanese-writer\n\n日本語の技術文書を書く・校正するための Claude Code plugin。\n\n## 収録内容\n\n入口は 2 つ。書くときは `japanese-tech-writing` が構成から推敲まで導き、書き上がったら\n`/japanese-writer:proofread` で添削する。残りは proofread の内側から呼ばれるか、指摘を受けたときに使う。\n\n```text\nユーザー\n├─ /japanese-writer:setup ── 自動の準備が失敗したとき、crit をリンクするとき\n├─ 書く ── japanese-tech-writing (Phase 1 構成 → 2 執筆 → 3 推敲)\n│             └─ Phase 3 の最後に proofread を呼ぶ\n├─ /japanese-writer:proofread ── 添削の入口\n│    ├─ textlint-check (機械点検と autofix)\n│    └─ proofreader (subagent)\n│         ├─ japanese-tech-writing (規範として読む)\n│         ├─ sanitize-artifacts (漏出の観点として読む)\n│         ├─ style_check で差し込んだ文体 skill (任意)\n│         └─ domain_check で差し込んだ用語 skill (任意)\n├─ /japanese-writer:writing-feedback ── 言い回しを直されたとき\n│    └─ crit の approve 後の prompt (crit/on_finish_approved.md) からも呼ばれる\n├─ /japanese-writer:gate-off, gate-on ── このセッションの間だけ Stop hook の点検を止める・戻す\n├─ (自動) SessionStart hook: writing-gate を data ディレクトリへビルド ── セッションを開くとき\n└─ (自動) Stop hook: writing-gate ── セッションを閉じるとき\n```\n\n| 種別 | 名前 | 役割 | 呼び方 |\n| ---- | ---- | ---- | ---- |\n| skill | setup | 前提コマンドの確認、writing-gate のビルドと検証のやり直し、crit の prompt リンク | ユーザーが `/japanese-writer:setup` で呼ぶ。SessionStart hook の準備が失敗したとき、未ビルドのまま Stop hook に止められたとき、crit をリンクするとき |\n| skill | japanese-tech-writing | 技術文書の構成・論証・段落の規範。書き始める前の構成検討から推敲まで扱う | 文書を書くとき Claude が読み込む。`/japanese-writer:japanese-tech-writing` で明示的にも呼べる |\n| skill | proofread | md ドラフトの総合添削。proofreader subagent へ委譲し、修正案が一意なものは適用して報告し、論証に関わるものは警告に留める | ユーザーが `/japanese-writer:proofread` で呼ぶ (添削の入口) |\n| skill | textlint-check | textlint による機械点検と自動修正。呼び出し元が `config_root` で config を切り替える | proofread の内側から呼ばれる。機械点検だけ欲しいときは単体でも呼べる |\n| skill | sanitize-artifacts | 対話で仕上げた成果物から、制作過程と却下した案の痕跡を取り除く | proofreader が点検の観点として読み込む。「これは消して」の後の作り直しでは単体で呼ぶ |\n| skill | writing-feedback | 言い回しへの指摘を prh のルールとして登録し、次から機械が拾えるようにする | ユーザーが言い回しを直したときに呼ぶ。crit の approve 後の prompt からも回る |\n| skill | gate-off / gate-on | このセッションの間だけ Stop hook の文章点検を止める・戻す。ファイルや設定には触れない | ユーザーが `/japanese-writer:gate-off` と `/japanese-writer:gate-on` で打つ。Claude が Skill ツールで呼んでも効かない |\n| agent | proofreader | proofread skill から呼ばれる添削担当の subagent | proofread が dispatch する。直接は呼ばない |\n| hook | SessionStart: prepare | writing-gate のビルドの入力が前回と違えば data ディレクトリへビルドし直し、crit の prompt を data へ複製する | 自動 (開始時) |\n| hook | Stop: writing-gate | セッションを閉じるときに、編集した `.md` を点検して重大な指摘があれば完了を止める | 自動 (完了時) |\n| crit prompt | `crit/on_finish_approved.md` | crit のレビューが approve されたとき、言い回しへの指摘を writing-feedback へ回す | crit が approve 時に読む |\n\nwriting-gate は文書全体の集計 (語尾の連続・文体の混在) と逐語の漏出を見る Go 製の CLI。\n設計とルールの置き場は [writing-gate/README.md](writing-gate/README.md) にある。\n\n## 前提\n\n- Node.js (`npx`)。textlint は `npx` で都度取得するので、`node_modules` を用意する必要はない\n- `jq`\n- Go (writing-gate のビルドに使う)。PATH の `go` が `go.mod` の `toolchain` 行 (go1.26.10) より古いと、\n  `GOTOOLCHAIN` が既定の `auto` なら go がその版を取得してビルドするので、初回はネットワークが要る\n\n## インストール\n\n配布は marketplace `usadamasa` ([usadamasa/agents-marketplace](https://github.com/usadamasa/agents-marketplace))\n経由で行う。Claude Code で次を実行する。\n\n```text\n/plugin marketplace add usadamasa/agents-marketplace\n/plugin install japanese-writer@usadamasa\n```\n\n### セットアップ\n\ninstall の後に手で打つものは無い。セッションを開くと SessionStart hook が、Stop hook の起動する\n`writing-gate` を plugin の data ディレクトリ (`~/.claude/plugins/data/japanese-writer-usadamasa/bin/`) へ\nビルドし、既知の漏出パターンを拾えることまで検証する。初回は Go のビルドの分だけ開始が遅れる。\n\ninstall 先 (`~/.claude/plugins/cache/usadamasa/japanese-writer/<version>/`) は版ごとに変わるが、\ndata ディレクトリは update をまたいで残る。hook はビルドの入力 (Go のソースと埋め込みルール) の\ncksum を前回と比べ、変わったときだけビルドし直す。update の後に再ビルドやリンクの張り直しは要らない。\n\n準備に失敗すると、開始時にその理由が表示される。ビルドできていないあいだは、Stop hook が完了を止めて\n`/japanese-writer:setup` を案内する。setup は前提コマンドを確かめてからビルドをやり直し、失敗の理由を返す。\n\n```text\n/japanese-writer:setup\n```\n\n### crit との連動 (任意)\n\n[crit](https://github.com/tomasz-tomczyk/crit) を使っているなら、approve 後の prompt を plugin の\nファイルへリンクする。`crit` が PATH にあると setup がこれを提案する。リンク先は data ディレクトリの\n複製 (`~/.claude/plugins/data/japanese-writer-usadamasa/crit/on_finish_approved.md`) で、中身は\nSessionStart hook が新しい版に揃えるので、張るのは 1 回で済む。\n\n以前の setup が張った、版ごとの置き場を指すリンクは `--crit` で data の複製へ張り替える。\n指し先が消えたリンクも張り替え、それ以外の場所を指しているときは触らずに報告だけする。\n\n## 文体とドメイン用語の差し込み\n\nproofread は汎用の機械点検と文章規範だけを持つ。書き手ごとの文体とドメイン固有の用語は、\nユーザー側の `~/.claude/skills/` に置いた skill を引数で名指しして差し込む。\n\n| 引数 | 差し込むもの | 例 |\n| ---- | ---- | ---- |\n| `style_check` | 書き手の文体 (文書の種類ごとの語尾・句読点・絵文字の指紋) を持つ skill | `{\"skill\": \"my-writing-style\"}` |\n| `domain_check` | 用語表や事実の正本を持つ skill と、検出結果の Tier 分類表 | `{\"skill\": \"my-domain-terms\", \"tiering_ref\": \"references/tiering.md\"}` |\n\n`tiering_ref` は絶対パスか、`~/.claude/skills/<skill>/` からの相対パスで指定する。\nどちらも省略でき、省略した側の点検は skip され、結果の `skipped` に記録される。\n\n## 注意点\n\n同梱の textlint config は、半角の句読点「。 、」を全角の「。、」へ autofix する。\nコード (インラインとブロック) の中は書き換えない。\n\n## 開発\n\nplugin を使うだけなら「前提」節のツールで足りる。このリポジトリで開発するときは、加えて次を用意する。\n\n- flakes を有効にした [Nix](https://nixos.org/)。Go・task・golangci-lint・shellcheck・bats・jq・\n  [jv](https://github.com/santhosh-tekuri/jsonschema) は `flake.nix` の devShell で揃え、版は `flake.lock` が固定する\n  nixpkgs で決まる。nixpkgs に無い jv は `flake.nix` の中でソースからビルドする。CI も同じ flake を使う\n- [direnv](https://direnv.net/) と [nix-direnv](https://github.com/nix-community/nix-direnv)。`.envrc` が\n  `use flake` で devShell を読み込むので `direnv allow` する\n- Claude Code CLI (`task validate` が `claude plugin validate` を呼ぶ)\n\n`go.mod` の `go` ディレクティブは devShell の `go_1_26` と揃え、`GOTOOLCHAIN=local` でずれたら失敗させる。\n`toolchain` 行は利用者の手元で SessionStart hook がビルドするときの下限で、\n`GOTOOLCHAIN=local` の devShell と CI では効かない。\nツールの版を上げるときは `nix flake update` で `flake.lock` を更新する。\nGo は nixpkgs の版が修正版に届かない間、`flake.nix` の `devGo` がソースを差し替える。\n\nCI と同じ確認は task で手元でも通せる。\n\n| コマンド | 内容 |\n| ---- | ---- |\n| `task build` | `bin/writing-gate` をビルドする |\n| `task test` | ビルドしてから Go のテストと bats を実行する |\n| `task lint` | golangci-lint と shellcheck を実行する |\n| `task validate` | `claude plugin validate --strict` と、JSON / YAML が宣言した schema での検証を実行する |\n\n## 謝辞\n\n参考にした・翻案した skill・gist・書籍の一覧は [ACKNOWLEDGMENTS.md](ACKNOWLEDGMENTS.md) にある。\n\n## ライセンス\n\nMIT\n"}