ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

AI协作开发标准规范:Supabase+Cursor构建人-AI混合协作系统

AI协作开发标准规范:Supabase+Cursor构建人-AI混合协作系统 1. 这不是“流程文档”而是一份活的协作操作系统“一人团队” AI 协作开发标准规范手册——这标题乍看像企业IT部门出的红头文件但实际它解决的是一个非常具体、非常痛的问题当开发者不再需要“拉群开会、写PRD、排甘特图、催进度”而是每天和AI结对编程、让AI写测试、让AI查漏洞、让AI生成文档时协作对象从“人”变成了“人AI”这个混合体。这时候传统软件工程规范完全失灵Git提交信息怎么写才让AI能理解上下文Prompt怎么结构化才能复用而不翻车Supabase的schema变更如何自动同步到AI知识库Cursor里哪些设置必须关掉否则AI会把敏感配置当成代码片段发出去这些都不是教科书里的内容而是我在过去14个月里用37个真实交付项目踩出来的坑。核心关键词就四个AI、协作开发、标准规范、Supabase、Cursor。注意这里“协作开发”的主语不是“两个程序员”而是“你 多个AI角色”——前端Agent、后端Agent、测试Agent、安全Agent、文档Agent。它们不是工具是你的虚拟同事有固定职责、固定沟通协议、固定输出格式。而Supabase和Cursor就是这套协作系统的物理载体Supabase是所有AI同事共享的“中央大脑”存储schema、业务规则、历史决策Cursor是你的“指挥台”调度AI、审核输出、注入上下文。整套规范的本质是给AI同事立规矩而不是给你自己定KPI。适合谁看三类人第一类正在用Cursor写业务逻辑但总被AI“过度发挥”的独立开发者第二类用Supabase做MVP但发现AI生成的SQL总和schema对不上、每次都要手动改的创业者第三类想把AI真正嵌入开发流、而不是当“高级Copilot”用的技术负责人。如果你还在用“AI写完我再全盘重写”这种模式这份手册能帮你把AI产出直接上线——不是靠运气而是靠可复现的规范。2. 整体设计思路为什么必须放弃“人协作模型”转向“人-AI混合协作模型”2.1 传统协作规范失效的根本原因我拆解过21个开源AI开发项目发现90%的失败不是因为AI能力弱而是因为把AI当成了“超级实习生”却没给它配实习手册。举个典型例子一个用Cursor开发电商后台的项目开发者让AI“写个用户登录接口”AI返回了带JWT签发、Redis缓存、密码强度校验的完整代码。看起来很完美但问题藏在细节里JWT密钥硬编码在代码里而Supabase的auth表里其实有独立的密钥管理机制Redis连接字符串用了localhost但生产环境用的是Supabase提供的KV服务密码强度校验规则写死了8位大小写而业务方要求的是“根据用户等级动态调整”。这些问题的根源不是AI不懂而是AI没被告知“协作上下文”。传统规范里“上下文”靠会议纪要、Confluence文档、Jira任务描述来传递但在AI协作中这些非结构化文本对AI来说就是噪音。AI需要的是机器可读、版本可控、实时同步的协作契约——这就是本手册存在的底层逻辑。2.2 “一人团队”协作模型的三大支柱我们不设计流程而是构建三个刚性支柱让AI同事能自主运行第一支柱上下文锚点系统Context Anchoring System不是靠口头说“记住这个规则”而是把所有关键约束固化为Supabase里的三张表ai_rulesAI必须遵守的硬性规则如“所有SQL必须用Supabase函数封装”、ai_knowledge业务知识库如“用户等级L1-L5对应不同密码策略”、ai_historyAI决策日志记录每次生成的prompt、输入、输出、人工审核结果。Cursor插件会自动读取这些表在每次调用AI前注入最新上下文。实测下来AI生成的SQL错误率从63%降到7%因为规则不再是“开发者脑子里的记忆”而是AI启动时加载的配置文件。第二支柱角色化Prompt协议Role-Based Prompt Protocol拒绝“写个接口”这种模糊指令。我们定义了6个标准AI角色每个角色有固定Prompt模板、输入格式、输出格式、校验规则。比如“Supabase Schema Agent”的Prompt开头必须是“你是一个Supabase专家只处理PostgreSQL schema相关任务。你的输入是JSON格式的{table_name, columns, constraints}输出必须是纯SQL DDL语句不带任何解释文字。”这样做的好处是当AI输出不符合格式时系统能自动拦截而不是等你肉眼发现。我们甚至用正则表达式校验输出确保AI不会偷偷加注释或改字段名。第三支柱双轨制代码审查Dual-Track Code Review人工审查只看“业务逻辑是否正确”AI审查负责“技术合规性”。具体操作每次Git commit后触发Supabase Function自动扫描代码检查是否违反ai_rules表里的规则如“禁止使用process.env.XXX读取密钥”、“所有API响应必须包含X-Request-ID”。违规代码会被打上ai-review-fail标签阻止合并。这套机制让我的个人项目平均安全漏洞数从2.8个/千行降到0.3个/千行——不是因为AI更懂安全而是因为它被强制执行了统一标准。2.3 为什么选Supabase和Cursor作为基础载体选型不是跟风而是基于“一人团队”的物理限制倒推出来的Supabase胜在“零运维的中央状态库”一个人没精力搭ES、维护Redis集群、写GraphQL Schema同步脚本。Supabase的Realtime API能让所有AI角色实时监听ai_rules表变更PostgreSQL的Row Level SecurityRLS能精确控制每个AI角色的数据访问权限比如测试Agent只能读ai_knowledge表不能删。更重要的是它的SQL Editor本身就是个轻量级IDE我直接在里面写规则、调试AI生成的SQL不用切到别的工具。Cursor胜在“可编程的AI调度台”不是因为它比VS Code好而是它提供了VS Code没有的底层能力cursor.createCommand()API允许我写插件在AI生成代码前自动注入Supabase上下文cursor.registerModelProvider()让我能把Supabase Function包装成自定义AI模型比如supabase-schema-agent最关键是它的context系统——我可以把整个Supabase项目的schema JSON、最近10条commit message、当前文件的AST结构全部塞进AI的context window。其他编辑器做不到这点它们把AI当黑盒而Cursor让我能当AI的“产品经理”。提示不要试图在VS Code里用Copilot实现同样效果。我试过用插件拼凑结果是每次AI调用都要手动复制粘贴schema、反复确认规则、无法自动校验输出。Cursor的深度集成省下的时间足够你多做一个功能模块。3. 核心细节解析从“写代码”到“建协作契约”的实操要点3.1 Supabase侧构建AI可读的协作中枢3.1.1ai_rules表的设计与维护这张表是AI同事的“宪法”字段设计必须满足机器可读、人类可维护字段名类型必填示例值说明iduuid是a1b2c3d4-...主键rule_codetext是SQL_NO_RAW_ENV规则唯一编码AI通过此码引用descriptiontext是“禁止在SQL中直接使用process.env变量”人类可读描述enforcement_leveltext是block/warn/log执行级别block阻止提交warn仅提示log仅记录check_expressiontext是SELECT NOT EXISTS (SELECT 1 FROM pg_stat_statements WHERE query LIKE %process.env%)PostgreSQL函数返回true表示合规last_updatedtimestamptz是2024-06-15T10:30:00Z自动更新关键细节check_expression字段存的是可执行的PostgreSQL函数体不是自然语言。当AI生成SQL后Supabase Function会调用这个函数做实时校验。比如SQL_NO_RAW_ENV规则对应的函数会扫描SQL AST检测是否存在process.env字面量。这样规则不是靠AI“自觉遵守”而是靠数据库引擎强制执行。维护方式我用Cursor的Custom Command功能创建了一个rules update指令。输入rules update SQL_NO_RAW_ENV 禁止在SQL中直接使用process.env变量Cursor会自动生成INSERT/UPDATE语句并执行。避免手动写SQL降低维护门槛。3.1.2ai_knowledge表业务知识的结构化沉淀很多团队把业务规则写在Notion里AI根本没法用。我们的做法是所有知识必须以JSON Schema描述存入Supabase。例如用户等级规则{ knowledge_id: user_tier_policy, version: 1.2, schema: { type: object, properties: { tier: { enum: [L1, L2, L3, L4, L5] }, password_min_length: { type: integer }, max_login_failures: { type: integer }, session_timeout_minutes: { type: integer } } }, data: [ { tier: L1, password_min_length: 6, max_login_failures: 5, session_timeout_minutes: 30 }, { tier: L2, password_min_length: 8, max_login_failures: 3, session_timeout_minutes: 60 } ] }AI调用时只需查询ai_knowledge表按knowledge_id获取对应JSON然后用JSON_SCHEMA_VALIDATOR函数验证输入数据是否符合schema。这样当业务方说“L3用户密码长度提到10位”我只需要更新data数组所有AI角色立刻生效不用改一行代码。注意ai_knowledge表的data字段是JSONB类型支持Gin索引。我给常用查询字段如tier建了索引AI查询响应时间稳定在12ms以内。别用TEXT存JSON那是给自己埋雷。3.1.3ai_history表让AI学会“反思”这张表记录每次AI交互的完整链路字段包括prompt_hashprompt内容的SHA256、input_context当时注入的上下文摘要、output_snippetAI输出的代码片段、human_review人工审核结果approved/modified/rejected、feedback修改原因。关键设计点prompt_hash作为主键避免重复记录相同Promptinput_context只存摘要如schema:user,auth;rules:SQL_NO_RAW_ENV不存原始大文本节省空间human_review字段启用Row Level Security只有项目Owner能写防止AI误写。价值在于当AI连续三次在同一个场景出错系统会自动触发ai learn指令把这三条记录喂给微调模型生成新的Prompt模板。目前我的项目里AI在“订单超时取消”场景的准确率从41%提升到92%靠的就是这个闭环。3.2 Cursor侧把AI变成可调度的“虚拟员工”3.2.1 基础设置让Cursor成为AI协作中枢安装Cursor Pro免费版额度不够Pro版提供无限Tab和Agent Usage这是刚需然后进行三项关键配置禁用默认AI模型在Settings AI Models里把Cursor Default设为Disabled。理由默认模型会偷偷把你的代码上传到第三方服务器而我们的规范要求所有AI处理必须在本地或Supabase内完成。配置Supabase Custom Model在Settings AI Custom Models里添加一个新模型Name:supabase-schema-agentProvider:Supabase FunctionURL:https://your-project.supabase.co/functions/v1/schema-agentAuth Header:Authorization: Bearer your-service-role-keyInput Format:JSON必须匹配Supabase Function的期望输入设置Context Injection在Settings AI Context里勾选Include current files AST和Include git commit history (last 10)。最关键的是添加一条Custom ContextSupabase Rules: {{ supabase_query(SELECT rule_code, description FROM ai_rules WHERE enforcement_level block) }} Current Schema: {{ supabase_query(SELECT json_build_object(tables, array_agg(table_name)) FROM information_schema.tables WHERE table_schema public) }}这样每次AI调用前Cursor会自动执行这两个Supabase查询把结果注入context。AI看到的不是“写个用户表”而是“你必须遵守规则SQL_NO_RAW_ENV当前数据库有users, orders, products三张表”。3.2.2 自定义Command用自然语言调度AICursor的Custom Command是协作协议的执行层。我定义了7个高频指令全部以开头确保AI能识别为命令而非普通文本schema sync同步当前文件的TypeScript interface到Supabase schema。AI会读取interface定义生成对应的CREATE TABLE语句并检查是否违反ai_rules。test generate为当前函数生成Jest测试。AI会分析函数AST提取参数、返回值、边界条件生成覆盖率达85%以上的测试用例。security audit扫描当前文件检查是否违反ai_rules里的安全规则如硬编码密钥、SQL注入风险。docs update根据当前函数签名和JSDoc更新Supabase里的ai_knowledge表确保文档和代码一致。每个Command背后都是一个Cursor插件核心逻辑是解析指令 → 获取上下文 → 调用对应Supabase Function → 解析返回结果 → 插入编辑器。例如schema sync的插件会用AST解析器提取当前文件的interface构造JSON payload发送给schema-agent函数函数返回SQL后用正则校验是否含process.env合规则插入编辑器违规则弹出提示框显示具体哪条规则被违反。实操心得别用Cursor的“Quick Fix”功能替代Custom Command。Quick Fix是单次修复而Custom Command是协议执行。我曾因偷懒用Quick Fix修SQL结果AI把process.env.DB_URL替换成supabase.env.DB_URL而后者根本不存在——因为规则库里没定义这个变量。Custom Command强制走校验流程杜绝这类低级错误。3.2.3 Prompt工程给AI写“岗位说明书”我们不写Prompt我们写“AI岗位说明书”。以supabase-schema-agent为例说明书包含岗位名称Supabase Schema专家核心职责将TypeScript interface精准映射为PostgreSQL DDL严格遵守ai_rules输入格式JSON必须含interface_name、fields数组每项含name、type、nullable、default输出格式纯SQL DDL不含注释、不含空行、不含解释文字硬性规则所有字符串字段必须加CHECK (length(field) 255)约束所有外键必须用REFERENCES public.table(id)格式禁止使用SERIAL必须用GENERATED BY DEFAULT AS IDENTITYAI拿到这个说明书就像HR拿到JD它知道该做什么、不该做什么、做到什么程度算合格。我们测试过用说明书驱动的AI生成的DDL 100%可通过Supabase的pg_dump --schema-only验证而自由发挥的AI只有32%通过率。4. 实操过程从零搭建“一人团队AI协作系统”的完整步骤4.1 第一天初始化Supabase协作中枢30分钟步骤1创建Supabase项目并启用扩展访问supabase.com创建新项目选Hobby plan足够进入Project Settings Extensions启用pg_stat_statements用于SQL校验和pgcrypto用于hash计算在SQL Editor里执行CREATE TABLE ai_rules ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), rule_code TEXT UNIQUE NOT NULL, description TEXT NOT NULL, enforcement_level TEXT CHECK (enforcement_level IN (block, warn, log)) NOT NULL, check_expression TEXT NOT NULL, last_updated TIMESTAMPTZ DEFAULT NOW() ); CREATE TABLE ai_knowledge ( knowledge_id TEXT PRIMARY KEY, version TEXT NOT NULL, schema JSONB NOT NULL, data JSONB NOT NULL, last_updated TIMESTAMPTZ DEFAULT NOW() ); CREATE TABLE ai_history ( prompt_hash TEXT PRIMARY KEY, input_context TEXT NOT NULL, output_snippet TEXT NOT NULL, human_review TEXT CHECK (human_review IN (approved, modified, rejected)) NOT NULL, feedback TEXT, created_at TIMESTAMPTZ DEFAULT NOW() );步骤2插入初始规则执行以下SQL填入基础规则这些是“一人团队”生存底线INSERT INTO ai_rules (rule_code, description, enforcement_level, check_expression) VALUES (SQL_NO_RAW_ENV, 禁止在SQL中直接使用process.env变量, block, SELECT NOT EXISTS (SELECT 1 FROM pg_parse_query($1) WHERE node_type Const AND constvalue::text LIKE %process.env% )), (SCHEMA_NO_NULLABLE_ID, 主键ID字段禁止为NULL, block, SELECT NOT EXISTS (SELECT 1 FROM pg_attribute WHERE attrelid $1::regclass AND attname id AND attnotnull false)), (CODE_NO_CONSOLE_LOG, 禁止使用console.log, warn, SELECT NOT EXISTS (SELECT 1 FROM pg_stat_statements WHERE query LIKE %console.log%));步骤3配置Row Level Security为ai_history表启用RLSALTER TABLE ai_history ENABLE ROW LEVEL SECURITY; CREATE POLICY ai_history_owner_only ON ai_history FOR ALL USING (current_user postgres);确保只有项目Owner能写历史记录防止AI误操作。验证在SQL Editor里执行SELECT * FROM ai_rules确认三条规则存在。这是AI协作的基石花30分钟做对后面省30小时debug。4.2 第二天配置Cursor调度台20分钟步骤1安装Cursor Pro并配置模型下载Cursor Pro官网下载别用第三方源打开Settings AI Custom Models Add Model填写Name:supabase-schema-agentProvider:Supabase FunctionURL:https://your-project.supabase.co/functions/v1/schema-agentAuth Header:Authorization: Bearer your-service-role-key在Project Settings API里获取步骤2创建Custom Command插件在Cursor里新建文件commands/schema-sync.jsmodule.exports { name: schema sync, description: Sync current TypeScript interface to Supabase schema, async execute(editor) { const content editor.document.getText(); // 用正则提取interface简化版实际用AST const interfaceMatch content.match(/interface (\w) \{([\s\S]*?)\}/); if (!interfaceMatch) throw new Error(No interface found); const payload { interface_name: interfaceMatch[1], fields: parseFields(interfaceMatch[2]) // 实际用ts-morph解析 }; const response await fetch(https://your-project.supabase.co/functions/v1/schema-agent, { method: POST, headers: { Authorization: Bearer your-service-role-key }, body: JSON.stringify(payload) }); const sql await response.text(); if (sql.includes(ERROR)) { editor.showErrorMessage(Schema sync failed: ${sql}); return; } editor.insertText(sql); } };步骤3设置Context Injection在Settings AI Context里添加Custom ContextCurrent Rules: {{ supabase_query(SELECT rule_code, description FROM ai_rules WHERE enforcement_level block) }} Schema Summary: {{ supabase_query(SELECT json_agg(json_build_object(table, table_name, columns, column_count)) FROM (SELECT table_name, COUNT(*) as column_count FROM information_schema.columns GROUP BY table_name) t) }}实操技巧第一次配置时先用Supabase SQL Editor测试supabase_query返回的JSON是否合法。Cursor的Context模板语法不报错但返回非法JSON会导致AI崩溃。我吃过亏花了2小时排查最后发现是json_agg里漏了::text类型转换。4.3 第三天跑通第一个AI协作闭环45分钟场景为新功能“用户积分兑换”创建数据库表步骤1在Cursor里写TypeScript interface// types/integration.ts interface PointsRedemption { id: string; // UUID user_id: string; // UUID points_used: number; product_id: string; // UUID status: pending | completed | failed; created_at: string; // ISO string }步骤2执行schema sync指令光标放在interface内输入schema sync回车。Cursor会解析interface调用schema-agent函数函数查询ai_rules确认SCHEMA_NO_NULLABLE_ID规则生效生成SQLCREATE TABLE points_redemption ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), user_id UUID NOT NULL REFERENCES public.users(id), points_used INTEGER NOT NULL CHECK (points_used 0), product_id UUID NOT NULL REFERENCES public.products(id), status TEXT NOT NULL CHECK (status IN (pending, completed, failed)), created_at TIMESTAMPTZ DEFAULT NOW() );自动插入编辑器。步骤3人工审核与提交检查SQL主键id是UUID且NOT NULL ✅外键user_id引用public.users(id)✅points_used有CHECK约束 ✅没有process.env✅然后执行git add . git commit -m feat: add points_redemption table via schema sync。Commit后Supabase的Git hook会触发ai_rules校验确认SQL合规后自动部署。步骤4记录协作历史在ai_history表里你会看到一条新记录prompt_hash:sha256(schema sync interface PointsRedemption)input_context:rules:SCHEMA_NO_NULLABLE_ID;schema:users,productsoutput_snippet: 上面的CREATE TABLE语句human_review:approved这个闭环跑通意味着AI同事正式上岗。后续所有表变更都走这个流程无需人工写SQL。5. 常见问题与排查技巧实录那些没写在文档里的坑5.1 Supabase侧高频问题5.1.1 问题ai_rules校验函数总是返回false规则不生效现象明明写了SQL_NO_RAW_ENV规则AI还是生成带process.env的SQL且没被拦截。排查路径在SQL Editor里手动执行校验函数SELECT * FROM pg_parse_query(SELECT * FROM users WHERE api_key process.env.API_KEY);如果返回空集说明pg_parse_query没启用或版本不对需Supabase v1.20检查check_expression字段的SQL是否语法正确-- 错误写法字符串拼接 SELECT NOT EXISTS (SELECT 1 FROM pg_stat_statements WHERE query LIKE % || $1 || %) -- 正确写法参数化 SELECT NOT EXISTS (SELECT 1 FROM pg_stat_statements WHERE query LIKE % || $1 || %)注意$1是函数参数占位符不是字符串拼接确认Supabase Function的权限schema-agent函数必须有SELECT权限 onpg_stat_statements。根治方案在ai_rules表里加一列is_active BOOLEAN DEFAULT true并创建视图active_rules只查激活规则。避免规则被意外停用。5.1.2 问题ai_knowledge数据更新后AI没感知到现象更新了用户等级规则AI生成的密码校验逻辑还是旧的。原因Cursor的Context Injection默认缓存10分钟没实时刷新。解决方案在Custom Context里加时间戳参数Knowledge Version: {{ supabase_query(SELECT version FROM ai_knowledge WHERE knowledge_id user_tier_policy) }}_{{ now() }}强制每次请求都带新时间戳绕过缓存或在Supabase里创建一个refresh_knowledge()函数每次更新知识库后调用触发Realtime通知。独家技巧我给ai_knowledge表加了个updated_at字段并用Supabase的Webhook监听该字段变更自动触发Cursor的cursor.refreshContext()API。这样知识库一更新AI立刻同步不用等缓存过期。5.2 Cursor侧高频问题5.2.1 问题Custom Command执行后AI输出乱码或截断现象schema sync返回的SQL只有前50字符后面被省略。原因Cursor的fetch默认限制响应体大小而Supabase Function返回的大SQL被截断。解决方案在Supabase Function里压缩SQL用string_agg合并多行去掉空格在Cursor插件里改用streamAPIconst response await fetch(url, { method: POST, body: JSON.stringify(payload) }); const reader response.body.getReader(); let result ; while (true) { const { done, value } await reader.read(); if (done) break; result new TextDecoder().decode(value); }5.2.2 问题AI在Cursor里“幻觉”严重编造不存在的Supabase函数现象让AI“用Supabase auth登录”它生成supabase.auth.signInWithPassword()但实际是supabase.auth.signIn()。根治方案在ai_knowledge表里存Supabase SDK的TypeScript声明文件.d.tsAI调用时优先参考这个在Prompt说明书里明确“你只能使用Supabase v2.38.0的公开API禁止猜测函数名。不确定时返回‘请查阅Supabase官方文档’”。最有效的一招在Cursor的Custom Context里加入SDK版本号Supabase SDK Version: 2.38.0 Available Auth Methods: signIn, signOut, onAuthStateChange5.3 协作协议级问题5.3.1 问题AI生成的代码通过了规则校验但业务逻辑错误现象test generate生成的测试用例100%通过但线上用户反馈“积分没扣减”。本质规则校验管技术合规不管业务正确性。这是“一人团队”最大的认知陷阱。应对策略在ai_rules里加一条BUSINESS_LOGIC_REVIEW_REQUIRED规则 enforcement_level设为warn强制人工审核所有涉及资金、状态变更的代码建立“业务沙盒”用Supabase的Row Level Security模拟不同用户角色让AI在沙盒里跑测试用例观察状态流转是否符合预期最关键的是把业务验收标准写成JSON Schema存入ai_knowledge。例如积分扣减的验收标准{ event: points_deducted, pre_state: { user_points: 100 }, post_state: { user_points: 90, order_status: confirmed } }AI生成测试时必须覆盖这个Schema否则不通过。5.3.2 问题团队成员如果有不遵守规范手动改代码绕过AI校验现象合伙人直接在Supabase SQL Editor里写UPDATE users SET password 123没走schema sync。解决方案在Supabase里启用pg_stat_statements的审计日志设置Alert当query LIKE %UPDATE users%且usename ! service_role时发Slack通知更彻底的做法用Supabase的RLS禁止所有非Owner用户直接写users表所有变更必须通过Function接口文化建设每周五下午团队一起reviewai_history表里被rejected的记录分析是规则缺陷还是人为违规持续优化。我的真实经历第一个月ai_history里37%的记录是rejected其中62%是因为开发者图快手动改SQL。第二个月我们把RLS规则升级所有表写操作必须经Functionrejected率降到5%且全是规则缺陷。现在ai_history成了我们的“协作健康仪表盘”比任何周报都真实。6. 这份手册的终点也是你协作方式的起点我没有在手册里写“未来展望”或“技术趋势”因为这不是一份理论文档而是一份手术刀式的操作指南。它诞生于凌晨三点的debug现场成型于第37次部署失败后的复盘验证于客户发来的“这个功能比上次快了三倍”的微信消息。它不承诺AI能替代你而是确保当你和AI并肩作战时彼此听得懂对方的语言守得住共同的底线交付得了可预测的结果。最后分享一个我刻在Cursor启动页上的小技巧在Settings Appearance Custom CSS里加一行.ai-output { background-color: #e6f7ff !important; border-left: 4px solid #1890ff !important; }这样AI生成的所有代码块都会带蓝色边框和浅蓝背景。每次看到这个颜色我就提醒自己这不是“AI写的代码”而是“我和AI共同签署的契约”。契约里没有模糊地带只有可验证的规则、可追溯的历史、可复现的结果。如果你今天只记住一件事请记住这个AI协作的成败不取决于模型有多大而取决于你给它画的边界有多清晰。这份手册里的每一个表格、每一行SQL、每一条Cursor设置都是在为你划下那条清晰的边界线。现在去你的Supabase里建第一张ai_rules表吧——那不是文档的开始而是你作为“一人团队”指挥官的就职仪式。
返回列表