All checks were successful
Push & PR Check / check (push) Successful in 1m4s
- 同一模板同时写 .agents/skills(Codex、DSH)与 .claude/skills(Claude Code) - verify_onboarding 新增「Claude 炼境技能已分发」检查 - skill 降级步骤改为三端通用,提示无开发变量工具即连的是全局地址 - capability-packs supported_clients 增加 dsh Feature-Confirmed: true Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 lines
4.2 KiB
YAML
43 lines
4.2 KiB
YAML
# 项目契约路径映射
|
||
# 由炼境根据技术栈扫描生成,技术栈变更后重新运行接入包生成
|
||
# 供 AGENTS.md 元规则 T1 查询:「哪个文件是这个项目的外部契约?」
|
||
|
||
contracts:
|
||
- label: API 接口(Axum)
|
||
paths:
|
||
- "src-tauri/src/mcp_server.rs"
|
||
doc: "MCP 仅监听 127.0.0.1;新项目使用 /mcp/projects/<project_id> scoped route,连接 scope 拒绝跨项目参数和全局管理写工具。旧 /mcp 只作兼容迁移。read_project_dev_variable 与 read_project_test_account 是两种有界开发值读取:仅 scoped 路由、匹配项目的本机 bearer 认证后单项读取;认证失败在 dispatch 前拒绝。路由变更需同步 Agent 按钮体系文档。"
|
||
|
||
- label: MCP 工具接口
|
||
paths:
|
||
- "src-tauri/src/mcp_tools.rs"
|
||
- "src-tauri/src/commands/delivery_status.rs"
|
||
- "src-tauri/src/commands/toolchain.rs"
|
||
- "src-tauri/src/commands/cicd.rs"
|
||
- "src-tauri/src/commands/gitea.rs"
|
||
- "src-tauri/src/commands/dev_variables.rs"
|
||
doc: "工具 schema、dispatch 与调用说明必须同步;get_project_resource_status 为项目 scoped 只读状态,仅返回 Gitea PR/webhook 的状态与来源,不返回凭证、引用、URL;旧凭证未迁移时返回 pending_migration,不提前宣称 configured。MCP 不提供 reveal_api_key、get_secret 或任意 HTTP/SSH/SQL/部署代理。明文例外只限 read_project_dev_variable 的单项标量与 read_project_test_account 的单张非生产测试账户;均须匹配 scoped 项目及本机认证。register_project_test_account 只写非秘密需求元数据;列表不返回值,禁止批量导出。production delivery profile 由项目维护,炼境只读 Gitea 部署 context 与公开版本探针,双证据相符才能报告 deployed。外部来源不可用时返回显式降级状态,不得伪造成功。verify_onboarding 必须同时返回静态接入 checks 与 configured/reachable/handshake/tools_ready/reload_required 运行态证据,配置存在不得替代运行可用。CI workflow 使用 plan_cicd_workflow 只读预览,用户确认相同 digest 后方可 apply_cicd_workflow 写入;该接口不接收凭证值且不触发 CI 或部署。"
|
||
|
||
- label: 被管理项目身份上下文
|
||
paths:
|
||
- "src-tauri/src/mcp_inject.rs"
|
||
- "src-tauri/src/commands/onboarding.rs"
|
||
- ".lian-jing/context.json"
|
||
- ".lian-jing/capability-packs.json"
|
||
- ".claude/liangjing.json"
|
||
doc: "`.lian-jing/context.json` 是 project_id 的工具无关单一事实来源;`.claude/liangjing.json` 仅为兼容投影;`.lian-jing/capability-packs.json` 是炼境分发基线的版本描述。lian-jing skill 以同一模板双投影:`.agents/skills/lian-jing/`(Codex、DSH 读取)与 `.claude/skills/lian-jing/`(Claude Code 不读 .agents/skills),两份内容必须一致。迁移必须保留未知字段;验证必须返回显式状态与 upgrade_hint;升级仅覆盖炼境托管文件,绝不覆盖项目定制或手工 MCP 配置,且不得以客户端全局配置或项目 UI 身份替代项目根目录上下文。"
|
||
|
||
- label: Tauri command 接口(前后端契约)
|
||
paths:
|
||
- "src-tauri/src/commands/**/*.rs"
|
||
- "src/lib/commands.ts"
|
||
doc: "新增 command 时前后端必须同步。Gitea/API Key 普通 DTO 不含原始凭证;API Key 仅本机 UI 显式 reveal,get_project_resource_status 仅返回非秘密状态;项目开发需求列表 DTO 仅含名称、类型、目标系统、环境、用途、configured 与时间。本机 UI 对 test_account 一次提交账号/密码到同一受保护引用,允许修改或撤销;列表常态不含值,仅人显式点「修改」时经 reveal_project_dev_variable 取回原值(密码默认遮罩),该 command 不进 MCP;旧 scalar 保持兼容。旧 SQLite 明文列按 write→verify→事务切换引用并清除的顺序兼容迁移,失败需可恢复,不能降级明文。Agent readiness 必须保留 configured/reachable/handshake/tools_ready/reload_required 分层;Windows autostart 默认关闭,只允许正式安装版,debug/target 构建必须拒绝启用。"
|
||
|
||
architecture_docs:
|
||
- "AGENTS.md"
|
||
- "docs/ai-context/agent-button-system.md"
|
||
|
||
agent_docs:
|
||
- "AGENTS.md"
|
||
- "docs/ai-context/project-brief.md"
|