OGT Docs - Create Task
Complete guide for creating and managing tasks in the docs-first workflow.
Overview
Tasks are the unit of work in the docs-first system. Each task is a folder that moves through workflow stages, accumulating documentation and signals as it progresses.
CODEBLOCK0
Folder Structure
CODEBLOCK1
Stage: pending/
Tasks that are defined but not yet started.
Example: pending/fuzzy_search/
CODEBLOCK2
task.md
CODEBLOCK3
context.md
CODEBLOCK4
.version
CODEBLOCK5
.priority
CODEBLOCK6
Stage: in_progress/
Tasks actively being worked on.
Example: inprogress/cardvariants/
CODEBLOCK7
task.md
CODEBLOCK8
progress.md
CODEBLOCK9
.assignedtoclaude
CODEBLOCK10
.started_at
CODEBLOCK11
Stage: review/
Tasks completed and awaiting review.
Example: review/spell_routes/
CODEBLOCK12
task.md
CODEBLOCK13
progress.md
CODEBLOCK14
implementation.md
INLINECODE0
front/app/App.tsx
Added import and route:
CODEBLOCK17
Testing
- - Manual test: /spells/fireball loads correctly
- Manual test: /spells/magic-missile loads correctly
- TypeScript: No errors
CODEBLOCK18
(empty file)
CODEBLOCK19
https://github.com/org/repo/pull/123
CODEBLOCK20
2026-02-05T09:30:00Z
CODEBLOCK21
blocked/
└── auth_refactor/
├── task.md
├── progress.md
├── .version
├── .blocked
├── .blocked_reason
├── .blocked_at
└── .depends_on
INLINECODE1
#### progress.md
markdown
Progress: Auth Refactor
2026-02-03 14:00 - Started
- - Analyzed current AuthService implementation
- Identified 3 provider-specific code paths
2026-02-03 15:00 - BLOCKED
- - Steam OAuth requires server-side changes
- Backend team needs to add Steam provider to Strapi
- Cannot proceed until backend work is complete
Waiting For
- - Backend task: "Add Steam OAuth Provider to Strapi"
- ETA: Unknown
#### .blocked
(empty file)
#### .blocked_reason
Requires backend changes: Steam OAuth provider must be added to Strapi before frontend can implement Steam login flow. Backend task not yet created.
#### .blocked_at
2026-02-03T15:00:00Z
#### .depends_on
- - backend/steamoauthprovider (not yet created)
- Strapi plugin configuration
---
## Stage: done/
Completed tasks that have been **verified**.
### Example: done/ogt_cli_commands/
done/
└── ogt
clicommands/
├── task.md
├── progress.md
├── implementation.md
├── verification.md
├── .version
├── .verified
├── .completed_at
└── .verified
byclaude
#### task.md
markdown
Task: OGT CLI Check Commands
Summary
Create generic file/data validation CLI tools under ogt check.
Objectives
- - ogt check assets - Check for missing files
- ogt check slugs - Verify slug conventions
- ogt check indexed - Verify index.ts exports
- ogt check data - Validate against schema
Acceptance Criteria
- - [x] All commands have --help
- [x] Commands return proper exit codes
- [x] JSON output option available
- [x] TypeScript compiles clean
#### verification.md
markdown
# Verification: OGT CLI Commands
## Verification Date
2026-01-30
## Tests Performed
### Command Existence
CODEBLOCK31
### Functional Tests
bash
$ ogt check indexed creatures
✅ Returns JSON with 197 total, 197 passed
$ ogt check slugs front/data/app-creatures -r
✅ Returns JSON with slug validation results
$ ogt check assets static/public/creatures portrait.png -r
✅ Returns JSON listing missing portraits
### Exit Codes
bash
$ ogt check indexed creatures && echo "pass"
✅ Exits 0, prints "pass"
$ ogt check indexed nonexistent || echo "fail"
✅ Exits 1, prints "fail"
CODEBLOCK34
.verified
CODEBLOCK35
.completed_at
CODEBLOCK36
.verifiedbyclaude
(empty file)
Stage: rejected/
Tasks that were declined and will not be implemented.
Example: rejected/legacyapicompat/
CODEBLOCK38 INLINECODE4
.rejected
CODEBLOCK40
.rejected_reason
CODEBLOCK41
.rejected_at
CODEBLOCK42
Stage: implemented/
Tasks that are done AND deployed/released to production.
Example: implemented/creatures_index/
CODEBLOCK43
.implemented_at
CODEBLOCK44
.release_version
CODEBLOCK45
Task Lifecycle Operations
Creating a New Task
CODEBLOCK46
Steps:
- 1. Create folder: INLINECODE5
- Create
task.md with Summary, Objectives, Acceptance Criteria - Optionally add
context.md for background - Create
.priority with level (critical/high/medium/low) - Create
.version with schema version
Starting a Task
CODEBLOCK47
Blocking a Task
CODEBLOCK48
Submitting for Review
CODEBLOCK49
Completing a Task
CRITICAL: Must verify before marking done!
CODEBLOCK50
Rejecting a Task
CODEBLOCK51
Signal Files Reference
Status Signals (empty files)
| Signal | Stage | Meaning |
|---|
| INLINECODE10 | blocked/ | Task cannot proceed |
| INLINECODE11 |
review/ | Ready for review |
|
.verified | done/, implemented/ |
REQUIRED - Implementation verified |
|
.rejected | rejected/ | Task declined |
Assignment Signals (empty files)
| Signal | Stage | Meaning |
|---|
| INLINECODE14 | in_progress/ | Who's working on it |
| INLINECODE15 |
done/ | Who verified it |
|
.approved_by_{name} | any | Who approved |
Content Signals (contain text)
| Signal | Content | Example |
|---|
| INLINECODE17 | JSON schema version | INLINECODE18 |
| INLINECODE19 |
Priority level |
high |
|
.blocked_reason | Why blocked | Free text explanation |
|
.rejected_reason | Why rejected | Free text explanation |
|
.depends_on | Dependencies | List of dependencies |
|
.pr_link | PR URL |
https://github.com/... |
|
.started_at | ISO timestamp |
2026-02-05T10:00:00Z |
|
.completed_at | ISO timestamp |
2026-02-05T14:00:00Z |
|
.blocked_at | ISO timestamp |
2026-02-05T12:00:00Z |
|
.rejected_at | ISO timestamp |
2026-02-05T09:00:00Z |
|
.implemented_at | ISO timestamp |
2026-02-05T16:00:00Z |
|
.release_version | Version string |
v1.2.0 |
Task.md Template
CODEBLOCK52
Verification Rules
NEVER mark a task as done without verification.
Verification Checklist
CODEBLOCK53
Common Mistakes
| Mistake | Why It's Wrong | Correct Approach |
|---|
| Moving to done/ without .verified | No proof of completion | Verify first, then move |
| Trusting task.md checkboxes |
Checkboxes can be wrong | Run actual verification |
| Skipping implementation.md | No record of what changed | Document all changes |
| Empty verification.md | No proof of verification | Record actual test output |
| Multiple tasks in progress | Context switching waste | Finish one, then start next |
| Editing task.md in done/ | History should be immutable | Create follow-up task instead |
OGT Docs - 创建任务
在文档优先工作流中创建和管理任务的完整指南。
概述
任务是文档优先系统中的工作单元。每个任务都是一个文件夹,在工作流阶段中流转,并在过程中积累文档和信号。
mermaid
flowchart LR
subgraph stages [任务生命周期]
P[pending] --> IP[in_progress]
IP --> R[review]
R --> D[done]
IP --> B[blocked]
B --> IP
R --> REJ[rejected]
REJ --> P
D --> IMP[implemented]
end
style P fill:#fef3c7
style IP fill:#dbeafe
style R fill:#e0e7ff
style B fill:#fee2e2
style REJ fill:#fecaca
style D fill:#d1fae5
style IMP fill:#a7f3d0
文件夹结构
docs/todo/
├── pending/ # 尚未开始的任务
│ └── {task_slug}/
│ ├── task.md # 主要任务定义
│ ├── context.md # 背景信息(可选)
│ ├── .version # 模式版本
│ └── .priority # 优先级级别(内容:critical|high|medium|low)
│
├── in_progress/ # 正在积极处理的任务
│ └── {task_slug}/
│ ├── task.md
│ ├── progress.md # 工作日志和更新
│ ├── .version
│ ├── .priority
│ ├── .assignedto{agent} # 谁在处理
│ └── .started_at # 开始时间戳
│
├── review/ # 等待审核的任务
│ └── {task_slug}/
│ ├── task.md
│ ├── progress.md
│ ├── implementation.md # 已完成的工作
│ ├── .version
│ ├── .readyforreview # 空信号文件
│ ├── .pr_link # PR URL(如适用)
│ └── .reviewrequestedat
│
├── blocked/ # 无法继续的任务
│ └── {task_slug}/
│ ├── task.md
│ ├── progress.md
│ ├── .version
│ ├── .blocked # 空信号文件
│ ├── .blocked_reason # 阻塞原因(内容)
│ ├── .blocked_at # 阻塞时间
│ └── .depends_on # 等待什么
│
├── done/ # 已完成并验证的任务
│ └── {task_slug}/
│ ├── task.md
│ ├── progress.md
│ ├── implementation.md
│ ├── verification.md # 验证方式
│ ├── .version
│ ├── .verified # 空信号文件 - 必需
│ ├── .completed_at # 完成时间戳
│ └── .verifiedby{agent} # 谁验证的
│
├── rejected/ # 被拒绝的任务
│ └── {task_slug}/
│ ├── task.md
│ ├── .version
│ ├── .rejected # 空信号文件
│ ├── .rejected_reason # 拒绝原因(内容)
│ └── .rejected_at # 拒绝时间
│
└── implemented/ # 已部署/发布的任务
└── {task_slug}/
├── task.md
├── implementation.md
├── verification.md
├── .version
├── .verified
├── .completed_at
├── .implemented_at # 部署时间
└── .release_version # 包含该任务的版本
阶段:pending/
已定义但尚未开始的任务。
示例:pending/fuzzy_search/
pending/
└── fuzzy_search/
├── task.md
├── context.md
├── .version
└── .priority
task.md
markdown
任务:模糊搜索实现
摘要
使用 MiniSearch 将子字符串搜索替换为模糊索引搜索。
目标
- - 安装 MiniSearch 库
- 创建 SearchIndexService
- 重构 GlobalSearch 组件
- 为搜索输入添加防抖
验收标准
- - [ ] 输入 fir 返回 Fireball、Fire Elemental 等
- [ ] 结果按相关性排序
- [ ] 搜索响应时间在 16ms 内
- [ ] TypeScript 编译无错误
依赖项
预估工作量
中等(2-4 小时)
参考资料
- - MiniSearch 文档:https://lucaong.github.io/minisearch/
- 当前搜索:front/components/features/GlobalSearch.tsx
context.md
markdown
上下文:模糊搜索
当前状态
GlobalSearch.tsx 使用 String.toLowerCase().includes() 进行匹配。
没有排序、没有防抖、没有模糊匹配。
用户需求
全局搜索使用 ctrl+k,应该即时、索引化、模糊匹配。
如果我搜索 fire 只输入 fir,应该立即获得列表。
技术决策
选择 MiniSearch 而非:
- - Fuse.js(更重,大数据集上更慢)
- Lunr(无模糊匹配)
MiniSearch 压缩后仅 6KB,被 VitePress 使用。
.version
json
{ schema: 1.0, created: 2026-02-05T10:00:00Z }
.priority
high
阶段:in_progress/
正在积极处理的任务。
示例:inprogress/cardvariants/
in_progress/
└── card_variants/
├── task.md
├── progress.md
├── .version
├── .priority
├── .assignedtoclaude
└── .started_at
task.md
markdown
任务:卡片变体系统扩展
摘要
添加 Condensed、ListItemCondensed 以及占位的 Quaternary/Penta 卡片变体。
目标
- - 更新 UICardFrameType 枚举
- 创建 Condensed.tsx 组件
- 创建 ListItemCondensed.tsx 组件
- 创建 Quaternary 和 Penta 占位变体
- 更新所有 *CardMain.tsx 编排器
验收标准
- - [ ] Condensed 渲染 48-64px 的图块,包含艺术图、边框、图标徽章
- [ ] ListItemCondensed 渲染 32px 的单行行
- [ ] Quaternary/Penta 作为占位存在
- [ ] 所有编排器路由到新变体
- [ ] TypeScript 编译无错误
依赖项
预估工作量
大(4-8 小时)
progress.md
markdown
进度:卡片变体
2026-02-05 10:30 - 开始
- - 阅读现有卡片组件
- 识别出 8 个需要变体的实体类型
- 创建实施计划
2026-02-05 11:00 - UICardFrameType 已更新
- - 添加了 Condensed、Penta、ListItem、ListItemCondensed 到类型
- 文件:front/data/app-generics.ts:82
2026-02-05 11:30 - CreatureCardCondensed 已创建
- - 创建了 front/components/compendium/CreatureCardCondensed.tsx
- 64x64 肖像、稀有度边框、类型图标徽章
- 悬停时显示名称的工具提示
当前状态
- - [x] 类型定义已更新
- [x] CreatureCardCondensed
- [ ] ItemCardCondensed
- [ ] AbilityCardCondensed
- [ ] 剩余实体类型
- [ ] ListItemCondensed 变体
- [ ] Quaternary/Penta 占位
- [ ] 编排器更新
.assignedtoclaude
(空文件 - 存在即表示分配)
.started_at
2026-02-05T10:30:00Z
阶段:review/
已完成并等待审核的任务。
示例:review/spell_routes/
review/
└── spell_routes/
├── task.md
├── progress.md
├── implementation.md
├── .version
├── .readyforreview
├── .pr_link
└── .reviewrequestedat
task.md
mark