Integration Tests for pREST
prest/prest
Guides writing and reviewing pREST Docker-based integration tests so every HTTP request is explained by step comments or table-driven descriptions.
“基于真实生产应用的示例项目特定技能模板。”
$ npx skills add loulanyue/awesome-claude-notes --skill project-guidelines-example -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install loulanyue/awesome-claude-notes project-guidelines-example --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/loulanyue/awesome-claude-notes.git skills-src && mkdir -p .claude/skills && cp -r skills-src/docs/zh-CN/skills/project-guidelines-example .claude/skills/project-guidelines-example && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "project-guidelines-example" agent skill from https://github.com/loulanyue/awesome-claude-notes/tree/main/docs/zh-CN/skills/project-guidelines-example into .claude/skills/project-guidelines-example/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-guidelines-example", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/loulanyue/awesome-claude-notes/tree/main/docs/zh-CN/skills/project-guidelines-exampleType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add loulanyue/awesome-claude-notes --skill project-guidelines-example -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install loulanyue/awesome-claude-notes project-guidelines-example --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/loulanyue/awesome-claude-notes.git skills-src && mkdir -p .agents/skills && cp -r skills-src/docs/zh-CN/skills/project-guidelines-example .agents/skills/project-guidelines-example && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "project-guidelines-example" agent skill from https://github.com/loulanyue/awesome-claude-notes/tree/main/docs/zh-CN/skills/project-guidelines-example into .agents/skills/project-guidelines-example/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-guidelines-example", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add loulanyue/awesome-claude-notes --skill project-guidelines-example -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install loulanyue/awesome-claude-notes project-guidelines-example --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/loulanyue/awesome-claude-notes.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/docs/zh-CN/skills/project-guidelines-example .cursor/skills/project-guidelines-example && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "project-guidelines-example" agent skill from https://github.com/loulanyue/awesome-claude-notes/tree/main/docs/zh-CN/skills/project-guidelines-example into .cursor/skills/project-guidelines-example/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-guidelines-example", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/loulanyue/awesome-claude-notes.git --path docs/zh-CN/skills/project-guidelines-example--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add loulanyue/awesome-claude-notes --skill project-guidelines-example -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install loulanyue/awesome-claude-notes project-guidelines-example --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/loulanyue/awesome-claude-notes.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/docs/zh-CN/skills/project-guidelines-example .gemini/skills/project-guidelines-example && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "project-guidelines-example" agent skill from https://github.com/loulanyue/awesome-claude-notes/tree/main/docs/zh-CN/skills/project-guidelines-example into .gemini/skills/project-guidelines-example/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-guidelines-example", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install loulanyue/awesome-claude-notes project-guidelines-exampleInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add loulanyue/awesome-claude-notes --skill project-guidelines-example -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/loulanyue/awesome-claude-notes.git skills-src && mkdir -p .github/skills && cp -r skills-src/docs/zh-CN/skills/project-guidelines-example .github/skills/project-guidelines-example && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "project-guidelines-example" agent skill from https://github.com/loulanyue/awesome-claude-notes/tree/main/docs/zh-CN/skills/project-guidelines-example into .github/skills/project-guidelines-example/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-guidelines-example", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add loulanyue/awesome-claude-notes --skill project-guidelines-example -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install loulanyue/awesome-claude-notes project-guidelines-example --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/loulanyue/awesome-claude-notes.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/docs/zh-CN/skills/project-guidelines-example .opencode/skills/project-guidelines-example && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "project-guidelines-example" agent skill from https://github.com/loulanyue/awesome-claude-notes/tree/main/docs/zh-CN/skills/project-guidelines-example into .opencode/skills/project-guidelines-example/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "project-guidelines-example", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
project-guidelines-exampleProject Guidelines Example is a skill in loulanyue/awesome-claude-notes (272 stars). Its SKILL.md is about 2k tokens. Licence: MIT.
8 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 866b55b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmpoetrygcloudFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
xxx.supabase.coAlso links to:
zenith.chatFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
NEXT_PUBLIC_SUPABASE_ANON_KEYANTHROPIC_API_KEYSUPABASE_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Project Guidelines Example loads about 2k tokens when it runs. Until then it costs about 12 tokens; SKILL.md has 139 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
# Frontend (.env.local)# Backend (.env)Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from loulanyue/awesome-claude-notes at commit 866b55b, republished under its MIT licence (© loulanyue). 139 words, ~1,974 tokens.
.claude/skills/project-guidelines-example/SKILL.md (or your agent's skills folder).这是一个项目特定技能的示例。将其用作您自己项目的模板。
基于一个真实的生产应用程序:Zenith - 由 AI 驱动的客户发现平台。
在为其设计的特定项目上工作时,请参考此技能。项目技能包含:
技术栈:
服务:
┌─────────────────────────────────────────────────────────────┐
│ 前端 │
│ Next.js 15 + TypeScript + TailwindCSS │
│ 部署平台:Vercel / Cloud Run │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 后端 │
│ FastAPI + Python 3.11 + Pydantic │
│ 部署平台:Cloud Run │
└─────────────────────────────────────────────────────────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Supabase │ │ Claude │ │ Redis │
│ 数据库 │ │ API │ │ 缓存 │
└──────────┘ └──────────┘ └──────────┘project/
├── frontend/
│ └── src/
│ ├── app/ # Next.js 应用路由页面
│ │ ├── api/ # API 路由
│ │ ├── (auth)/ # 受身份验证保护的路由
│ │ └── workspace/ # 主应用工作区
│ ├── components/ # React 组件
│ │ ├── ui/ # 基础 UI 组件
│ │ ├── forms/ # 表单组件
│ │ └── layouts/ # 布局组件
│ ├── hooks/ # 自定义 React 钩子
│ ├── lib/ # 工具库
│ ├── types/ # TypeScript 类型定义
│ └── config/ # 配置文件
│
├── backend/
│ ├── routers/ # FastAPI 路由处理器
│ ├── models.py # Pydantic 模型
│ ├── main.py # FastAPI 应用入口
│ ├── auth_system.py # 身份验证模块
│ ├── database.py # 数据库操作
│ ├── services/ # 业务逻辑层
│ └── tests/ # pytest 测试
│
├── deploy/ # 部署配置
├── docs/ # 文档
└── scripts/ # 工具脚本from pydantic import BaseModel
from typing import Generic, TypeVar, Optional
T = TypeVar('T')
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)interface ApiResponse<T> {
success: boolean
data?: T
error?: string
}
async function fetchApi<T>(
endpoint: string,
options?: RequestInit
): Promise<ApiResponse<T>> {
try {
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()
} catch (error) {
return { success: false, error: String(error) }
}
}from anthropic import Anthropic
from pydantic import BaseModel
class AnalysisResult(BaseModel):
summary: str
key_points: list[str]
confidence: float
async def analyze_with_claude(content: str) -> AnalysisResult:
client = Anthropic()
response = client.messages.create(
model="claude-sonnet-4-5-20250514",
max_tokens=1024,
messages=[{"role": "user", "content": content}],
tools=[{
"name": "provide_analysis",
"description": "Provide structured analysis",
"input_schema": AnalysisResult.model_json_schema()
}],
tool_choice={"type": "tool", "name": "provide_analysis"}
)
# Extract tool use result
tool_use = next(
block for block in response.content
if block.type == "tool_use"
)
return AnalysisResult(**tool_use.input)import { useState, useCallback } from 'react'
interface UseApiState<T> {
data: T | null
loading: boolean
error: string | null
}
export function useApi<T>(
fetchFn: () => Promise<ApiResponse<T>>
) {
const [state, setState] = useState<UseApiState<T>>({
data: null,
loading: false,
error: null,
})
const execute = useCallback(async () => {
setState(prev => ({ ...prev, loading: true, error: null }))
const result = await fetchFn()
if (result.success) {
setState({ data: result.data!, loading: false, error: null })
} else {
setState({ data: null, loading: false, error: result.error! })
}
}, [fetchFn])
return { ...state, execute }
}# Run all tests
poetry run pytest tests/
# Run with coverage
poetry run pytest tests/ --cov=. --cov-report=html
# Run specific test file
poetry run pytest tests/test_auth.py -v测试结构:
import pytest
from httpx import AsyncClient
from main import app
@pytest.fixture
async def client():
async with AsyncClient(app=app, base_url="http://test") as ac:
yield ac
@pytest.mark.asyncio
async def test_health_check(client: AsyncClient):
response = await client.get("/health")
assert response.status_code == 200
assert response.json()["status"] == "healthy"# Run tests
npm run test
# Run with coverage
npm run test -- --coverage
# Run E2E tests
npm run test:e2e测试结构:
import { render, screen, fireEvent } from '@testing-library/react'
import { WorkspacePanel } from './WorkspacePanel'
describe('WorkspacePanel', () => {
it('renders workspace correctly', () => {
render(<WorkspacePanel />)
expect(screen.getByRole('main')).toBeInTheDocument()
})
it('handles session creation', async () => {
render(<WorkspacePanel />)
fireEvent.click(screen.getByText('New Session'))
expect(await screen.findByText('Session created')).toBeInTheDocument()
})
})npm run build 成功 (前端)poetry run pytest 通过 (后端)# Build and deploy frontend
cd frontend && npm run build
gcloud run deploy frontend --source .
# Build and deploy backend
cd backend
gcloud run deploy backend --source .# Frontend (.env.local)
NEXT_PUBLIC_API_URL=https://api.example.com
NEXT_PUBLIC_SUPABASE_URL=https://xxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ...
# Backend (.env)
DATABASE_URL=postgresql://...
ANTHROPIC_API_KEY=sk-ant-...
SUPABASE_URL=https://xxx.supabase.co
SUPABASE_KEY=eyJ...coding-standards.md - 通用编码最佳实践backend-patterns.md - API 和数据库模式frontend-patterns.md - React 和 Next.js 模式tdd-workflow/ - 测试驱动开发方法论© loulanyue, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in docs/zh-CN/skills/project-guidelines-example of loulanyue/awesome-claude-notes.
Open the folder on GitHubat commit 866b55b
Project Guidelines Example next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Project Guidelines Example this skillloulanyue/awesome-claude-notes | 272 | — | ~2k | Automated safety check: Notes | MIT | |
| Integration Tests for pRESTprest/prest | 4.6k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Testing Best Practicesanonaddy/anonaddy | 4.9k | 5 repos | ~1k | Automated safety check: Pass | MIT | |
| Cloud Agents Starterscalar/scalar | 16k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Test Weave Router with Codexweave-os/router | 5.6k | — | ~4.7k | Automated safety check: Notes | Apache-2.0 | |
| New Event Sourceaws/aws-lambda-dotnet | 1.7k | — | ~3k | Automated safety check: Pass | Apache-2.0 |
prest/prest
Guides writing and reviewing pREST Docker-based integration tests so every HTTP request is explained by step comments or table-driven descriptions.
anonaddy/anonaddy
Laravel test design and review. An agent skill from anonaddy/anonaddy.
scalar/scalar
Minimal starter runbook for cloud agents to install dependencies, run packages, execute tests, and troubleshoot the Scalar monorepo quickly.
weave-os/router
Local test harness for the Weave router: a docker compose stack plus codex exec runs that confirm how Codex requests are routed, translated and marked.
aws/aws-lambda-dotnet
Add a new AWS event source attribute (e.g., Kinesis, Kafka, MQ) to the Lambda .NET Annotations framework, including the attribute class, source generator integration, CloudFormation writer, unit…
supabase/supabase
Component tests for Supabase Studio that mock API requests at the network layer with MSW.
loulanyue/awesome-claude-notes
Anthropic Claude API patterns for Python and TypeScript. An agent skill from loulanyue/awesome-claude-notes.
loulanyue/awesome-claude-notes
Interactive agent picker for composing and dispatching parallel teams
loulanyue/awesome-claude-notes
Orchestrate multi-agent coding tasks via Claude DevFleet — plan projects, dispatch parallel agents in isolated worktrees, monitor progress, and read structured reports.
loulanyue/awesome-claude-notes
Interactive installer for awesome claude notes — guides users through selecting and installing skills and rules to user-level or project-level directories, verifies paths, and optionally optimizes…
loulanyue/awesome-claude-notes
Anthropic Claude API 的 Python 和 TypeScript 使用模式。涵盖 Messages API、流式处理、工具使用、视觉功能、扩展思维、批量处理、提示缓存和 Claude Agent SDK。适用于使用 Claude API 或 Anthropic SDK 构建应用程序的场景。
loulanyue/awesome-claude-notes
awesome claude notes のインタラクティブなインストーラー — スキルとルールの選択とインストールをユーザーレベルまたはプロジェクトレベルのディレクトリへガイドし、パスを検証し、必要に応じてインストールされたファイルを最適化します。
Categories
Run `npx skills add loulanyue/awesome-claude-notes --skill project-guidelines-example -a claude-code`. Or copy the skill folder (docs/zh-CN/skills/project-guidelines-example in loulanyue/awesome-claude-notes) into .claude/skills/project-guidelines-example in your project. Claude Code loads it when a task matches its description.
Run `npx skills add loulanyue/awesome-claude-notes --skill project-guidelines-example -a codex`. Or copy the skill folder (docs/zh-CN/skills/project-guidelines-example in loulanyue/awesome-claude-notes) into .agents/skills/project-guidelines-example in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add loulanyue/awesome-claude-notes --skill project-guidelines-example -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/project-guidelines-example, .gemini/skills/project-guidelines-example, .github/skills/project-guidelines-example and .opencode/skills/project-guidelines-example in your project.
Going by SKILL.md and its folder, Project Guidelines Example needs the command-line tools its instructions call (npm, poetry and gcloud) and credentials named NEXT_PUBLIC_SUPABASE_ANON_KEY, ANTHROPIC_API_KEY and SUPABASE_KEY.
SKILL.md names 2 domains. In commands or code: xxx.supabase.co; the agent is likely to contact it when it follows the instructions. As links in the text: zenith.chat. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Project Guidelines Example is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Project Guidelines Example: Integration Tests for pREST (prest/prest, 4.6k stars), Testing Best Practices (anonaddy/anonaddy, 4.9k stars), Cloud Agents Starter (scalar/scalar, 16k stars) and Test Weave Router with Codex (weave-os/router, 5.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
loulanyue (a GitHub user) maintains it in loulanyue/awesome-claude-notes, which has 272 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 5, 2026.
Source: loulanyue/awesome-claude-notes on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.