Manage Apple Reminders via the `remindctl` CLI on macOS (list, add, edit, complete, delete)....
npx skills add andycom12000/data-analytic-flow-skill
Or install specific skill: npx add-skill https://github.com/andycom12000/data-analytic-flow-skill
# Description
Use when implementing or modifying data analysis backend features including endpoints, aggregations, dimensions, or formatters. Ensures Clean Architecture principles, three-layer separation (Endpoint-Service-Repository), and standardized 8-step pipeline workflow. Prevents common anti-patterns like SQL in domain layer or DB schema leakage.
# SKILL.md
name: data-analysis-backend
description: "Use when implementing or modifying data analysis backend features including endpoints, aggregations, dimensions, or formatters. Ensures Clean Architecture principles, three-layer separation (Endpoint-Service-Repository), and standardized 8-step pipeline workflow. Prevents common anti-patterns like SQL in domain layer or DB schema leakage."
Data Analysis Backend Development Guide
Overview
้ๅ skill ๆๅฐ Agent ้ตๅพชๆธๆๅๆๅพ็ซฏ็ๆถๆง่จญ่จๅๅใๆ ธๅฟ็ฎๆจๆฏๅปบ็ซไธๅ้ซๆดๅ ๆงใไฝ่ฆๅใๅฏ้ ๆๆต็จ็็ณป็ตฑใ
ๆ ธๅฟๆถๆงๅๅ
ไธๅฑคๆถๆง (Three-Layer Architecture)
Endpoint Layer (HTTP)
โ
Application Service Layer (Orchestration)
โ
Domain Layer (Business Logic)
โ
Infrastructure Layer (DB/SQL)
ไพ่ณดๅ่ฝๅๅ (Dependency Inversion)
- Domain Layer ๅฎ็พฉ contracts (interfaces)๏ผไธ็ฅ้ไปปไฝ DB schema
- Infrastructure Layer ๅฏฆไฝ้ไบ contracts๏ผ่็ SQL ๅ DB ้ฃๆฅ
- Service Layer ๅ่ชฟ Domain ๅ Infrastructure๏ผไฝไธ็ดๆฅๆไฝ DB
้้ต่จญ่จๆฑบ็ญ
1. Semantic โ Physical ๅ้ข๏ผDomain ็จ่ชๆๅ็ DimensionSpec๏ผQueryBuilder ่ฝๆ็บๅฏฆ้ SQL
2. ๆจๆบๅ Pipeline๏ผๆๆ endpoint ้ตๅพช็ธๅ็ 8-step ๆต็จ
3. ็ก็ๆ
Aggregation๏ผAggregation ๆฏ็ด็ฒน็่จ็ฎ้่ผฏ๏ผไธไพ่ณด็นๅฎ DB ็ตๆง
4. View-Only Formatter๏ผFormatter ๅชๅ่ณๆ้็ต๏ผไธ้ๆฐ่จ็ฎๆธๅผ
The Standard 8-Step Pipeline
ๆๆๆธๆๅๆ endpoint ๅฟ ้ ้ตๅพชๆญคๆจๆบๆต็จ๏ผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 1. Validate Request โ
โ Layer: Endpoint โ
โ Input: HTTP Request โ
โ Output: Validated DTO โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 2. Build DimensionSpec โ
โ Layer: Endpoint โ Service โ
โ Input: DTO fields (e.g., groupBy, dateRange) โ
โ Output: DimensionSpec (semantic definition) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 3. Resolve AggregationSpec โ
โ Layer: Service โ
โ Input: Aggregation name or type โ
โ Output: AggregationSpec (with MetricContracts) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 4. Build QueryPlan โ
โ Layer: Service โ Infrastructure โ
โ Input: DimensionSpec + AggregationSpec โ
โ Output: LogicalQuery or SQL string โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 5. Execute Query โ
โ Layer: Infrastructure โ
โ Input: SQL query โ
โ Output: Raw DB rows โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 6. Aggregate Result โ
โ Layer: Service โ
โ Input: Raw rows + AggregationSpec โ
โ Output: Aggregated data (MetricContract values) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 7. Format Visualization โ
โ Layer: Service โ Endpoint โ
โ Input: Aggregated data + Format type โ
โ Output: Formatted response (chart config, table, etc.) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 8. Return Response โ
โ Layer: Endpoint โ
โ Input: Formatted data โ
โ Output: HTTP Response (200 OK + JSON) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Step-by-Step ่ท่ฒฌ่ชชๆ
Step 1: Validate Request
- ๆชขๆฅๅฟ
่ฆๅๆธๅญๅจๆง
- ้ฉ่ญๆฅๆ็ฏๅๆ ผๅผ
- ้ฉ่ญ groupBy ๆฌไฝๅๆณๆง
- ๅๅณ้ฉ่ญ้ฏ่ชค (400 Bad Request)
Step 2: Build DimensionSpec
- ๅฐ HTTP ๅๆธ่ฝ็บ่ชๆๅ็ DimensionSpec
- ไธๅ
ๅซไปปไฝ DB ๆฌไฝๅ็จฑ
- ็ฏไพ: { dimensions: ['channel', 'date'], timeGrain: 'day' }
Step 3: Resolve AggregationSpec
- ๅพ AggregationRegistry ๅๅพๅฐๆ็ Aggregation
- ๅ
ๅซ้่ฆ่จ็ฎ็ MetricContracts
- ๅฎ็พฉ compute ้่ผฏ๏ผ็ดๅฝๆธ๏ผ
Step 4: Build QueryPlan
- QueryBuilder ๅฐ DimensionSpec ่ฝ็บ LogicalQuery
- LogicalQuery ้้ DB Dialect ่ฝ็บๅฏฆ้ SQL
- ้ๆฏๅฏไธ็ฅ้ DB schema ็ๅฐๆน
Step 5: Execute Query
- Infrastructure Layer ๅท่ก SQL
- ๅๅณๅๅง DB rows
- ่็้ฃๆฅๆฑ ใ้ฏ่ชค้่ฉฆ
Step 6: Aggregate Result
- ไฝฟ็จ AggregationSpec ็ compute ๅฝๆธ
- ่จ็ฎ MetricContract ๅฎ็พฉ็ๆๆๆๆจ
- ่ผธๅบๆจๆบๅ็ aggregated data
Step 7: Format Visualization
- ๆ นๆ output format (chart/table/pivot) ้็ต่ณๆ
- ไธๅไปปไฝๆธๅผ่จ็ฎ
- ็ฏไพ: ๅฐ flat array ่ฝ็บ nested hierarchy
Step 8: Return Response
- ๅ
่ฃ็บ HTTP response
- ๅ ไธ metadata (total, page, etc.)
- ๅๅณ 200 OK
Layer Responsibilities
โ Endpoint Layer
่ฉฒๅ็ไบ
- โ
Validate HTTP request
- โ
Parse query parameters
- โ
Build DimensionSpec from request
- โ
Call Service methods
- โ
Apply formatter
- โ
Return HTTP response with status codes
- โ
Handle endpoint-level errors (400, 404, 500)
ไธ่ฉฒๅ็ไบ
- โ Business logic computation
- โ SQL query generation
- โ Direct DB access
- โ Data aggregation logic
- โ Metric calculation
- โ Join or filter logic
Checkpoint Questions
- ้ๅ endpoint handler ๆ่ถ
้ 50 ่กๅ๏ผ๏ผๅฏ่ฝๅ
ๅซๅคชๅค้่ผฏ๏ผ
- ๆ็ๅฐ SQL ๅญไธฒๅ๏ผ๏ผๆ่ฉฒๅจ Infrastructure๏ผ
- ๆ for-loop ่จ็ฎๆธๅผๅ๏ผ๏ผๆ่ฉฒๅจ Service/Domain๏ผ
โ Application Service Layer
่ฉฒๅ็ไบ
- โ
Orchestrate DimensionSpec + AggregationSpec
- โ
Call QueryBuilder to build LogicalQuery
- โ
Call Repository to execute query
- โ
Aggregate raw results using AggregationSpec
- โ
Coordinate multiple domain operations
- โ
Transaction management (if needed)
ไธ่ฉฒๅ็ไบ
- โ HTTP concerns (status codes, headers)
- โ SQL generation (delegate to QueryBuilder)
- โ Direct DB connection management
- โ Request validation (done in Endpoint)
- โ Visualization formatting (done in Formatter)
Checkpoint Questions
- Service ๆนๆณๆ่็ HTTP status code ๅ๏ผ๏ผๆ่ฉฒๅจ Endpoint๏ผ
- Service ็ดๆฅไฝฟ็จ DB client ๅ๏ผ๏ผๆ่ฉฒ้้ Repository๏ผ
- Service ๅ
ๅซ SQL template strings ๅ๏ผ๏ผๆ่ฉฒๅจ QueryBuilder๏ผ
โ Domain Layer
่ฉฒๅ็ไบ
- โ
Define DimensionSpec (semantic dimensions)
- โ
Define AggregationSpec (metric contracts + compute logic)
- โ
Define MetricContract (metric definitions)
- โ
Define business rules (pure functions)
- โ
Define interfaces for repositories
- โ
Domain validation logic
ไธ่ฉฒๅ็ไบ
- โ Know about DB schema (table names, column names)
- โ SQL query strings
- โ Join conditions
- โ DB-specific data types
- โ HTTP request/response structures
- โ Visualization formats
Checkpoint Questions
- DimensionSpec ๅ
ๅซ DB table ๆ column ๅ็จฑๅ๏ผ๏ผๆ่ฉฒๆฏ่ชๆๅๅ็จฑ๏ผ
- AggregationSpec ็ compute ๅฝๆธๆ SQL ๅ๏ผ๏ผๆ่ฉฒๆฏ็ด่จ็ฎ๏ผ
- Domain model ๆ import DB client ๅ๏ผ๏ผ็ตๅฐ็ฆๆญข๏ผ
Critical Rule: Semantic Naming
// โ BAD: DB schema leakage
interface DimensionSpec {
groupBy: ['user_channels.channel_name', 'DATE(created_at)']
}
// โ
GOOD: Semantic naming
interface DimensionSpec {
dimensions: ['channel', 'date'],
timeGrain: 'day'
}
โ Infrastructure Layer
่ฉฒๅ็ไบ
- โ
Implement QueryBuilder (Semantic โ SQL)
- โ
Implement DB Dialect (LogicalQuery โ SQL)
- โ
DB connection management
- โ
Execute SQL queries
- โ
Map DB rows to domain objects
- โ
Handle DB-specific errors
ไธ่ฉฒๅ็ไบ
- โ Business logic (revenue calculation, conversion rate)
- โ Aggregation logic (should use AggregationSpec)
- โ Visualization transformation
- โ Request validation
- โ Define business rules
Checkpoint Questions
- QueryBuilder ๅ
ๅซ revenue ่จ็ฎ้่ผฏๅ๏ผ๏ผๆ่ฉฒๅจ AggregationSpec๏ผ
- Repository ๅ่ณๆ่ๅ้็ฎๅ๏ผ๏ผๆ่ฉฒๅๅณ raw rows๏ผ
- Infrastructure ๅฎ็พฉ business metrics ๅ๏ผ๏ผๆ่ฉฒๅจ Domain๏ผ
Development Workflows
Workflow 1: Adding a New Endpoint
ๆชขๆฅๆธ
ๅฎ
- [ ] Step 1: Define route and handler in Endpoint Layer
- ็ฏไพ: router.get('/api/analytics/revenue-by-channel', handler)
- [ ] Step 2: Implement request DTO validation
- ๆชขๆฅ required fields: dateRange, groupBy, etc.
- [ ] Step 3: Build DimensionSpec from request
typescript
const dimensionSpec: DimensionSpec = {
dimensions: req.query.groupBy.split(','),
timeGrain: req.query.timeGrain || 'day',
dateRange: parseDateRange(req.query.dateRange)
};
- [ ] Step 4: Resolve or create AggregationSpec
- ๅพ AggregationRegistry.get('revenue-by-channel') ๅๅพ
- ๅฆๆไธๅญๅจ๏ผๅ
่ตฐ Workflow 2 ๆฐๅข Aggregation
- [ ] Step 5: Call Service with Specs
typescript
const result = await analyticsService.aggregate(dimensionSpec, aggregationSpec);
- [ ] Step 6: Apply formatter (if needed)
typescript
const formatted = chartFormatter.format(result, 'bar-chart');
- [ ] Step 7: Return HTTP response
typescript
res.status(200).json({ data: formatted, metadata: { total: result.length } });
- [ ] Step 8: Add integration test
- ๆธฌ่ฉฆๅฎๆด request โ response flow
- ้ฉ่ญ response schema
ๅ่็ฏไพ: assets/templates/standard-endpoint.ts
Workflow 2: Adding a New Aggregation
ๆชขๆฅๆธ
ๅฎ
- [ ] Step 1: Define AggregationSpec
typescript
const revenueByChannelAgg: AggregationSpec = {
name: 'revenue-by-channel',
metrics: [/* MetricContracts */],
compute: (rows) => { /* pure function */ }
};
- [ ] Step 2: Define required MetricContracts
typescript
const totalRevenueMetric: MetricContract = {
name: 'total_revenue',
type: 'currency',
aggregation: 'sum',
semanticField: 'transaction_amount' // NOT DB column name
};
- [ ] Step 3: Implement compute formula (pure function)
- ่ผธๅ
ฅ: raw DB rows
- ่ผธๅบ: aggregated metrics
- ็ฆๆญข: SQL, DB access, side effects
- [ ] Step 4: Register in AggregationRegistry
typescript
AggregationRegistry.register(revenueByChannelAgg);
- [ ] Step 5: Test with multiple DimensionSpecs
- ๆธฌ่ฉฆไธๅ groupBy ็ตๅ
- ๆธฌ่ฉฆไธๅ time grains
- ็ขบไฟ compute ้่ผฏ้็จ
- [ ] Step 6: Add unit tests
- ๆธฌ่ฉฆ compute ๅฝๆธ็้็ๆขไปถ
- Mock raw rows, ้ฉ่ญ่ผธๅบ
ๅ่็ฏไพ: assets/examples/aggregation-spec.ts
Anti-Pattern ่ญฆๅ: ๅ่ assets/anti-patterns/sql-in-aggregation.ts
Workflow 3: Adding/Modifying Dimensions
ๆชขๆฅๆธ
ๅฎ
- [ ] Step 1: Update DimensionSpec definition
typescript
// ๆฐๅข 'product_category' dimension
type SupportedDimension = 'channel' | 'date' | 'product_category';
- [ ] Step 2: Update QueryBuilder dimension mapping
typescript
// In QueryBuilder
const dimensionMapping = {
'channel': 'user_channels.channel_name',
'date': 'DATE(orders.created_at)',
'product_category': 'products.category' // New mapping
};
- [ ] Step 3: Update DB Dialect if needed
- ๅฆๆๆถๅๆฐ็ JOIN ๆ่ค้่ฝๆ
- ็ฏไพ: dimension ้่ฆ window function
- [ ] Step 4: Test all existing Aggregations
- ็ขบไฟ new dimension ไธๆ็ ดๅฃ็พๆ aggregations
- ๅท่ก regression tests
- [ ] Step 5: Update integration tests
- ๆธฌ่ฉฆๆฐ dimension ็ groupBy ็ตๅ
- ๆธฌ่ฉฆ dimension + ๅ็จฎ timeGrain
ๅ่็ฏไพ: assets/examples/dimension-spec.ts
Anti-Pattern ่ญฆๅ: ๅ่ assets/anti-patterns/db-fields-in-dimension.ts
Workflow 4: Adding/Modifying Output Formats
ๆชขๆฅๆธ
ๅฎ
- [ ] Step 1: Define or update IVisualizationFormatter
typescript
interface IChartFormatter {
format(data: AggregatedData, chartType: string): ChartConfig;
}
- [ ] Step 2: Implement format transformation
- ่ผธๅ
ฅ: aggregated data (ๅทฒ่จ็ฎๅฎๆ็ metrics)
- ่ผธๅบ: visualization-specific structure
- ็ฆๆญข: ้ๆฐ่จ็ฎๆธๅผใfilteringใaggregation
- [ ] Step 3: Ensure no re-computation
```typescript
// โ
GOOD: Reorganize only
format(data) {
return data.map(row => ({ x: row.date, y: row.revenue }));
}
// โ BAD: Re-calculating
format(data) {
const total = data.reduce((sum, row) => sum + row.amount, 0); // NO!
return { total, items: data };
}
```
- [ ] Step 4: Test with multiple Aggregations
- ็ขบไฟ formatter ้็จ๏ผไธ็ถๅฎ็นๅฎ aggregation
- ๆธฌ่ฉฆ edge cases (empty data, single row, etc.)
- [ ] Step 5: Update response schema
- ๆดๆฐ API documentation
- ๆดๆฐ TypeScript types
ๅ่็ฏไพ: assets/examples/logical-query.ts
Anti-Pattern ่ญฆๅ: ๅ่ assets/anti-patterns/formatter-computation.ts
Architecture Anti-Patterns
๐จ Anti-Pattern 1: SQL in Aggregation
ๅ้กๆ่ฟฐ
AggregationSpec ็ compute ๅฝๆธๅ
ๅซ SQL query ๆ DB-specific ้่ผฏใ
็บไฝๆๅฎณ
- ้ๅไพ่ณดๅ่ฝๅๅ
- Aggregation ็กๆณ็จ็ซๆธฌ่ฉฆ
- ็กๆณๆฟๆ DB ๅฏฆไฝ
- ็ ดๅฃ Domain Layer ็็ด็ฒนๆง
ๆญฃ็ขบๅๆณ
- Aggregation compute ๆฅๆถ raw rows๏ผๅ็ด่จ็ฎ
- SQL ็ฑ QueryBuilder ๆ นๆ MetricContract ็ๆ
- Aggregation ไธ็ฅ้่ณๆๅพๅชไพ
็ฏไพ: ๅ่ assets/anti-patterns/sql-in-aggregation.ts
๐จ Anti-Pattern 2: DB Schema in DimensionSpec
ๅ้กๆ่ฟฐ
DimensionSpec ๅ
ๅซ DB table names, column names, ๆ JOIN conditionsใ
็บไฝๆๅฎณ
- Domain Layer ่ฆๅ Infrastructure
- ไฟฎๆน DB schema ้่ฆๆน Domain code
- ็กๆณๆฝๆ data source
- ่ชๆไธๆธ
ๆฐ
ๆญฃ็ขบๅๆณ
- DimensionSpec ไฝฟ็จ่ชๆๅๅ็จฑ ('channel', 'date')
- QueryBuilder ่ฒ ่ฒฌ semantic โ physical mapping
- DB schema ่ฎๆดๅชๅฝฑ้ฟ Infrastructure Layer
็ฏไพ: ๅ่ assets/anti-patterns/db-fields-in-dimension.ts
๐จ Anti-Pattern 3: Computation in Formatter
ๅ้กๆ่ฟฐ
Formatter ้ๆฐ่จ็ฎ metricsใๅ filteringใๆๅท่ก aggregationใ
็บไฝๆๅฎณ
- Duplication of logic
- Formatter ๆ่ฉฒๆฏ view layer๏ผไธ่ฉฒๆ business logic
- ้ฃไปฅๆธฌ่ฉฆๅ็ถญ่ญท
- ๅฏ่ฝ่ Aggregation ่จ็ฎไธไธ่ด
ๆญฃ็ขบๅๆณ
- Formatter ๅชๅ่ณๆ้็ตๅๆ ผๅผ่ฝๆ
- ๆๆ่จ็ฎๅจ Aggregation Layer ๅฎๆ
- Formatter ๆฏ stateless, pure function
็ฏไพ: ๅ่ assets/anti-patterns/formatter-computation.ts
๐จ Anti-Pattern 4: Divergent Endpoint Flow
ๅ้กๆ่ฟฐ
Endpoint ไธ้ตๅพชๆจๆบ 8-step pipeline๏ผ็ดๆฅๅผๅซ Repository ๆๅ
ๅซ SQLใ
็บไฝๆๅฎณ
- ๆถๆงไธไธ่ด๏ผ้ฃไปฅ็ถญ่ญท
- ็น้ Domain Layer ็ business rules
- ็กๆณ reuse Aggregation logic
- Code duplication
ๆญฃ็ขบๅๆณ
- ๆๆ endpoint ้ตๅพช็ธๅ pipeline
- ้้ DimensionSpec + AggregationSpec ่กจ้้ๆฑ
- ่ฎ Service Layer ๅ่ชฟๆต็จ
็ฏไพ: ๅ่ assets/anti-patterns/divergent-endpoint.ts
Quick Reference
ๆ ธๅฟๆฝ่ฑกๅฎ็พฉ
DimensionSpec: ่ชๆๅ็็ถญๅบฆๅฎ็พฉ๏ผไธ็ฅ้ DB schema
interface DimensionSpec {
dimensions: string[]; // e.g., ['channel', 'date']
timeGrain?: 'hour' | 'day' | 'week' | 'month';
dateRange?: { start: Date; end: Date };
}
AggregationSpec: Metric contracts + ่จ็ฎ้่ผฏ
interface AggregationSpec {
name: string;
metrics: MetricContract[];
compute: (rows: any[]) => AggregatedData;
}
MetricContract: ๅฎไธๆๆจ็ๅฎ็พฉ
interface MetricContract {
name: string;
type: 'number' | 'currency' | 'percentage';
aggregation: 'sum' | 'avg' | 'count' | 'min' | 'max';
semanticField: string; // Semantic name, NOT DB column
}
LogicalQuery: ไธญ้ๅฑค query representation
interface LogicalQuery {
select: MetricContract[];
groupBy: string[]; // Semantic dimension names
where?: FilterCondition[];
orderBy?: OrderByClause[];
}
ไพ่ณดๆนๅๅ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Endpoint Layer โ
โ (HTTP Request/Response) โ
โโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Application Service Layer โ
โ (Orchestration, DimensionSpec, โ
โ AggregationSpec) โ
โโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Domain Layer โ
โ (Business Rules, Contracts, Specs) โ
โ [No DB knowledge] โ
โโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Infrastructure Layer โ
โ (QueryBuilder, DB Dialect, Repository) โ
โ [Only layer that knows DB schema] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ไพ่ณด่ฆๅ
- Endpoint โ Service โ Domain โ Infrastructure (ๅฎๅ)
- Domain ๅฎ็พฉ interface๏ผInfrastructure ๅฏฆไฝ
- Infrastructure ไธ่ฝ่ขซ Domain import
ๅธธ็จๆชขๆฅ้ ็ฎ
Before committing code, check:
- [ ] ๆๆ endpoint ้ตๅพช 8-step pipeline
- [ ] DimensionSpec ็ก DB column names
- [ ] AggregationSpec compute ็ก SQL
- [ ] Formatter ็ก้ๆฐ่จ็ฎ metrics
- [ ] Domain Layer ็ก import DB client
- [ ] ๆๆ semantic names ๆๅฐๆ็ QueryBuilder mapping
When reviewing PRs, look for:
- [ ] SQL strings in Domain or Service Layer
- [ ] DB schema knowledge in DimensionSpec
- [ ] Business logic in Endpoint handlers
- [ ] Aggregation logic in Formatters
- [ ] Direct DB access in Service Layer
Detailed References
้่ฆๆด่ฉณ็ดฐ็่ณ่จๆ๏ผๅ่ไปฅไธๆไปถ:
- Domain Models ่ฉณ่งฃ:
references/domain-models.md - DimensionSpec ๅฎๆดๅฎ็พฉๅไฝฟ็จ็ฏไพ
- AggregationSpec ่จญ่จๅๅ
- MetricContract ้กๅ็ณป็ตฑ
-
LogicalQuery ็ตๆง่ชชๆ
-
Query Builder ๆๅ:
references/query-builder-guide.md - Semantic โ Physical ่ฝๆๆฉๅถ
- DB Dialect ๅฏฆไฝ็ฏไพ
- SQL ๆงๅปบๆไฝณๅฏฆ่ธ
-
JOIN ๅ subquery ่็
-
Formatter ๆๅ:
references/formatter-guide.md - Formatter ่ท่ฒฌ้็
- Chart/Table/Pivot ๆ ผๅผ่ฝๆ
- ้็จๆ ผๅผๅฎ็พฉ
- Edge case ่็
Code Templates
ๅฎๆด็จๅผ็ขผ็ฏไพ:
- Standard Endpoint:
assets/templates/standard-endpoint.ts - DimensionSpec Example:
assets/examples/dimension-spec.ts - AggregationSpec Example:
assets/examples/aggregation-spec.ts - MetricContract Example:
assets/examples/metric-contract.ts - LogicalQuery Example:
assets/examples/logical-query.ts
ๅ้ขๆๆ (่ซๅฟๆจกไปฟ):
- assets/anti-patterns/sql-in-aggregation.ts
- assets/anti-patterns/db-fields-in-dimension.ts
- assets/anti-patterns/formatter-computation.ts
- assets/anti-patterns/divergent-endpoint.ts
Summary
้ตๅพช้ๅๆๅ๏ผ็ขบไฟ:
1. โ
ๆๆ endpoint ้ตๅพชๆจๆบ 8-step pipeline
2. โ
Domain Layer ไฟๆ็ด็ฒน๏ผไธ็ฅ้ DB schema
3. โ
Infrastructure Layer ้ไธญ่็ SQL ็ๆ
4. โ
Aggregation ๆฏๅฏ reuse ็ pure functions
5. โ
Formatter ๅชๅ view transformation
็ถๆ็ๅๆ๏ผๅ่ชๅทฑ:
- ้ๆฎต code ๆพๅจๅชไธๅฑค?
- ๅฎๆ้ๅ่ฉฒๅฑค็่ท่ฒฌๅ?
- ๅฎๆไพ่ณดไธ่ฉฒไพ่ณด็ๆฑ่ฅฟๅ?
้ตๅพช้ไบๅๅ๏ผ็ณป็ตฑๅฐไฟๆ้ซๆดๅ ๆงๅๅฏ็ถญ่ญทๆงใ
# README.md
Data Analysis Backend Development Skill
้ๆฏไธๅ Claude Code skill,็จๆผๆๅฐ Agent ้ตๅพชๆธๆๅๆๅพ็ซฏ็ๆถๆง่จญ่จๅๅๅ้็ผๆต็จใ
ๅฟซ้้ๅง
5 ๅ้ๅฎ่ฃ
# 1. ่ค่ฃฝๅฐ Claude Code skills ็ฎ้
# Windows (PowerShell)
xcopy /E /I . "$env:USERPROFILE\.claude\skills\data-analysis-backend"
# macOS/Linux
cp -r . ~/.claude/skills/data-analysis-backend
# 2. ้ๅ Claude Code
# 3. ๆธฌ่ฉฆ skill
# ๅจ Claude Code ไธญๅ: "ๅนซๆๆฐๅขไธๅๆธๆๅๆ endpoint"
็ฌฌไธๆฌกไฝฟ็จ
ๅฎ่ฃๅพ๏ผๅ่ฉฆไปฅไธไปปๅไพ้ซ้ฉ skill:
-
ๆฐๅข Endpoint
ๅนซๆๅฏฆไฝไธๅๆๆธ ้ๅๆๆถๅ ฅ็ endpoint
Agent ๆ้ตๅพช 8-step pipeline ๅปบ็ซๅฎๆด็ endpoint -
ๆฐๅข Aggregation
ๅนซๆๆฐๅขไธๅ่ฝๆ็ๅๆ็ aggregation
Agent ๆๅปบ็ซ AggregationSpec ๅ MetricContracts -
Code Review
่ซๆชขๆฅ้ๆฎต code ๆฏๅฆ็ฌฆๅๆธๆๅๆๅพ็ซฏ็ๆถๆงๅๅ [่ฒผไธไฝ ็ code]
Agent ๆๆชขๆฅๆฏๅฆ้ตๅพชๅฑค็ด่ท่ฒฌๅ้ฟๅ anti-patterns
็ฎๆจ
- ๆๅฐ้็ผๆต็จ: ๆ็ขบๅ่จด Agent ๅจๆฐๅข endpointใaggregationใdimensionใformatter ๆ้่ฆๅๅชไบๆนๅ
- ็ถญ่ญทๆถๆงไธ่ดๆง: ็ขบไฟๆๆๅฏฆไฝ้ตๅพชไธๅฑคๆถๆงๅไพ่ณดๅ่ฝๅๅ
- ้ฒๆญขๅธธ่ฆ้ฏ่ชค: ๆ็ขบๆจ็คบๆฏไธๅฑค่ฉฒๅบ็พๅไธ่ฉฒๅบ็พ็้่ผฏ
- ๆไพๅฎๆดๅ่: ๅ ๅซ่ณๆๆต pipelineใๅฑค็ดไพ่ณด้ไฟๅ็จๅผ็ขผ็ฏไพ
Skill ็ตๆง
data_analysis_skill/
โโโ SKILL.md # ไธปๆๅผๆไปถ (ๆ ธๅฟๅ
งๅฎน)
โโโ README.md # ๆฌๆไปถ
โ
โโโ references/ # ่ฉณ็ดฐๅ่ๆไปถ
โ โโโ domain-models.md # Domain Model ่ฉณ่งฃ
โ โโโ query-builder-guide.md # Query Builder ๆถๆงๆๅ
โ โโโ formatter-guide.md # Formatter ๆๅ
โ
โโโ assets/ # ็จๅผ็ขผ็ฏไพๅๆจกๆฟ
โโโ templates/
โ โโโ standard-endpoint.ts # ๆจๆบ endpoint ๅฎๆด็ฏไพ
โ
โโโ examples/
โ โโโ dimension-spec.ts # DimensionSpec ็ฏไพ
โ โโโ aggregation-spec.ts # AggregationSpec ็ฏไพ
โ โโโ metric-contract.ts # MetricContract ็ฏไพ
โ โโโ logical-query.ts # LogicalQuery ็ฏไพ
โ
โโโ anti-patterns/ # ๅ้ขๆๆ (ๅธธ่ฆ้ฏ่ชค)
โโโ sql-in-aggregation.ts # โ Aggregation ๅ
ๅซ SQL
โโโ db-fields-in-dimension.ts # โ Dimension ๆททๅ
ฅ DB ๆฌไฝ
โโโ formatter-computation.ts # โ Formatter ้ๆฐ่จ็ฎๆธๅผ
โโโ divergent-endpoint.ts # โ Endpoint ๆต็จๅ้ขๆจๆบ
ๆ ธๅฟๆฆๅฟต
ๆจๆบ 8-Step Pipeline
ๆๆๆธๆๅๆ endpoint ๅฟ ้ ้ตๅพชๆญคๆจๆบๆต็จ:
- Validate Request (Endpoint Layer)
- Build DimensionSpec (Endpoint โ Service)
- Resolve AggregationSpec (Service)
- Build QueryPlan (Service โ Infrastructure)
- Execute Query (Infrastructure)
- Aggregate Result (Service)
- Format Visualization (Service โ Endpoint)
- Return Response (Endpoint)
ไธๅฑคๆถๆง
Endpoint Layer (HTTP)
โ
Application Service Layer (Orchestration)
โ
Domain Layer (Business Logic)
โ
Infrastructure Layer (DB/SQL)
ๆ ธๅฟๆฝ่ฑก
- DimensionSpec: ่ชๆๅ็็ถญๅบฆๅฎ็พฉ (ไธ็ฅ้ DB schema)
- AggregationSpec: Metric contracts + ่จ็ฎ้่ผฏ (pure function)
- MetricContract: ๅฎไธๆๆจ็ๅฎ็พฉ (name, type, aggregation)
- LogicalQuery: ไธญ้ๅฑค query representation (้ฃๆฅ semantic ๅ physical)
ๅฎ่ฃๆๅ
ๆนๆณ 1: ็ดๆฅ่ค่ฃฝๅฐ Skills ็ฎ้ (ๆจ่ฆ)
้ๆฏๆ็ฐกๅฎ็ดๆฅ็ๆนๆณ:
- ๆพๅฐ Claude Code ็ skills ็ฎ้
```bash
# Windows
%USERPROFILE%.claude\skills\
# macOS/Linux
~/.claude/skills/
```
- ่ค่ฃฝๆดๅ skill ็ฎ้
```bash
# Windows (ๅจ PowerShell ๆ CMD)
xcopy /E /I C:\Users\andyc\Projects\data_analysis_skill %USERPROFILE%.claude\skills\data-analysis-backend
# macOS/Linux
cp -r /path/to/data_analysis_skill ~/.claude/skills/data-analysis-backend
```
- ้ฉ่ญๅฎ่ฃ
- ้ๅ Claude Code (ๅฆๆๆญฃๅจ้่ก)
- ๆชขๆฅ skills ็ฎ้ไธญๆฏๅฆๆ
data-analysis-backend่ณๆๅคพ -
็ขบ่ช
SKILL.mdๆชๆกๅญๅจไธๆๆญฃ็ขบ็ YAML frontmatter -
ๆธฌ่ฉฆ skill
- ้ๅ Claude Code
- ่ฉขๅ: "ๅนซๆๆฐๅขไธๅๆธๆๅๆ endpoint"
- Agent ๆ่ฉฒๆ่ชๅไฝฟ็จๆญค skill ไธฆ้ตๅพช 8-step pipeline
ๆนๆณ 2: ไฝฟ็จ Symbolic Link (้็ผๆจกๅผ)
ๅฆๆไฝ ๆณ่ฆๆ็บๆดๆฐ skill ไธฆ็ซๅณ็ๅฐๆๆ:
# Windows (้่ฆ็ฎก็ๅกๆฌ้)
mklink /D "%USERPROFILE%\.claude\skills\data-analysis-backend" "C:\Users\andyc\Projects\data_analysis_skill"
# macOS/Linux
ln -s /path/to/data_analysis_skill ~/.claude/skills/data-analysis-backend
้ๆจฃไฟฎๆนๅๅงๆชๆกๅฐฑๆ็ซๅณๅๆ ๅฐ Claude Code ไธญใ
ๆนๆณ 3: ๆๅ ็บ .skill ๆชๆก (้ฒ้)
ๅฆๆไฝ ๆ Claude Code ็ packaging tools:
-
ๆๅ skill
bash # ๅ่จญๆ package_skill.py ๅทฅๅ ท python package_skill.py data_analysis_skill -
ๅฎ่ฃๆๅ ๅพ็ .skill ๆชๆก
bash # ๅฐ .skill ๆชๆก่ค่ฃฝๅฐ skills ็ฎ้ cp data-analysis-backend.skill ~/.claude/skills/ -
้ฉ่ญ
bash # ๅ่จญๆ quick_validate.py ๅทฅๅ ท python quick_validate.py ~/.claude/skills/data-analysis-backend.skill
ๅฎ่ฃๅพ้ฉ่ญ
-
ๆชขๆฅๆชๆก็ตๆง
bash # ็ขบ่ชไปฅไธๆชๆกๅญๅจ ~/.claude/skills/data-analysis-backend/ โโโ SKILL.md # ๅฟ ้ ๅญๅจ โโโ README.md โโโ references/ โ โโโ domain-models.md โ โโโ query-builder-guide.md โ โโโ formatter-guide.md โโโ assets/ โโโ templates/ โโโ examples/ โโโ anti-patterns/ -
ๆชขๆฅ YAML Frontmatter
- ๆ้
SKILL.md - ็ขบ่ช้้ ญๆๆญฃ็ขบ็ YAML frontmatter:
```yaml
name: data-analysis-backend
description: "Use when implementing or modifying data analysis backend features..."
```
- ้ๅ Claude Code
- ๅฎๅ จ้้ Claude Code
- ้ๆฐๅๅ
- Skills ๆๅจๅๅๆ่ชๅ่ผๅ ฅ
ๅธ่ผ Skill
ๅฆๆ้่ฆ็งป้คๆญค skill:
# Windows
rmdir /S /Q "%USERPROFILE%\.claude\skills\data-analysis-backend"
# macOS/Linux
rm -rf ~/.claude/skills/data-analysis-backend
ไฝฟ็จๆนๅผ
่งธ็ผ Skill
็ถ Agent ้่ฆๅฏฆไฝๆไฟฎๆนๆธๆๅๆๅพ็ซฏๅ่ฝๆ,ๆ่ชๅไฝฟ็จๆญค skill,ๅ ๆฌ:
- ๆฐๅข endpoint
- ๆฐๅข aggregation
- ๆฐๅข/ไฟฎๆน dimension
- ๆฐๅข/ไฟฎๆน formatter
ๆๅ่งธ็ผ (ๅฏ้ธ)
ไฝ ไนๅฏไปฅๆ็ขบ่ฆๆฑไฝฟ็จๆญค skill:
ไฝฟ็จ data-analysis-backend skill ๅนซๆๆฐๅขไธๅๆถๅ
ฅๅๆ็ endpoint
้ฉ่ญ Skill ๆญฃๅจไฝฟ็จ
็ถ Agent ไฝฟ็จๆญค skill ๆ,ไฝ ๆ็ๅฐ:
- Agent ๆๆๅฐ "8-step pipeline"
- Agent ๆๅปบ็ซ DimensionSpec ๅ AggregationSpec
- Agent ๆๆ็ขบๅ้ข Endpoint/Service/Domain/Infrastructure layers
- Agent ๆ้ฟๅ
ๅจ Domain Layer ไฝฟ็จ SQL
ๆ ้ๆ้ค
Skill ๆฒๆ่ขซ่ชๅไฝฟ็จ
ๅ้ก: Agent ๆฒๆไฝฟ็จๆญค skill
่งฃๆฑบๆนๆณ:
1. ๆชขๆฅ SKILL.md ็ description ๆฏๅฆๅ
ๅซ่งธ็ผ้้ตๅญ:
- "data analysis backend"
- "endpoint", "aggregation", "dimension", "formatter"
-
ๅ่ฉฆๆ็ขบๆๅฐ้ไบ้้ตๅญ:
ๅนซๆๅฏฆไฝไธๅๆธๆๅๆ็ endpoint (data analysis endpoint) -
ๆๅๆๅฎ skill:
ไฝฟ็จ data-analysis-backend skill
ๆพไธๅฐ Skills ็ฎ้
ๅ้ก: ไธ็ขบๅฎ skills ็ฎ้ๅจๅช่ฃก
่งฃๆฑบๆนๆณ:
# ๅจ Claude Code ไธญๅท่ก
echo $HOME/.claude/skills/ # macOS/Linux
echo %USERPROFILE%\.claude\skills\ # Windows
# ๆ่
ไฝฟ็จ Claude Code ๅฝไปค (ๅฆๆๆฏๆด)
/skills list
YAML Frontmatter ๆ ผๅผ้ฏ่ชค
ๅ้ก: Skill ็กๆณ่ผๅ ฅ,ๅฏ่ฝๆฏ YAML ๆ ผๅผๅ้ก
่งฃๆฑบๆนๆณ:
1. ็ขบ่ช SKILL.md ้้ ญ็ YAML ๆ ผๅผ:
```yaml
name: data-analysis-backend
description: "Use when implementing..."
```
- ๆณจๆไบ้ :
---ๅฟ ้ ๅจๆชๆก็ฌฌไธ่ก- name ๅ description ๆฏๅฟ ้ ็
- description ้่ฆ็จ้ๅผ่ๅ ่ตทไพ
- YAML ็ตๆไน้่ฆ
---
Skills ็ฎ้ๆฌ้ๅ้ก
ๅ้ก: ็กๆณ่ค่ฃฝๆชๆกๅฐ skills ็ฎ้
่งฃๆฑบๆนๆณ:
# ๆชขๆฅๆฌ้
ls -la ~/.claude/skills/ # macOS/Linux
dir %USERPROFILE%\.claude\skills\ # Windows
# ๅฆๆ็ฎ้ไธๅญๅจ,ๆๅๅปบ็ซ
mkdir -p ~/.claude/skills/ # macOS/Linux
mkdir %USERPROFILE%\.claude\skills\ # Windows
Symbolic Link ๅปบ็ซๅคฑๆ
ๅ้ก: Windows ๅปบ็ซ symbolic link ๅคฑๆ
่งฃๆฑบๆนๆณ:
1. ไปฅ็ฎก็ๅก่บซไปฝๅท่ก PowerShell ๆ CMD
2. ๆ่
ไฝฟ็จๆนๆณ 1 (็ดๆฅ่ค่ฃฝ) ไปฃๆฟ
ๆชขๆฅ Skill ๆฏๅฆๆญฃ็ขบ่ผๅ ฅ
้ฉ่ญๆญฅ้ฉ:
1. ้ๅ Claude Code
2. ๅท่กไปฅไธๆธฌ่ฉฆ:
่ซๅ่จดๆไฝ ๆๅชไบๅฏ็จ็ skills?
3. ๅฆๆ Agent ๆๅฐ "data-analysis-backend",่กจ็คบ่ผๅ
ฅๆๅ
ๆดๆฐ Skill ๅ งๅฎน
ๅฆๆไฟฎๆนไบ skill ๅ
งๅฎน:
1. ็ดๆฅ่ค่ฃฝ: ้ๆฐ่ค่ฃฝๆดๅ็ฎ้
2. Symbolic Link: ไฟฎๆนๆ่ชๅ็ๆ
3. ้ๅ Claude Code: ็ขบไฟ่ฎๆด่ขซ่ผๅ
ฅ
ไธป่ฆๅ่ๆไปถ
- ๅฟซ้้ๅง: ้ฑ่ฎ
SKILL.md็ Overview ๅ 8-Step Pipeline - ้็ผไปปๅ: ๆฅ็
SKILL.md็ Development Workflows ๅฐๆ็ๆชขๆฅๆธ ๅฎ - ่ฉณ็ดฐๅฏฆไฝ: ๅ่
references/ไธ็่ฉณ็ดฐๆๅ - ็จๅผ็ขผ็ฏไพ: ๆฅ็
assets/templates/ๅassets/examples/ - ้ฟๅ
้ฏ่ชค: ๆชขๆฅ
assets/anti-patterns/็ๅ้ขๆๆ
้็ผๅทฅไฝๆต็จ็ฏไพ
ๆฐๅขไธๅ Endpoint
- ้ฑ่ฎ
SKILL.mdโ "Workflow 1: Adding a New Endpoint" - ๅ่
assets/templates/standard-endpoint.ts็ๅฎๆด็ฏไพ - ้ตๅพช 8-step pipeline ๅฏฆไฝ
- ๆชขๆฅ
assets/anti-patterns/divergent-endpoint.ts้ฟๅ ๅธธ่ฆ้ฏ่ชค
ๆฐๅขไธๅ Aggregation
- ้ฑ่ฎ
SKILL.mdโ "Workflow 2: Adding a New Aggregation" - ๅ่
assets/examples/aggregation-spec.ts็็ฏไพ - ๅฎ็พฉ MetricContracts (ๅ่
assets/examples/metric-contract.ts) - ๅฏฆไฝ compute ๅฝๆธ (pure function, ็ก SQL)
- ่จปๅๅฐ AggregationRegistry
- ๆชขๆฅ
assets/anti-patterns/sql-in-aggregation.ts้ฟๅ SQL ่ฆๅ
ๆฐๅขไธๅ Dimension
- ้ฑ่ฎ
SKILL.mdโ "Workflow 3: Adding/Modifying Dimensions" - ๅ่
assets/examples/dimension-spec.ts - ๆดๆฐ QueryBuilder ็ dimensionMapping (Infrastructure Layer)
- ๆธฌ่ฉฆๆๆ็พๆ Aggregations
- ๆชขๆฅ
assets/anti-patterns/db-fields-in-dimension.ts้ฟๅ schema leakage
ๆฐๅขไธๅ Formatter
- ้ฑ่ฎ
SKILL.mdโ "Workflow 4: Adding/Modifying Output Formats" - ๅ่
references/formatter-guide.md - ๅฏฆไฝ IVisualizationFormatter interface
- ็ขบไฟๅชๅ่ณๆ้็ต,ไธ้ๆฐ่จ็ฎ
- ๆชขๆฅ
assets/anti-patterns/formatter-computation.ts้ฟๅ ้่ค่จ็ฎ
ๆถๆงๅๅ
โ ่ฉฒๅ็ไบ
Endpoint Layer
- โ
Request validation
- โ
Response formatting
- โ
HTTP status codes
Service Layer
- โ
Orchestration logic
- โ
Spec composition
- โ
Result aggregation
Domain Layer
- โ
Business rules
- โ
Semantic definitions
- โ
Contracts (interfaces)
Infrastructure Layer
- โ
SQL generation
- โ
DB connections
- โ
Query execution
โ ไธ่ฉฒๅ็ไบ
Endpoint Layer
- โ Business logic
- โ SQL queries
- โ Data transformation
Service Layer
- โ HTTP concerns
- โ SQL generation
- โ DB connection
Domain Layer
- โ DB schema knowledge
- โ SQL strings
- โ Join logic
Infrastructure Layer
- โ Business rules
- โ Aggregation logic
- โ Visualization logic
้้ตๆชขๆฅ้ ็ฎ
ๅจ commit ๅๆชขๆฅ:
- [ ] ๆๆ endpoint ้ตๅพช 8-step pipeline
- [ ] DimensionSpec ็ก DB column names
- [ ] AggregationSpec compute ็ก SQL
- [ ] Formatter ็ก้ๆฐ่จ็ฎ metrics
- [ ] Domain Layer ็ก import DB client
- [ ] ๆๆ semantic names ๆๅฐๆ็ QueryBuilder mapping
ๆๅๆจๆบ
้ๅ skill ๆๅ็ๆจๆบ:
- ๆธ ๆฐๅบฆ: Agent ่ฝ็ซๅณ็ฅ้ๅจ็นๅฎไปปๅๆ้่ฆๅไป้บผ
- ๅฎๆดๆง: ๆถต่ๆๆ้็ผๅ ดๆฏ
- ้ฒ่ญทๆง: ๆ็ขบๆจ็คบๅๅฑค่ท่ฒฌ้็,้ฒๆญขๆถๆง่ ๅ
- ๅฏฆ็จๆง: ๆไพๅฎๆดๅฏๅท่ก็็จๅผ็ขผ็ฏไพ
- ๅฏ็ถญ่ญทๆง: ็ตๆงๆธ ๆฐ,ๆๆผๅพ็บๆดๅ ๅๆดๆฐ
ๅธธ่ฆๅ้ก (FAQ)
Q1: ้ๅ skill ้ฉๅไป้บผ้กๅ็ๅฐๆก?
A: ้ฉๅไปปไฝ้่ฆๆธๆๅๆๅพ็ซฏ็ๅฐๆก,็นๅฅๆฏ:
- BI/Analytics ๅนณๅฐ
- Dashboard ๅพ็ซฏ API
- ๅ ฑ่กจ็ณป็ตฑ
- ๆธๆๆฅ่ฉขๆๅ
- ๅค็ถญๅบฆๅๆ็ณป็ตฑ
Q2: ้ๅ skill ๆ่ชๅๅฏซ code ๅ?
A: ไธๅฎๅ
จๆฏใ้ๅ skill ๆฏๆๅฐๆๅ,ๅฎๆ:
- โ
ๅ่จด Agent ่ฉฒ้ตๅพชไป้บผๆถๆงๅๅ
- โ
ๆไพๅฎๆด็ code ็ฏไพไพๅ่
- โ
้ฒๆญข Agent ็ฏๅธธ่ฆ็ๆถๆง้ฏ่ชค
- โ
็ขบไฟ Agent ้ตๅพชๆจๆบ pipeline
Agent ไป็ถๆๆ นๆไฝ ็ๅ ท้ซ้ๆฑๅฏซ code,ไฝๆ้ตๅพช้ๅ skill ็ๆๅผใ
Q3: ๆๅฏไปฅไฟฎๆน้ๅ skill ๅ?
A: ็ถ็ถๅฏไปฅ๏ผ้ๅ skill ๆฏ้ๆบ็,ไฝ ๅฏไปฅ:
- ไฟฎๆน SKILL.md ็ๅ
งๅฎน
- ๆฐๅขไฝ ่ชๅทฑ็็ฏไพๅฐ assets/examples/
- ๅ ๅ
ฅๆดๅค anti-patterns ๅฐ assets/anti-patterns/
- ่ชฟๆด references/ ็่ฉณ็ดฐๆไปถ
ไฟฎๆนๅพ,ๅฆๆไฝฟ็จ Symbolic Link ๅฎ่ฃ,ๆ็ซๅณ็ๆ;ๅฆๆๆฏ็ดๆฅ่ค่ฃฝ,้่ฆ้ๆฐ่ค่ฃฝใ
Q4: ้ๅ skill ่ๅ ถไป skills ่ก็ชๅ?
A: ไธๆใ้ๅ skill ๅฐๆณจๆผๆธๆๅๆๅพ็ซฏๆถๆง,่ๅ ถไป skills (ๅฆ UI/UX, testing, deployment) ๆฏไบ่ฃ็ใ
Q5: ๆ็ๅฐๆก็จไธๅ็ๆถๆงๅฏไปฅ็จ้ๅ skill ๅ?
A: ๅฏไปฅ,ไฝๅฏ่ฝ้่ฆ่ชฟๆดใ้ๅ skill ๅบๆผ:
- Clean Architecture
- Three-Layer Architecture (Endpoint-Service-Domain-Infrastructure)
- Dependency Inversion Principle
ๅฆๆไฝ ็ๅฐๆกไฝฟ็จไธๅๆถๆง,ๅฏไปฅไฟฎๆน SKILL.md ็ๅ งๅฎนไพๅน้ ไฝ ็ๆถๆงใ
Q6: Skill ๆชๆกๅพๅค,Agent ๆไธๆฌก่ฎๅฎๅ?
A: ไธๆใSkill ่จญ่จๆก็จๆผธ้ฒๅผๆญ้ฒ:
- Agent ๆๅ
่ฎ SKILL.md (ไธปๆๅผ)
- ้่ฆ่ฉณ็ดฐ่ณ่จๆๆ่ฎ references/
- ้่ฆ็ฏไพๆๆ่ฎ assets/
้ๆจฃๅฏไปฅ้ฟๅ context ้่ผใ
Q7: ๅฆไฝ็ฅ้ Agent ๆๅจไฝฟ็จ้ๅ skill?
A: ่งๅฏ Agent ็ๅๆ:
- ๆๆๅฐ "8-step pipeline"
- ๆๆ็ขบๅปบ็ซ DimensionSpec, AggregationSpec
- ๆ้ฟๅ
ๅจ Aggregation ๅฏซ SQL
- ๆๅ้ข Endpoint/Service/Domain layers
ๅฆๆๆฒๆ,ๅฏไปฅๆ็ขบ่ชช: "่ซไฝฟ็จ data-analysis-backend skill"
Q8: ้ๅ skill ๆฏๆดๅชไบ็จๅผ่ช่จ?
A: ็ฏไพไฝฟ็จ TypeScript,ไฝๆฆๅฟต้ฉ็จๆผไปปไฝ่ช่จ:
- Python: FastAPI + SQLAlchemy
- Java: Spring Boot + JPA
- C#: ASP.NET Core + Entity Framework
- Go: Gin + GORM
ๆถๆงๅๅๆฏ่ช่จ็ก้็ใ
Q9: ๆๅฏไปฅๅไบซ้ๅ skill ็ตฆๅ้ๅ?
A: ็ถ็ถๅฏไปฅ๏ผๅปบ่ญฐๆนๅผ:
1. ๅฐๆญค skill ๅ ๅ
ฅไฝ ็ๅฐๆก repo
2. ๅจ README ่ชชๆๅฆไฝๅฎ่ฃ
3. ๅ้ๆๅกๅ่ชๅฎ่ฃๅฐ่ชๅทฑ็ ~/.claude/skills/
้ๆจฃๆดๅๅ้้ฝๆ้ตๅพช็ธๅ็ๆถๆงๅๅใ
Q10: Skill ๅคไน ๆดๆฐไธๆฌก?
A: ็ฎๅ็ๆฌๆฏ 1.0.0ใๅปบ่ญฐ:
- ๆ นๆๅ้ๅฏฆ้ไฝฟ็จ็ถ้ฉๆดๆฐ
- ็ผ็พๆฐ็ anti-patterns ๆๅ ๅ
ฅ
- ๆๆดๅฅฝ็็ฏไพๆๆฟๆ
- ๆถๆงๆผ้ฒๆๅๆญฅๆดๆฐ
่ฒข็ป
ๅฆๆไฝ ๆๆน้ฒๅปบ่ญฐ:
1. ไฟฎๆนๅฐๆ็ๆชๆก
2. ๆธฌ่ฉฆไฟฎๆนๅพ็ๆๆ
3. ๅไบซไฝ ็็ถ้ฉ
ๅปบ่ญฐ็ๆน้ฒๆนๅ:
- ๆฐๅขๆดๅค็จๅผ่ช่จ็็ฏไพ
- ๅ ๅ
ฅๆดๅค anti-patterns
- ่ฃๅ
ๆดๅค edge cases ็่็ๆนๅผ
- ๆฐๅขๆ่ฝๅชๅ็ๆๅผ
็ธ้ๆไปถ
analytics_backend_plan.md: ๅๅงๆถๆง่จญ่จ่จๅSKILL.md: ไธป่ฆๆๅผๆไปถ (ๅฟ ่ฎ)summary.md: ๅฏฆไฝ็ธฝ็ต
ๆๆฌ
ๆฌ skill ็บ้ๆบๅฐๆก,ๅฏ่ช็ฑไฝฟ็จใไฟฎๆนๅๅ็ผใ
็ๆฌ
- Version: 1.0.0
- Last Updated: 2026-01-31
- Author: Andy Chen (with Claude)
ๆฏๆด
ๅฆๆ้ๅฐๅ้ก:
1. ๆฅ็ๆฌ README ็ใๆ
้ๆ้คใ็ซ ็ฏ
2. ๆชขๆฅ SKILL.md ็ๅ
งๅฎนๆฏๅฆๆญฃ็ขบ
3. ็ขบ่ช Claude Code ๅทฒๆญฃ็ขบๅฎ่ฃไธฆ้่ก
้ๅงไฝฟ็จ: ่ฟๅๅฐๅฟซ้้ๅง็ซ ็ฏ้ๅงๅฎ่ฃ!
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.