= 公共任务提示词(入口) 本文件是**公共任务提示词**的统一入口与登记索引。提示词按任务场景组织、复制即可直接使用,用于让 AI 干活时不漏步、不偷懒、高质高效。**提示词不是规范**:不随 `specs/` 分发、不进规范加载链。 == 访问与解析 * 提示词正文存放于本文件所在目录下的 `prompts/` 子目录,与规范 `specs/` 相互独立、互不干扰。 * 引用方无需引入本入口:提示词按需打开对应文档,把其中 `[listing]` 代码块内的文字**完整原样**复制给 AI 作为任务指令即可。 * 提示词措辞通用、不依赖具体技术栈;项目已接入 agent 规范时,AI 读取项目规范入口后自行遵守规范。 * 公共片段与 AI 读取:提示词正文可能用 `include::_common.txt[tag=…]` 引用公共片段(`prompts/_common.txt`)。**该指令只在 AsciiDoc 处理器解析时才展开,判据是"内容有没有被处理器装配过"、不是"看起来像不像渲染过的页面"**(取值路径逐条见下「取值路径与装配状态」)。**取到原始文件(远程原始文件地址、本地/工作区直接读文件)时指令不会被展开**——此时须先读取 `prompts/_common.txt`(远程:https://agent.c332030.com/prompts/_common.txt)取出对应 tag 的内容补齐后再执行,**不得因未展开而跳步或漏掉公共步骤**;**也不得以"这是站点的渲染视图、片段已展开"为由跳过补齐**。 === 取值路径与装配状态(判据,不靠印象) 提示词是**会被未知项目复制执行**的产物,执行者取到它的路径不同、`include::` 的装配状态就不同——**推断"这是渲染视图所以已展开"是本仓库实证过的一种失效**(曾把站点**原始文件地址**当"渲染视图",据此以为内容完整;实测该地址直出仓库字节、指令仍在): [cols="3,1,2", options="header"] |=== | 取值路径 | 已装配? | 说明 | IDE 的 AsciiDoc 预览 / `asciidoctor`(或 Asciidoctor.js)**解析后写进页面正文区**的 HTML | 是 | 唯一一类"已展开"的形态:`include::` 已被处理器吃掉、内容完整 | 远程**原始文件**地址(例:`https://agent.c332030.com/prompts/review.adoc`;站点对非 HTML 文件直出**仓库字节**) | **否** | **本项目实证**:`curl` 取回的字节与工作区文件**逐字节一致**、`include::` 仍在;**远程取 `_common.txt` 同属此类**,故"本地读它"与"远程取它"等价、都是未装配的原始文本 | 本地 / 工作区**直接读取**该文件 | **否** | 同上:未经处理器加工,`include::` 原样保留 |=== * **站点直链 = 仓库字节,不是"成品"(L1,本仓库实证)**:站点对非 HTML 文件(`.adoc` / `.txt`)**直出原文**,**与站点发布分支(`main`)的同名文件逐字节一致**;**站点上存在装配形态的只有 `index.html` 自己的正文区**——故"站点"不等于"已装配",判装配状态要看**具体那一条路径**。这条对**图书馆**同样成立。 * **配图与判据一致(L2)**:以上三类是**对同一份文件的不同取值路径**,**不是三种"版本的提示词"**——提示词只有一份(仓库里的原文),"已装配/未装配"只是取用时是否被处理器加工过;故不得把"未展开"读成"内容缺失/旧版",也不得把"已展开"读成"另有一份成品"。 * **实证与话术(L1)**:描述这类取值路径时**须与实际抽样一致**;不得留下"渲染视图下已展开"这类**与路径绑不上**的笼统说法——它会被读成"任何站点/远程取值都已装配",与实测相反。 == 提示词登记(按任务场景) 登记表先给**主侧重(方向性前提)与优先级**,再说用途;`优先级` 列的主侧重片段与 `引入优先级规则` 片段是两个提示词各自引入的**方向与观念前提**,加载时两者**必须逐字一致**(见下「优先级与隔离」)。 [cols="1,1,1,3", options="header"] |=== | 提示词 | 主侧重(方向前提) | 优先级 | 用途概述 | `prompts/review.adoc` | **检查修复问题** | 主侧重片段 `primary` + 优先级片段 `priority-rules`(L1/L2/L3) | **项目问题检查修复**:读取规范、同步主分支、**动手前先查现状并按最佳实践定方案(调整内容一类改动须先检索可参照的业界标准/通行范式/本项目先例,有更优的用更优的)、先定基线(该不该做按改动性质判,取值与判据见 `specs/general/verify.adoc`「验证的适用边界」;做时既有校验手段须扫描、既有用例完整可用者先跑通并留证)**、全量检查代码/文档/测试问题成清单,**明确无争议的问题与文档/测试问题直接修复**、**不明确或有争议的问题集中确认后处理**,补齐落点、回归自检、最终验证,按执行环境交付。**以检查修复为主、没有问题原则上不重构**(不得夹带重构性质改动);详细步骤以该文档为准。 | `prompts/refactor.adoc` | **重构** | 主侧重片段 `primary` + 优先级片段 `priority-rules`(L1/L2/L3) | **项目重构**:读取规范、同步主分支、**动手前先定基线(该不该做按改动性质判,取值与判据见 `specs/general/verify.adoc`「验证的适用边界」;做时既有用例先跑通并留证)**、逐模块检查现状并输出重构方案(含备选方案、预期收益与取舍)、实施结构重构(**不绕开既有实现另写一套;要替换/废弃既有流程先经用户确认**)、补齐文档与用例、性能对比与迭代优化(仅对判定为性能敏感点的代码做性能测试,不乱加也不漏)、回归自检、最终验证,按执行环境交付。**以重构为目标:检查必须做(是重构的前提),产出必须是真正落地的结构改动,不得只检查/只出报告**;详细步骤以该文档为准。 | `prompts/spec-refine.adoc` | **按现行判据把公共规范全文过一遍、把冗余与无效内容收敛掉** | 主侧重片段 `primary` + 优先级片段 `priority-rules`(L1/L2/L3) | **优化公共规范**(**只对本项目生效、不对其他项目成立**):读取维护方自查层与通用层的现成判据(规范集合自身重构、条目准入与定级、精炼性、信息密度、数据字典),按七类扫描面(重复表述 / 精炼性 / 信息密度 / 数据字典 / 多余内容 / 无效内容 / 不可达内容)对**本项目的全部内容**(公共规范 / 维护方自查层 / 提示词**含本命令自身** / 图书馆 / 脚本 / 根目录文档与配置)全文扫描成清单写入 `tmp/`,按**归属 → 层级 → 重复 → 压缩表述**的固定顺序落地,逐处核内容未减少,机械手段 + 三视角复核 + 三态台账,按执行环境交付。**判据一律取现成的、不新立**;**内容不减少优先于删冗余**(只减冗余、不改规则级别与判定标准;判不准是否重复的一律保留);详细步骤以该文档为准。 |=== * **交付即汇报、且不得只冒一句话**(L1,二者一致,展开见 `prompts/_common.txt` 的 `delivery` 片段):提示词的输出只有一种——**交付结果 + 结论汇报**合起来的一次完整汇报(在平台上即**一条评论**)。**输出通道只有两条**:① **最终的一次完整汇报**;② **必须停下确认**的例外(方向/前提不成立、要求写不清、判据不满足、超出授权、会出现不可逆后果)。**除这两条之外的任何中间话一律不发**——**过程性叙述**("现在去读 X""先看有没有 Z 这类检查")、把规范条文/检查依据当结论念一遍、只为表明"我在按规范做"的复述,都不属这两条;**输出侧须与发起人所问对齐**(展开见同一片段):回答的必须是发起人这一问的那件事、**漏下没说与没做同判**(未说明的未完成项 = 没做);**例外形态只写"哪一种算例外"是不够的**:执行者会把"我认定这属于必要的说明"当成第三条通道,判据就回到执行者手里。**本次有改动**须提交推送并建 PR、汇报里落成可核对的事实(改动清单 + 分支/PR 链接),**本次无改动**须**显式说明**("本次检查未发现问题"是合法完成态)——**"有改动却没提交也没推送"与"没有改动却没说明"同属交付失败**。 * **公共约定**(二者一致,**展开见 `prompts/_common.txt` 的对应片段——此处只作索引,不复述正文**,防片段一改这里即漂移): ** `baseline-and-compat` / `compat`:**动手前**(先查现状、先调研最佳方案(调整内容一类需求须先检索可参照的标准与更优的设计)、先定基线(该不该做按改动性质判,取值见 `specs/general/verify.adoc`「验证的适用边界」)含既有用例先跑通并留证、清单还要先核"够不够用"、大范围替换/废弃既有流程先经用户确认、不得绕开既有体系另写一套)与**改动后**(老用例不得为迁就改动而改判、新老用例同时成立、兼容不了先停下确认、验证须与基线同一套校验逐项比对)。 ** `scope-boundary`(交付边界之一):**改动落在哪一份工作空间/哪个项目上**——只改本次任务的工作空间(平台上即只改当前项目),未声明即拒绝越界改动、引用 ≠ 授权。 ** `no-self-dispatch`(题面侧步骤,不在公共片段内):**不得自行发评论唤起自己(L1)**——想分步就**先停**、由**人**另发一条评论决定要不要再来一次("分两步更清楚"不构成理由;判据是这条评论发出去没有);它**不是"少做一步"的许可**——拿不到独立复核时在本次执行内按降级路径补、交付照常。 ** `env-guard`:只在命中可实测标志的环境里生效的专用口径(标志与本文件的登记口径见下「维护约定」),未命中按其末尾中性口径执行。 ** `delivery`(交付边界之二):**交付到哪一步为止**——交付即汇报(输出通道只有两条)、**任务中途也有交付**(大任务先分阶段、先规范再执行,每个阶段完成即交付,不得攒到收尾一次性交付;阶段成果只留在临时产物/上下文/未提交的工作区里等于没有交付——判据本体见 `specs/general/git.adoc`「分阶段交付(大任务)」)、交付按执行环境区分(本地人工场景不提交不推送 / CI 等自动化场景必须提交推送并建 PR)、**合并一律不做(L1,人工授权也拒绝)**。**生效范围(L1)**:未在本文件的登记表里登记、或未被任何提示词引入的片段**一律未生效**——不得凭它是「方向性前提」就当它已在某个提示词里生效。本仓库另用的片段:`build-parallel` / `no-self-dispatch` / `no-self-dispatch-body` / `delivery-report-body` / `report-tail` / `assembly-check`(引入方与次序见各提示词正文)。 ** 共享 vs 本仓库特有(本仓库落点):**变更日志的登记时机(默认动作是不新增、不修改)**与**规则与实例分离(规范保持通用、本仓库特有的实例只登记在图书馆与 changelog)**两条只对本仓库成立**——载体是本仓库自身规范入口(**不在引用方读到的那一层**,故此处不给路径),由本仓库自己执行;公共内容与提示词里**不复述**它们(判据:同一内容只在一处定义,其余处只作引用)。 ** `delivery` 与 `scope-boundary` 缺一即少一条交付边界**;各片段的正文只写在 `prompts/_common.txt`(一处维护、两处生效)。 * **三者分工(重点不同、勿混用)**:`prompts/review.adoc` 以"**检查修复问题**"为目标——检查出问题就修,无问题即结束,原则上不重构;`prompts/refactor.adoc` 以"**重构**"为目标——检查服务于重构,产出必须是结构改动;`prompts/spec-refine.adoc` 以"**本项目公共规范的冗余与无效内容收敛**"为目标——产出是优化后的项目文本,**只减冗余、不改规则**(且**只对本项目生效**)。**review 时不得顺手重构无关紧要的代码,重构时不得只检查/只出报告,优化公共规范时不得顺手改动规则本身或做与冗余无关的改写。** == 优先级与隔离(方向性前提,先读) 各提示词的**侧重不一样,这是方向性的东西**——后续所有操作、要求都以它为依据,**方向错了后面全做错**,故登记与提示词正文都把侧重放在最前,并按业界共识标注优先级、做观念隔离: * **侧重即方向、优先于步骤**:主侧重是唯一判定方向,与任何步骤、细节、惯例冲突时以它为准;主侧重不成立时须停下说明,不得改做其他侧重。 * **依据有落点**:提示词会让 AI 判断"哪里是重点、某条要不要保留",涉及依据与取舍时应能查到依据本身(本仓库存放在 `library/`,**它不在默认引用面内**——引用方只按公共规范加载、其项目里也没有本仓库的文件,故其他项目按其自身项目规范约定的依据落点执行)。依据找不全时按 `specs/general/source.adoc` 如实标"未确证",不得凭印象补。 * **优先级按业界共识加载**:规范与任务条目按 **L1 强制 / L2 建议 / L3 允许** 三级执行(判定用语按 RFC 2119 / RFC 8174 的 `MUST`/`MUST NOT`/`SHOULD`/`MAY` 与 ISO/IEC Directives Part 2 的 `shall`/`should`/`may` 归并);**L1 不可协商、不可降级**,冲突时 L1 最高优先,无法满足须停止并说明。分级定义、各级遵守要求与最高关注项见 `specs/core/execution.adoc`「分级与最高关注项」。提示词**不重复定义规则**,而是让 AI **加载业界共识的分级规则**并据此判断"哪里是重点"。 * **优先级由级别表达,不靠重复书写**:重点项在出现处标 **L1**(违反即未完成),未标注者按其用语判定。 * **观念隔离**:只执行本提示词主侧重范围内的动作,**不混用另一提示词的步骤**(review 不得顺手重构、refactor 不得只检查/只出报告)、**不做跨任务的顺手改动**、**不被无关上下文带偏**(冲突时以主侧重为准);isolated 的边界随主侧重判定。隔离要求由 `primary` / `isolation` 公共片段在各提示词代码块内一并注入。 == 维护约定 * **新增提示词**:在 `prompts/` 下新增文件(命名与任务场景对应,正文含文档说明 + `[listing]` 可复制代码块),并同步在本文件登记(含**主侧重**与**优先级**两列、且被登记文件真实存在)。 * **题目与片段的改动边界(L2)**:**改题面(任务目标、步骤、交付物)属"新版本"**——已按上一版提示词下达的任务应继续按那一版执行,新版本对新任务生效,**不得中途改题面**;但**纯缺口的两类改动不受此限、应当就地补齐**:① **公共片段里缺一条边界**(如 `delivery` / `scope-boundary` 少了一条)、② **代码块里少一个 `include`**——这两类**只补片段正文与引用本身**,**不扩大题面**,故对**已在执行的任务同样成立**,且**必须先补进片段**(一处维护、两处生效),**不得在两个提示词里各写一遍**。 * **公共片段(`_` 前缀)**:文件名以 `_` 开头者为**提示词公共片段**(如 `prompts/_common.txt`)——存放多个提示词之间**完全相同**的段落,由各提示词在代码块内用 `include::` 引用共用,改一处即各处同步;**不是提示词**,不单独复制使用、不在本文件登记为任务提示词。新增/调整提示词时,相同内容一律抽到公共片段并用 `include` 引用,不重复书写。 * **环境标志与专用口径(`env-guard`)**:提示词可带**只在特定执行环境生效**的专用口径,以**可实测的环境标志**为开关(现为 `printenv CNB_EVENT` 非空 且 触发内容含 `@` = CNB 平台 NPC 唤起评论;实证清单见根目录 `AGENTS.adoc`)。**未命中标志时按其末尾的中性口径执行**——不得把环境专用做法当通用要求,也不得把标志当成"我记得有"(须实际执行该命令)。该片段由各提示词代码块 `include` 引入,**登记处即本文件**。 * **公共片段中的方向/观念前提**(`primary` / `priority-rules` / `isolation`):属**同源片段**(逐字相同、由公共片段一处维护),加载时**各提示词自己的主侧重由本文登记表替换,不得跨提示词照搬侧重文本**——同源指表述一致,侧重内容不同,混用即方向错误。 * **完整性要求**:抽离共用**不得影响提示词的完整可用**——`include::` 由 AsciiDoc 解析时展开,须保证**装配后**(上面「取值路径与装配状态」里"已装配"那一类)**步骤齐全、语义连贯**(不得因抽离而缺步骤、断句或丢约束);取到**未装配**的原始文件时,按公共片段文件的说明获取对应内容后一并使用。 * **提示词自身的验证口径**:提示词属**会被未知项目复制执行**的产物,故其维护同样按三视角核对——**①完整性**(步骤齐全、`include` 抽离后语义连贯)、**②有效性与认知质量**(步骤与判据可执行、依据说对)、**③接纳面**(复制到未知项目后与该项目规范的冲突次序是否写明、是否依赖本项目私有物、是否默认改动对方工作区、成本是否可控);其中"最终验证"步骤须逐项给出运行命令与实际统计结果,受环境限制的项按"尽力而为"写明未执行原因(判据见 `specs/general/verify.adoc`「验证总纲」)。 * **主侧重与优先级须机械钉住**:本文登记表的主侧重/优先级、各提示词代码块内的 `primary`、以及公共片段中 `priority-rules` 的 **L1/L2/L3** 分级必须一致存在,三处须一致,并由**维护本仓库的一方**落到具名机械校验(非仅靠自觉;具名抓手见根目录 `AGENTS.adoc`)。