把任务的协调状态迁到自建 Vikunja 的 cmbuyer 项目,git 保留单向投影, 并把「活跃任务写路径不得重叠」从自然语言规则变成机器门禁。 - scripts/vikunja_export.py:单向导出(只发 GET),stdlib-only 的 HTML→Markdown,只覆盖标记区块内,幂等,含 --selftest - scripts/vikunja-mcp.sh:MCP 启动包装从家目录迁入仓库,版本写死 1.1.1 - scripts/validate_agent_context.py:新增四项离线检查——DOING 任务写路径 互斥、通配不得圈走共享文档、导出区块 sha256、连接键一致性 - docs/agent-context.json:新增 shared_documents 与 tracker,schema_version 2 - vikunja.env 比照 gitea.env 加入 gitignore,提交 vikunja.env.example write_paths、## 边界与安全边界条目的权威留在 git,不迁往 Vikunja: 安全边界能否收紧靠 git diff 逐条复核,权威搬到远端会切断审计链。 门禁上线即报出存量违规:T-005 与 T-006 同为 DOING,在 06-tasks.md、 08-interaction-checklist.md、routes.md、current-state.md 四处重叠。 按 T-008 规定不得绕过,须由两者所有者收窄写路径或人工确认后转 DONE。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
100 lines
2.4 KiB
JSON
100 lines
2.4 KiB
JSON
{
|
|
"schema": "docs/agent-context.schema.json",
|
|
"schema_version": 2,
|
|
"authority": {
|
|
"bootstrap": "local_checkout",
|
|
"framework_templates": "current_repository",
|
|
"project_facts": "current_project_repository",
|
|
"coordination": "task_files"
|
|
},
|
|
"bootstrap": {
|
|
"always_read": [
|
|
"AGENTS.md",
|
|
"docs/00-ai-start-here.md",
|
|
"docs/05-coding-rules.md",
|
|
"docs/current-state.md"
|
|
]
|
|
},
|
|
"routes": {
|
|
"documentation": [
|
|
"README.md",
|
|
"docs/README.md",
|
|
"docs/01-vision.md",
|
|
"docs/02-requirements.md",
|
|
"docs/07-user-stories.md",
|
|
"docs/08-interaction-checklist.md"
|
|
],
|
|
"ui": [
|
|
"docs/02-requirements.md",
|
|
"docs/07-user-stories.md",
|
|
"docs/08-interaction-checklist.md",
|
|
"docs/routes.md",
|
|
"docs/04-architecture.md"
|
|
],
|
|
"api": [
|
|
"docs/api.md",
|
|
"docs/04-architecture.md",
|
|
"docs/05-coding-rules.md"
|
|
],
|
|
"data": [
|
|
"docs/02-requirements.md",
|
|
"docs/04-architecture.md",
|
|
"docs/api.md"
|
|
],
|
|
"automation": [
|
|
"docs/04-architecture.md",
|
|
"docs/api.md",
|
|
"docs/05-coding-rules.md",
|
|
"docs/03-tech-stack.md"
|
|
],
|
|
"deploy": [
|
|
"docs/03-tech-stack.md",
|
|
"docs/current-state.md"
|
|
]
|
|
},
|
|
"tasks": {
|
|
"roadmap": "docs/06-tasks.md",
|
|
"directory": "docs/tasks/",
|
|
"template": "docs/tasks/_template.md"
|
|
},
|
|
"shared_documents": [
|
|
"AGENTS.md",
|
|
"README.md",
|
|
"docs/00-ai-start-here.md",
|
|
"docs/02-requirements.md",
|
|
"docs/03-tech-stack.md",
|
|
"docs/04-architecture.md",
|
|
"docs/05-coding-rules.md",
|
|
"docs/06-tasks.md",
|
|
"docs/07-user-stories.md",
|
|
"docs/08-interaction-checklist.md",
|
|
"docs/api.md",
|
|
"docs/current-state.md",
|
|
"docs/routes.md",
|
|
"docs/tasks/README.md"
|
|
],
|
|
"tracker": {
|
|
"kind": "vikunja",
|
|
"project": "cmbuyer",
|
|
"export_script": "scripts/vikunja_export.py",
|
|
"direction": "tracker_to_git",
|
|
"git_native_fields": [
|
|
"write_paths",
|
|
"context_ref",
|
|
"work_branch",
|
|
"boundaries_section"
|
|
]
|
|
},
|
|
"refresh": {
|
|
"context_ref": "default_branch_head_sha",
|
|
"cache_key": "file_sha",
|
|
"unchanged_file": "reuse_within_current_session",
|
|
"changed_ref": "reread_manifest_and_routed_documents"
|
|
},
|
|
"degraded_mode": {
|
|
"continue_claimed_task": true,
|
|
"claim_new_task": false,
|
|
"write_remote_state": false
|
|
}
|
|
}
|