project-guidelines-example/SKILL.md
Example project-specific skill template based on a real production application — use as a starting point for your own project skills.
npx skillsauth add lidge-jun/cli-jaw-skills project-guidelines-exampleInstall 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.
Template for creating project-specific skills. Adapt the sections below to your own project.
Based on a real production application: Zenith — AI-powered customer discovery platform.
Reference a project skill when working on its specific project. A project skill typically contains:
Tech Stack:
Services:
Frontend (Next.js 15 + TypeScript + TailwindCSS)
│
▼
Backend (FastAPI + Python 3.11 + Pydantic)
│
├── Supabase (Database)
├── Claude API
└── Redis (Cache)
project/
├── frontend/src/
│ ├── app/ # Next.js app router pages
│ ├── components/ # React components (ui/, forms/, layouts/)
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utilities
│ ├── types/ # TypeScript definitions
│ └── config/ # Configuration
│
├── backend/
│ ├── routers/ # FastAPI route handlers
│ ├── models.py # Pydantic models
│ ├── main.py # FastAPI app entry
│ ├── services/ # Business logic
│ └── tests/ # pytest tests
│
├── deploy/ # Deployment configs
└── scripts/ # Utility scripts
class ApiResponse(BaseModel, Generic[T]):
success: bool
data: Optional[T] = None
error: Optional[str] = None
@classmethod
def ok(cls, data: T) -> "ApiResponse[T]":
return cls(success=True, data=data)
@classmethod
def fail(cls, error: str) -> "ApiResponse[T]":
return cls(success=False, error=error)
async function fetchApi<T>(
endpoint: string,
options?: RequestInit
): Promise<ApiResponse<T>> {
const response = await fetch(`/api${endpoint}`, {
...options,
headers: { 'Content-Type': 'application/json', ...options?.headers },
})
if (!response.ok) return { success: false, error: `HTTP ${response.status}` }
return await response.json()
}
pytest tests/ # all tests
pytest tests/ --cov=. --cov-report=html # with coverage
pytest tests/test_auth.py -v # specific file
npm run test # unit tests
npm run test -- --coverage # with coverage
npm run test:e2e # Playwright E2E
cd frontend && npm run build && gcloud run deploy frontend --source .
cd backend && gcloud run deploy backend --source .
development
Native Web UI structured renderer schemas for compose-block drafts, search-results cards, dataframe tables, chart-json charts, and diff output
tools
Unified search hub. Route any web/real-time/X lookup through a 4-tier escalation: built-in web search → cli-jaw browser CDP → progrok Grok OAuth → web-ai (Grok Expert / GPT Pro). Use for: search, 검색, web search, latest news, real-time info, X/Twitter, fact lookup, deep research.
development
UI/UX intent discovery, design vocabulary, product personalities, UX state patterns, typography line break judgment, favicon/product logo design, and logo trust section design. Use when user design direction is vague, when building onboarding/empty/error states, when setting up favicons or product logos, or when referencing a product aesthetic.
development
Canonical owner of module boundary rules, circular dependency detection/prevention, implicit coupling taxonomy, barrel/re-export discipline, and boundary-only defensive programming. Referenced by dev, dev-code-reviewer, dev-backend, dev-frontend stubs.