# note_poster — Claude 向け利用ガイド

このディレクトリは note.com 自動投稿ツール `note_poster.exe` の配布物です。
Claude (あなた) は、 ユーザ (= ツールの利用者) の依頼を受けて記事を作成し、
このツールを使って note に投稿します。

## 投稿前にユーザへ必ず確認する 3 点

note の自動投稿は不可逆操作を含むため、 ユーザ確認なしに進めないこと。

1. **公開するか / 下書きで止めるか** (= `auto_publish`)
   - `true` → 「投稿する」 ボタンまで自動押下 (= 公開実行、 不可逆)
   - `false` (デフォルト推奨) → プレビュー画面で停止 (= ユーザが手動公開)

2. **有料記事か / 無料記事か** (= `is_paid`)
   - `true` → 有料 / `false` → 無料
   - 省略時は body 内の `PLINE` ブロック有無で自動判定

3. **有料の場合の料金** (= `price`、 円)

タイトル / 本文 / サムネは Claude が作成して OK ですが、 上記 3 点は
独断で決めないこと。

## 標準フロー

1. ユーザに 3 点確認
2. このディレクトリに `article.json` を Write ツールで生成 (= 下のサンプル参照)
3. `run.bat` を Bash ツールで実行
4. 結果 (= 終了コード + 標準出力) を確認してユーザに報告

## article.json のフォーマット

```json
{
  "title": "記事タイトル",
  "body": [
    {"type": "INDEX", "value": "目次"},
    {"type": "H2",    "value": "見出し"},
    {"type": "P",     "value": "段落テキスト"},
    {"type": "UL",    "value": ["項目1", "項目2"]},
    {"type": "PLINE", "value": "pline"},
    {"type": "P",     "value": "有料エリア本文"}
  ],
  "hashtags": ["タグ1", "タグ2"],
  "auto_publish": false,
  "is_paid": true,
  "price": 500
}
```

詳しいサンプルは `samples/` 配下を参照。

## BodyType 一覧

| type | 説明 | value の型 |
|---|---|---|
| `P` | 段落 | string |
| `H2` / `H3` | 大見出し / 小見出し | string |
| `UL` / `OL` | 箇条書き / 番号付きリスト | string の配列 |
| `QUOTE` | 引用 | string or [本文, 出典] の配列 |
| `CODE` | コード | string |
| `HR` | 区切り線 | "" でよい |
| `INDEX` | 目次 | "" でよい |
| `LINK` | URL 埋め込み | URL string |
| `IMAGE` | 画像 | パス string or [パス, キャプション] |
| `PLINE` | 有料エリア境界 | "" でよい |

## エラー時の対処

| エラー | 原因 / 対処 |
|---|---|
| `[認証エラー] 長期間未使用のため認証キーが無効になりました` | 90 日間ツール未使用で失効 (reason=inactive)。 javeo.jp/app の発行ページで無料で取り直し、 `setup.bat` で再入力すれば復帰 (= エラー文に再取得 URL も併記される) |
| `[認証エラー] 利用期限が切れています` | 認証キーの期限切れ (reason=expired)。 発行キーは遠い未来の期限が付くため通常は発生しない。 表示時は javeo.jp/app の案内を確認 |
| `[認証エラー] 認証サーバに接続できません` | ネット接続を確認 |
| `手動ログインが完了していないようです` | Chrome で note にログインしてから再実行 |
| `タイトル入力欄が見つかりません` | note の UI 変更の可能性、 開発元 (javeo.jp/app) に報告 |

## サポート / 詳細情報

- 最新情報: https://javeo.jp/app
- お知らせ: ツール起動時に表示される `[お知らせ]` メッセージを確認
