Source profileQuality 76/100Review permissions

affaan-m/ECC/docs/zh-TW/skills/project-guidelines-example/SKILL.md

project-guidelines-example

Project-specific skill template covering architecture, patterns, testing, and deployment guidance.

Source repository stars
234,327
Declared platforms
0
Static risk flags
2
Last source update
2026-07-27
Source checked
2026-07-28

Decision brief

What it does—and where it fits

這是專案特定技能的範例。使用此作為你自己專案的範本。

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/affaan-m/ECC --skill "docs/zh-TW/skills/project-guidelines-example"
    Safe inspection promptEditorial

    Inspect the Agent Skill "project-guidelines-example" from https://github.com/affaan-m/ECC/blob/4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38/docs/zh-TW/skills/project-guidelines-example/SKILL.md at commit 4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      何時使用

      在處理專案特定設計時參考此技能。專案技能包含: - 架構概覽 - 檔案結構 - 程式碼模式 - 測試要求 - 部署工作流程

      架構概覽檔案結構程式碼模式
    2. 02

      架構概覽

      技術堆疊: - 前端:Next.js 15(App Router)、TypeScript、React - 後端:FastAPI(Python)、Pydantic 模型 - 資料庫:Supabase(PostgreSQL) - AI:Claude API 帶工具呼叫和結構化輸出 - 部署:Google Cloud Run - 測試:Playwright(E2E)、pytest(後端)、React Testing Library

      前端:Next.js 15(App Router)、TypeScript、React後端:FastAPI(Python)、Pydantic 模型資料庫:Supabase(PostgreSQL)
    3. 03

      檔案結構

      Review the “檔案結構” section in the pinned source before continuing.

      Review and apply the “檔案結構” source section.
    4. 04

      程式碼模式

      Review the “程式碼模式” section in the pinned source before continuing.

      Review and apply the “程式碼模式” source section.
    5. 05

      API 回應格式(FastAPI)

      Review the “API 回應格式(FastAPI)” section in the pinned source before continuing.

      Review and apply the “API 回應格式(FastAPI)” source section.

    Permission review

    Static risk signals and limitations

    Network access

    medium · line 128

    The documentation includes network, browsing, or remote request actions.

    const response = await fetch(`/api${endpoint}`, {

    Network access

    medium · line 243

    The documentation includes network, browsing, or remote request actions.

    async with AsyncClient(app=app, base_url="http://test") as ac:

    Runs scripts

    medium · line 257

    The documentation asks the agent to run terminal commands or scripts.

    npm run test

    Runs scripts

    medium · line 260

    The documentation asks the agent to run terminal commands or scripts.

    npm run test -- --coverage

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score76/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars234,327SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    affaan-m/ECC
    Skill path
    docs/zh-TW/skills/project-guidelines-example/SKILL.md
    Commit
    4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38
    License
    MIT
    Collected
    2026-07-28
    Default branch
    main
    View the original SKILL.md

    專案指南技能(範例)

    這是專案特定技能的範例。使用此作為你自己專案的範本。

    基於真實生產應用程式:Zenith - AI 驅動的客戶探索平台。


    何時使用

    在處理專案特定設計時參考此技能。專案技能包含:

    • 架構概覽
    • 檔案結構
    • 程式碼模式
    • 測試要求
    • 部署工作流程

    架構概覽

    技術堆疊:

    • 前端:Next.js 15(App Router)、TypeScript、React
    • 後端:FastAPI(Python)、Pydantic 模型
    • 資料庫:Supabase(PostgreSQL)
    • AI:Claude API 帶工具呼叫和結構化輸出
    • 部署:Google Cloud Run
    • 測試:Playwright(E2E)、pytest(後端)、React Testing Library

    服務:

    ┌─────────────────────────────────────────────────────────────┐
    │                         前端                                 │
    │  Next.js 15 + TypeScript + TailwindCSS                     │
    │  部署:Vercel / Cloud Run                                   │
    └─────────────────────────────────────────────────────────────┘
                                  │
                                  ▼
    ┌─────────────────────────────────────────────────────────────┐
    │                         後端                                 │
    │  FastAPI + Python 3.11 + Pydantic                          │
    │  部署:Cloud Run                                            │
    └─────────────────────────────────────────────────────────────┘
                                  │
                  ┌───────────────┼───────────────┐
                  ▼               ▼               ▼
            ┌──────────┐   ┌──────────┐   ┌──────────┐
            │ Supabase │   │  Claude  │   │  Redis   │
            │ Database │   │   API    │   │  Cache   │
            └──────────┘   └──────────┘   └──────────┘
    

    檔案結構

    project/
    ├── frontend/
    │   └── src/
    │       ├── app/              # Next.js app router 頁面
    │       │   ├── api/          # API 路由
    │       │   ├── (auth)/       # 需認證路由
    │       │   └── workspace/    # 主應用程式工作區
    │       ├── components/       # React 元件
    │       │   ├── ui/           # 基礎 UI 元件
    │       │   ├── forms/        # 表單元件
    │       │   └── layouts/      # 版面配置元件
    │       ├── hooks/            # 自訂 React hooks
    │       ├── lib/              # 工具
    │       ├── types/            # TypeScript 定義
    │       └── config/           # 設定
    │
    ├── backend/
    │   ├── routers/              # FastAPI 路由處理器
    │   ├── models.py             # Pydantic 模型
    │   ├── main.py               # FastAPI app 進入點
    │   ├── auth_system.py        # 認證
    │   ├── database.py           # 資料庫操作
    │   ├── services/             # 業務邏輯
    │   └── tests/                # pytest 測試
    │
    ├── deploy/                   # 部署設定
    ├── docs/                     # 文件
    └── scripts/                  # 工具腳本
    

    程式碼模式

    API 回應格式(FastAPI)

    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)
    

    前端 API 呼叫(TypeScript)

    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) }
      }
    }
    

    Claude AI 整合(結構化輸出)

    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"}
        )
    
        # 提取工具使用結果
        tool_use = next(
            block for block in response.content
            if block.type == "tool_use"
        )
    
        return AnalysisResult(**tool_use.input)
    

    自訂 Hooks(React)

    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 }
    }
    

    測試要求

    後端(pytest)

    # 執行所有測試
    poetry run pytest tests/
    
    # 執行帶覆蓋率的測試
    poetry run pytest tests/ --cov=. --cov-report=html
    
    # 執行特定測試檔案
    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"
    

    前端(React Testing Library)

    # 執行測試
    npm run test
    
    # 執行帶覆蓋率的測試
    npm run test -- --coverage
    
    # 執行 E2E 測試
    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 通過(後端)
    • 無寫死密鑰
    • 環境變數已記錄
    • 資料庫 migrations 準備就緒

    部署指令

    # 建置和部署前端
    cd frontend && npm run build
    gcloud run deploy frontend --source .
    
    # 建置和部署後端
    cd backend
    gcloud run deploy backend --source .
    

    環境變數

    # 前端(.env.local)
    NEXT_PUBLIC_API_URL=https://api.example.com
    NEXT_PUBLIC_SUPABASE_URL=https://xxx.supabase.co
    NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ...
    
    # 後端(.env)
    DATABASE_URL=postgresql://...
    ANTHROPIC_API_KEY=sk-ant-...
    SUPABASE_URL=https://xxx.supabase.co
    SUPABASE_KEY=eyJ...
    

    關鍵規則

    1. 無表情符號 在程式碼、註解或文件中
    2. 不可變性 - 永遠不要突變物件或陣列
    3. TDD - 實作前先寫測試
    4. 80% 覆蓋率 最低
    5. 多個小檔案 - 200-400 行典型,最多 800 行
    6. 無 console.log 在生產程式碼中
    7. 適當錯誤處理 使用 try/catch
    8. 輸入驗證 使用 Pydantic/Zod

    相關技能

    • coding-standards.md - 一般程式碼最佳實務
    • backend-patterns.md - API 和資料庫模式
    • frontend-patterns.md - React 和 Next.js 模式
    • tdd-workflow/ - 測試驅動開發方法論

    Alternatives

    Compare before choosing

    Computed 76234,327

    affaan-m/ECC

    project-guidelines-example

    Project-specific skill template covering architecture, patterns, testing, and deployment guidance.

    Computed 9531,966

    K-Dense-AI/scientific-agent-skills

    simpy

    Build, inspect, test, and analyze bounded process-based discrete-event simulations with SimPy, including events, resources, interrupts, monitoring, replications, warm-up, and reproducible output analysis.

    Computed 9337,126

    github/awesome-copilot

    flowstudio-power-automate-build

    Build, scaffold, and deploy Power Automate cloud flows using the FlowStudio MCP server. Your agent constructs flow definitions, wires connections, deploys, and tests — all via MCP without opening the portal. Load this skill when asked to: create a flow, build a new flow, deploy a flow definition, scaffold a Power Automate workflow, construct a flow JSON, update an existing flow's actions, patch a flow definition, add actions to a flow, wire up connections, or generate a workflow definition from

    Computed 8737,126

    github/awesome-copilot

    python-pypi-package-builder

    End-to-end skill for building, testing, linting, versioning, and publishing a production-grade Python library to PyPI. Covers all four build backends (setuptools+setuptools_scm, hatchling, flit, poetry), PEP 440 versioning, semantic versioning, dynamic git-tag versioning, OOP/SOLID design, type hints (PEP 484/526/544/561), Trusted Publishing (OIDC), and the full PyPA packaging flow. Use for: creating Python packages, pip-installable SDKs, CLI tools, framework plugins, pyproject.toml setup, py.ty