鉴权只认 cookie、SEO 只走 Next、sort 与推荐对齐;删除 Bearer、Go sitemap、post_type 回填等冗余路径。 Co-authored-by: Cursor <cursoragent@cursor.com>
45 lines
2.0 KiB
Plaintext
45 lines
2.0 KiB
Plaintext
---
|
||
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 特性,先查官方文档再生成代码
|
||
7. 用户未明确告知「已正式部署到生产环境」之前:禁止为旧版本/旧契约写兼容冗余(双写双读、fallback、过渡字段、旧 cookie/旧 API 垫片);直接改到位并删旧代码,保持源码干净规范
|
||
|
||
## 技术栈
|
||
|
||
- 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 显隐
|