From 5a9f161fe3656fd49ccefd4b094079558a0934d7 Mon Sep 17 00:00:00 2001 From: AskaEth Date: Sun, 4 Oct 2026 11:01:12 +0800 Subject: [PATCH] =?UTF-8?q?docs(agents):=20=E7=99=BB=E8=AE=B0=E4=B8=A4?= =?UTF-8?q?=E5=A4=84=E5=B7=B2=E8=A3=81=E5=86=B3=E4=BE=8B=E5=A4=96=EF=BC=88?= =?UTF-8?q?OneBot=20=E5=8F=8D=E8=BF=9E=E7=AB=AF=E5=8F=A3=20/=20=E8=A1=A8?= =?UTF-8?q?=E5=90=8D=E5=A4=8D=E6=95=B0=E5=91=BD=E5=90=8D=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 主人 2026-10-04 裁决后按执行方案(DevDocs/audit/_plan.md P1-G1F)登记,两处均为 「按例外处理并写清边界」,不放松其它情形: - §9 单端口红线 ♢ 例外:仅 `qq-obv11` 渠道的 OneBot **反连(server)模式**可另开 监听端口,且必须由配置显式给出(`listen_addr`)、**不得默认开启**;其余渠道/模式 一律不得新开端口。(对应裁决 1.4 / 12.4.1;规格见 design/08 §4、design/13 §0) - §10 命名条款 ♢ 例外:表名**统一用复数**、以既有迁移为准——原「表名单数」**不再作为 硬约束**,命名口径以 design/13 / design/16 为准(对应裁决 1.11 / 09.4.2)。 --- AGENTS.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index 566240a..0c95e67 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -37,6 +37,7 @@ ## 9. 全球红线(跨里程碑,必须遵守;违反即架构偏离) - **单二进制、单端口 `:8080`、零跨进程 IPC**:模块间同步走**进程内接口 + 依赖注入**(直接方法调用),异步走**进程内 `bus`**;**不另开监听端口、不 HTTP 互调**。 + - ♢ **已登记例外(主人 2026-10-04 裁决)**:`qq-obv11` 渠道的 **OneBot 反连(server)模式**需要独立 `net.Listen` 端口 —— **仅限该渠道的 server 模式**,且端口必须由配置**显式给出**(`listen_addr`),**不得默认开启**;其余渠道/模式一律不得新开监听端口。规格见 `design/08 §4`、`design/13 §0`。 - **身份识别靠 channel 层强类型 `actor` 元数据 + 策略引擎**,**绝不靠提示词/LLM 判断**(主人/群聊/陌生人判定与权限永远由 actor 元数据 + 白名单 + policy engine 决定)。 - **人格 = 身份**(**不限制能力**);**行为模式 = 呈现**(≠边界,可热切换、不构成能力边界);**能力全局全能**;**前端(Web)是第一公民**。 - **IM 是镜像**:只 chat 文本,Web 不回流 IM;输出一律 chat 文本。 @@ -62,7 +63,7 @@ ## 10. 代码与流程硬性规范(压缩后仍需遵守) - 🔴 **文件 ≤500 行、函数 ≤80 行**;**模块按职责拆成多个源文件,严禁把整个模块塞进一个超大文件**;**三次复制必须抽取**共享。 -- 🔴 禁 `interface{}`(用 `any`)、禁包级全局变量(除 `var ErrXxx`)、禁裸 `return err`、禁魔法数字;错误一律 `%w` wrap;SQL 全参数化、表名单数、主键 `id`、时间戳 `created_at/updated_at`、索引 `idx_{table}_{col}`;敏感信息打日志。 +- 🔴 禁 `interface{}`(用 `any`)、禁包级全局变量(除 `var ErrXxx`)、禁裸 `return err`、禁魔法数字;错误一律 `%w` wrap;SQL 全参数化、主键 `id`、时间戳 `created_at/updated_at`、索引 `idx_{table}_{col}`(♢ **已登记例外(主人 2026-10-04 裁决)**:表名**统一用复数**、以既有迁移为准——本条原「表名单数」**不再作为硬约束**,命名口径以 `DevDocs/design/13`/`design/16` 为准);敏感信息打日志。 - 🔴 **日志必须标来源**:模块/子功能用 `internal/logger.WithSource`/`Scoped`(`source=module/subfeature`)标注,跨模块可追溯定位;**禁止无来源裸日志**。 - 🔴 **客户端 API 契约先行**:REST `/api/v1` + WS `/ws` + admin `/api/v1/admin/*` 统一**版本化契约**,供跨平台客户端(Web/移动/IM bridge)接入与治理;JSON 响应 `{data}` / `{error:{code,message}}`。 - 🔴 **用户侧 API 文档随实现更新**:每实现/变更一个 REST 端点、WS 事件、admin API,**立即同步更新 `Docs/api-client.md`**(用户侧跨平台客户端 API 文档),供后期原生客户端开发;契约变更版本化。