update-work-item

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Update Work Item

更新工作项

Overview

概述

Update progress on an existing work item: change status, record actual effort, add test results, mark related commits, update dependencies, and add implementation notes as work progresses.
更新现有工作项的进度:包括变更状态、记录实际工作量、添加测试结果、标记相关提交、更新依赖项,以及在工作推进过程中添加实现备注。

When to Use

适用场景

Update a work item when:
  • Starting work (change status to
    in_progress
    )
  • Completing implementation (change status to
    testing
    )
  • Recording actual hours spent
  • Adding related commit hashes
  • Logging test results or CI status
  • Adjusting estimates based on new information
  • Adding implementation notes or blockers
在以下场景下更新工作项:
  • 开始工作(将状态改为
    in_progress
  • 完成开发实现(将状态改为
    testing
  • 记录实际花费工时
  • 添加相关提交哈希值
  • 记录测试结果或CI状态
  • 根据新信息调整估算工时
  • 添加实现备注或阻塞问题

When NOT to Use

不适用场景

Skip updates for:
  • Creating new items (use
    create-work-item
    skill)
  • Finalizing and archiving (use
    finalize-work-item
    skill)
  • Minor comments (just edit as needed, no skill required)
以下情况无需使用本技能更新工作项:
  • 创建新工作项(使用
    create-work-item
    技能)
  • 最终完成并归档工作项(使用
    finalize-work-item
    技能)
  • 添加次要评论(直接编辑即可,无需使用技能)

Frontmatter Fields

前置字段

Status and State Reason Fields

状态与状态原因字段

yaml
status: not_started | in_progress | testing | completed
state_reason: null | success | obsolete | redundant | superseded | cancelled
Statusstate_reasonMeaningWhen to Use
not_started
(none)Ready to beginInitial creation
in_progress
(none)Active developmentActively working
testing
(none)Impl done, awaiting resultsTests running, review pending
completed
success
Finished successfullyAll criteria met, merged
completed
obsolete
No longer relevantMarket changed, approach outdated
completed
redundant
Duplicate itemSame work in another item
completed
superseded
Made moot by other itemDifferent item solves it better
completed
cancelled
Work stoppedStopped, won't implement
yaml
status: not_started | in_progress | testing | completed
state_reason: null | success | obsolete | redundant | superseded | cancelled
状态状态原因含义适用场景
not_started
(无)待开始初始创建时
in_progress
(无)开发中正在开展工作时
testing
(无)开发完成,等待测试结果测试运行中、等待评审时
completed
success
成功完成所有验收标准达成、代码已合并
completed
obsolete
不再相关市场变化、方案过时
completed
redundant
重复项其他工作项已包含相同工作
completed
superseded
被其他项替代其他工作项能更好地解决问题
completed
cancelled
工作终止停止工作、不再实现

Effort Tracking

工作量跟踪

yaml
estimated_hours: 20          # Set when created
actual_hours: 18             # Update as work progresses, finalize when complete
completed_date: null         # Set when status = completed (YYYY-MM-DD)
Guidelines:
  • estimated_hours
    : Set once, don't change unless scope significantly shifts
  • actual_hours
    : Start as
    null
    , update when complete
  • completed_date
    : Set only when moving to completed status
yaml
estimated_hours: 20          # 创建时设置
actual_hours: 18             # 工作推进过程中更新,完成时最终确认
completed_date: null         # 状态设为completed时设置(格式:YYYY-MM-DD)
规范:
  • estimated_hours
    : 仅设置一次,除非范围发生重大变更否则不修改
  • actual_hours
    : 初始为
    null
    ,完成工作后更新
  • completed_date
    : 仅在状态变为completed时设置

Commit Tracking

提交记录跟踪

yaml
related_commit:
  - 6d8c044  # Short hash or fully qualified ref
  - f00459b  # Add commits as they're implemented
Record commit hashes and their summary messages as work is merged. Helps trace implementation back to work items.
yaml
related_commit:
  - 6d8c044  # 短哈希或完整引用
  - f00459b  # 开发过程中逐步添加提交记录
记录提交哈希值及其摘要信息,便于追溯工作项对应的实现内容。

Test Results

测试结果

yaml
test_results: null | "URL to CI run" | "Local test results summary"
Examples:
yaml
test_results: "https://github.com/squirrel289/temple/actions/runs/12345678"
test_results: "All 47 tests pass, coverage 89%"
test_results: "3 test failures in test_renderer.py (see notes)"
yaml
test_results: null | "CI运行URL" | "本地测试结果摘要"
示例:
yaml
test_results: "https://github.com/squirrel289/temple/actions/runs/12345678"
test_results: "全部47项测试通过,覆盖率89%"
test_results: "test_renderer.py中有3项测试失败(详见备注)"

Dependencies

依赖项

yaml
dependencies:
  - "[[54_complete_temple_native.md]]"
  - "[[43_implement_template_syntax_validation.md]]"
Update if new dependencies emerge during implementation.
yaml
dependencies:
  - "[[54_complete_temple_native.md]]"
  - "[[43_implement_template_syntax_validation.md]]"
若开发过程中发现新的依赖项,需更新此处内容。

Workflow: Updating Work Items

工作项更新流程

1. Moving to In-Progress

1. 流转至进行中

When starting work (changing status from
not_started
to
in_progress
):
  1. Automatically create and checkout a local feature branch via
    feature-branch-management
    skill:
    bash
    # Triggered automatically when status: in_progress
    feature-branch-management create feature/60-filter-adapter
    • Branch naming convention:
      feature/<id>-<slug>
      (e.g.,
      feature/60-filter-adapter
      )
    • Branch is created from main and checked out automatically
    • If the branch already exists, it is checked out
    • This ensures all work is isolated and traceable to the work item
    Related Field: Track branch in work item:
    yaml
    feature_branch: feature/60-filter-adapter
  2. Update the work item file frontmatter:
    markdown
    ---
    title: "Implement FilterAdapter"
    id: 60
    status: in_progress  # Changed from not_started
    priority: high
    estimated_hours: 20
    actual_hours: null
    completed_date: null
    notes:
    - timestamp: 2024-06-01T12:00:00Z
      user: @john
      note:
    - timestamp: 2024-06-01T12:00:00Z
      user: @john
      note: |
        Started implementation of FilterAdapter in temple/sdk/.
        Initial focus: selectattr and map filters.
    ---
  3. Also add a placeholder for
    actual_hours
    tracking:
    yaml
    actual_hours: 2  # Increment as work progresses
开始工作时(将状态从
not_started
改为
in_progress
):
  1. 自动创建并检出本地功能分支,通过
    feature-branch-management
    技能实现:
    bash
    # 状态改为in_progress时自动触发
    feature-branch-management create feature/60-filter-adapter
    • 分支命名规范:
      feature/<id>-<slug>
      (例如:
      feature/60-filter-adapter
    • 基于main分支创建新分支并自动检出
    • 若分支已存在,则直接检出
    • 确保所有工作都与对应工作项关联,便于追踪
    关联字段: 在工作项中记录分支信息:
    yaml
    feature_branch: feature/60-filter-adapter
  2. 更新工作项文件的前置字段:
    markdown
    ---
    title: "Implement FilterAdapter"
    id: 60
    status: in_progress  # 从not_started变更
    priority: high
    estimated_hours: 20
    actual_hours: null
    completed_date: null
    notes:
    - timestamp: 2024-06-01T12:00:00Z
      user: @john
      note:
    - timestamp: 2024-06-01T12:00:00Z
      user: @john
      note: |
        开始在temple/sdk/中实现FilterAdapter。
        初期重点:selectattr和map过滤器。
    ---
  3. 同时添加
    actual_hours
    跟踪的占位符:
    yaml
    actual_hours: 2  # 工作推进过程中逐步增加

2. Recording Actual Hours

2. 记录实际工时

As work progresses, update
actual_hours
:
yaml
estimated_hours: 20
actual_hours: 6  # 2 hours initial + 4 more hours
Update periodically (after major milestones, at end of session) so you have a sense of actual time investment.
工作推进过程中,更新
actual_hours
yaml
estimated_hours: 20
actual_hours: 6  # 初始2小时 + 新增4小时
定期更新(完成重要里程碑后、工作时段结束时),以便掌握实际投入的工时。

3. Adding Related Commits

3. 添加相关提交记录

When work is committed, record the commit hash:
yaml
related_commit:
  - 6d8c044  # feat(sdk): initial FilterAdapter interface
  - f00459b  # feat(filters): implement selectattr and map
  - a1b2c3d  # docs: add filter usage examples
Use the command:
bash
git log --oneline <short_hash> -n 1 --pretty=format:"  - %h  # %s
to generate the
related_commit
line for a given
<short_hash>
.
Keep hashes in chronological order. Multiple commits are fine—they show the evolution of the work.
完成代码提交后,记录提交哈希值:
yaml
related_commit:
  - 6d8c044  # feat(sdk): initial FilterAdapter interface
  - f00459b  # feat(filters): implement selectattr and map
  - a1b2c3d  # docs: add filter usage examples
使用以下命令生成
related_commit
行:
bash
git log --oneline <short_hash> -n 1 --pretty=format:"  - %h  # %s
其中
<short_hash>
为目标短哈希值。
按时间顺序排列哈希值。可添加多个提交记录,展示工作的演进过程。

4. Transitioning to Testing

4. 流转至测试状态

When implementation is done and ready for review, move to testing:
  1. Sync branch with main via
    feature-branch-management
    :
    bash
    # Triggered automatically when status: testing
    feature-branch-management sync --base=main
    • Rebases feature branch on latest main to avoid conflicts
    • Ensures clean commit history for PR review
    • If conflicts detected, will prompt with suggested resolution steps
  2. Create Pull Request via
    create-pr
    skill (automatic):
    bash
    # Triggered automatically when status: testing
    create-pr work_item=60
    • PR title auto-generated: "60: Implement FilterAdapter"
    • PR description auto-generated from work item notes + commit history
    • PR links to work item via "Closes #60" reference
    • PR URL recorded in work item metadata
  3. Update work item frontmatter:
    yaml
    status: testing
    actual_hours: 18  # Finalize effort
    state_reason: null  # Not set yet
    pr_number: 247  # Auto-populated by create-pr
    pr_url: "https://github.com/squirrel289/pax/pull/247"
    notes:
    - timestamp: 2024-06-01T12:00:00Z
      user: @john
      note: |
        Implementation complete. All filters implemented with type signatures.
        PR submitted for review: #247
        Awaiting code review and approval.
Do NOT set
completed_date
or
state_reason
yet.
开发完成并准备评审时,将状态改为testing:
  1. 同步分支与main分支,通过
    feature-branch-management
    技能实现:
    bash
    # 状态改为testing时自动触发
    feature-branch-management sync --base=main
    • 将功能分支基于最新的main分支变基,避免冲突
    • 确保PR评审时提交历史清晰
    • 若检测到冲突,将提示建议的解决步骤
  2. 自动创建拉取请求(PR),通过
    create-pr
    技能实现:
    bash
    # 状态改为testing时自动触发
    create-pr work_item=60
    • PR标题自动生成:"60: Implement FilterAdapter"
    • PR描述自动从工作项备注和提交历史生成
    • PR通过"Closes #60"关联至工作项
    • PR URL将记录在工作项元数据中
  3. 更新工作项前置字段
    yaml
    status: testing
    actual_hours: 18  # 最终确认工作量
    state_reason: null  # 暂不设置
    pr_number: 247  # 由create-pr技能自动填充
    pr_url: "https://github.com/squirrel289/pax/pull/247"
    notes:
    - timestamp: 2024-06-01T12:00:00Z
      user: @john
      note: |
        开发完成。所有过滤器已实现类型签名。
        已提交PR等待评审:#247
        等待代码评审与批准。
此时请勿设置
completed_date
state_reason

5. Recording Test Results

5. 记录测试结果

After running tests:
yaml
status: testing
test_results: "https://github.com/squirrel289/temple/actions/runs/98765432"
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: |
      CI results:
      - 98 tests pass
      - 2 tests fail in test_filter_edge_cases.py (filter_args validation)
      - Coverage 87% (target 85%)
      
      Known issues:
      - Filter arg validation too strict for varargs
      - Will fix in follow-up PR
If tests fail, add notes on what needs fixing. Update status back to
in_progress
if rework needed:
yaml
status: in_progress
actual_hours: 19  # Add time spent debugging
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: Tests exposed issue with varargs handling. Working on fix in branch feature/varargs-fix.
运行测试后:
yaml
status: testing
test_results: "https://github.com/squirrel289/temple/actions/runs/98765432"
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: |
      CI结果:
      - 98项测试通过
      - test_filter_edge_cases.py中有2项测试失败(filter_args验证问题)
      - 覆盖率87%(目标85%)
      
      已知问题:
      - 针对可变参数的过滤器参数验证过于严格
      - 将在后续PR中修复
若测试失败,需添加备注说明需要修复的内容。若需要返工,将状态改回
in_progress
yaml
status: in_progress
actual_hours: 19  # 添加调试花费的工时
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: 测试暴露了可变参数处理的问题。正在feature/varargs-fix分支中修复。

6. Moving to Completed

6. 流转至完成状态

When all tests pass and work is approved:
yaml
status: completed
state_reason: success  # Set based on completion type
actual_hours: 22  # Final tally
completed_date: 2026-02-12
test_results: "https://github.com/squirrel289/temple/actions/runs/98765432"
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: |
      All acceptance criteria met:
      - FilterAdapter interface implemented and documented
      - Core filters (selectattr, map, join, default) working
      - 95% test coverage
      - Code reviewed and approved
      - Merged to main in commit a1b2c3d
Set
state_reason
to one of:
  • success
    : Normal completion with acceptance criteria met
  • obsolete
    : Item no longer needed (note why)
  • redundant
    : Duplicate of another item (reference it)
  • superseded
    : Made moot by another item (reference it)
  • cancelled
    : Work stopped before completion (note why)
Leave file in
/backlog/
. The
finalize-work-item
skill handles archiving.
所有测试通过且工作获得批准后:
yaml
status: completed
state_reason: success  # 根据完成类型设置
actual_hours: 22  # 最终工时统计
completed_date: 2026-02-12
test_results: "https://github.com/squirrel289/temple/actions/runs/98765432"
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: |
      所有验收标准达成:
      - FilterAdapter接口已实现并完成文档编写
      - 核心过滤器(selectattr、map、join、default)可正常工作
      - 测试覆盖率95%
      - 代码已评审并批准
      - 已通过提交a1b2c3d合并至main分支
state_reason
可设置为以下值之一:
  • success
    : 正常完成,达成所有验收标准
  • obsolete
    : 工作项不再需要(备注原因)
  • redundant
    : 与其他工作项重复(关联对应项)
  • superseded
    : 被其他工作项替代(关联对应项)
  • cancelled
    : 工作未完成即终止(备注原因)
将文件保留在
/backlog/
目录下。归档工作项由
finalize-work-item
技能处理。

7. Adjusting Estimates

7. 调整估算工时

If scope changes significantly during work:
yaml
estimated_hours: 20  # Original
actual_hours: 12     # Current progress, which may exceed estimate
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: |
      Revised scope: only implementing selectattr, map, and join 
      (default and custom filters deferred to #61).
      New estimated_hours would be ~16, but keeping original to track 
      scope reduction.
Or adjust explicitly if scope fundamentally changed:
yaml
estimated_hours: 28  # Increased from 20 due to schema validation layer
actual_hours: 14
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: "Scope expanded: discovered need for JSON Schema validation in filter arguments. Adjusted estimate by +8 hours."
若工作范围发生重大变更:
yaml
estimated_hours: 20  # 原始估算
actual_hours: 12     # 当前进度,可能已超出估算
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: |
      调整范围:仅实现selectattr、map和join过滤器
      (default和自定义过滤器推迟至#61实现)。
      新估算工时约为16小时,但保留原始值以跟踪范围缩减情况。
若范围发生根本性变更,可直接调整估算:
yaml
estimated_hours: 28  # 因新增Schema验证层,从20小时增加至28小时
actual_hours: 14
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: "范围扩展:发现需要为过滤器参数添加JSON Schema验证。估算工时增加8小时。"

8. Updating Dependencies

8. 更新依赖项

If new dependencies discovered during work:
yaml
dependencies:
  - "[[54_complete_temple_native.md]]"
  - "[[44_implement_semantic_validation.md]]"  # Added: type checking needed
Update the work item file to reflect these.
若开发过程中发现新的依赖项:
yaml
dependencies:
  - "[[54_complete_temple_native.md]]"
  - "[[44_implement_semantic_validation.md]]"  # 新增:需要类型检查
更新工作项文件以反映这些依赖关系。

Examples

示例

Example 1: Feature Work Progress

示例1:功能开发进度

Initial creation:
yaml
---
title: "Implement FilterAdapter"
id: 60
status: not_started
state_reason: null
priority: high
estimated_hours: 20
actual_hours: null
dependencies:
  - "[[54_complete_temple_native.md]]"
---
After 2 hours:
yaml
status: in_progress
actual_hours: 2
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: |
      Started with interface design and type signatures.
      SelectAttr filter drafted.
After testing:
yaml
status: testing
state_reason: null
actual_hours: 18
related_commit:
  - 6d8c044  # feat(sdk): FilterAdapter interface
  - f00459b  # feat(filters): selectattr, map, join, default
test_results: "https://github.com/.../runs/12345678"
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: All tests pass. 95% coverage. Awaiting code review.
After completion:
yaml
status: completed
state_reason: success
actual_hours: 20
completed_date: 2026-02-15
test_results: "https://github.com/.../runs/12345678"
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: Merged to main. All acceptance criteria met.
初始创建:
yaml
---
title: "Implement FilterAdapter"
id: 60
status: not_started
state_reason: null
priority: high
estimated_hours: 20
actual_hours: null
dependencies:
  - "[[54_complete_temple_native.md]]"
---
2小时后:
yaml
status: in_progress
actual_hours: 2
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: |
      开始设计接口与类型签名。
      已起草SelectAttr过滤器。
测试阶段:
yaml
status: testing
state_reason: null
actual_hours: 18
related_commit:
  - 6d8c044  # feat(sdk): FilterAdapter interface
  - f00459b  # feat(filters): selectattr, map, join, default
test_results: "https://github.com/.../runs/12345678"
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: 所有测试通过。覆盖率95%。等待代码评审。
完成后:
yaml
status: completed
state_reason: success
actual_hours: 20
completed_date: 2026-02-15
test_results: "https://github.com/.../runs/12345678"
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: 已合并至main分支。所有验收标准达成。

Example 2: Bug Fix with Rework

示例2:包含返工的Bug修复

Starting work:
yaml
---
title: "Fix elif parsing edge case"
id: 59
status: in_progress
state_reason: null
estimated_hours: 4
actual_hours: 1
---
Test failure:
yaml
status: in_progress
state_reason: null
actual_hours: 3
test_results: "Local: 1 test fails in test_parser.py::test_consecutive_elif"
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: |
      Found deeper issue: elif blocks interfere when nested.
      Need to refactor block termination logic.
      Revising approach—effort may exceed estimate.
Resolution:
yaml
status: testing
state_reason: null
actual_hours: 7
estimated_hours: 4
test_results: "https://github.com/.../runs/87654321"
related_commit:
  - abc1234  # fix(parser): elif block termination logic
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: Fixed by refactoring block_ends() logic. Took longer due to edge cases, but all tests now pass including new consecutive_elif tests.
开始工作:
yaml
---
title: "Fix elif parsing edge case"
id: 59
status: in_progress
state_reason: null
estimated_hours: 4
actual_hours: 1
---
测试失败:
yaml
status: in_progress
state_reason: null
actual_hours: 3
test_results: "Local: 1 test fails in test_parser.py::test_consecutive_elif"
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: |
      发现更深层次的问题:嵌套时elif块会相互干扰。
      需要重构块终止逻辑。
      调整方案——工作量可能超出估算。
问题解决:
yaml
status: testing
state_reason: null
actual_hours: 7
estimated_hours: 4
test_results: "https://github.com/.../runs/87654321"
related_commit:
  - abc1234  # fix(parser): elif block termination logic
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: 通过重构block_ends()逻辑修复问题。因边缘情况耗时更久,但所有测试(包括新增的consecutive_elif测试)现已通过。

Example 3: Spike/Research Update

示例3:技术调研更新

yaml
---
title: "Evaluate expression engines"
id: 61
status: in_progress
state_reason: null
estimated_hours: 16
actual_hours: 8
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: |
      Evaluation candidates:
      1. JMESPath - mature, good for JSON, limited type support
      2. Custom recursive descent - flexible, small footprint
      3. meval - lightweight Python evaluator
          
      Progress:
      - JMESPath prototype working (2h)
      - Custom parser WIP (6h) - complexity clear now, drafting comparison doc
      
      Leaning toward option 2 (custom) due to control of type system.
---
yaml
---
title: "Evaluate expression engines"
id: 61
status: in_progress
state_reason: null
estimated_hours: 16
actual_hours: 8
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: |
      评估候选方案:
      1. JMESPath - 成熟稳定,适用于JSON,类型支持有限
      2. 自定义递归下降解析器 - 灵活性高,资源占用小
      3. meval - 轻量级Python表达式求值器
          
      进度:
      - JMESPath原型已实现(2小时)
      - 自定义解析器开发中(6小时)- 复杂度已明确,正在起草对比文档
      
      倾向于方案2(自定义解析器),因为能更好地控制系统类型。
---

Common Patterns

常见模式

Weekly Status Update

每周状态更新

Review active work items weekly:
yaml
status: in_progress
actual_hours: 12  # Update from 10
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: |
      Week of Feb 10: 2 hours progress (mid-week catchup).
      Current blockers: Decision on filter signature format—waiting for architecture review.
      Expected completion: Feb 17
每周回顾活跃工作项:
yaml
status: in_progress
actual_hours: 12  # 从10更新为12
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: |
      2月10日当周:推进2小时(周中赶工)。
      当前阻塞:过滤器签名格式待决策——等待架构评审。
      预计完成时间:2月17日

Handling Blockers

阻塞问题处理

yaml
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: |
      BLOCKED: Waiting for ADR-006 decision on expression language.
      Cannot finalize filter syntax without it.
      Unblocked when: ADR merged and decision published
      Impact: Pushed completion target to 2026-02-20
yaml
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: |
      阻塞:等待ADR-006关于表达式语言的决策。
      无该决策则无法确定过滤器语法。
      解除阻塞条件:ADR合并并发布决策
      影响:完成时间推迟至2026-02-20

Scope Creep Recognition

范围蔓延识别

yaml
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: |
      Original estimate: 12 hours (selectattr, map, join)
      Current scope: +default filter + type validation = ~18 hours likely
      Recommendation: Create follow-up item #62 for advanced filters, limit this to core 3.
yaml
notes:
  - timestamp: 2024-06-01T12:00:00Z
    user: @john
    note: |
      原始估算:12小时(实现selectattr、map、join)
      当前范围:+default过滤器 + 类型验证 = 预计约18小时
      建议:创建后续工作项#62用于实现高级过滤器,将本项限制为核心3个过滤器。

Tips & Conventions

提示与约定

Atomic Updates

原子化更新

Each update should correspond to a logical work milestone:
  • End of session: time tracking
  • After tests run: test results
  • After commit: commit hash
  • Status change: full progress summary
Don't update work items excessively—focus on meaningful changes.
每次更新应对应一个合理的工作里程碑:
  • 工作时段结束:工时跟踪
  • 测试运行后:测试结果
  • 提交代码后:提交哈希值
  • 状态变更:完整进度摘要
不要过于频繁地更新工作项——聚焦于有意义的变更。

Notes Field

备注字段

Use
notes
for:
  • Progress summary
  • Blockers or issues
  • Scope changes
  • Decision points
  • Follow-up items
Avoid: detailed implementation notes (keep in commit messages instead)
notes
字段用于:
  • 进度摘要
  • 阻塞问题或其他问题
  • 范围变更
  • 决策要点
  • 后续工作项
避免:详细的实现备注(应放在提交消息中)

Time Tracking Accuracy

工时记录准确性

Record hours regularly:
  • At end of each session
  • After significant milestone
  • Final tally when completed
This helps estimate accuracy over time.
定期记录工时:
  • 每个工作时段结束时
  • 完成重要里程碑后
  • 工作完成时统计最终工时
这有助于提升长期估算的准确性。

Commit Message Integration

提交消息集成

Reference work items in commit messages:
feat(filters): implement selectattr and map

Implements core filtering operations for FilterAdapter.
Supports filtering sequences by attribute value and projection.

Closes #60
See backlog/60_implement_filter_adapter.md
Then update the work item with the commit hash.
在提交消息中关联工作项:
feat(filters): implement selectattr and map

Implements core filtering operations for FilterAdapter.
Supports filtering sequences by attribute value and projection.

Closes #60
See backlog/60_implement_filter_adapter.md
然后在工作项中更新对应的提交哈希值。

Related Skills

关联技能

  • create-work-item
    : For creating new work items from scratch
  • feature-branch-management
    : Invoked automatically on status transitions (create branch on in_progress, sync on testing)
  • create-pr
    : Invoked automatically when status → testing (create PR from feature branch)
  • handle-pr-feedback
    : For addressing PR review feedback and managing rework
  • resolve-pr-comments
    : For addressing specific code review comments
  • finalize-work-item
    : For archiving completed work items after merge
  • git-commit
    : For recording commits that can be linked in
    related_commit
  • create-work-item
    : 用于从头创建新工作项
  • feature-branch-management
    : 状态流转时自动调用(in_progress时创建分支,testing时同步分支)
  • create-pr
    : 状态变为testing时自动调用(从功能分支创建PR)
  • handle-pr-feedback
    : 用于处理PR评审反馈并管理返工
  • resolve-pr-comments
    : 用于处理特定的代码评审意见
  • finalize-work-item
    : 用于在代码合并后归档完成的工作项
  • git-commit
    : 用于记录可关联至
    related_commit
    的提交

Optional Utility: Repair Commit Order

可选工具:修复提交顺序

Use the bundled helper script to normalize
related_commit
/
related_commits
blocks across backlog files, sorting hashes by commit timestamp and preserving missing hashes as
MISSING-COMMIT
notes.
使用内置的辅助脚本标准化所有待办事项文件中的
related_commit
/
related_commits
块,按提交时间戳排序哈希值,并将缺失的哈希值标记为
MISSING-COMMIT
备注。

Verify needed changes with dry run:

试运行验证所需变更:

bash
.agents/skills/update-work-item/scripts/normalize-related-commits.sh --dry-run
bash
.agents/skills/update-work-item/scripts/normalize-related-commits.sh --dry-run

Include archived work items:

包含已归档的工作项:

bash
.agents/skills/update-work-item/scripts/normalize-related-commits.sh --dry-run --include-archived
bash
.agents/skills/update-work-item/scripts/normalize-related-commits.sh --dry-run --include-archived

Apply changes:

应用变更:

bash
.agents/skills/update-work-item/scripts/normalize-related-commits.sh
bash
.agents/skills/update-work-item/scripts/normalize-related-commits.sh

Include archived work items:

包含已归档的工作项:

bash
.agents/skills/update-work-item/scripts/normalize-related-commits.sh --include-archived
bash
.agents/skills/update-work-item/scripts/normalize-related-commits.sh --include-archived