원클릭으로
init-project
プロジェクトを Bun + Hono(バックエンド)+ Vite + React(フロントエンド)+ Biome でスキャフォールドする初期化スキル。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
プロジェクトを Bun + Hono(バックエンド)+ Vite + React(フロントエンド)+ Biome でスキャフォールドする初期化スキル。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
Gr@diusWeb3 ハンドオフ用の thinking head。ゲーム終了直後にブラウザがクリップボードへコピーした AgentLoopInput JSON を読み、AGENT.md の憲法と budget 上限を遵守したうえで 1 手の paper trade を AgentLoopTrace JSON として返す。ユーザーは出力 JSON をコピーしてブラウザの "Agent loop" パネルに貼り戻し、MetaMask で実 testnet 署名を行う。LLM は user 側 quota、deployed app は LLM コストゼロ、署名は browser MetaMask に固定。
新機能をヒアリング → 仕様化 → Issue 作成 → 5 役割並列実装の順で進める機能開発オーケストレーションスキル。ハッカソン賞金トラックとの整合チェックを含む。
ETHGlobal ハッカソン賞金トラック ($35,000) を機能設計に組み込むスキル。0G ($15K) / ENS ($5K) / Gensyn AXL ($5K) / KeeperHub ($5K) / Uniswap ($5K) の各賞要件を読み込み、機能アイデアに対して「どの賞を狙うか」「統合が cosmetic でなく meaningful か」「資格要件 (デモ動画・FEEDBACK.md 等) を満たせるか」を採点・助言する。`/feature` のヒアリング前に必ず参照する。
SOC 직업 분류 기준
| name | init-project |
| description | プロジェクトを Bun + Hono(バックエンド)+ Vite + React(フロントエンド)+ Biome でスキャフォールドする初期化スキル。 |
このスキルはプロジェクトの初期化を行う。以下の手順を順番に実行すること。
biome.json を共有)bun testtest スクリプトは必ず終了するコマンドを使うこと。
ウォッチモードで起動するコマンドは CI やエージェントをブロックする。
| NG(ウォッチモード) | OK(終了する) |
|---|---|
vitest | vitest run |
vitest watch | vitest run |
jest --watch | jest --watchAll=false |
ウォッチ用途は別スクリプトとして切り出す。
{
"test": "bun test",
"test:watch": "bun test --watch"
}
このテンプレートでは bun test を標準として使用する。vitest を採用する場合は必ず vitest run を test スクリプトに使うこと。
まずユーザーに以下を確認する。
{
"name": "backend",
"version": "1.0.0",
"type": "module",
"scripts": {
"dev": "bun run --watch src/index.ts",
"start": "bun run src/index.ts",
"build": "bun build src/index.ts --outdir dist --target bun",
"test": "bun test",
"test:watch": "bun test --watch",
"test:coverage": "bun test --coverage",
"typecheck": "tsc --noEmit"
},
"dependencies": {
"hono": "^4.0.0"
},
"devDependencies": {
"@types/bun": "latest",
"typescript": "^5.4.0"
}
}
{
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "bundler",
"strict": true,
"skipLibCheck": true,
"types": ["bun-types"]
},
"include": ["src/**/*.ts"]
}
import { Hono } from 'hono';
const app = new Hono();
app.get('/', (c) => c.json({ status: 'ok' }));
export default app;
import { describe, expect, it } from 'bun:test';
import app from './index';
describe('アプリケーション', () => {
describe('GET /', () => {
it('ステータス ok を返すべき', async () => {
const res = await app.request('/');
expect(res.status).toBe(200);
expect(await res.json()).toEqual({ status: 'ok' });
});
});
});
package.json の scripts に以下を追加する。
"test:api": "hurl --test tests/api/*.hurl"
GET http://localhost:3000/
HTTP 200
[Asserts]
jsonpath "$.status" == "ok"
Hurl のインストール方法(README に追記する)。
# macOS
brew install hurl
# Linux
cargo install hurl
{
"name": "frontend",
"version": "1.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc --noEmit && vite build",
"preview": "vite preview",
"test": "bun test",
"test:watch": "bun test --watch",
"test:coverage": "bun test --coverage",
"test:e2e": "playwright test",
"test:e2e:ui": "playwright test --ui",
"typecheck": "tsc --noEmit"
},
"dependencies": {
"react": "^18.3.0",
"react-dom": "^18.3.0"
},
"devDependencies": {
"@playwright/test": "^1.44.0",
"@types/react": "^18.3.0",
"@types/react-dom": "^18.3.0",
"@vitejs/plugin-react": "^4.3.0",
"typescript": "^5.4.0",
"vite": "^5.3.0"
}
}
import { defineConfig } from '@playwright/test';
export default defineConfig({
testDir: './e2e',
use: {
baseURL: 'http://localhost:5173',
},
webServer: {
command: 'bun run dev',
url: 'http://localhost:5173',
reuseExistingServer: !process.env.CI,
},
});
import { expect, test } from '@playwright/test';
test.describe('トップページ', () => {
test('ページが表示されるべき', async ({ page }) => {
await page.goto('/');
await expect(page).toHaveTitle(/App/);
});
});
{
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "bundler",
"jsx": "react-jsx",
"strict": true,
"skipLibCheck": true
},
"include": ["src"]
}
import react from '@vitejs/plugin-react';
import { defineConfig } from 'vite';
export default defineConfig({
plugins: [react()],
server: { port: 5173 },
});
<!doctype html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>App</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
import { StrictMode } from 'react';
import { createRoot } from 'react-dom/client';
const root = document.getElementById('root');
if (!root) throw new Error('root element not found');
createRoot(root).render(
<StrictMode>
<div>Hello</div>
</StrictMode>
);
上記の内容で各ファイルを Write ツールで作成する。ファイル名が .keep の場合は上書きしない。
ルートで bun install を実行するだけで全ワークスペースの依存が一括インストールされる。
bun install
nr test # 全ワークスペースのユニットテストが通ること
nr typecheck # 型エラーがないこと
nr test:e2e # フロントエンドの E2E テストが通ること(packages/frontend)
nr test:api # バックエンドの API テストが通ること(packages/backend、hurl が必要)
作成したファイル一覧と次のステップ(機能追加、DB 設定など)を簡潔に報告する。