← スキル一覧に戻る

crowi-migration
by crowi
crowi-migrationは、ソフトウェア開発を効率化するスキルです。開発ワークフロー全体をサポートし、チームの生産性向上とコード品質の改善を実現します。
⭐ 1,097🍴 166📅 2026年1月21日
SKILL.md
name: crowi-migration description: | Crowi 2.0 移行ワークフロー。Express/Swig から Next.js + ts-rest への移行時に自動適用。 キーワード: migrate, 移行, Express, Swig, legacy, 旧実装 globs:
- "lib/routes/**"
- "lib/views/**"
- "client/components/**"
Crowi 2.0 Migration Skill
アーキテクチャ
crowi/
├── apps/
│ ├── crowi-api/ # Fastify + ts-rest (port 3300)
│ └── crowi-web/ # Next.js 16 (port 3301)
├── packages/
│ ├── api-contract/ # ts-rest 契約定義
│ └── shared/ # 共有型
└── lib/ # 旧実装(参照元)
├── routes/ # Express ルート
├── views/ # Swig テンプレート
└── models/ # Mongoose モデル
移行パターン
Express Route → Fastify + ts-rest
// Before: lib/routes/page.js
router.get('/pages', async (req, res) => {
const pages = await Page.find();
res.render('page/list', { pages });
});
// After: packages/api-contract/src/page.ts
export const pageContract = c.router({
listPages: {
method: 'GET',
path: '/pages',
responses: { 200: z.object({ pages: z.array(PageSchema) }) },
},
});
// After: apps/crowi-api/src/routes/page.ts
listPages: async () => {
const pages = await Page.find();
return { status: 200, body: { pages } };
},
Swig Template → Next.js Page
// Before: lib/views/page/list.html
{% for page in pages %}
<div>{{ page.path }}</div>
{% endfor %}
// After: apps/crowi-web/app/(main)/pages/page.tsx
'use client';
export default function PagesPage() {
const { data } = useQuery(['pages'], () => client.page.listPages());
return data?.body.pages.map(page => <div key={page._id}>{page.path}</div>);
}
サブエージェント
| Agent | 役割 | ツール |
|---|---|---|
| migration-planner | 計画立案 | Read, Grep, Glob |
| migration-implementer | 実装 | Read, Write, Edit, Bash |
| migration-reviewer | レビュー | Read, Grep, Bash |
| migration-committer | コミット・PR | Read, Bash |
ワークフロー
/migrate {task-name}
planner → implementer → reviewer ─┬→ committer
↑ │
└───────┘ (NEEDS_WORK)
タスク管理
- キュー:
.claude/migration-state/queue.json - タスク:
.claude/migration-state/tasks/{task-id}.json - ステータス:
PLANNED→REVIEW→APPROVED→COMMITTED
技術スタック
- API: Fastify v5, ts-rest, MongoDB/Mongoose, JWT
- Web: Next.js 16, React 19, Tailwind v4, shadcn/ui
- 共通: TypeScript 5.x strict, pnpm, Turborepo
Crowi テーマ
--crowi-primary: #43676b;
--crowi-header: #263a3c;
--crowi-sidebar: #f8f9fa;
スコア
総合スコア
85/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
✓LICENSE
ライセンスが設定されている
+10
○説明文
100文字以上の説明がある
0/10
✓人気
GitHub Stars 1000以上
+15
✓最近の活動
1ヶ月以内に更新
+10
✓フォーク
10回以上フォークされている
+5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
✓タグ
1つ以上のタグが設定されている
+5
レビュー
💬
レビュー機能は近日公開予定です

