023b2c6145
feat: 技能 publish 落点按 org_id 分流——组织自有规范落 org scope
...
机构技能层架构配套:技能提议 publish 时按提案 org_id 决定落点——
org_id='0'(ocai/平台)写 global(所有组织缺省共享);org_id≠'0' 写
skills/orgs/{org_id}/(组织自有开发规范,经 get_merged 的 org 缺省继承
+ 组织覆盖机制,该组织项目角色可见且覆盖 ocai 同名)。
2026-08-23 21:43:04 +08:00
48a26e5375
feat: org scope 缺省继承——ocai(org_id='0')机构技能所有组织共享,其他组织可覆盖
...
机构技能层架构:org_id='0' 是 ocai 组织(缺省机构),其机构技能(基础模块
apppublic/sqlor/ahserver/rbac/appbase/accounting 的应用/模块规范)是所有组织
缺省共享的内容;其他组织(org_id≠'0')先继承 ocai 缺省,再用自己 org scope
的同名技能覆盖(很多组织有自己的开发规范)。
get_merged 改为:先 update _orgs['0'](ocai 缺省),再 update _orgs[org_id]
(组织自有,org_id≠'0' 时),实现缺省继承 + 组织覆盖。
2026-08-23 21:40:08 +08:00
94bb572785
feat: develop 接任务先 classify_task 判断来源 + PM 派发修复bug要求查所有代码
...
1. bug-fix 技能:新增 classify_task 工具到 tools,写明任务来源→bug状态机决策表
2. develop 角色技能:新增「接到任务第一步必做」——先 classify_task 判断来源,
bug_fix/rework 任务 start_fix→fix_bug,new_dev 不走状态机
3. PM 角色技能:派发「修复 Bug」任务 description 必须要求 develop 检查所有模块
同类问题(不能只修报出来的),并强制 start_fix+fix_bug
2026-08-23 21:23:53 +08:00
5619c6e41d
fix: bug-fix 技能状态机描述放宽 open,明确修完代码必须 fix_bug
2026-08-23 15:19:23 +08:00
6c60ef8160
fix: develop 技能补回退重做任务必须 fix_bug 规则
...
hrs6 断链根因3:develop 回退重做任务修了 payroll 脚本(code_files 交付)
但没走 start_fix/fix_bug 状态机,bug 全 open,PM 审核通过后按闭环规则
「查 status=fixed 的 Bug 派重新部署」查不到 fixed bug,无从派发,链断 approved。
补「回退重做任务」职责:修完代码必须 list_bugs 找对应 bug → start_fix →
fix_bug 标记 fixed。修复代码和推进 bug 状态是一体的,缺一即断链。
2026-08-23 14:48:20 +08:00
8068371ac1
fix: bug 闭环规则保持简单——部署出错报 bug,bug 修复后才重新派部署
...
纠正「部署 Bug 立即 rollback 回退 deploy_test 重部署」的死循环设计:
- 部署 Bug(代码问题)→ confirm + 派「修复 Bug」给 develop
- 部署 Bug(环境/运维)→ 冒泡人/运维,不 confirm 不派发
- 关键:bug 修复后(fixed)才重新派 deploy_test 部署,bug 未修复前不派部署
避免「部署失败→立即重部署→再失败」死循环,让闭环简单运转。
2026-08-23 12:47:31 +08:00
e945873fdd
feat: 部署失败也报 Bug,PM 统一分析根因指派
...
bug 闭环从「只覆盖功能 bug」扩展为「覆盖所有失败」:
- 新增 bug-report 能力(bug_report_capability: report_bug+list_bugs),
deploy_test 部署失败时 report_bug 报部署 Bug(不含 verify/close,避免越权)
- deploy_test 角色技能:capability 加 bug_report_capability,部署失败 → report_bug 报 Bug 让 PM 分析
- test 角色技能:冒烟失败也从「不 report_bug」改为 report_bug 报部署 Bug
- PM bug-confirm 能力:判断根因细分「部署 Bug(环境/运维→deploy_test,代码→develop)vs 功能 Bug(develop)」
- PM 角色技能:同步 bug 闭环职责
统一原则:任何失败都 report_bug 进 sd_bugs,PM 是唯一分析+指派点。
2026-08-23 11:28:05 +08:00
19bffb4465
fix: 修复产线三个「假产出/假通过」缺陷(hrs6 死循环根因)
...
1. deploy_test 编造部署成功:技能加硬门禁——/healthz 必须实测 200 才算成功,
000/超时/连接拒绝一律算失败,必须如实记录+冒泡,禁止编造「返回200/部署成功」。
2. PM 审核不验证真实性:加审核标准——审核 deploy_test 必须独立 curl /healthz 验证,
不能只信文档声称,声称200实测000=编造,直接退回。
3. develop 产出占位符:module-development-spec 加硬约束——init/data.json 必须是合法
JSON 真实种子数据,禁止写「8组appcodes编码种子」这类占位符文本。
4. build.sh 不 fail-fast:webapp-deploy 加硬约束——必须 set -e,任一步失败立即退出,
禁止 init_data 失败后继续 start app 造成「看似成功」。
根因链:deploy_test 编造 /healthz 200 → PM 轻信 approved → 应用实际没起来 →
test 冒烟失败 → rollback → 死循环。
2026-08-23 11:21:02 +08:00
df7f5a0089
feat: PM 审核 Bug 时判断根因(环境 vs 功能)并正确指派
...
PM 审核 test 时,对 open Bug 逐个读 title/description 判断根因:
- 环境问题(部署/DB/服务/网络)→ review_rollback 回退 deploy_test,不 confirm
- 功能问题(代码逻辑)→ confirm_bug + 派发「修复 Bug」任务给 develop
- 误报 → reject_bug
正确指派:环境问题交部署工程师,功能问题交开发工程师。
2026-08-23 10:50:18 +08:00
56a5ef79dd
feat: test 角色技能明确两种测试 + 问题归属区分
...
① 冒烟测试=验证部署(/healthz/端口/DB/进程),部署不正常 → 问题冒泡给部署工程师
deploy_test 修复,不 report_bug、不落 sd_bugs(部署问题不是功能 Bug)
② 用例测试=验证功能(CRUD/接口/RBAC/数据契约/i18n),功能 fail → report_bug 落 sd_bugs
交给开发工程师 develop,走 Bug 闭环
明确问题归属:部署问题→deploy_test,功能问题→develop。
2026-08-23 10:48:14 +08:00
8b0b1d71fa
fix: bug-confirm 能力明确「只处理当前迭代的 Bug,不跨迭代/跨项目」
...
Bug 必须有 iteration_id 归属,闭环时 list_bugs 按当前迭代 id 过滤,
其他项目/其他迭代的 Bug 不 confirm/不修复/不关闭。
2026-08-23 10:43:29 +08:00
2ac7702c39
feat: Bug 闭环能力通过角色技能定义扩展(测试→bug→修复→复测→关闭)
...
按「能力通过技能定义扩展」原则,代码只补工具原语,闭环行为全在技能里:
- 新增 bug-confirm 能力技能(capability: bug_confirm_capability + confirm/reject/reopen/list_bugs)
- PM 角色技能:capability 加 bug_confirm_capability + 职责「审核 test 通过后查 open bug,零散→confirm+派发修复任务,系统→rollback;修复通过后派发复测任务」
- develop 角色技能:职责「修复 Bug 任务 → start_fix + fix_bug」
- test 角色技能:职责「复测任务 → verify + close / reopen」
- bug-test 能力补 reopen_bug 工具
LLM 读技能后自主驱动闭环,代码不写死「查 bug→派任务」逻辑。
2026-08-23 10:32:28 +08:00
6863f73728
fix: 全部 SDLC 规范技能 description 改三段式(触发场景+关键约束+不加载后果/边界)
...
让所有角色做事都能靠 description 判断加载哪个技能:
- database-table-definition-spec/crud-definition-spec/dspy-file-implementation-spec/sqlor-database-module
由英文「Standardized/Comprehensive...」改为中文触发式(定义表结构/CRUD/dspy/写DB时必读+不加载后果)
- project-directory-spec/sdlc-repo-standard/webapp-deploy/database-design
补「不加载后果」+ 互相指路边界(表四段式↔database-design、目录落点↔project-directory-spec)
2026-08-22 23:19:59 +08:00
aa756e5b4c
fix: 技能 description 改为「触发场景+该加载哪个规范+不加载后果」
...
根因:develop 从不 load_skill module-development-spec,是因为 description 只写「是什么」
(英文的 Standardized workflow...),没写「什么场景必须加载我、不加载会怎样、什么场景别用我」。
目录层只注入 name+description,description 是 agent 决定是否 load_skill 的唯一触发依据,
写不清触发条件 → agent 不加载 → 规范静默失效。
改为:每个角色技能 + 关键规范技能的 description 都写清
① 触发场景(开发模块/应用脚手架/部署/测试/审查时必读)② 该加载哪个规范 ③ 不加载的后果(模块带 app.py 等)。
2026-08-22 23:13:28 +08:00
054dc6dd1f
feat: deploy_prod 角色技能加「生产部署需人工指令」门禁
...
生产环境部署是高风险操作,不得自动执行。只有用户明确指令「部署生产」后才执行,
未收到人指令时 ask_question 冒泡等待。
2026-08-22 20:14:37 +08:00
b1b255b95f
feat: 部署信息集中到工作空间根目录 env/ 文件夹(单一事实源)
...
- project-directory-spec:顶层目录加 env/(test.json + prod.json),
集中保存主机/SSH/端口/DB/路径/域名,改配置只改一处
- requirement:明确部署环境需求落成 env/test.json + env/prod.json
- deploy_test/deploy_prod:从 env/{test,prod}.json 读环境信息(不再写死、不再从 apps 散读)
部署信息不写死在技能里,也不散落项目各处,集中在 env/ 一处。
2026-08-22 19:48:53 +08:00
0dacb96388
fix: deploy_test/deploy_prod 角色技能去掉写死的环境信息
...
- deploy_test:删除写死的 hrstest.opencomputing.cn/~/hrs_app/test:test123 默认环境,
改为从 apps/{应用名}.md 的「部署环境」章节读环境信息(主机/账号/目录/端口/DB)
- deploy_test:补「清理旧进程」步骤(部署前 kill 旧模块独立进程,只留 1 应用进程)
- deploy_prod:同去掉写死环境,改从需求读;修正「各模块各起服务」→「应用单入口单进程」
环境信息属于项目需求,不应写死在角色技能里(不同项目环境不同)。
2026-08-22 19:43:49 +08:00
29e7748037
fix: requirement 角色补「需求不明确时禁止编造具体值」约定
...
端口/IP/域名/账号/资源规格等需求未给出或含糊的值不得自己编(编造 9286/编造子域名都是错的),
应标注「待明确」+ 列问题清单,关键信息用 ask_question 冒泡问用户。
原 system_prompt 精简时删掉了这条约定但漏补到技能,导致 requirement 编造了端口 9286。
2026-08-22 19:34:10 +08:00
349752b473
feat(agent): 产线功能菜单按 require_project 标记,无会话当前项目时点击报错
2026-08-22 18:55:00 +08:00
d47a4a5d47
feat: sdlc-repo-standard 补通用交付约定 + develop/deploy_test/deploy_prod 角色技能补引用
...
- sdlc-repo-standard 加「通用交付约定」:deliver+files 列出产出、git 提交由 PM 审核后统一执行
- develop/deploy_test/deploy_prod 角色技能应遵守规范补 sdlc-repo-standard(交付件格式+交付约定),
配合 system_prompt 精简后不丢交付/审核约定
2026-08-22 18:52:03 +08:00
59f77f1756
fix: DBNAME 硬编码规范归属 + develop 职责补应用脚手架
...
- module-development-spec: 加「模块取库名禁止硬编码 DBNAME」规范(用 ServerEnv().get_module_dbname()),
修正过时的 Database Name Consistency Check(原暗示模块可硬编码 DBNAME)
- web-application-spec: get_module_dbname 示例改为应用级映射(勿写死 'dbname')
- agent.develop/role/SKILL.md: 职责区分应用级(产出应用脚手架)/模块级(产出Python包)
2026-08-22 18:35:28 +08:00
8c22f654ae
fix: QC review-design 补「应用与模块关系」架构检查项
...
- 对照 web-application-spec + module-development-spec 检查:
应用是唯一部署单元(一入口一端口)、模块不独立部署(无 app.py/端口/Dockerfile)
- 目录结构应含 {应用名}_app 应用仓库,模块仓库带 app.py/Dockerfile → 退回
- 出现'四模块服务''每模块一端口/容器' → 退回
2026-08-22 17:13:57 +08:00
f28e39e0b3
feat: 应用规范补充模块完整导入清单(build.sh 一键部署 8 步)
...
git pull + pip install + wwwroot 软链 + i18n 合并 + json2ddl 建表 + xls2ui CRUD + init_data 初始化数据 + load_module 挂载
2026-08-22 16:40:37 +08:00
bde08ea889
fix: 规范层约定应用与模块的关系(应用=唯一部署单元,模块不独立部署)
...
- project-directory-spec:应用是唯一部署单元(一入口一端口),模块不是独立部署单元
- web-application-spec:业务模块通过 load_{module}() 导入应用
- module-development-spec:模块不是独立部署单元(无 app.py/端口)
- design 角色技能:应遵守规范加 web-application-spec + module-development-spec
- deploy_test 角色技能:部署应用单入口,不是各模块各起服务
2026-08-22 16:29:47 +08:00
7b3e474b4d
fix: review-deploy 改 Python 直跑标准(无docker) + 对外地址用主域名+端口禁编造子域名
...
- QC review-deploy:去 Dockerfile/docker-compose/docker compose ps(测试环境无docker)
- deploy_test + review-deploy:对外地址只用 hrstest.opencomputing.cn:端口,禁止编造子域名
2026-08-22 12:17:40 +08:00
dfcde5dd0e
feat: deploy_test 角色技能加入测试环境配置(hrstest + DB + 部署路径)+ SSH Python 直跑部署方式
2026-08-22 09:54:04 +08:00
3b4ad87393
feat: 角色通用工作模式(发现问题→冒泡问题→暂停自己)+ deploy 改用 Python 直接跑
...
- team-communication 加「四·五」:角色执行任务遇条件缺失/信息不足/无法决策,必须 ask_question
冒泡问题暂停自己等答复,禁止写占位符/假装完成/硬编
- deploy_test/deploy_prod 角色技能重写:测试机无 docker 改用 Python 直接跑(python app.py),
部署前检查条件缺失 → ask_question 冒泡暂停,不硬编
2026-08-22 09:33:11 +08:00
5a4b6e4ccc
feat: capability 缩小——按角色职责拆分(根治越权注入)
...
- feature_capability 拆成 3 个细分能力:feature_propose_capability(requirement 提功能)
/ feature_review_capability(pm 审批) / feature_dev_capability(develop 开发)
- bug_capability 拆成 2 个:bug_test_capability(test 上报/验证/关闭) / bug_fix_capability(develop 修复)
- common/feature 和 common/bug 保留纯状态机规范(去 capability+tools)
- 新建 5 个细分能力技能声明细分 capability+tools(系统读建立映射)
- 角色技能声明细分 capability:requirement=feature_propose / develop=feature_dev+bug_fix
/ test=test_plan+test_case+bug_test
- 效果:requirement 不再拿到 approve_feature 等 pm 专属工具,从源头避免越权
2026-08-22 01:32:01 +08:00
f810497384
feat: 角色技能声明 capability(能力工具注入的声明层)
...
- requirement/develop: capability: feature_capability
- test: capability: test_plan_capability, test_case_capability, bug_capability
- deploy_test/deploy_prod: capability: deploy_capability
2026-08-22 01:19:27 +08:00
e2869730a0
feat: 部署工程师职责补部署前条件检查 + 部署后进程/外网URL验证
...
- deploy_test/deploy_prod role 补「部署前检查条件」:应用是否有部署脚本、部署环境是否可用,
不具备则退出报错不硬部署
- 补「部署后验证」:检查进程(healthy/ps)、检查外网/访问URL(curl 200)、DB 建表
- QC review-deploy 同步对齐:核查前置条件检查 + 进程/外网URL 验证
2026-08-22 00:51:27 +08:00
17eab29fcf
feat: 部署工程师职责补真实部署验证 + test 冒烟测试前置
...
- deploy_test/deploy_prod role 明确职责:真实执行部署(docker compose up/deploy.sh)+验证
(服务healthy/健康检查200/DB建表/页面API连通),不是只写配置文档——根治纸面部署
- test role 补冒烟测试前置:开始测试前先检查测试环境可用性,不可用则退出测试提问题,不硬测
2026-08-22 00:48:30 +08:00
3a18ce4da8
feat: 角色技能拆分——QC 按被查对象一技能审查 + 职责落库明确
...
- QC 角色技能拆成 6 个:role(职责总览) + review-requirement/design/develop/test/deploy
一个被查对象一个技能,每个技能写清审查该角色产出的完整检查清单
- review-test 重点补上「落库真实性」:验证 sd_test_plans/sd_test_cases/sd_bugs 真实落库、
用例数/执行数/Bug 数与报告一致、selftest 非占位符——根治「纸面测试」问题
- review-requirement 补上 sd_features 功能清单落库检查
- requirement role 明确职责:用 propose_feature 拆解需求提功能(落库 sd_features)
- test role 明确职责:create_test_plan/create_case/pass/fail_case/report_bug 落库三张表
- database-design 移回 agent.design(design 角色数据库设计职责技能,QC 靠 review-design 审查)
2026-08-22 00:44:21 +08:00
0719859fab
feat: QC 角色职责具体化到分角色检查清单 + database-design 移到产线 common
...
- QC 角色技能职责重写:从笼统的「合规+质量检查」改为分角色的完整检查清单
(requirement/design/develop/deploy/test 各自检查维度,develop 含目录结构/表定义/CRUD/
代码语法/禁项/注册接线/sqlor API/RBAC/i18n 逐项机械检查)
- database-design 从 roles/agent.design/ 移到 common/:它是数据库设计规范,
design 产出时遵守 + QC 检查时对照,放产线 common 让两个角色都能 load_skill 加载
- design role 技能同步更新 database-design 引用描述
2026-08-22 00:18:00 +08:00
1a2e198384
feat: 每个角色一个角色定义技能(角色+职责+规范列表)
...
- 8 个角色各建 role/SKILL.md:requirement/design/develop/deploy_test/test/deploy_prod/pm/qc
- 角色技能只定义角色、职责、应遵守的规范列表(引用 global 规范,需时 load_skill 加载全文),
不复制规范全文(删除之前复制 module-development-spec 全文的 develop 角色技能)
- 保留 agent.design/database-design(design 角色数据库设计职责的专属规范)
- 这样缺省开发产线(sdlc_general)各角色自动加载角色定义+规范列表,其他公司可复用机制也可定制
2026-08-22 00:12:41 +08:00
4b8823f774
feat: 新增 develop 角色技能 module-development + project-directory-spec 模块结构改引用 module-development-spec
...
- 新增 develop 角色技能(pipelines/sdlc_general/roles/agent.develop/module-development),
把模块开发规范写进角色技能而非 system_prompt:模块目录结构(包目录=模块名)、
init.py三处同步、表定义四段式/CRUD格式、RBAC load_path、模块skill文档、sqlor标准API
- project-directory-spec 的模块仓库结构(src/ddl)改为引用 module-development-spec,消除两本规范冲突
- 这样用户用缺省开发产线(sdlc_general)做开发时,develop 角色自动加载该技能遵守规范,
其他公司可复用机制也可定制自己的角色技能
2026-08-22 00:08:34 +08:00
304acab965
fix: project-directory-spec design 落点表补 skill/SKILL.md(模块技能文档)
2026-08-21 23:36:02 +08:00
c2dd36d77e
chore(skill): 删 dead code ensure_org_skills + 更新 docstring 反映单一技能树
2026-08-21 19:20:13 +08:00
b9998ed00d
refactor(skill): 单一技能树——七级 scope 全在全局 skills/ 下,去掉 ensure_org_skills 复制副本
...
- skill_loader: 加 project_common scope(projects/ 项目通用,不分 project_id) + project 私有改挂 orgs/{org_id}/{project_id}/,SCOPE_PRIORITY 七级
- skill_pack: ensure_org_skills 去复制逻辑改薄封装返回 get_skills_base(),删 _sync_tree/get_org_skills_dir dead code
- skill_pack.dspy/skill_proposals.dspy: base_dir 改全局 skills/,删同步所有机构循环
2026-08-21 19:18:45 +08:00
70b9df480c
fix(skill): 目录层 essential 基础规范必显示——project-directory-spec 标记 essential:true,目录层排序 essential 优先,避免 global scope 低优先级被截断
2026-08-21 18:41:09 +08:00
905e01f581
feat(skill): 分层导入机制——Skill 支持 references/scripts/templates 子文件加载 + 新建 project-directory-spec 项目目录规范 + sdlc-repo-standard 改为引用新规范
2026-08-21 18:36:10 +08:00
93079c1a54
refactor(skills): 精炼 7 个开发技能文本(压缩 WRONG/CORRECT 双代码块为规则+警示,规则100%保留)
...
module-development-spec 99KB→57KB、harnessed-module-development 101KB→62KB、
crud-definition-spec 78KB→46KB、dspy-file-implementation-spec 51KB→26KB、
ahserver 50KB→26KB、sqlor-database-module 49KB→26KB、database-table-definition-spec 20KB→19KB
合计 448KB→263KB,压缩 41%,节省约 92k token
2026-08-21 12:24:26 +08:00
cc1cd84fae
fix(skill): 回退 description 截断缩短,文本精炼应统一在技能文件本身做
2026-08-21 12:07:20 +08:00
a40afccca3
fix(skill): 技能优先级顺序改为 role>project>pipeline>org>global,目录层描述精简
2026-08-21 12:05:27 +08:00
127474de6f
fix: 会话空间 AgentIO 加 margin(0 24px 24px 24px),聊天输入区不再贴边
2026-08-20 23:25:21 +08:00
37b7afffd9
feat: 智能助手功能菜单(工作空间/项目/Bug/测试用例/迭代)从 TabPanel 上方移入会话 content 内,与会话项目保持一致
2026-08-20 22:01:15 +08:00
69c7c46718
docs: sdlc-repo-standard 技能更新 git 提交时机——改为审核通过后统一提交,agent 不再每次产出 git_commit_push
2026-08-20 21:45:58 +08:00
03745f38e9
feat(agent): 开发产线多会话 TabPanel + 新建会话按钮
2026-08-20 17:39:34 +08:00
6826d49f01
fix(skill_pack): ensure_org_skills 同步 pipelines/(产线common+角色skills) 到机构工作目录
...
此前 ensure_org_skills 只复制 global+packs,产线技能(pipelines/{pid}/common/
与 pipelines/{pid}/roles/{role}/)未同步到机构运行时目录,导致角色 agent 加载不到
角色技能。新增 _sync_tree 递归增量同步 + PIPELINES_DIR 常量。
2026-08-20 12:00:09 +08:00
0579609d19
feat(skill): 产线设计师数据库设计规范 database-design
...
- 字段语义→类型/长度/精度映射(金额double 18/2、外键str 32、日期date等)
- 系统不加外键,codes段逻辑关联
- 编码字典 appcodes/appcodes_kv 初始化数据设计
- 种子数据在应用模块自身build.sh落库(非平台代码)
- 运行时环境变量 init/.模块名 文件约定
2026-08-20 11:29:45 +08:00
289a4a4cae
feat: repos目录规范——项目过程仓库(阶段/QC/PM文档)+应用仓库+模块仓库; 阶段文档产出到repos/project并git commit; 临时文件不进仓库
2026-08-20 00:38:51 +08:00