Files
cmbuyer/docs/agent-context.json
T
QiuSWandClaude Opus 5 421c865ad2 feat(tasks): adopt Vikunja as task authority with one-way export
把任务的协调状态迁到自建 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>
2026-08-03 17:00:41 +08:00

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
}
}