Skip to content
cccskills
FreePublished on GitHub

migrate-novel

既存のノベルプロジェクトを最新の Applicot ディレクトリ構造にマイグレーションする。blueprints/directories.md を正とし、不足ディレクトリの作成・ファイルの再配置・ テンプレート再生成を安全に実行する。フェーズ間の構造変化にも対応。

使用タイミング: Applicot のアップデート後にノベルプロジェクトを最新構造に合わせたいとき、 「migrate」「マイグレーション」「ディレクトリ構造を更新」「novelを最新化」などと言われたとき。

The English summary is being prepared. Showing the original description.

See how to install

Files included (2)

  • SKILL.md7.8 KB
  • references/phase-changes.md2.5 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

migrate-novel

既存ノベルプロジェクトを最新の Applicot ディレクトリ構造に安全にマイグレーションする。

前提条件

  • applicot プロジェクトルートで実行する
  • 対象ノベルプロジェクトのパスをユーザーから受け取る(例: novels/my-novel)
  • 対象ノベルプロジェクトが git リポジトリであること(安全確認のため)

リファレンス

  • 正の定義: blueprints/directories.md — 最新のディレクトリ構造・DataId マッピング
  • フェーズ別変更一覧: references/phase-changes.md — 各フェーズでノベル構造に加わる変更の概要。差分特定時に「何が変わったか」の判断材料として参照する
  • 実装計画詳細: 実装計画/phase-{0..5}.md — 各フェーズの詳細計画。references/phase-changes.md で不足がある場合に参照する

ワークフロー

以下の 6 ステップを 順番に 実行する。各ステップの完了をユーザーに報告してから次へ進む。


Step 1: git status で安全確認

対象ノベルプロジェクトのルートで git status を実行する。

git -C {novel-path} status --porcelain

未コミットの変更がある場合: マイグレーションを中止し、先にコミットまたはスタッシュするよう促す。

⚠️ 未コミットの変更があります。マイグレーション前にコミットしてください:
  M handouts/public/world-setting.md
  ?? state/characters/charlie.json

クリーンな場合: 次のステップへ進む。


Step 2: 現在のディレクトリ構造を把握

対象ノベルプロジェクトで tree を実行し、現状を記録する。

tree {novel-path} -a --dirsfirst -I '.git'

結果を記憶しておく(Step 3 の差分検出に使う)。


Step 3: 理想構造との差分を分析

  1. blueprints/directories.md を読み、最新の理想構造を把握する
  2. 必要に応じて references/phase-changes.md を読み、フェーズ間の変化を確認する
  3. 現状(Step 2)と理想を比較し、差分を以下の 5 カテゴリに分類する:
カテゴリ例操作
不足ディレクトリevaluation/ がないmkdir -p で作成
不足初期ファイルstate/timeline.json がないscaffold と同じ初期値で作成
再配置が必要なファイル旧パスにあるファイルが新パスに移動git mv で移動
不要になったディレクトリ旧構造にのみ存在ユーザー確認後に削除
テンプレート更新SOUL.md, CLAUDE.md, .mcp.json再生成(内容は上書き)

分類結果をユーザーに提示し、実行前に承認を得る:

📋 マイグレーション計画:

  作成:
    + evaluation/
    + evaluation/report.md

  移動:
    → tracking/foreshadowing.json → state/foreshadowing.json

  テンプレート再生成:
    ↻ actors/EDT/SOUL.md
    ↻ CLAUDE.md
    ↻ .mcp.json

  削除候補(要確認):
    ? tracking/  (空になる場合)

  変更なし: handouts/, scenes/, recall/ ...

実行してよいですか?

Step 4: 再配置を実行

ユーザー承認後、以下の順序で実行する(依存関係を考慮):

4a. 不足ディレクトリの作成

mkdir -p {novel-path}/{new-dir}

4b. ファイルの移動(git mv)

移動は必ず git mv を使い、git の履歴を保持する。

git -C {novel-path} mv {old-path} {new-path}

移動先ディレクトリが存在することを確認してから実行する。

4c. 不足初期ファイルの作成

blueprints/directories.md のスキャフォールド生成ファイル表を参照し、初期値で作成する。 JSON は JSON.stringify(data, null, 2) + "\n" の形式。

既に内容が存在するファイルは 絶対に上書きしない。不足ファイルのみ新規作成する。

scaffold 初期値:

ファイル初期値
state/environment.json{}
state/relationships.json{ "edges": [] }
state/foreshadowing.json[]
state/tension_curve.json[]
state/timeline.json[]
meta/config.json{ "genre": "", "scale": "medium", "title": "", "createdAt": "..." }
campaign/consequences.md# Consequences Ledger\n
meta/session_log.md# Session Log\n

4d. テンプレート再生成

SOUL.md, CLAUDE.md, .mcp.json を applicot のテンプレートから再生成する。

エンティティ検出(CLAUDE.md 再生成に必要):

ls {novel-path}/actors/
# CHR-*, NAT-*, ORG-* ディレクトリからエンティティ一覧を抽出

meta/config.json から title, genre を読み取る。

テンプレート生成コマンド例:

bun -e "
import { generateEdtSoul } from './templates/soul-md/edt.ts';
console.log(generateEdtSoul());
"

SOUL.md の再生成判断:

  • テンプレートから再生成した内容と現在の内容を diff で比較する
  • 差分がある場合、ユーザーに差分を提示して上書きするか確認する
  • ユーザーがカスタマイズした部分を保持したい場合は上書きしない

CLAUDE.md と .mcp.json は常に再生成する(ユーザーカスタマイズが想定されないため)。

4e. 空ディレクトリの削除

移動後に空になったディレクトリがあれば、ユーザー確認の上で削除する。


Step 5: 変更履歴レポート

実行した操作を構造化してユーザーに報告する。

✅ マイグレーション完了

実行した操作:
  作成 (2):
    + evaluation/
    + evaluation/report.md

  移動 (1):
    tracking/foreshadowing.json → state/foreshadowing.json

  テンプレート再生成 (3):
    ↻ actors/EDT/SOUL.md
    ↻ CLAUDE.md
    ↻ .mcp.json

  削除 (1):
    - tracking/ (空ディレクトリ)

  スキップ (0):

変更なし: handouts/, scenes/, recall/, state/characters/, ...

Step 6: コミット

変更をステージングし、結果をユーザーに提示する。

cd {novel-path} && git add -A && git status

コミットメッセージを提案する:

migrate: update directory structure to latest Applicot

- Add evaluation/ directory
- Move tracking/foreshadowing.json to state/foreshadowing.json
- Regenerate EDT SOUL.md, CLAUDE.md, .mcp.json
- Remove empty tracking/ directory

ユーザー承認後にコミットを実行する。


安全原則

  1. データを失わない: ユーザー作成ファイル(handouts, state, scenes, recall)は移動のみ、削除しない
  2. git mv を使う: ファイル移動は必ず git mv で git 履歴を保持する
  3. 上書き前に確認: テンプレート再生成時は差分を見せてから上書きする
  4. 段階的に承認: Step 3 で計画を提示し承認を得てから実行する
  5. ロールバック可能: git コミット前に全操作を完了し、問題があれば git checkout . で戻せる

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Applicot ノベルプロジェクトの雛形を作成する。blueprints/directories.md に基づいたディレクトリ構造・ SOUL.md・CLAUDE.md・.mcp.json・初期データファイルを生成する。 使用タイミング: 新しい小説プロジェクトを始めるとき、「小説を作りたい」「ノベルプロジェクトを初期化したい」 「init novel」「scaffold」などと言われたとき。novels/ は .gitignore 済みでも問題なく作成する。

The English summary is being prepared. Showing the original description.

fruitriin/applicot6Updated Aug 17, 2026

See all skills by fruitriin

Report a problem with this skill