Commit Graph

96 Commits

Author SHA1 Message Date
lanrtop
806205b8b0 feat(cicd): add safe agent workflow projection
All checks were successful
Push & PR Check / check (push) Successful in 1m0s
Push & PR Check / check (pull_request) Successful in 58s
Add preview-and-apply workflow commands with digest confirmation, project boundary checks, and MCP/Tauri projections. Sync onboarding capability packs and Codex skill guidance.

Feature-Confirmed: true

Rules-Applied: R01,R02,R06,R07,R12,R13
2026-09-22 23:27:34 +09:00
lanrtop
9bf2d579ea feat(cicd): align templates with project toolchain
All checks were successful
Push & PR Check / check (push) Successful in 57s
Push & PR Check / check (pull_request) Successful in 56s
Reuse the canonical Node/pnpm contract when generating workflows, preserve per-tool legacy fallbacks, and reject conflicting declarations with evidence.

Feature-Confirmed: true

Rules-Applied: R02,R12
2026-09-22 22:38:06 +09:00
lanrtop
28e65b3d1c feat(gitea): 增加 Agent PR 安全合并门禁
合并前重新校验 PR、head SHA、CI 与 review,并用 Gitea head_commit_id 在服务端绑定用户确认的提交。同步 MCP schema、接入模板与 Codex skill 契约。

Feature-Confirmed: true

Rules-Applied: R06,R07,R10,R12
2026-09-22 21:07:55 +09:00
lanrtop
0141b8b09a feat(delivery/gitea): 归一化 Gitea 部署状态信号
All checks were successful
Push & PR Check / check (push) Successful in 1m4s
Push & PR Check / check (pull_request) Successful in 59s
保留目标 SHA、context、时间与跳转证据,按精确 context 提取部署结果,并修正 Gitea 1.22 skipped job 被编码为 success 的误判。同步落账 production 只读双证据方案与 P3-A 完成状态。

Rules-Applied: R07,R10,R13

Feature-Confirmed: true
2026-09-22 19:54:43 +09:00
lanrtop
8376bcbfd2 fix(toolchain): 修复 Windows wrapper 版本探测
优先选择 .exe/.cmd/.bat 路径并直接执行版本命令,补充含空格路径测试;运行态 MCP 已确认 Enterprise 的 Node 与 pnpm 版本可正确识别。

Rules-Applied: R07,R08,R10,R13
2026-09-22 01:23:34 +09:00
lanrtop
ead35ad12a feat(toolchain): 增加项目级运行时能力包
以 .nvmrc 与 packageManager 作为 Node/pnpm 版本事实,新增 Windows-only 的状态诊断、受控 mise 准备、MCP/Tauri/UI 双投影及 onboarding 自检。

Feature-Confirmed: true

Rules-Applied: R01,R04,R06,R07,R08,R10,R12
2026-09-22 01:08:31 +09:00
lanrtop
057c2b3a10 fix(onboarding): recognize custom lefthook checks
All checks were successful
Push & PR Check / check (pull_request) Successful in 1m1s
2026-09-21 22:42:03 +09:00
lanrtop
c9f19e2916 fix(onboarding): enforce canonical skill context
All checks were successful
Push & PR Check / check (pull_request) Successful in 58s
2026-09-21 22:02:58 +09:00
lanrtop
f04b80f201 fix(onboarding): preserve identity mismatch signal
All checks were successful
Push & PR Check / check (push) Successful in 1m34s
Push & PR Check / check (pull_request) Successful in 1m13s
2026-09-21 19:28:27 +09:00
lanrtop
f5b66aba4a feat(onboarding): version capability packs
Feature-Confirmed: true
2026-09-21 19:23:54 +09:00
lanrtop
122864f340 feat(onboarding): add capability pack status
Feature-Confirmed: true
2026-09-21 18:33:12 +09:00
e1e7ffb3b4 Merge branch 'master' into feat/project-capability-control-plane
All checks were successful
Push & PR Check / check (push) Successful in 1m0s
Push & PR Check / check (pull_request) Successful in 1m1s
2026-09-21 16:48:26 +08:00
b8f12425ab Merge branch 'master' into feat/codex-onboarding
All checks were successful
Push & PR Check / check (push) Successful in 59s
Push & PR Check / check (pull_request) Successful in 1m38s
2026-09-21 16:45:05 +08:00
lanrtop
383b5b35d7 feat(delivery): add project delivery status
All checks were successful
Push & PR Check / check (push) Successful in 1m0s
Push & PR Check / check (pull_request) Successful in 58s
Feature-Confirmed: true
2026-09-21 15:16:40 +09:00
lanrtop
6e5d3d89bc chore(rust): format backend sources 2026-09-21 12:52:37 +09:00
lanrtop
ed83f2874a feat(onboarding): add Codex MCP project integration
All checks were successful
Push & PR Check / check (pull_request) Successful in 57s
Push & PR Check / check (push) Successful in 1m3s
Feature-Confirmed: true
2026-09-21 12:35:10 +09:00
lanrtop
0a8a9e60bc feat(mcp): 飞轮派生数据工具输出 staleness 标注
世界模型自洽:模型可以过期,不能不知道自己过期。
- 新增 sync_state 表(domain 单行 upsert)+ touch/read 依赖注入函数
- 三个写入点:轮询成功(polled>0)、webhook PR 落库、webhook push 落库
- get_pr_events / get_commit_metrics 输出首行标注最近同步时间与距今分钟数
- get_ci_status 为实时 Gitea API 调用,不在范围
- 实锤依据:get_pr_events 延迟致 /ship 误判无 open PR(enterprise-system 2026-07-28 回传)

Feature-Confirmed: true
Rules-Applied: R05, R06, R07
2026-08-23 15:46:03 +09:00
lanrtop
ca67e188c0 fix(ci-status): get_ci_status 结论区分三态——pending 不再误输出 ❌
add has_failure flag,使结论由两态(pass/fail)扩展为三态:
✅ 全部通过 / ⏳ 检查进行中 / ❌ 存在失败检查。
修复前 pending 和 failure 均输出 ❌,/ship 轮询无法区分排队与真实失败。

Feature-Confirmed: true
2026-07-31 07:25:48 +09:00
lanrtop
c12e8df0ae feat(templates): 知识库模板 AGENTS.md 增补 Commit 层级信号协定
All checks were successful
Push & PR Check / check (push) Successful in 53s
docs(dialogue|concept|core|case) scope 约定:外部观测者(炼境飞轮)凭
commit 流即可读出知识库晋升频率与环的健康度,无需理解库内部结构。

Feature-Confirmed: true
2026-07-18 10:48:55 +09:00
lanrtop
3d9336d908 feat(templates): 三端体系内置模板 + 技术栈分类标签渲染
上一会话遗留的完整功能补提交:
- 新增 4 个三端体系内置模板:React Web / React + Capacitor /
  React + Tauri (Antd) / React Tri-Platform(同一架构按需起步)
- tech_stack 升级为分类 JSON 格式(客户端/语言/框架),
  新增 techStackUtils.renderTechStack 兼容旧逗号格式,
  ManagePage / NewProjectModal 接线,TemplateEditor 占位符同步

Feature-Confirmed: true
2026-07-18 10:48:27 +09:00
lanrtop
55ee5a483c feat(templates): 新增内置模板「知识库(择升环)」
三层晋升结构的知识沉淀文档库初始化:dialogues 对话原料 → concepts 概念卡
→ CORE.md 稳定核心(上限 300 行强制过滤),cases/ 为检验层。
晋升/降级规则与写作纪律内置于模板 AGENTS.md,agent 进库即按择升环工作流运转;
init_commands 为 git init,建库即版本化。

Feature-Confirmed: true
2026-07-18 10:25:01 +09:00
lanrtop
b01f1d1d81 fix(agent-infra): 修复框架扫描漏报 Tauri+React 项目的两个 bug
Bug 1:Tauri 检测条件过严
- 原条件要求 src-tauri/src/commands/ 目录存在才能识别 Tauri
- 新项目初始化时只有 lib.rs + main.rs,commands/ 未创建,导致整个 Tauri 检测跳过
- 修复:只检查 Cargo.toml 含 tauri 依赖,commands/ 用 confidence 反映是否已建

Bug 2:detect_contracts() 无前端框架检测
- Node.js 框架段只覆盖后端(Drizzle/Prisma/Hono/Express/Fastify/tRPC)
- 新增 React / Vite / Zustand 三个检测分支
2026-07-17 16:50:51 +09:00
lanrtop
473cf7e92b fix(onboarding/dispatch): 空路径登记防护——拒绝分发而非写进进程 cwd
批量实调实锤:两条空路径登记(银龙集团应用/agent编排界面)使
Path::new("") 变相对路径,接入包整套写进了 dev 进程的 src-tauri/。
apply_onboarding_pack 入口拦截空/不存在路径(单点防护),批量 SQL
同步过滤空串,回归测试驻军。

Rules-Applied: R06,R07
2026-07-15 19:53:47 +09:00
lanrtop
1672b071e4 feat(onboarding/upgrade-channel): 全托管文件升级通道 + 批量重分发(U1)
All checks were successful
Push & PR Check / check (push) Successful in 51s
Push & PR Check / check (pull_request) Successful in 51s
三档升级语义落地:envoy.md/blueprint-gate.cjs 切全托管
(内容不一致即覆盖,CRLF 归一化防抖动),文件头加托管声明;
verify_onboarding 第 7 项「lefthook 检查段齐全」从内嵌模板自省
键集合,零硬编码;MCP apply_onboarding_pack 缺省 project_id
时批量分发全部已登记项目,替代 batch_apply.py 手摇脚本。

Rules-Applied: R06,R07

Feature-Confirmed: true
2026-07-15 14:20:22 +09:00
lanrtop
2fe576b75a feat(mcp/diagnostics): get_diagnostics 新增使者回传覆盖率「沉默项目」信号(B4)
All checks were successful
Push & PR Check / check (push) Successful in 49s
近 30 天有 commit 采集但零使者回传的已登记项目浮出水面,
提示去该项目跑 /envoy——回流触发不自动化(辩证决策 2026-07-15),
用可观测性让遗忘可见,人留在过滤环里。

Rules-Applied: R06,R07
2026-07-15 14:10:28 +09:00
lanrtop
aaf3343133 feat(flywheel/rules-validation): Rules-Applied 规则 ID ingest 层真实性校验(U3)
All checks were successful
Push & PR Check / check (push) Successful in 1m17s
校验单点放统计消费端(R12 边界单点):extract_rule_ids 从项目
CONVENTIONS.md 提取合法 ID 集合,filter_valid_rules 在入库前剔除
幻觉/typo ID(无 CONVENTIONS.md 时 fail-open 不校验)。接入全部
4 条写入链路(buff 增量/webhook/gitea 轮询/全量导入);
sanitize_rules_applied 提供回溯清洗,重跑全量导入即可清历史污染。

Rules-Applied: R01,R06,R07
2026-07-15 14:05:13 +09:00
lanrtop
f04eb6e766 feat(onboarding): 接入包 v1.6.0——蓝图机器门控双层实现
A: feat: 提交须含 Feature-Confirmed: true trailer
  - lefthook.yml.tmpl commit-msg 新增 feature-confirmed 命令
  - AGENTS.md.tmpl 需求对齐协议补 trailer 说明

B: pre-commit 检查未关闭 🔵 任务卡(warn only)
  - 新增 .claude/hooks/blueprint-gate.cjs(CommonJS,兼容 ESM 项目)
  - lefthook.yml.tmpl pre-commit 新增 blueprint-gate 命令
  - onboarding.rs dispatch 新增 blueprint-gate.cjs

Feature-Confirmed: true
2026-07-15 13:38:32 +09:00
lanrtop
ce3ef6e14e feat(onboarding): 接入包模板 AGENTS.md v1.4.0——acceptance 分层/Playwright 版本锁定/API typecheck 提示/envoy 命令纳入分发 2026-07-09 16:09:55 +09:00
lanrtop
1c44bfe30a test(onboarding): 版本号从模板动态取,消除硬编码
All checks were successful
Push & PR Check / check (push) Successful in 1m0s
模板升版(1.2.0→1.3.0)暴露测试硬编码版本号——每次升版测试必断。
改为 extract_managed_block + block_version 动态取,升版不再碰测试。
2026-07-06 22:59:24 +09:00
lanrtop
a41161f7d1 feat(mcp): 单一全局 lian-jing 服务器——组级挂载收敛(T1-T3+T5)
All checks were successful
Push & PR Check / check (push) Successful in 1m4s
T1 服务器层:新增全局 /mcp + /mcp/messages 路由,process_rpc 组上下文
Option 化;旧 /mcp/group/:gid 路由保留过渡,T6 移除。驻军测试 2 条。
T2 工具层:resolve_project_root 按 project_id 直查 project_workspaces,
删除 3 处组归属校验(实测无隔离价值);list_group_projects 改显式传参。
T3 注入层:settings.json 收敛为单 "lian-jing" key(URL /mcp),注入时
清理旧 lian-jing:group-* key;liangjing.json 主动删除 group_id;
启动时一次性迁移(重注入全量 + 清理旧全局注册两种命名格式,标记位防重)。
T5 同步:git-workflow 文档/模板、retro-catchup 技能 Python 兜底、
设置页 URL 展示、mcp-config-inject 模块取代注记。

收益:MCP 客户端配置成本 O(N组)→O(1),授权一次永久生效;
group_id 缺失/过期/移组同步一整类问题从根上消失。
2026-07-06 19:30:01 +09:00
lanrtop
38d5cec53e feat(mcp): 新增 setup_gitea_repo agent 按钮——一键建仓库配 remote
调用默认 Gitea 实例为项目创建远程仓库,同时配置本地 git remote origin。
幂等设计:仓库已存在(409)直接绑定,remote 已有则 set-url 更新。
背景:此前 agent 无法自助完成"项目在 Gitea 建仓库"流程,需要手动
拼凑 curl + git 命令,本工具将整个流程收归炼境 MCP 调用层。
2026-07-04 18:27:01 +09:00
lanrtop
a5cb30734d feat(flywheel): 返工热区 UI + get_high_risk_scopes 命令,阶段三收官
All checks were successful
Push & PR Check / check (push) Successful in 50s
Push & PR Check / check (pull_request) Successful in 50s
- risk.rs 新增 Tauri command get_high_risk_scopes(薄包装)+ lib.rs 注册
- commands.ts 封装 HighRiskScope 类型与调用(R01)
- FlywheelPanel 新增「返工热区」块:跨项目返工率降序,
  分级配色与 classify_risk 阈值一致(≥35% 红 / ≥15% 琥珀)
- 蓝图:P3-A~E 五卡全部 done,附 L 级复盘笔记,模块 progress 98

Rules-Applied: R01,R13
2026-07-04 14:22:52 +09:00
lanrtop
66dc6209a8 feat(flywheel): 梦核 prompt 注入跨项目高风险 scope 数据段
- risk.rs 新增 high_risk_scopes:样本 ≥5 且有非 CI 返工的 scope
  按返工率降序 top 10,项目名 LEFT JOIN project_profiles(缺失回退 id)
- generate_muhe_prompt 新增「跨项目高风险 scope」表格段,附分析指引
  (反复返工 scope = 结构性脆弱点 → 固化环节输出预防性规范)
- rule_hits 段 pool() 改 try_pool():原实现测试环境必 panic,
  generate_muhe_prompt 因此不可测;改后两段在无 DB 时走占位文案
- prompt 构建测试断言两个数据段存在 + 聚合排序/最小样本过滤测试,92 全绿

Rules-Applied: R06,R07
2026-07-04 14:18:04 +09:00
lanrtop
330ddc24dd feat(flywheel): predict_task_risk 风险画像 MCP 工具——预测层落地
- 新增 commands/risk.rs:scope 级(前缀匹配子 scope)+ 文件级
  (commit_files JOIN commit_metrics)历史返工率聚合
- classify_risk 分级:返工率 ≥0.35 high、≥0.15 medium、其余 low;
  有效返工率取 scope 与文件(样本 ≥3)的较高者
- 可信度防线:样本 <5 或 conventional 率 <0.5(脏历史)→
  confidence=low 并附原因 notes,不让脏数据装可信
- CI 自修 commit(is_ci_auto)不计返工,与 L0 口径一致
- MCP 注册 predict_task_risk:agent 开工前按任务卡 scope/files
  查询风险,工具清单测试断言驻军
- 7 个单测(in-memory DB + conn 注入),90 全绿

Rules-Applied: R01,R06,R07,R13
2026-07-04 14:12:35 +09:00
lanrtop
0ac809970f feat(flywheel): commit_files 采集——文件级风险画像数据地基
- 新表 commit_files(sha,path 联合主键 + path 索引),migration 入 migrate()
- read_git_log 加 --name-only:单次 git 调用同时取 conventional 指标、
  Rules-Applied trailer 与触碰文件,零额外进程开销
- parse_git_log_output 纯函数解析 header/文件行混排输出(含 \x1f 的行
  是 header,其后非空行归属该 commit)
- record_commit_entry 落库文件清单(INSERT OR IGNORE 幂等),buff 增量
  与 ingest 全量两条链路自动覆盖,无需各自改动

Rules-Applied: R05,R06,R07
2026-07-04 14:07:57 +09:00
lanrtop
08e8d6d719 fix(flywheel): 修复 Rules-Applied trailer 死链,git log 原生提取 + UPSERT 回填
R1 管道自建成以来是死链:buff 与 ingest 两处 git log 都用 %s 只取
subject,trailer 在 body 里永远读不到(炼境自身 11 条带 trailer 的
commit,DB rules_applied 全空);单测喂全文所以全绿。

- GIT_LOG_FMT 加 %(trailers:key=Rules-Applied,valueonly,separator=%x2C),
  git 原生 trailer 解析,保持单行一条记录
- read_git_log 升为增量/全量统一取数入口(GitLogRange),buff 的
  get_new_commits 委托之,消灭两处重复 format 定义
- record_commit_entry + upsert_metrics:ON CONFLICT 仅回填
  rules_applied IS NULL 的存量行,绝不覆盖已有值,回填幂等
- ingest_full_git_history 改走 record_commit_entry,消灭第三处重复 INSERT
- get_new_commits 的 WSL 分支随 2026-07-04 裁决顺手清理
- 测试:真 git 仓库 e2e trailer 提取回归 + UPSERT 四态语义,82 全绿

Rules-Applied: R06,R07,R13
2026-07-04 14:04:20 +09:00
lanrtop
f68d172687 fix(onboarding): Windows PATH 兜底补 lefthook.cmd shim 解析
All checks were successful
Push & PR Check / check (push) Successful in 48s
pnpm add -g lefthook 安装的是 .cmd shim,CreateProcess 对裸名
"lefthook" 只解析 .exe,导致 PATH 兜底永远 missing_binary
(批量接入 6 项目实测踩坑)。兜底顺序改为逐候选尝试:
本地 .bin → 全局 lefthook → 全局 lefthook.cmd(仅 Windows)。

Rules-Applied: R10
2026-07-04 11:33:11 +09:00
lanrtop
ccf87ae09a feat(onboarding): V1 接入生效验收——lefthook 分发即激活 + verify_onboarding 六项检查链
All checks were successful
Push Check / check (push) Successful in 45s
分发成功 ≠ 功能生效:接入包此前只写 lefthook.yml 从不激活,
文件在 hook 死 → conventional 不强制 → 飞轮数据脏。

- apply_onboarding_pack 分发后自动 lefthook install(本地 .bin 优先/
  PATH 兜底/静默),OnboardingReport 新增 hook 三态
- 新 MCP 工具 verify_onboarding:管理块版本/hook 真挂/origin 命中
  Gitea 实例/CI workflow 存在/近 30 天飞轮数据 六项检查链 JSON
- 判定纯函数化 5 条单测 + in-memory DB 全链集成测试
- commands.ts 补 TemplateResult 缺失的 updated/appended 态(T1 旧债)
- AGENTS.md 去掉写死的工具计数(防腐:以 tools_list_result 自省为准)

Rules-Applied: R01,R06,R07,R13
2026-07-04 08:27:39 +09:00
lanrtop
dc501f74e2 fix(cicd): PR CI 模板同款 lint 语法雷,防止复制到子项目
All checks were successful
Push Check / check (push) Successful in 51s
炼境自身 pr-check.yml 刚踩的 pnpm lint --if-present 必挂 bug,
源头就是 build_pr_ci_workflow 模板——每个经炼境生成 CI 的子项目
都会领到坏 workflow。改为 pnpm run --if-present 语法(本地实测
exit 0),并在 pr_ci_template_is_correct 加回归断言驻军。

Rules-Applied: R07,R10
2026-07-04 08:08:01 +09:00
lanrtop
3b9de9a23c refactor(mcp)+fix(ci)+fix(test): 三项优化
Some checks failed
Push Check / check (push) Failing after 1m7s
- CI: pr-check 改为 push master 触发 + tsc --noEmit(原 branches: [main] 永不触发)
- mcp_server.rs 拆分:mcp_tools.rs(工具schema+dispatch+实现)+ mcp_webhook.rs(webhook+测试)
  mcp_server.rs 从 1385 行瘦身至 145 行(纯协议路由层)
- mcp_tools 新增工具 schema 完整性测试(73 passed,较之前 +2 条)
- onboarding 测试版本号跟进 v1.1.0 → v1.2.0(模板版本升级后断言未同步)
2026-07-03 21:38:20 +09:00
lanrtop
def53d739c fix(gitea)+feat(mcp): PR 409 容错 + apply_onboarding_pack/list_all_projects agent 按钮
- gitea_api_create_pull_request: 409 时自动查 open PR 列表,返回已存在的 PR
- MCP 新增 apply_onboarding_pack(接入包分发 UI 按钮的 agent 投影)
- MCP 新增 list_all_projects(绕过 group 限制,列出全库项目及注入状态)
2026-07-03 21:12:06 +09:00
lanrtop
dccca234b5 fix(mcp): get_ci_status 兼容 Gitea 1.22 的 status 字段(非 state) 2026-07-03 19:59:00 +09:00
lanrtop
14fe02ec7d feat(mcp): 补全 agent 按钮体系——5 个新工具关闭三项结构性缺口
P0 PR 生命周期闭环:
- get_ci_status(project_id, commit_sha):查 Gitea CI pass/fail/pending
- merge_pull_request(project_id, pr_number):CI 绿灯后合并 PR
至此 /ship 流程全自主:推送→开 PR→查 CI→合并→poll_now

P1 飞轮数据对子项目透明:
- get_pr_events(project_id, limit?):读 pr_events 表,PR 生命周期历史
- get_commit_metrics(project_id, days?):读 commit_metrics,提交类型/返工分布

P2 分发层 agent 可自修复:
- distribute_cicd(project_id, workflow_type):写入 CI 模板,无需预存配置
2026-07-03 19:55:12 +09:00
lanrtop
6d10c71d15 feat(gitea+mcp): PR 状态轮询 + poll_now agent 按钮(公网 Gitea webhook 不可达降级方案) 2026-07-03 18:59:19 +09:00
lanrtop
35a8212472 fix(cicd): 模板默认 runner 改为 windows,deepseek_review 加 shell: bash 2026-07-03 18:11:44 +09:00
lanrtop
69183fb06c fix(cicd): 将 GITEA_TOKEN/URL 重命名为 LJ_TOKEN/URL(GITEA_ 前缀被 Gitea 保留) 2026-07-03 17:54:12 +09:00
lanrtop
8432aa4f45 feat(cicd+mcp): PR 事件追踪 + create_pull_request MCP 工具 + CI/AI 审查模板 + bypassPermissions 注入
炼境子项目工作流全链路打通:
- mcp_server: 新增 create_pull_request MCP 工具(凭证代理,子项目无需持有 token)
- mcp_server: webhook 路由拆分 push/pull_request,PR 事件写入 pr_events 表
- mcp_inject: 注入 bypassPermissions + 写入 liangjing.json(project_id + mcp_port)
- db: 新增 pr_events 表 + idx_pr_events_project 索引
- gitea.rs: gitea_api_create_pull_request() pub 函数;webhook 订阅补 pull_request 事件
- onboarding/git-workflow: v1.2.0,新增 PR 创建通过炼境 MCP 的说明与禁止条款
- cicd: 新增 pr_ci(PR 质量检查)+ deepseek_review(AI 代码审查)模板 + 4 项测试
- CicdModal: 类型选择器扩展为 4 项,deepseek_review 加 Secrets 提示面板
2026-07-03 16:57:36 +09:00
lanrtop
6efde66c42 feat(onboarding): T1 模板版本化三态分发 + B1 CONVENTIONS 1.10.0(R12/R13) + B2 agent 按钮章节
- dispatch_versioned:不存在写全新 / 有标记同版本跳过 / 版本不同原位升级块 / 无标记末尾追加块,块外用户内容永不触碰
- AGENTS.md.tmpl 重写为三分区:用户 TODO 区 + ONBOARDING_MANAGED v1.1.0 块(含 agent 按钮与验证路径章节)+ 四支柱防腐元规则
- git-workflow.md.tmpl 全文入管理块 v1.1.0
- CONVENTIONS 升 1.10.0:R12 边界单点实现、R13 验收路径须真实走通(含载体就近选择表)
- lefthook.yml 保持存在即跳过(用户深度定制不适用块机制)

Rules-Applied: R05-skip, R12, R13
2026-07-03 13:23:41 +09:00
lanrtop
d4cb3c0567 fix(blueprint): 提示词嵌入 manifest 硬约束骨架——防子项目 AI 产出非法格式
noteapp 事故:新导入项目执行"更新蓝图描绘"后 manifest 解析失败
(missing field area)——子项目 AI 写出 project:/stable/in-progress/
depends_on 等自造格式。根因:CONVENTIONS 全文 900+ 行随提示词下发,
manifest 规范埋在中间被忽略,且无"现有文件不合法必须重写"指令。

init/sync 双模板注入就近的严格 schema 骨架:合法字段清单、status 枚举、
非法示例点名、强制重写指令。

Rules-Applied: R02, R10
2026-07-03 10:37:18 +09:00
lanrtop
4f5cf431f6 fix(agent-infra): 腐化诊断修复指引死循环——明示评分基于 git 提交时间
用户按指引"重新生成三件套"两轮无法清除红色诊断:生成只改工作区文件,
而评分比较的是 git 提交时间戳。修复指引现明确要求 commit。
enterprise-system 实测:commit project-context.yaml 后诊断转绿。

Rules-Applied: R11
2026-07-03 08:55:15 +09:00