Files
xinghuoapi/CLAUDE.md
huangzhenpc 4bc7fa0e3f
Some checks failed
CI / test (push) Has been cancelled
CI / golangci-lint (push) Has been cancelled
Security Scan / backend-security (push) Has been cancelled
Security Scan / frontend-security (push) Has been cancelled
chore: 添加 CLAUDE.md 项目指南
包含 fork 自定义配置清单、构建测试命令、架构概览、编码规范和 skills 索引。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 10:23:20 +08:00

4.0 KiB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Fork Identity

This is a customized fork of Wei-Shaw/sub2api, branded as StarFireAPI. Upstream remote: https://github.com/Wei-Shaw/sub2api.git.

Customizations to preserve on every upstream sync

Category Details
Brand All user-facing Sub2APIStarFireAPI in frontend/src/ (stores, i18n, views, components, router)
Links GitHub links → https://anthropic.edu.pl in AppHeader, HomeView, i18n
docker-compose Image: starfireapi:latest, port 6580:8080, external Redis at 172.18.0.2:6379, project name xinghuoapi, built-in Redis disabled
Update module Disabled in system_handler.go (always returns no update), app.ts (forces hasUpdate=false), VersionBadge.vue (isReleaseBuild=false, removed GitHub release links)

Full details: skills/sync-upstream/SKILL.md

Build & Test Commands

# Full build (backend + frontend)
make build

# Backend only
cd backend && make build              # Binary → bin/server
cd backend && make test               # go test ./... + golangci-lint
cd backend && make test-unit          # Unit tests only
cd backend && go test ./internal/service/... -run TestXxx  # Single test

# Frontend only
cd frontend && pnpm install --frozen-lockfile
cd frontend && pnpm dev               # Dev server
cd frontend && pnpm build             # Type-check + production build
cd frontend && pnpm test:run          # Vitest
cd frontend && pnpm lint:check        # ESLint (no fix)

# Code generation (Ent ORM + Wire DI)
cd backend && make generate

Architecture

AI API Gateway: receives requests with user API keys → authenticates → selects upstream account (sticky session / load-aware) → forwards to upstream AI service → records usage for billing.

Backend (backend/internal/)

  • Entry: cmd/server/main.go — supports setup mode, auto-setup (Docker), normal server
  • DI: Google Wire (cmd/server/wire.go)
  • Layers: handler → service → repository (enforced by depguard — service must not import repository)
  • Key services: GatewayService (request forwarding, account selection, failover), OpenAIGatewayService, GeminiMessagesCompatService, AntigravityGatewayService
  • ORM: Ent (ent/schema/ for definitions, ent/ for generated code)
  • Middleware stack: Recovery → Logger → CORS → SecurityHeaders → RequestBodyLimit → ClientRequestID → APIKeyAuth
  • Run modes: standard (full SaaS with billing) / simple (skip billing checks)

Frontend (frontend/src/)

  • Framework: Vue 3 + Pinia + Vue Router + TailwindCSS
  • State: stores/app.ts (global), stores/auth.ts (JWT auth)
  • i18n: i18n/locales/en.ts, zh.ts — all user-facing strings
  • Embedded: production build goes to backend/internal/web/dist/ and is embedded into the Go binary

Gateway Routes

/v1/messages              — Claude API compatible
/v1/responses             — OpenAI API compatible
/v1beta/models/*          — Gemini native API
/antigravity/v1/*         — Antigravity platform

Coding Conventions

  • Go: gofmt, golangci-lint (see backend/.golangci.yml), max 3 levels of if nesting
  • Frontend: Vue SFC + TypeScript, 2-space indent, ESLint, components PascalCase.vue, composables useXxx.ts
  • Commits: Conventional Commits (feat(scope):, fix(scope):, chore(scope):)
  • JSON hot-path: prefer gjson over encoding/json for read-only/partial extraction
  • Layering: handler/service must NOT import repository/gorm/redis directly

Skills (in skills/)

  • sync-upstream — Pulls and merges upstream sub2api, re-applies all StarFireAPI customizations. Trigger: "拉取上游", "同步上游", "sync upstream"
  • bug-fix-expert — Multi-agent bug fix workflow with worktree isolation and cross-validation
  • code-review-expert — Parallel 5-dimension code review with worktree isolation