Skip to content

feat(settings): add ClaudeCode/CodeX preset tags with 8-language i18n and P1 tag_prompts injection - #1123

Open
3316891527 wants to merge 1 commit into
AAswordman:devfrom
3316891527:feat/engineering-preset-tags
Open

feat(settings): add ClaudeCode/CodeX preset tags with 8-language i18n and P1 tag_prompts injection#1123
3316891527 wants to merge 1 commit into
AAswordman:devfrom
3316891527:feat/engineering-preset-tags

Conversation

@3316891527

@3316891527 3316891527 commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

变更说明 / Description

做了两件事:

  1. 在标签市场中新增了两个内置预设标签(工程开发分类)
  2. 修正了标签提示词注入时的结构问题,避免语义混杂到角色人设中

背景说明:Operit 是移动端通用 Agent,而非专门的编程助手。像 Claude Code、CodeX 这类高度工程化的编码规范,适合作为可选预设提示词放在标签市场中,供用户在编码场景下按需挂载,而不是默认强加给所有人。


具体做了什么

1. 新增两个预设标签(工程开发分类)

标签 图标 类型 说明
ClaudeCode预设提示词 Code FUNCTION 极简、自律与诚实的代码行动规范,抑制过度设计与测试造假
CodeX预设提示词 Terminal FUNCTION 探查优先、非破坏优先、决策闭环的工程行动规范

两者均通过 8 语言字符串资源(ZH / EN / KO / ES / PT-BR / ID / MS / RO)本地化,不再使用中英硬编码双语字段。

2. PresetTagBilingual 升级为资源驱动

原本的 nameZh/nameEn/... 硬编码字段扩展为支持 resId 驱动,标签市场界面展示随系统语言自动切换,与其它界面文案的本地化行为保持一致。

3. 新增 EngineeringPromptDefaults(纯函数,无数据库改动)

注入时按下述规则解析标签内容:

text
标签名命中 ClaudeCode / CodeX

├── 内容 == 任意语言版本的默认文案 ──> 置换为高密度英文核心(省 Token)

└── 内容已被用户编辑 ──> 100% 原样使用用户内容

核心原则:界面本地化亲民 + 未修改时注入纯英文核心 + 一旦修改则用户内容最大。用户的编辑永远不会被系统覆写。

4. 标签提示词注入结构:从纯文本拼接改为 P1 独立语义分支

此前 CharacterCardManager 是把标签内容直接字符串拼接在角色人设后面,导致工程规范与角色语气在同一段纯文本里混杂,模型难以区分“我是谁”与“我该怎么干活”。

现在改为独立的高权重语义区块:

text
System Prompt
├── P0 核心身份与角色人设 (角色卡 / 自我介绍)
├── P1 ← 本 PR 新增
│ ├──
│ │ Anti-Overengineering / Faithful Reporting
│ │ Reversibility & Blast Radius / Diagnostic Discipline
│ └──
│ Explore-before-ask / Non-destructive-first / Decision closure
├── P2 包系统与扩展机制 (运行时动态注入)
└── P3 工具声明 (JSON Schema) (运行时动态注入)

设计依据:空内容标签会被过滤,标签体做 4 空格缩进以保持层级可读。XML 区块化是 Anthropic 官方提示词工程指南推荐的结构方式,且与仓库现有的 <user_profile><assistant_role> 等注入标签风格一致。


测试 / Testing

  • 新增单元测试 EngineeringPromptDefaultsTest,覆盖默认文案识别、多语言命中、用户编辑保留以及核心原则条目完整性。
  • CI(android-build.yml, assembleDebug)构建通过。
  • 真机验证:挂载两个标签后向模型询问其系统提示词构成,模型完整复述出 Claude Code Engineering Guidelines 下的 Anti-OverengineeringFaithful ReportingReversibility & Blast RadiusDiagnostic Discipline 四项条目,确认 P1 分支已按预期送达且未与角色人设混杂。

不包含的内容

  • 未修改任何数据库 schema,无迁移风险。
  • 未引入全局默认系统提示词,通用对话场景的 Token 占用不受任何影响(标签未挂载时零开销)。

@CATMIAOZHI
CATMIAOZHI self-requested a review September 7, 2026 00:06

@CATMIAOZHI CATMIAOZHI left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CLEAN:完整差异与实际调用路径的静态审计未发现有充分证据的 P1/P2 问题。

审计提交:e54f7d725df5ab83a22075537b613ff4418e2484。已完成独立工作树全 diff 与调用链审查、独立 agent 复核及 diff --check;审计前已请求 CATMIAOZHI review。

验证范围:当前上游仓库该 HEAD 的 check-runs 为 0,审计前无 review 线程。现有 PR workflow 仅匹配 development,而本 PR 目标为 dev;构建/测试 push workflow 匹配 main。已核对仓库 Actions Variables(GITEE_OWNER、GITEE_REPO)及工作流任务。已核实作者 fork 的 Android Build 对应本次 HEAD 且成功;该运行的步骤只执行构建,没有 JVM 单测执行步骤,因此不将其视为单测通过证明。遵守目标仓库 AGENTS.md,本次未运行本地编译、测试、Lint 或真机验证;未修改源码。

重点核对:两个预置需用户在标签市场手动添加并绑定;未自动挂载到角色。默认正文转换与自定义正文保留已追到最终系统提示词拼装路径。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants