{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "task-schema.json", "title": "Unified Task JSON Schema", "description": "统一任务定义 schema v1.0 — 每个任务一个独立 JSON 文件,自包含所有执行所需信息。融合 Unified JSONL (convergence)、6-field Task JSON (execution_config)、Solution Schema (modification_points) 三者优势。", "type": "object", "required": ["id", "title", "description", "depends_on", "convergence"], "properties": { "_comment_IDENTITY": "IDENTITY 区块 (必填) — 任务基本信息", "id": { "type": "string", "description": "任务ID,前缀由生产者决定 (TASK-001 / IMPL-001 / L0 / T1 / FIX-001 等)" }, "title": { "type": "string", "description": "任务标题 (动词+目标,如 'Create unified task schema')" }, "description": { "type": "string", "description": "目标+原因 (1-3 句,描述做什么和为什么)" }, "_comment_CLASSIFICATION": "CLASSIFICATION 区块 (可选) — 任务分类", "type": { "type": "string", "enum": ["infrastructure", "feature", "enhancement", "fix", "refactor", "testing", "docs", "chore"], "description": "任务类型" }, "priority": { "type": "string", "enum": ["critical", "high", "medium", "low"], "description": "优先级" }, "effort": { "type": "string", "enum": ["small", "medium", "large"], "description": "工作量估算" }, "action": { "type": "string", "enum": ["Create", "Update", "Implement", "Refactor", "Add", "Delete", "Configure", "Test", "Fix"], "description": "操作动作 (便于 issue 系统分类)" }, "_comment_SCOPE": "SCOPE 区块 (可选) — 覆盖范围", "scope": { "oneOf": [ { "type": "string" }, { "type": "array", "items": { "type": "string" } } ], "description": "覆盖范围 (模块路径或功能区域)" }, "excludes": { "type": "array", "items": { "type": "string" }, "description": "明确排除的范围" }, "focus_paths": { "type": "array", "items": { "type": "string" }, "description": "重点文件/目录路径" }, "_comment_DEPENDENCIES": "DEPENDENCIES 区块 (必填) — 依赖关系", "depends_on": { "type": "array", "items": { "type": "string" }, "default": [], "description": "依赖任务 ID 列表 (无依赖则 [])" }, "parallel_group": { "type": "number", "description": "并行分组编号 (同组可并行执行)" }, "_comment_CONVERGENCE": "CONVERGENCE 区块 (必填) — 完成标准", "convergence": { "type": "object", "required": ["criteria"], "properties": { "criteria": { "type": "array", "items": { "type": "string" }, "minItems": 1, "description": "可测试的完成条件 (可写为断言或手动步骤)" }, "verification": { "type": "string", "description": "可执行的验证步骤 (命令或明确步骤)" }, "definition_of_done": { "type": "string", "description": "业务语言完成定义 (非技术人员可判断)" } }, "additionalProperties": false }, "_comment_FILES": "FILES 区块 (可选) — 文件级修改点", "files": { "type": "array", "items": { "type": "object", "required": ["path"], "properties": { "path": { "type": "string", "description": "文件路径" }, "action": { "type": "string", "enum": ["modify", "create", "delete"], "description": "文件操作类型" }, "target": { "type": "string", "description": "修改目标 (函数名/类名,来自 Solution Schema)" }, "changes": { "type": "array", "items": { "type": "string" }, "description": "修改描述列表" }, "change": { "type": "string", "description": "单条变更描述 (精确修改说明,合并自 modification_points.change)" }, "conflict_risk": { "type": "string", "enum": ["low", "medium", "high"], "description": "冲突风险等级" } }, "additionalProperties": false }, "description": "涉及文件列表及修改详情" }, "_comment_IMPLEMENTATION": "IMPLEMENTATION 区块 (可选) — 实施指南", "implementation": { "type": "array", "items": { "oneOf": [ { "type": "string" }, { "type": "object", "required": ["step", "description"], "properties": { "step": { "type": "string", "description": "步骤编号/名称" }, "description": { "type": "string", "description": "步骤描述" }, "tdd_phase": { "type": "string", "enum": ["red", "green", "refactor"], "description": "TDD 阶段" }, "actions": { "type": "array", "items": { "type": "string" }, "description": "具体操作列表" }, "test_fix_cycle": { "type": "object", "properties": { "max_iterations": { "type": "integer", "default": 3 } }, "description": "测试修复循环配置" } }, "additionalProperties": false } ] }, "description": "步骤化实施指南 — 支持字符串 (简单步骤) 或对象 (含 TDD 阶段等详情)" }, "test": { "type": "object", "properties": { "commands": { "type": "array", "items": { "type": "string" }, "description": "测试命令" }, "unit": { "type": "array", "items": { "type": "string" }, "description": "单元测试要求" }, "integration": { "type": "array", "items": { "type": "string" }, "description": "集成测试要求" }, "coverage_target": { "type": "number", "minimum": 0, "maximum": 100, "description": "覆盖率目标 (%)" }, "manual_checks": { "type": "array", "items": { "type": "string" }, "description": "手动验证步骤 (合并自 verification_detail)" }, "success_metrics": { "type": "array", "items": { "type": "string" }, "description": "量化成功指标 (如 '响应时间 <200ms', '覆盖率 >80%',合并自 verification_detail)" }, "reusable_tools": { "type": "array", "items": { "type": "string" }, "description": "可复用测试工具/脚本" } }, "additionalProperties": false, "description": "测试要求" }, "regression": { "type": "array", "items": { "type": "string" }, "description": "回归检查点" }, "_comment_PLANNING": "PLANNING 区块 (可选) — 规划详情 (reference + rationale + risks + code_skeleton)", "reference": { "type": "object", "properties": { "pattern": { "type": "string", "description": "参考模式名称" }, "files": { "type": "array", "items": { "type": "string" }, "description": "参考文件路径" }, "examples": { "type": "string", "description": "参考指南或示例" } }, "additionalProperties": false, "description": "参考实现资料" }, "rationale": { "type": "object", "properties": { "chosen_approach": { "type": "string", "description": "选定方案及原因" }, "alternatives_considered": { "type": "array", "items": { "type": "string" }, "description": "被考虑但未选择的替代方案" }, "decision_factors": { "type": "array", "items": { "type": "string" }, "description": "影响决策的关键因素 (性能、可维护性、成本等)" }, "tradeoffs": { "type": "string", "description": "选定方案的已知权衡" } }, "additionalProperties": false, "description": "设计决策原因 (Medium/High complexity 时使用)" }, "risks": { "type": "array", "items": { "type": "object", "required": ["description", "probability", "impact", "mitigation"], "properties": { "description": { "type": "string", "description": "风险描述" }, "probability": { "type": "string", "enum": ["Low", "Medium", "High"], "description": "发生概率" }, "impact": { "type": "string", "enum": ["Low", "Medium", "High"], "description": "影响程度" }, "mitigation": { "type": "string", "description": "缓解策略" }, "fallback": { "type": "string", "description": "缓解失败时的替代方案" } }, "additionalProperties": false }, "description": "结构化风险评估" }, "code_skeleton": { "type": "object", "properties": { "interfaces": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "definition": { "type": "string" }, "purpose": { "type": "string" } } }, "description": "关键接口/类型定义" }, "key_functions": { "type": "array", "items": { "type": "object", "properties": { "signature": { "type": "string" }, "purpose": { "type": "string" }, "returns": { "type": "string" } } }, "description": "关键函数签名" }, "classes": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "purpose": { "type": "string" }, "methods": { "type": "array", "items": { "type": "string" } } } }, "description": "关键类结构" } }, "additionalProperties": false, "description": "代码骨架 (High complexity 时使用)" }, "_comment_EXECUTION": "EXECUTION 区块 (可选) — 执行策略", "meta": { "type": "object", "properties": { "agent": { "type": "string", "description": "分配的 agent (@code-developer / @test-fix-agent 等)" }, "module": { "type": "string", "description": "所属模块 (frontend/backend/shared)" }, "execution_config": { "type": "object", "properties": { "method": { "type": "string", "enum": ["agent", "cli"], "description": "执行方式" }, "cli_tool": { "type": "string", "enum": ["codex", "gemini", "qwen", "auto"], "description": "CLI 工具选择" }, "enable_resume": { "type": "boolean", "description": "是否启用会话恢复" } }, "additionalProperties": false } }, "additionalProperties": true, "description": "执行元信息" }, "cli_execution": { "type": "object", "properties": { "id": { "type": "string", "description": "CLI 会话 ID (WFS-{session}-TASK-{id})" }, "strategy": { "type": "string", "enum": ["new", "resume", "fork", "merge_fork"], "description": "CLI 执行策略" }, "resume_from": { "type": "string", "description": "父任务 CLI ID (用于 resume/fork)" }, "merge_from": { "type": "array", "items": { "type": "string" }, "description": "合并来源 CLI ID 列表 (用于 merge_fork)" } }, "additionalProperties": false, "description": "CLI 执行配置" }, "_comment_EXTENDED_CONTEXT": "EXTENDED CONTEXT 区块 (可选) — 扩展执行上下文", "pre_analysis": { "type": "array", "description": "Pre-execution analysis steps. Agent executes these before implementation.", "items": { "type": "object", "required": ["step", "action"], "properties": { "step": { "type": "string", "description": "步骤名称" }, "action": { "type": "string", "description": "执行动作描述" }, "commands": { "type": "array", "items": { "type": "string" }, "description": "执行命令列表" }, "command": { "type": "string", "description": "单条执行命令" }, "output_to": { "type": "string", "description": "输出存储位置" }, "on_error": { "type": "string", "enum": ["fail", "skip_optional", "continue"], "description": "错误处理策略" } }, "additionalProperties": false } }, "artifacts": { "type": "array", "description": "Brainstorming artifact references for context.", "items": { "type": "object", "properties": { "type": { "type": "string", "description": "产物类型" }, "source": { "type": "string", "description": "产物来源" }, "path": { "type": "string", "description": "产物路径" }, "feature_id": { "type": "string", "description": "关联功能 ID" }, "priority": { "type": "string", "description": "优先级" }, "usage": { "type": "string", "description": "使用说明" } }, "additionalProperties": true } }, "inherited": { "type": "object", "description": "Context inherited from parent task.", "properties": { "from": { "type": "string", "description": "父任务 ID" }, "context": { "type": "array", "items": { "type": "string" }, "description": "继承的上下文条目" } }, "additionalProperties": false }, "_comment_CONTEXT": "CONTEXT 区块 (可选) — 来源与上下文", "source": { "type": "object", "properties": { "tool": { "type": "string", "description": "产出工具名 (workflow-plan / lite-plan / issue-resolve / review-cycle 等)" }, "session_id": { "type": "string", "description": "来源 session ID" }, "original_id": { "type": "string", "description": "转换前原始 ID" }, "issue_id": { "type": "string", "description": "关联的 Issue ID" } }, "additionalProperties": false, "description": "任务来源信息" }, "context_package_path": { "type": "string", "description": "上下文包路径" }, "evidence": { "type": "array", "description": "支撑证据" }, "inputs": { "type": "array", "items": { "type": "string" }, "description": "消费的产物 (文件/资源)" }, "outputs": { "type": "array", "items": { "type": "string" }, "description": "产出的产物 (文件/资源)" }, "commit": { "type": "object", "properties": { "type": { "type": "string", "enum": ["feat", "fix", "refactor", "test", "docs", "chore"], "description": "提交类型" }, "scope": { "type": "string", "description": "提交范围" }, "message_template": { "type": "string", "description": "提交消息模板" } }, "additionalProperties": false, "description": "提交信息模板" }, "_comment_RUNTIME": "RUNTIME 区块 (执行时填充) — 运行时状态", "status": { "type": "string", "enum": ["pending", "in_progress", "completed", "failed", "skipped", "blocked"], "default": "pending", "description": "执行状态 (执行引擎填充)" }, "executed_at": { "type": "string", "format": "date-time", "description": "执行时间戳 (ISO 8601)" }, "result": { "type": "object", "properties": { "success": { "type": "boolean", "description": "是否成功" }, "files_modified": { "type": "array", "items": { "type": "string" }, "description": "修改的文件列表" }, "summary": { "type": "string", "description": "执行摘要" }, "error": { "type": "string", "description": "错误信息 (失败时)" }, "convergence_verified": { "type": "array", "items": { "type": "boolean" }, "description": "收敛标准验证结果 (对应 convergence.criteria 每项)" }, "commit_hash": { "type": "string", "description": "提交哈希" } }, "additionalProperties": false, "description": "执行结果 (执行引擎填充)" } }, "additionalProperties": true, "_field_usage_by_producer": { "workflow-plan": "IDENTITY + CLASSIFICATION + SCOPE + DEPENDENCIES + CONVERGENCE + FILES + IMPLEMENTATION + EXECUTION(pre_analysis + artifacts + inherited + cli_execution + meta) + PLANNING(reference + rationale + risks + code_skeleton) + CONTEXT(context_package_path)", "lite-plan": "IDENTITY + CLASSIFICATION + DEPENDENCIES + CONVERGENCE + FILES", "lite-plan (v2)": "IDENTITY + CLASSIFICATION + SCOPE + DEPENDENCIES + CONVERGENCE + FILES(+change) + IMPLEMENTATION(+manual_checks +success_metrics) + PLANNING(reference + rationale + risks + code_skeleton)", "req-plan": "IDENTITY + CLASSIFICATION + SCOPE + DEPENDENCIES + CONVERGENCE + PLANNING(risks) + CONTEXT(inputs/outputs)", "collaborative-plan": "IDENTITY + CLASSIFICATION + SCOPE + DEPENDENCIES + CONVERGENCE + FILES + CONTEXT(source)", "issue-resolve": "IDENTITY + CLASSIFICATION + SCOPE + DEPENDENCIES + CONVERGENCE + FILES(with target) + IMPLEMENTATION + CONTEXT(commit/source)", "review-cycle": "IDENTITY + CLASSIFICATION + FILES + CONVERGENCE + IMPLEMENTATION + CONTEXT(source/evidence)", "tdd-plan": "IDENTITY + CLASSIFICATION + DEPENDENCIES + CONVERGENCE + EXECUTION + IMPLEMENTATION(test focused)", "analyze-brainstorm": "IDENTITY + CLASSIFICATION + DEPENDENCIES + CONVERGENCE + CONTEXT(evidence/source)" }, "_directory_convention": { "standard_path": "{session_folder}/.task/", "file_naming": "TASK-{id}.json (或保留原有 ID 前缀: IMPL-, L0-, T1-, FIX-)", "examples": { "workflow-plan": ".workflow/active/WFS-xxx/.task/IMPL-001.json", "lite-plan": ".workflow/.lite-plan/{id}/.task/TASK-001.json", "req-plan": ".workflow/.req-plan/RPLAN-{id}/.task/TASK-001.json", "collab-plan": ".workflow/.planning/CPLAN-{id}/.task/TASK-001.json", "review-cycle": ".workflow/active/WFS-{id}/.review/.task/FIX-001.json", "issue-resolve": ".workflow/issues/{issue-id}/.task/TASK-001.json" } } }