_extra-skills/honox-architecture/SKILL.md
Core Skill. HonoX architecture guidelines including file-based routing, Islands pattern, component types, performance optimization, and best practices for full-stack development.
npx skillsauth add poko8nada/pj_docs honox-architectureInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill as a project-proven, reusable baseline for HonoX applications. It is derived from a working production setup and intentionally generalized for reuse.
app/
├─ client.ts
├─ server.ts
├─ global.d.ts
├─ style.css
├─ components/
├─ features/
│ └─ [domain-feature].tsx
├─ islands/
│ └─ [interactive-component].tsx
├─ lib/
│ ├─ [domain-parser].ts
│ └─ [storage-adapter].ts
├─ routes/
│ ├─ _renderer.tsx
│ ├─ _404.tsx
│ ├─ _error.tsx
│ ├─ index.tsx
│ ├─ [resource]/
│ │ ├─ index.tsx
│ │ └─ [param].tsx
│ └─ api/
│ └─ [resource]/
│ └─ [param].ts
└─ utils/
└─ types.ts
app/routes/index.tsx → /app/routes/[resource]/index.tsx → /[resource]app/routes/[resource]/[param].tsx → /[resource]/:paramapp/routes/api/[resource]/[param].ts → /api/[resource]/:paramapp/routes/_renderer.tsx → Global renderer/layoutapp/routes/_404.tsx → Not found handlerapp/routes/_error.tsx → Error handlerUse semantic dynamic params ([slug], [path], [id]) consistently per domain.
import { showRoutes } from "hono/dev";
import { createApp } from "honox/server";
const app = createApp();
showRoutes(app);
export default app;
import { createClient } from "honox/client";
createClient();
Prefer createClient() for HonoX 0.1.x-style client bootstrap.
Keep _renderer.tsx as the single source of shared HTML shell concerns:
<Link href='/app/style.css' rel='stylesheet' /><Script src='/app/client.ts' async />Header, Footer, main container)Define route-level <title> and <meta> inside page routes and let head aggregation handle output.
app/islands/import InteractiveFilter from "../../islands/interactive-filter";
Use one dedicated adapter module (e.g. app/lib/storage.ts) for all storage reads/writes:
getItem(storage, key, options)listItems(storage, options)getAsset(storage, path, options)Recommended behavior:
caches.open(...))ExecutionContext + ctx.waitUntil for non-blocking cache writesResult<T, E>-style returns for recoverable failuresFor asset/data proxy routes:
getAsset/getItem)X-Cache: HIT|MISSContent-Type / ETag / Cache-Control when availablec.notFound() for missing objects_404.tsx: NotFoundHandler_error.tsx: ErrorHandler
Define runtime bindings in app/global.d.ts:
Bindings: {
STORAGE_BUCKET: R2Bucket
ANALYTICS_ID?: string
}
Always update type declarations when adding/changing worker bindings.
pnpm run dev
pnpm run test
pnpm run typecheck
pnpm run lint
pnpm run format
pnpm run build
pnpm run deploy
app/islands first, not mixed server files_renderer.tsxtools
Composite Skill. This skill is used for project planning. Users request that a project plan be created, particularly during the initial stages.
documentation
Core Skill. This skill is for document creation. User ask you to create planning documents, such as requirement and task breakdown.
development
Core Skill. Next.js 15+ App Router architecture guidelines including component patterns, state management with Zustand, server actions, and project structure. Use when developing Next.js applications.
development
Hono + HTMX architecture guidelines for Cloudflare Workers. Use when developing server-rendered applications with Hono, HTMX, and Hono JSX.