Back to Skills

writing-dev-diary

verified

「開発日誌更新」「開発日誌作って」の言及時に使用。esa-llm-scoped-guardで開発日誌を新規作成・更新します。

View on GitHub

Marketplace

syou6162-marketplace

syou6162/claude-code-commands

Plugin

syou6162-plugin

Repository

syou6162/claude-code-commands
10stars

skills/writing-dev-diary/SKILL.md

Last Verified

January 22, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/syou6162/claude-code-commands/blob/main/skills/writing-dev-diary/SKILL.md -a claude-code --skill writing-dev-diary

Installation paths:

Claude
.claude/skills/writing-dev-diary/
Powered by add-skill CLI

Instructions

# esa開発日誌の作成・更新

esaに開発日誌を投稿・更新するスキルです。`esa-llm-scoped-guard` CLIを使用して、許可されたカテゴリ配下の記事のみを安全に編集します。

## 禁止事項

<important>

- [ ] JSONファイルは必ず`.claude_work/dev_diary.json`に作成すること(**ファイル名固定**)
- [ ] esa MCPの書き込み系ツール(`create_esa_post`, `update_esa_post`)は使用禁止。このスキルでは`esa-llm-scoped-guard` CLIのみ使用
- [ ] JSONスキーマは必ず`esa-llm-scoped-guard -help`で確認してから生成すること

</important>

## 使用タイミング

<trigger>

以下のトリガーワードで発動します:

- **「開発日誌を作って」**: 検索なしで直接新規作成
- **「開発日誌を更新」+ esaのURL**: 指定されたURLの記事を更新
- **「開発日誌を更新」**(URLなし): 検索して関連記事を更新、なければ新規作成

</trigger>

## 実行手順

<procedure>

### 手順1: JSONスキーマを確認

最初に必ず最新のJSONスキーマを確認してください:

```bash
esa-llm-scoped-guard -help
```

### 手順2: トリガーによる条件分岐

<decision-criteria name="trigger-flow">

| トリガー | 既存記事取得 | 次の手順 |
|----------|-------------|---------|
| 「開発日誌を作って」 | なし | 手順4 |
| 「開発日誌を更新」+ URL | あり(URL指定) | 手順3(共通サブルーチン) |
| 「開発日誌を更新」(URLなし) | あり(検索) | 手順3(記事あり)/ 手順4(記事なし) |

</decision-criteria>

#### パターンA: 「開発日誌を作って」の場合

検索・取得をスキップして、**手順4(JSON生成)へ直行**してください。

#### パターンB: 「開発日誌を更新」+ URLの場合

1. ユーザーが提示したesaのURLから`post_number`を抽出(例: `https://yasuhisa.esa.io/posts/123` → `123`)

2. `mcp__esa-mcp-server__read_esa_post`で既存記事を取得:
   ```
   postNumber: 123
   ```

3. 既存記事の内容を確認し、**手順3(共通サブルーチン)へ進む**

#### パターンC: 「開発日誌を更新」(URLなし)の場合

1. `mcp__esa-mcp-server__search_esa_posts`で関連記事を検索:
   ```
   query: "in:Claude Code/開発日誌"
   sort: "updated"
   order: "desc"
   perPage: 10
   ```

2. 会話コンテキストから現在のタスクを特定し、検索結果から最も関連性の高い記事を判断

3. **記事あり**: `mcp__esa-mcp-server__read_esa_post`で取得 → 更新モードで**手順3(共通サブルーチン)へ**

4. **記事なし**: 新規作成モードで**手順4へ**

### 手順3: 既存記事内のGitHub URL状態を確認(共通サブルーチン)

既存記事を取得した後、記事内のタスクに含まれるGitHub URL(PR/Issue)の現在の状態と内容を確認します。

1. `body.tasks`から`github_urls`を抽出(URLがなければ**手順4へ**)

2. 各URLの状態と内容をgh CLIで確認

<example name="gh-cli-status-check">

**PRの場合**:
```bash
gh pr view <URL> --json state,isDraft,title,body
```

**Issueの場合**:
```bash
gh issue view <URL> --json state,title,body
```

</example>

3. <github-status-mapping>に従ってGitHub状態を判定

4. <status-map

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
3877 chars