iven
|
b03ea47fed
|
test(ai): Day 5.3 — 补充 5 个老 Tool 单元测试
- query_vitals: tool_name + schema_has_days_param
- query_lab_reports: tool_name
- query_appointments: tool_name
- query_medications: tool_name
- search_medical_knowledge: tool_name + schema_requires_query
|
2026-05-19 11:15:22 +08:00 |
|
iven
|
bcff978ea0
|
feat(ai): Day 5 — ChatResponse display_hints + Web RichMessage 渲染
- ChatResponse 增加 display_hints 字段,Orchestrator 收集 Tool 产生的 DisplayHint
- DisplayHint 实现 utoipa::ToSchema
- Web ChatResponse 类型同步,DisplayHint 8 种联合类型
- RichMessage 组件:InsightCard/RiskAlert/LabReportCard/TrendChart/PatientProfile/VitalCard
- AiSidebar 消息中渲染 display_hints 富消息
- 小程序 AiChatResponse 类型同步
|
2026-05-19 11:10:07 +08:00 |
|
iven
|
8064db3475
|
feat(ai): Day 4 — 策略 Prompt 优化 + Tool 调用日志
- System Prompt 增加 10 个 Tool 的使用时机指引,Agent 自动选择最合适的 Tool
- 优先使用 get_health_insights 作为首次对话开场工具
- AgentRunResult 新增 tool_calls: Vec<ToolCallLog>,记录每次调用名称/耗时/成功状态
- ToolCallLog 将在 Phase 2 写入 ai_tool_call_logs 表
|
2026-05-19 11:01:03 +08:00 |
|
iven
|
8b59f2d7d9
|
feat(ai): Day 3 — GetHealthInsightsTool + 配额前置检查 + Token 预算限制
- 新增 GetHealthInsightsTool:聚合档案摘要+化验异常+体征异常,输出 InsightCard
- 注册到 Patient/MedicalStaff 沙箱(10 个 Tool 全部就位)
- chat_handler 添加 QuotaService 配额前置检查(月度 Token/患者日限额)
- AgentRunParams 新增 token_budget 字段,Orchestrator 每轮累计检查超预算强制结束
|
2026-05-19 10:56:09 +08:00 |
|
iven
|
6f088347ce
|
feat(ai): Agent 分析 Tool — AnalyzeLabReport + AnalyzeHealthTrends
- AnalyzeLabReportTool: 获取化验报告详细指标(异常标记+参考范围)
- AnalyzeHealthTrendsTool: 趋势分析(回归方向/日变化/异常检测)
- 沙箱: MedicalStaff 专属分析 Tool,Patient 不可用
|
2026-05-19 10:45:32 +08:00 |
|
iven
|
7edf1ed1d3
|
feat(ai): Agent Tool 扩展 — QueryPatientProfile + DisplayHint 新增 3 变体
- QueryPatientProfileTool: 查询患者档案摘要(年龄/性别/慢性病/用药/家族史)
- DisplayHint 新增 TrendChart/InsightCard/PatientProfile 变体
- 沙箱: Patient + MedicalStaff 添加 query_patient_profile
|
2026-05-19 10:41:29 +08:00 |
|
iven
|
8b88cb4a50
|
feat(ai): Phase 3A RAG 知识库 — CRUD API + Agent Tool + 向量知识源 + 前端管理页
- 知识库 REST API: 10 个端点 (references/guides CRUD + re-embed)
- search_medical_knowledge Agent Tool: 语义检索参考资料和临床指南
- VectorKnowledgeSource: 实现 KnowledgeSource trait,自动降级
- 沙箱配置: Patient/MedicalStaff 允许使用知识库检索
- 前端 AiKnowledgePage: Tabs(参考资料/临床指南) + Table + Modal CRUD
- 权限码 seed 迁移: ai.knowledge.list + ai.knowledge.manage + 菜单
|
2026-05-19 09:10:53 +08:00 |
|
iven
|
c0570dfbfc
|
feat(ai): Phase 3A-3 知识库 CRUD 服务 — references/guides 创建/更新/删除/列表
- KnowledgeService: 完整 CRUD(创建含自动 embedding 生成)
- Embedding 失败时降级为 NULL(条目仍可 CRUD,但不可向量搜索)
- re_embed 方法支持单条重新生成向量
- 所有操作通过 raw SQL 写入 pgvector embedding 列
- 软删除 + tenant_id 隔离
|
2026-05-19 08:53:29 +08:00 |
|
iven
|
7658bc3cdf
|
feat(ai): Phase 3A-1/2 RAG 知识库基础 — Embedding 服务 + pgvector 向量搜索
- EmbeddingService: OpenAI 兼容 embedding API 客户端(单条+批量)
- 从 settings 表读取配置(base_url/api_key/model)
- KnowledgeSearchRepository: pgvector 余弦相似度搜索(references+guides UNION)
- format_vector 辅助函数,Embedding 失败降级为 NULL
- 6 个 embedding 单元测试通过
|
2026-05-19 08:46:36 +08:00 |
|
iven
|
9576e80175
|
feat(ai): Phase 2B 洞察→推送→反馈闭环 — 风险评分+通知+建议反馈
- 风险评分引擎 load_patient_data 实装(体征+化验异常)
- refresh_all_patients 高风险自动创建洞察+事件推送
- erp-message 订阅 copilot.insight.created 推送医护通知
- 每日 cron 增加洞察过期清理+建议过期清理
- POST /ai/suggestions/{id}/feedback 建议反馈端点
- SuggestionFeedbackService 反馈服务层
- 小程序健康页建议卡片增加采纳/忽略/咨询医生按钮
|
2026-05-19 01:19:09 +08:00 |
|
iven
|
2660f1afff
|
feat(ai): Phase 2A-3 随访页 AI 辅助生成小结 — SSE 端点 + 前端集成
- AnalysisType 新增 FollowUpSummary 变体(as_str/prompt_name)
- HealthDataProvider 新增 get_follow_up_summary_data() + FollowUpSummaryDataDto
- erp-health 实现随访数据查询(task + records + PII 解密)
- 新增 /ai/analyze/follow-up-summary SSE 端点
- SanitizationService 新增 sanitize_follow_up_data()
- 前端 analysisSse.ts/AiAnalysisCard 支持 follow-up-summary 类型
- FollowUpTaskList 操作列新增「AI 小结」按钮
|
2026-05-19 00:54:15 +08:00 |
|
iven
|
205f6fb5a2
|
feat(web): Phase 2A-2 患者档案 AI 自动摘要 — 侧边栏顶部摘要卡片
当 AI 侧边栏打开且当前页面为患者详情时,自动调用 GET /ai/health-summary
并在侧边栏顶部显示摘要卡片:
- 风险等级标签(低/中/高/严重,对应绿/橙/红/深红)
- 活跃洞察数量 + 近期分析次数
- 最多 3 条摘要项(按 category + severity 着色)
- 最新洞察标题(带警告图标)
- 离开患者页面或关闭侧边栏时自动清除
同时:
- analysis.ts 新增 getHealthSummary API + HealthSummaryResponse 类型
- 权限检查:需要 ai.analysis.list 才显示摘要卡片
|
2026-05-19 00:37:46 +08:00 |
|
iven
|
1e2ad6170a
|
feat(web): Phase 2A-1 AI 侧边栏骨架 — 浮动按钮 + 聊天 Drawer
新增 Web 管理后台 AI 侧边栏:
- 右下角渐变色浮动按钮(RobotOutlined),hover 放大效果
- AiSidebar Drawer 组件:聊天消息列表 + 输入框 + 发送按钮
- 自动检测当前页面患者 ID,携带 patient_id 上下文到 /ai/chat
- 权限检查:无 ai.chat.send 权限时禁用输入并提示
- 气泡样式对话:用户消息蓝色右对齐,助手消息灰色左对齐
- 清空对话、加载态(思考中 Spin)、Enter 发送 + Shift+Enter 换行
新增文件:
- apps/web/src/api/ai/chat.ts — AI 聊天 API 模块
- apps/web/src/components/ai/AiSidebar.tsx — 侧边栏组件
修改文件:
- apps/web/src/layouts/MainLayout.tsx — 集成浮动按钮 + AiSidebar
|
2026-05-19 00:32:08 +08:00 |
|
iven
|
b2053d5bcc
|
feat(ai): Phase 2A-4 新增 3 个 Agent Tool — 化验报告/预约/用药查询
新增 3 个 AI Agent Tool 扩展医护沙箱能力:
- query_patient_lab_reports: 查询患者化验报告列表(含异常计数)
- query_patient_appointments: 查询患者即将到来的预约
- query_patient_medications: 查询患者当前用药列表
同时:
- HealthDataProvider trait 新增 get_patient_lab_reports 方法 + LabReportListItemDto
- erp-health 实现新 trait 方法(含 PII 解密)
- sandbox.rs 更新角色权限:Patient 可查体征/化验/用药,MedicalStaff 额外可查预约
- 修复 ai_prompt_tests.rs 中 AnalysisService::new 签名变更的遗留编译错误
- 新增 5 个 agent 测试覆盖新 Tool 和沙箱权限过滤
|
2026-05-19 00:19:10 +08:00 |
|
iven
|
89581b070f
|
feat(ai): Phase 1C 管理看板 — 用量/成本/功能开关三合一
- UsageService 新增 get_daily_usage + aggregate_daily 日聚合能力
- 新增 3 个管理端点: /ai/admin/daily-usage, /ai/admin/flags (GET+POST)
- AiUsageDashboard 扩展为三 Tab: 用量概览/成本分析/功能开关
- 功能开关支持 Switch 实时切换,权限码 ai.admin.flags
- 日聚合用量 30 天趋势表,含 Token/成本汇总统计
|
2026-05-18 23:36:33 +08:00 |
|
iven
|
5ba28ea349
|
feat(ai): Phase 1B 角色沙箱 — 三级权限隔离 + Tool 过滤 + 输出控制
- 新增 agent/sandbox.rs: UserRole/SandboxConfig/OutputFilter 三级模型
- resolve_role() 从 JWT roles 解析为 Patient/MedicalStaff/Admin
- ToolRegistry.tool_definitions_filtered() 按角色白名单过滤
- orchestrator.run() 新增 allowed_tools 参数,Tool 执行时二次校验
- chat_handler 集成沙箱:角色 Prompt 后缀 + 患者免责声明追加
|
2026-05-18 23:28:30 +08:00 |
|
iven
|
7e3d27ecf3
|
feat(ai): Phase 1A 收尾 — 用量记录 + 健康摘要端点 + 小程序组件
- chat_handler 添加 log_usage 精确记录 token 消耗(provider + model)
- SSE build_sse_stream 添加估算 token 用量记录(4 字符 ≈ 1 token)
- 新增 GET /ai/health-summary 端点聚合患者洞察+分析记录
- 小程序 AiHealthSummaryCard 组件(风险等级+洞察统计+摘要列表)
- 小程序 services/ai-analysis 新增 getHealthSummary API
|
2026-05-18 23:20:06 +08:00 |
|
iven
|
281c71ebfc
|
feat(web): AiAnalysisCard 通用组件 — 封装 SSE 流式分析 + 加载/错误/成功态
- 新增 AiAnalysisCard: 支持 4 种分析类型, 自动组装 request body
- 4 种状态: idle(按钮) / loading(骨架屏) / error(重试) / success(结果卡片)
- 权限控制通过 AuthButton 集成, 供多触点复用
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-18 22:58:51 +08:00 |
|
iven
|
bf37acc681
|
feat(ai): AI 健康管家 V2 基础设施 — 功能开关 + 角色沙箱准备 + 体征页 AI 趋势分析
- 迁移 000153: 新增 ai_feature_flags / ai_usage_daily / ai_suggestion_feedback 三张表,
ai_tenant_configs 增加 billing_enabled 列, seed 12 个功能开关 + 2 个管理权限码
- 新增 FeatureFlagService: 5 分钟缓存 + DB 回退 + 即时更新
- VitalSignsTab 添加 AI 趋势分析按钮 (SSE 流式)
- 新增 3 个 Entity (ai_feature_flags / ai_usage_daily / ai_suggestion_feedback)
- AiState 扩展 feature_flags 字段
- 设计规格 + 讨论记录文档
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-18 22:55:40 +08:00 |
|
iven
|
d623f8b2ff
|
fix: V1 测试版本端到端验证修复 — 6 CRITICAL + 3 HIGH 问题全量修复
修复项:
- fix(db): 迁移 149 — 修复 Admin 角色权限绑定被迁移链破坏 (FE-C1)
- fix(health): 4 个 handler 添加空名称验证 — Doctor/Article/AlertRule/Tag (API-C1~C4)
- fix(health): Stats 仪表盘 new_this_week 查询修复 — SeaORM date_trunc bug (FE-C2)
- fix(server): 添加安全响应头 — X-Frame-Options/CSP/XSS-Protection/Referrer-Policy (SEC-H1)
- fix(mp): 预约创建契约修复 — notes/reason 字段映射 + 移除 schedule_id (MP-H1)
- fix(mp): 咨询会话 subject/last_message 字段改为可选 (MP-H3)
- fix(ai): AiConfig Default derive 替代手写 impl (clippy)
测试报告:
- 8 维度端到端测试全部完成 (后端 87 用例 / 前端 30 页面 / 小程序 80+ API / 安全 20 项 / 性能 20 端点)
- 多角色 7 角色 49 检查 100% 通过
- 综合测试报告 + 专家评估报告
|
2026-05-18 10:24:40 +08:00 |
|
iven
|
38b0d91407
|
feat(mp): AI 聊天传递 patient_id 支持体征数据查询 Tool Call
- ai-chat service: sendAiMessage 新增 patientId 可选参数
- messages 页面: 从 authStore 获取 currentPatient.id 传入
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-18 09:35:18 +08:00 |
|
iven
|
20714661d2
|
docs(qa): 五专家组头脑风暴 V1 测试发布就绪评估报告
综合评分 6.8/10 (B),有条件通过内部测试发布。
9 个章节完整覆盖:执行摘要 / 产品 / 架构 / 安全 / 测试 / UX / 行动计划 / 风险 / V1.1 路线图。
|
2026-05-18 04:50:36 +08:00 |
|
iven
|
edea8f49d1
|
docs(wiki): 关键数字更新 — AI Agent Phase 0 完成(迁移 148、AI 表 13、权限码 132)
|
2026-05-18 04:00:02 +08:00 |
|
iven
|
882b27ab7a
|
fix(ai): Agent chat handler 精确选择 FC-capable provider + 环境变量适配
- chat_handler: 使用 get_provider("claude") 精确获取,避免 resolve fallback 到 Ollama
- ProviderRegistry: 新增 get_provider() 方法(无 health check,无 fallback)
- orchestrator: 从 ANTHROPIC_DEFAULT_SONNET_MODEL 读取模型名,兼容智谱代理
- erp-server: Claude provider 注册优先读 ANTHROPIC_AUTH_TOKEN + ANTHROPIC_BASE_URL
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-18 03:58:38 +08:00 |
|
iven
|
e47fe547c8
|
test(ai): Phase 0 集成测试 — Agent 循环 + Tool 执行 + Mock Provider
|
2026-05-18 03:17:34 +08:00 |
|
iven
|
aab4dfea79
|
feat(ai): 改造 chat_handler 接入 AgentOrchestrator — ReAct Agent 首次跑通 + 新增会话权限码
|
2026-05-18 03:12:33 +08:00 |
|
iven
|
f42669f934
|
feat(ai): 实现 query_patient_vitals Tool — 首个端到端 Agent Tool
|
2026-05-18 02:58:38 +08:00 |
|
iven
|
2d62605812
|
feat(ai): AgentTool trait + ToolRegistry + AgentOrchestrator — ReAct 循环(最多 5 轮 Tool Call)
|
2026-05-18 02:56:26 +08:00 |
|
iven
|
877e9831f6
|
feat(db): 迁移 000148 — AI 聊天会话/消息/工具日志/用户画像 4 张表
|
2026-05-18 02:51:58 +08:00 |
|
iven
|
f668f0995a
|
feat(core): HealthDataProvider 新增 get_upcoming_appointments + get_medication_list
|
2026-05-18 02:47:15 +08:00 |
|
iven
|
46b30504a5
|
feat(ai): Ollama Provider 声明不支持 Function Calling
|
2026-05-18 02:37:12 +08:00 |
|
iven
|
f42e3ba611
|
feat(ai): OpenAI Provider 实现 generate_with_tools — function calling 支持
|
2026-05-18 02:35:50 +08:00 |
|
iven
|
64456d0172
|
feat(ai): Claude Provider 实现 generate_with_tools — tool_use/tool_result 解析
|
2026-05-18 02:32:39 +08:00 |
|
iven
|
cad48a97d5
|
feat(ai): AiProvider trait 新增 generate_with_tools 默认方法 + UnsupportedOperation 错误变体
|
2026-05-18 02:29:19 +08:00 |
|
iven
|
01c75dbf5d
|
feat(ai): 添加 Agent Function Calling DTO — ChatMessage/ToolDefinition/ToolCall/AgentGenerateResponse
|
2026-05-18 02:26:57 +08:00 |
|
iven
|
4e12298ff3
|
docs: 发散式讨论记录 — AI Agent 突破口方向确认
|
2026-05-18 02:19:03 +08:00 |
|
iven
|
e149a61ce6
|
fix(auth): error 类型 + auth_service 小修复
|
2026-05-18 02:14:14 +08:00 |
|
iven
|
3aa71a94d2
|
docs(skills): design-handoff 设计稿 + spec + .gitignore 更新
- mp-11-doctor-core 设计交付包(截图 + tokens)
- mp-13/mp-14 新原型 HTML
- design-handoff skill 设计规格文档
- .gitignore 排除 dist-h5/test-results/uploads 等构建产物
|
2026-05-18 02:13:29 +08:00 |
|
iven
|
ded37830fe
|
feat(mp): 新增 AvatarCircle/ShortcutButton/TodoAlert 组件 + 商品详情页
- AvatarCircle: 头像圆形组件
- ShortcutButton: 快捷操作按钮
- TodoAlert: 待办提醒组件
- pkg-mall/product: 积分商品详情页
|
2026-05-18 02:12:58 +08:00 |
|
iven
|
e555496528
|
feat(mp): design-handoff 产出的页面样式和组件优化
- 首页/商城/医生端/积分/家庭档案等页面 SCSS + TSX 更新
- TabFilter 组件样式优化
- points service 接口调整
- app.config 路由注册更新
|
2026-05-18 02:12:41 +08:00 |
|
iven
|
2698c98888
|
docs(ai): Phase 0 实施计划 — 12 Tasks,修复 Review R1 问题
- 复用已有 TokenUsage(修复编译冲突)
- AppointmentSummaryDto.id 改为 Uuid + scheduled_at 改为 DateTime
- Orchestrator 达到上限时用 User role(而非 Assistant)
- 添加路由说明(Phase 0 复用 /ai/chat,Phase 2 变更)
- 添加模型选择说明(Phase 0 硬编码 auto)
|
2026-05-18 02:10:59 +08:00 |
|
iven
|
31771168dd
|
docs(ai): Spec Review R2 修复 — 复用 HealthDataProvider + 新增 generate_with_tools
CRITICAL:
- 移除重复的 HealthDataQuery trait,扩展现有 HealthDataProvider(新增 2 方法)
- Provider 适配改为新增 generate_with_tools 方法,不破坏现有 generate 路径
IMPORTANT:
- 修复章节编号(全文重排为连续编号)
- ai_tool_call_logs 补充 created_by + 说明省略原因(append-only)
- ai_user_profiles 说明省略 created_by/updated_by 原因(Agent 自动维护)
- ToolContext 改为持有 Arc<dyn HealthDataProvider> 而非裸 db
- SSE 语义明确:仅流式输出最终回复
- 5 轮上限强制终止逻辑:追加总结指令让 LLM 正常结束
- GenerateRequest 不再破坏性修改,新旧路径并行
|
2026-05-18 01:57:16 +08:00 |
|
iven
|
b0892706c8
|
fix(skills): Step 7 改为 design-handoff 自行实施,不再调用 huashu-design
原因: huashu-design 是纯设计 skill,加实施模式会导致人格冲突、
SKILL.md 膨胀、约束倒灌。design-handoff 已有 SPEC+截图+Token 映射,
直接在当前会话实施代码更自然。
|
2026-05-18 01:54:17 +08:00 |
|
iven
|
530262590e
|
feat(skills): design-handoff 升级为全流程编排器
- 新增 Step 0: 调用 huashu-design 设计 HTML 原型
- 新增 Step 7: 调用 huashu-design 根据 SPEC 实施代码
- 支持两种输入模式: 从需求开始(完整7步) / 从原型开始(6步)
- 简化文档: 移除冗余的降级代码块,保留核心流程
|
2026-05-18 01:51:40 +08:00 |
|
iven
|
6759723731
|
docs(ai): 修复 Spec Review 发现的 9 个问题
CRITICAL 修复:
- 新增跨 crate 数据访问架构(erp-core HealthDataQuery trait)
- 新增 4 个权限码声明(session.list/manage/history + chat.send)
- 明确 Provider Function Calling 需中等程度重构,补充适配方案
IMPORTANT 修复:
- 说明与 copilot_chat_logs 表的关系(并存不迁移)
- 新增 ai_user_profiles 表(长期记忆/用户画像)
- 定义 DisplayHint 枚举(5 种富消息类型)
- Phase 0 验证标准修正为新端点
- 补充 Taro SSE 兼容层 + Web 从零构建,工期上调
- 新增 PII 脱敏规范(6 类字段处理规则)
- 新增故障处理与降级章节
- Phase 0/2 工作量估算上调,总工期 16-23→20-27 天
|
2026-05-18 01:51:03 +08:00 |
|
iven
|
1c8319fb4d
|
docs(ai): AI Agent 突破口设计规格 — ReAct Agent + Function Calling
erp-ai 客服从简单问答升级为多策略 ReAct Agent:
- Agent Orchestrator 实现 ReAct 循环(最多 5 轮 Tool Call)
- 4 类 12 个 Tool 覆盖数据查询/AI 分析/知识服务/行动操作
- 多策略 System Prompt(安抚/科普/推荐/预警/引导到院)
- 3 张新表(sessions/messages/tool_logs)+ 会话管理 API
- 小程序 + Web 富消息渲染 + SSE 流式输出
- 4 Phase 分阶段实施,总工期 16-23 天
|
2026-05-18 01:42:13 +08:00 |
|
iven
|
6151fde7c4
|
fix(skills): 修复 design-handoff 医生端原型输出质量
- match-tokens: alias 增加值条件映射,支持 doctor/patient variant 自动检测
- parse-prototype: 支持 IosFrame label prop 提取(JSX 属性模式)
- interaction-rules: login-cta 增加 exclude_patterns 避免"立即关注"误报
- tokens.yml: T.pri/T.priL/T.priD alias 改为数组格式,按值匹配 variant
验证: 患者端 T.pri→--tk-pri 确认,医生端 T.pri→--tk-pri.doctor 确认
|
2026-05-18 01:00:20 +08:00 |
|
iven
|
c26ca9088b
|
feat(skills): E2E 验证通过 + 首个交付包(mp-00-visitor) + .design/tokens.yml
全管线验证结果:
- parse: 22 tokens, 5 screens, 7 components
- screenshots: 5/5 PNG 截图(2x 高清,裁掉设备框)
- token match: 20/22 matched (19 confirmed, 14 pending, 2 unmatched)
- interactions: 5/8 rules matched
交付包: docs/design/mp-00-visitor/
- screenshots/ (5 PNG)
- tokens.json (三层匹配结果)
- META.yml (元数据)
配置: .design/tokens.yml (项目级 Token 配置)
|
2026-05-18 00:08:05 +08:00 |
|
iven
|
63a9dac9d3
|
docs(skills): 更新 SKILL.md 脚本调用参数对齐实际接口
- parse-prototype.mjs: 输出 tokens/inlineStyles/screens/components
- extract-screenshots.mjs: 参数改为 <html> <output-dir>
- match-tokens.mjs: 参数改为 <parse-result.json> <tokens.yml>
- infer-interactions.mjs: 参数改为 <html> <rules.yml>
- 输出目录结构对齐 spec: docs/design/mp-00-visitor/
|
2026-05-18 00:05:59 +08:00 |
|
iven
|
a4732cd2d4
|
feat(skills): 添加截图提取 + 交互推断脚本 + SPEC 模板
- extract-screenshots.mjs: Playwright 截取 IosFrame 内容区域,裁掉设备框
- infer-interactions.mjs: 8 条规则正则匹配源码推断交互行为
- 重写 interaction-rules.yml: patterns 改为代码级正则(非自然语言描述)
- templates/spec-template.md: SPEC.md 六章节模板
|
2026-05-18 00:04:31 +08:00 |
|