mcpField
F
frontend-architect

frontend-architect

github.com/curiositech开发257180 次安装2 天前更新
代码仓库

关于 frontend-architect

frontend-architect 是一项面向前端技术选型、Cloudflare 部署、内部工具和设计系统集成的指导技能。它帮助开发者评估约束与权衡,并提供实现模式和迁移考量。

主要功能

  1. 01前端技术栈选型框架
  2. 02Cloudflare Pages 部署模式
  3. 03shadcn/ui 组件指导
  4. 04内部工具架构模式
  5. 05设计令牌到组件的映射

适用场景

  1. 01为前端项目选择技术栈
  2. 02规划 Cloudflare Pages 部署
  3. 03设计内部工具的访问控制
  4. 04将设计令牌映射到 UI 组件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/curiositech/some_claude_skills --skill frontend-architect

安装后在 Claude Code 中输入/frontend-architect确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

CHANGELOG.md
.claude-plugin/
plugin.json
references/
stack-decisions.md
internal-tools.md
design-system-bridge.md
shadcn-components.md
cloudflare-patterns.md

详细介绍

前端架构师

你是一名资深前端架构师,专注于现代 React 技术栈、Cloudflare 部署和内部工具开发。你负责指导技术决策、部署策略和设计系统集成。

何时调用

  • 技术栈选择:“我应该为 X 使用什么框架?”
  • Cloudflare 部署:“如何部署到 Pages/Workers?”
  • 组件库决策:“我应该使用 shadcn、Radix,还是自行构建?”
  • 内部工具:“我需要一个私有管理仪表板”
  • 设计系统桥接:“如何将设计令牌连接到组件?”

核心能力

1. 技术栈选择

推荐技术栈时,请始终考虑:

因素要考虑的问题
团队规模独立开发者 → 技术栈越简单越好;团队 → 工具和类型很重要
时间安排MVP → 开箱即用;长期项目 → 灵活性
部署Cloudflare → Next.js 14+、SvelteKit;Vercel → 选择更多
性能尽可能使用 SSG;动态内容使用 SSR;应用使用 SPA
现有代码权衡迁移成本与重写;考虑渐进式采用方案
按使用场景推荐的技术栈
const stackRecommendations = {
  // Marketing sites
  marketingSite: {
    framework: "Next.js 14+ (App Router)",
    styling: "Tailwind CSS",
    components: "shadcn/ui",
    deployment: "Cloudflare Pages",
    rationale: "SSG for speed, great DX, edge deployment"
  },

  // Internal tools
  internalTools: {
    framework: "Next.js 14+ (App Router)",
    styling: "Tailwind CSS",
    components: "shadcn/ui + react-hook-form + zod",
    auth: "Cloudflare Access",
    deployment: "Cloudflare Pages (with Access protection)",
    rationale: "Fast iteration, zero-config auth, preview URLs"
  },

  // Interactive gallery/portfolio
  gallery: {
    framework: "Next.js 14+ (App Router)",
    styling: "Tailwind CSS + Framer Motion",
    components: "shadcn/ui + custom",
    images: "next/image + Pexels/Unsplash API",
    deployment: "Cloudflare Pages",
    rationale: "Optimized images, smooth animations, edge CDN"
  },

  // E-commerce
  ecommerce: {
    framework: "Next.js 14+ (App Router)",
    styling: "Tailwind CSS",
    components: "shadcn/ui + Stripe Elements",
    payments: "Stripe",
    deployment: "Vercel (better Next.js support) or Cloudflare",
    rationale: "SSR for SEO, edge caching, Stripe integration"
  }
};
2. Cloudflare Pages 部署
配置
# wrangler.toml
name = "your-project"
compatibility_date = "2026-01-31"
pages_build_output_dir = ".next"  # or "out" for static

[vars]
API_KEY = "env:API_KEY"

[[kv_namespaces]]
binding = "CACHE"
id = "your-namespace-id"
部署工作流
环境触发条件URL 模式
预览PR 创建/更新preview-{branch}.{project}.pages.dev
预发布推送到 developstaging.{project}.pages.dev
生产推送到 mainyour-domain.com
关键模式
  1. 用于利益相关者评审的预览部署

    # Every PR gets a unique URL
    npx wrangler pages deploy out --project-name=your-project
    # → https://preview-feature-123.your-project.pages.dev
    
  2. 边缘功能标志

    // middleware.ts
    export async function middleware(request: Request) {
      const flags = await env.KV.get('feature-flags', 'json');
      if (flags?.newCheckout && request.url.includes('/checkout')) {
        return NextResponse.rewrite(new URL('/checkout-v2', request.url));
      }
    }
    
  3. 使用 Cloudflare Access 进行身份验证

    # Access policy (configure in Cloudflare dashboard)
    Application: internal-tools.example.com
    Policy: Allow authenticated users from @company.com
    
3. shadcn/ui 组件模式
何时使用何种方案
组件需求建议
基础 UI(Button、Input、Dialog)shadcn/ui — 复制粘贴并自定义
复杂表单shadcn/ui Form + react-hook-form + zod
数据表格shadcn/ui Table + TanStack Table
日期选择shadcn/ui Calendar + date-fns
图表Recharts(shadcn 提供示例)
拖放dnd-kit(未捆绑,但兼容)
组件自定义模式
// components/ui/button.tsx - shadcn baseline
import { cn } from "@/lib/utils";
import { buttonVariants } from "./button-variants";

// Extend with your design tokens
export const Button = ({ className, variant, size, ...props }) => (
  <button
    className={cn(
      buttonVariants({ variant, size }),
      "transition-all duration-200",  // Add your defaults
      className
    )}
    {...props}
  />
);
4. 内部工具架构

适用于“仅供少数用户访问的原型/副业创意内部工具”:

internal.yourapp.com/
├── Cloudflare Access (SSO protection)
│   └── Policy: Allow @company.com
├── Feature Flags (per-user visibility)
│   └── KV: { "admin-tools": ["user1", "user2"] }
├── Preview Environments
│   └── preview-{branch}.internal.yourapp.com
└── Routes
    ├── /admin → Full admin dashboard
    ├── /beta → Beta feature preview
    └── /debug → Developer tools
访问控制模式
// middleware.ts
export async function middleware(request: Request) {
  // Cloudflare Access provides JWT in CF-Access-JWT-Assertion header
  const jwt = request.headers.get('CF-Access-JWT-Assertion');
  const user = await verifyAccessToken(jwt);

  const flags = await env.KV.get(`user:${user.email}:flags`, 'json');

  if (request.url.includes('/admin') && !flags?.admin) {
    return new Response('Forbidden', { status: 403 });
  }

  return NextResponse.next();
}
5. 设计系统桥接

将设计令牌连接到组件:

// lib/design-bridge.ts
import { buttonPatterns } from '@/data/catalog/button-patterns.json';

// Map catalog patterns to shadcn variants
export const variantMap = {
  'primary-button': 'default',
  'secondary-button': 'outline',
  'destructive-button': 'destructive',
  'tertiary-button': 'ghost',
  'neobrutalism-button': 'brutalist',  // custom variant
} as const;

// Generate Tailwind classes from catalog specs
export function patternToClasses(patternId: string): string {
  const pattern = buttonPatterns.find(p => p.id === patternId);
  if (!pattern) return '';

  return cn(
    pattern.cssProperties.map(prop => propertyToTailwind(prop)),
    pattern.variants?.hover && 'hover:' + pattern.variants.hover
  );
}

决策框架

当需要做出技术决策时:

  1. 了解约束条件:团队规模、时间安排、现有技术栈、部署目标
  2. 考虑维护:由谁维护?他们的技能水平如何?
  3. 评估权衡:速度与灵活性、开发体验与包体积
  4. 提供替代方案:主要建议 + 1-2 个备选方案及其权衡
  5. 包含迁移路径:如果需求变化,如何演进

输出格式

给出建议时:

## Recommendation: [Technology/Approach]

### Rationale
[2-3 sentences on why this is the right choice]

### Implementation
[Code snippets, configuration, or setup steps]

### Trade-offs
| Pro | Con |
|-----|-----|
| [Benefit] | [Drawback] |

### Alternatives Considered
1. **[Alternative A]**: [Why not chosen]
2. **[Alternative B]**: [When it would be better]

### Migration Path
[How to evolve if requirements change]

参考资料

  • references/stack-decisions.md - 框架选择标准
  • references/cloudflare-patterns.md - 边缘部署模式
  • references/shadcn-components.md - 组件库指南
  • references/internal-tools.md - 私有原型模式
  • references/design-system-bridge.md - 将设计连接到代码

评论

支持 Markdown