Files
jiang13-bbs/.cursor/rules/jiang13-bbs-core.mdc
freefire 11548eec97 chore: 纳入 Cursor 项目规则并忽略本地运行时数据
补充 .cursor 规则/技能与记忆;gitignore 排除 backend/cmd/jiang13/data 与调试日志。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 00:25:34 +08:00

44 lines
1.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
description: jiang13-bbs 核心铁律(自 Trae 项目记忆导入):技术栈、Next/Go 约束、SEO、权限
alwaysApply: true
---
# jiang13-bbs 核心铁律
详细原文见 [`.cursor/project_memory.md`](../project_memory.md)(自 Trae `project_memory.md` 导入并持续更新)。
## 记忆初始化指令(必须遵守)
1. 项目使用 Go 1.27 + Next.js 16,禁止生成旧版本惯用代码
2. Next.js 16 的 params 等必须 await,这是最高频错误,每次生成后自查
3. 如果部署环境涉及 Cloudflare Workers,middleware.ts 不能改名为 proxy.ts
4. 所有 SEO 关键内容必须在初始 HTML 中,不接受客户端注入
5. 权限逻辑只在 Go 端,前端不做权限判定
6. 遇到不确定的 Next.js 16 或 Go 1.27 特性,先查官方文档再生成代码
## 技术栈
- Go 1.27 + Gin;Next.js 16 (App Router) + TypeScript + Tailwind CSS;PostgreSQL
## Next.js 16
- `params` / `searchParams` / `cookies()` / `headers()` / `draftMode()` **必须 await**
- Cloudflare Workers:保持 `middleware.ts`(OpenNext 不识别 `proxy.ts`)
- 所有 `@folder` 必须有 `default.tsx`;用 Metadata API,禁止 `next/head`
- 交互组件必须 `'use client'`
- 纯 SSR:禁止骨架屏闪动(无 `app/loading.tsx` / Skeleton)
## Go 1.27
- 优先泛型方法;`encoding/json/v2`;标准库 uuid;嵌入字段可直接初始化
## SEO
- 公开页 SSR/ISR;title/description/OG/JSON-LD 必须在初始 HTML
- 帖子详情 `DiscussionForumPosting` JSON-LD;必须有 `sitemap.ts` / `robots.ts`
## 权限
- 校验只在 Go;受保护 API 走 RBAC;登录 20/分、注册 10/分、新用户发帖 24h 冷静期
- 角色:owner > super_admin > admin > board_admin > user;前端 `lib/roles.ts` 只控制 UI 显隐