affaan-m/ECC

project-guidelines-example

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

76CollectingNetwork accessRuns scripts
See how to use itView GitHub source
npx skills add https://github.com/affaan-m/ECC --skill "docs/ja-JP/skills/project-guidelines-example"
Automated source guide

Source checked Jul 28, 2026·Refresh due Oct 26, 2026

Reorganized from the pinned upstream SKILL.md

Turn project-guidelines-example's source instructions into a guide you can follow

According to the pinned SKILL.md from affaan-m/ECC: これはプロジェクト固有のスキルの例です。自分のプロジェクトのテンプレートとして使用してください。

npx skills add https://github.com/affaan-m/ECC --skill "docs/ja-JP/skills/project-guidelines-example"
Check the pinned source

Best fit

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

Bring this context

  • A concrete task that matches the documented purpose of project-guidelines-example.
  • The files, examples, or context the task depends on.
  • Your constraints, target environment, and definition of done.

Expected outputs

  • A result that follows the pinned project-guidelines-example instructions.
  • A concise record of assumptions, inputs used, and unresolved questions.
  • A final check against the source workflow and relevant permission signals.

Key source sections

Read project-guidelines-example through these 5 source sections

Sections are extracted automatically from the pinned SKILL.md and link back to the source.

01

使用するタイミング

このスキルが設計された特定のプロジェクトで作業する際に参照してください。プロジェクトスキルには以下が含まれます: - アーキテクチャの概要 - ファイル構造 - コードパターン - テスト要件 - デプロイメントワークフロー

SKILL.md · 使用するタイミング
アーキテクチャの概要ファイル構造コードパターン
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

SKILL.md · アーキテクチャの概要
フロントエンド: Next.js 15 (App Router), TypeScript, Reactバックエンド: FastAPI (Python), Pydanticモデルデータベース: Supabase (PostgreSQL)
03

ファイル構造

Review the “ファイル構造” section in the pinned source before continuing.

SKILL.md · ファイル構造
Review and apply the “ファイル構造” source section.
04

コードパターン

Review the “コードパターン” section in the pinned source before continuing.

SKILL.md · コードパターン
Review and apply the “コードパターン” source section.
05

APIレスポンス形式 (FastAPI)

Review the “APIレスポンス形式 (FastAPI)” section in the pinned source before continuing.

SKILL.md · APIレスポンス形式 (FastAPI)
Review and apply the “APIレスポンス形式 (FastAPI)” source section.

SkillSignal prompt templates

Provide the task, context, and acceptance criteria

These prompts were written by SkillSignal from the source structure; they are not upstream text.

Task-start prompt

Confirm source fit, inputs, and outputs before acting.

Use project-guidelines-example to help me with: [specific task]. Context: [files, data, or background]. Constraints: [environment, scope, and prohibited actions]. Before acting, check the pinned SKILL.md and explain which sections apply, what inputs are still missing, and what you will deliver.

Source-guided execution

Make the Agent explicitly follow the key extracted sections.

Apply the pinned project-guidelines-example source to [task]. Pay particular attention to these source sections: “使用するタイミング”, “アーキテクチャの概要”, “ファイル構造”, “コードパターン”, “APIレスポンス形式 (FastAPI)”. Preserve the important decision at each step. Mark facts not covered by the source as “needs confirmation” instead of inventing them. Then verify the result against my acceptance criteria: [criteria].

Result-review prompt

Check omissions, permissions, and source drift before delivery.

Review the current project-guidelines-example result: (1) does it satisfy the original task; (2) were any applicable steps or limits in the pinned SKILL.md missed; (3) did it perform any unauthorized file, command, network, or data action; and (4) which conclusions remain unverified? List issues first, then fix only what the source or user authorization supports.

Output checklist

Verify each item before delivery

The task matches the purpose documented in the SKILL.md.

The source section “使用するタイミング” has been checked.

The source section “アーキテクチャの概要” has been checked.

The source section “ファイル構造” has been checked.

The source section “コードパターン” has been checked.

Inputs, constraints, and acceptance criteria are explicit.

Unverified facts, compatibility, and outcome claims are clearly marked.

Any file, command, network, or data action has been reviewed.

Choose a different workflow

When another Skill is the better fit

FAQ

What does project-guidelines-example do?

これはプロジェクト固有のスキルの例です。自分のプロジェクトのテンプレートとして使用してください。

How do I start using project-guidelines-example?

The catalog detected this source-specific install command: npx skills add https://github.com/affaan-m/ECC --skill "docs/ja-JP/skills/project-guidelines-example". Inspect the command and pinned source before running it.

Which Agent platforms does it declare?

No dedicated Agent platform is declared in the pinned source record.

Repository stars
234,327
Repository forks
35,711
Quality
76/100
Source repository last pushed

Quality breakdown

Based on traceable docs and repository signals; stars are not treated as quality.

76/100
Documentation27/30
Specificity18/25
Maintenance20/20
Trust signals11/25

Compare before choosing

Related Agent Skills and source variants

These links are selected from shared tasks, functions, stacks, platforms, and same-name variants. Compare the source owner, documentation, permissions, and maintenance signals.

project-guidelines-example by affaan-m

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

simpy by k-dense-ai

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.

flowstudio-power-automate-build by github

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

python-pypi-package-builder by github

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

django-verification by affaan-m

Verification loop for Django projects: migrations, linting, tests with coverage, security scans, and deployment readiness checks before release or PR.

View original Skill.mdThis page is parsed directly from the repository SKILL.md without editorial rewriting. Collected: Jul 28, 2026 · about 1 min

プロジェクトガイドラインスキル(例)

これはプロジェクト固有のスキルの例です。自分のプロジェクトのテンプレートとして使用してください。

実際の本番アプリケーションに基づいています: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

サービス:

┌─────────────────────────────────────────────────────────────┐
│                         Frontend                            │
│  Next.js 15 + TypeScript + TailwindCSS                     │
│  Deployed: Vercel / Cloud Run                              │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│                         Backend                             │
│  FastAPI + Python 3.11 + Pydantic                          │
│  Deployed: 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フック
│       ├── lib/              # ユーティリティ
│       ├── types/            # TypeScript定義
│       └── config/           # 設定
│
├── backend/
│   ├── routers/              # FastAPIルートハンドラ
│   ├── models.py             # Pydanticモデル
│   ├── main.py               # FastAPIアプリエントリ
│   ├── 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"}
    )

    # Extract tool use result
    tool_use = next(
        block for block in response.content
        if block.type == "tool_use"
    )

    return AnalysisResult(**tool_use.input)

カスタムフック (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 が成功(バックエンド)
  • ハードコードされたシークレットなし
  • 環境変数がドキュメント化されている
  • データベースマイグレーションが準備されている

デプロイメントコマンド

# フロントエンドのビルドとデプロイ
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/ - テスト駆動開発の方法論
Source repo
affaan-m/ECC
Skill path
docs/ja-JP/skills/project-guidelines-example/SKILL.md
Commit SHA
4e973d3eaf92
Repository license
MIT
Data collected