hermes-task-framework 1.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. hermes_task_framework-1.0.0.dist-info/METADATA +7 -0
  2. hermes_task_framework-1.0.0.dist-info/RECORD +56 -0
  3. hermes_task_framework-1.0.0.dist-info/WHEEL +5 -0
  4. hermes_task_framework-1.0.0.dist-info/licenses/LICENSE +1 -0
  5. hermes_task_framework-1.0.0.dist-info/top_level.txt +1 -0
  6. task-framework/__init__.py +2 -0
  7. task-framework/skills/task-external-repos-pattern/SKILL.md +165 -0
  8. task-framework/skills/task-framework/CHANGELOG.md +45 -0
  9. task-framework/skills/task-framework/SKILL.md +1365 -0
  10. task-framework/skills/task-framework/docs/TASKS.md +3 -0
  11. task-framework/skills/task-framework/docs/architecture.dot +65 -0
  12. task-framework/skills/task-framework/docs/architecture.svg +188 -0
  13. task-framework/skills/task-framework/docs/product-requirements.md +65 -0
  14. task-framework/skills/task-framework/references/auto-runner.md +32 -0
  15. task-framework/skills/task-framework/references/composites/code-review-session.md +30 -0
  16. task-framework/skills/task-framework/references/composites/research.md +45 -0
  17. task-framework/skills/task-framework/references/composites/software-dev.md +41 -0
  18. task-framework/skills/task-framework/references/document-analysis-workflow.md +95 -0
  19. task-framework/skills/task-framework/references/file-safety-lesson.md +38 -0
  20. task-framework/skills/task-framework/references/generating-output-documents.md +166 -0
  21. task-framework/skills/task-framework/references/operations/code-write.md +30 -0
  22. task-framework/skills/task-framework/references/operations/document-write.md +185 -0
  23. task-framework/skills/task-framework/references/operations/info-search.md +27 -0
  24. task-framework/skills/task-framework/references/operations/web-research.md +57 -0
  25. task-framework/skills/task-framework/references/policy-time-metadata.md +137 -0
  26. task-framework/skills/task-framework/references/research-workflow.md +220 -0
  27. task-framework/skills/task-framework/references/task-format-validation.md +25 -0
  28. task-framework/skills/task-framework/references/task-hash-naming.md +40 -0
  29. task-framework/skills/task-framework/references/task-lifecycle-example.md +122 -0
  30. task-framework/skills/task-framework/references/task-overview-discovery.md +31 -0
  31. task-framework/skills/task-framework/references/task-types/analysis.md +60 -0
  32. task-framework/skills/task-framework/references/task-types/external-audit.md +56 -0
  33. task-framework/skills/task-framework/references/task-types/video-production-pipeline.md +77 -0
  34. task-framework/skills/task-framework/scripts/__init__.py +0 -0
  35. task-framework/skills/task-framework/scripts/__pycache__/manage_task.cpython-312.pyc +0 -0
  36. task-framework/skills/task-framework/scripts/__pycache__/task_ref.cpython-312.pyc +0 -0
  37. task-framework/skills/task-framework/scripts/__pycache__/update-index.cpython-311.pyc +0 -0
  38. task-framework/skills/task-framework/scripts/__pycache__/update-index.cpython-312.pyc +0 -0
  39. task-framework/skills/task-framework/scripts/convert_md_to_pdf.py +236 -0
  40. task-framework/skills/task-framework/scripts/manage_task.py +442 -0
  41. task-framework/skills/task-framework/scripts/task-runner.sh +42 -0
  42. task-framework/skills/task-framework/scripts/task_ref.py +119 -0
  43. task-framework/skills/task-framework/scripts/update-index.py +293 -0
  44. task-framework/skills/task-framework/templates/TASK.md +114 -0
  45. task-framework/skills/task-framework/templates/TASK_MEMORY.md +27 -0
  46. task-framework/skills/task-framework/templates/run.py +187 -0
  47. task-framework/skills/task-lifecycle-edge-cases/SKILL.md +84 -0
  48. task-framework/skills/task-lifecycle-edge-cases/references/task-5d5a1a-recovery-example.md +67 -0
  49. task-framework/skills/task-lifecycle-portability/SKILL.md +128 -0
  50. task-framework/skills/task-lifecycle-portability/references/design-session-20260611.md +32 -0
  51. task-framework/skills/task-lifecycle-portability/references/output-model-design.md +55 -0
  52. task-framework/skills/task-lifecycle-portability/references/pipeline-output-transition.md +41 -0
  53. task-framework/skills/task-lifecycle-portability/references/task-recovery-5d5a1a-example.md +27 -0
  54. task-framework/skills/task-lifecycle-portability/references/task-recovery-procedure.md +63 -0
  55. task-framework/skills/task-timestamp-convention/SKILL.md +72 -0
  56. task-framework/skills/task-tracker/SKILL.md +80 -0
@@ -0,0 +1,7 @@
1
+ Metadata-Version: 2.4
2
+ Name: hermes-task-framework
3
+ Version: 1.0.0
4
+ Summary: Structured task management skills for Hermes Agent
5
+ Requires-Python: >=3.11
6
+ License-File: LICENSE
7
+ Dynamic: license-file
@@ -0,0 +1,56 @@
1
+ hermes_task_framework-1.0.0.dist-info/licenses/LICENSE,sha256=Jn96Lhnfqd-Zr3dFIJhaDlIZJSk-pbfnZ6sGlp0Gv5E,12
2
+ task-framework/__init__.py,sha256=iIU7AEsDdPDA3Z00IUtTdQpvAIs-dfUVeuy39i0apcc,106
3
+ task-framework/skills/task-external-repos-pattern/SKILL.md,sha256=zkqca4rRKNJvutWdmjRNKkkU818zSZA4T-bu9rye62E,6801
4
+ task-framework/skills/task-framework/CHANGELOG.md,sha256=9HV918pwSPfSxeH-sNze_zURIEgiPkWd3XwNKsUiVXQ,2813
5
+ task-framework/skills/task-framework/SKILL.md,sha256=VQsMHQB5dHhFTJxEI0MFN_AI_csKxouUxCFRDxckGQs,59358
6
+ task-framework/skills/task-framework/docs/TASKS.md,sha256=yl7pLAuCu05ZI6pT2GgPTYtnhD9H-KHys-vwjLYf3EQ,247
7
+ task-framework/skills/task-framework/docs/architecture.dot,sha256=yr5tGKPSgDpeL_viVycrH7TMs1jaxzYgfzcXIDCE2LI,2501
8
+ task-framework/skills/task-framework/docs/architecture.svg,sha256=aRQXRp6lx4X3hRim3pMwRPyThtr3KvDaB53QDJI07xM,13338
9
+ task-framework/skills/task-framework/docs/product-requirements.md,sha256=tPE3b-U_N3y5Adt0MA-kiyBmGjAuNNbN7ZkC07NodFg,2503
10
+ task-framework/skills/task-framework/references/auto-runner.md,sha256=A_74uGInSLf1YCJQT0fjSo9uTGIaMJlYdznidJXejJc,1033
11
+ task-framework/skills/task-framework/references/document-analysis-workflow.md,sha256=1ty_SchUfesBfaJxxz5U0ypJy63NItlwlIdsPCnm5Oo,3626
12
+ task-framework/skills/task-framework/references/file-safety-lesson.md,sha256=uggKmSrMKQVeIZDsllTjCbUsF0AahpV6O-Se3GxNzxU,1601
13
+ task-framework/skills/task-framework/references/generating-output-documents.md,sha256=Z8Jez4HidnpTloMefu7i5mXaJQFbyRM_rMfYXa3QKqM,7659
14
+ task-framework/skills/task-framework/references/policy-time-metadata.md,sha256=WRiZU7tRVJZJDrW6vGkcGAPgShQxOkNoxnax16y6zhg,5419
15
+ task-framework/skills/task-framework/references/research-workflow.md,sha256=prIYtexEZC-U7gRL94ZS-dRZtEDZBstgBGnEjU8gaR4,8687
16
+ task-framework/skills/task-framework/references/task-format-validation.md,sha256=TsvjU5digDJvDa40mnhkFFSawLjaKpz-7PlwhfVn0HI,2051
17
+ task-framework/skills/task-framework/references/task-hash-naming.md,sha256=HZZTyubpW-ZYeTkbyVEBi3LVX47usItTvDrWbSbuGq8,1627
18
+ task-framework/skills/task-framework/references/task-lifecycle-example.md,sha256=7PcV2c1YsL7D8WbQr513f7o95lbktIXWjkDvY1GVFr0,2912
19
+ task-framework/skills/task-framework/references/task-overview-discovery.md,sha256=Gbj8G8CKd85yWRoNJqGXt-8IsIC-9GRciTJwClPx6Nw,1048
20
+ task-framework/skills/task-framework/references/composites/code-review-session.md,sha256=9Too_8V_Ik55LAEDRFz00ac_JE07Md05gtKPTLSWi6c,1170
21
+ task-framework/skills/task-framework/references/composites/research.md,sha256=wkXmBjzBhEzV9_y3MR5JYpY8RfxKj1ypuTXdVnlbg3Y,1657
22
+ task-framework/skills/task-framework/references/composites/software-dev.md,sha256=E4CJBG-Bq5g5oqSKOg11FBG4bMTrYe5xhFYv14nlhXU,1937
23
+ task-framework/skills/task-framework/references/operations/code-write.md,sha256=OH1QJmgws9B-XC83MAZvLBdufm4Bv27tLGYtNIzcKDY,999
24
+ task-framework/skills/task-framework/references/operations/document-write.md,sha256=82WPoVCGhNQLZo5guXYseC9wF9UmxmHx_q97paTlcN0,9052
25
+ task-framework/skills/task-framework/references/operations/info-search.md,sha256=MECf9YvhPzyA91BlAfDLxUzJsXMwh-H4ODIF-KeMzMY,899
26
+ task-framework/skills/task-framework/references/operations/web-research.md,sha256=1OgdBDB8e5Db0727hgez-AIAH96tivUG-uUpyS3nlSs,2083
27
+ task-framework/skills/task-framework/references/task-types/analysis.md,sha256=QZ_ZSvvNED8UOJzIpkk1PZdxxzD9S5mxmt7cMNTp0R0,1754
28
+ task-framework/skills/task-framework/references/task-types/external-audit.md,sha256=rfFfKr4Iy8fwqT76ko8fiVmCC8PWj1EYthkp0zA9GYI,1837
29
+ task-framework/skills/task-framework/references/task-types/video-production-pipeline.md,sha256=yX9qH2-D9yknWJzs4CFk_V6ZONUJSNNb_7as68XVo5I,2602
30
+ task-framework/skills/task-framework/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
+ task-framework/skills/task-framework/scripts/convert_md_to_pdf.py,sha256=I1IvcbsrZZUC2ZkFS0nkUg3OZobBreVHd8awDEq9Pmo,7484
32
+ task-framework/skills/task-framework/scripts/manage_task.py,sha256=84dKT4gTRd9GTyBxWjDLtdj9w49RVPwP0qdQjeZCpOw,15188
33
+ task-framework/skills/task-framework/scripts/task-runner.sh,sha256=0wufNOxYENaG0Sur_PVX48IrwaDmYlgikt_8hvMeCis,1150
34
+ task-framework/skills/task-framework/scripts/task_ref.py,sha256=2YSJDhn6Cs9xljCEDZ4rRz5oiGxUo13HgFkJQTv1vIw,4543
35
+ task-framework/skills/task-framework/scripts/update-index.py,sha256=2Tig0daMeF8yH-AKKc2GtFkW1qjKvtB_-4gXHykyJMs,11511
36
+ task-framework/skills/task-framework/scripts/__pycache__/manage_task.cpython-312.pyc,sha256=5uvqjCLpzanci-Oev1Kb8rBPGkfvpmlW5fwkuh3g1UI,30792
37
+ task-framework/skills/task-framework/scripts/__pycache__/task_ref.cpython-312.pyc,sha256=AecKc7WlbrKwIWdgH_RK2xuT6BS4gnTXwxgi_s8sH28,7296
38
+ task-framework/skills/task-framework/scripts/__pycache__/update-index.cpython-311.pyc,sha256=DRmFkw4-cKoiYhTMUM_bokDbYi6aP745RxQo95qKsvg,16747
39
+ task-framework/skills/task-framework/scripts/__pycache__/update-index.cpython-312.pyc,sha256=9CU7YcNQbfKNA-kqq5mqyrSqZTGoKZBib4Iw64pMME4,14093
40
+ task-framework/skills/task-framework/templates/TASK.md,sha256=exoGdz4Hu1152N8h7mxzf01ZhKATx31sLyPep8Bel1Y,4405
41
+ task-framework/skills/task-framework/templates/TASK_MEMORY.md,sha256=rhgGXhSaaGupb2nCIAPMUJW4htFaxylaApA-N8oXGUY,931
42
+ task-framework/skills/task-framework/templates/run.py,sha256=9aInTqRJ_AEhu9mt7rCjekVZx9aYyQn5mVTa_VFgG2E,5098
43
+ task-framework/skills/task-lifecycle-edge-cases/SKILL.md,sha256=nZ8Q_HVF0yDgzxDLKIc0LjxSnRnUB5KZlzgyFtAwCyE,4127
44
+ task-framework/skills/task-lifecycle-edge-cases/references/task-5d5a1a-recovery-example.md,sha256=aHoSMp3H2qkePcNtHTzdBhLImByDTkVvBoOVErxB4kE,3003
45
+ task-framework/skills/task-lifecycle-portability/SKILL.md,sha256=DzKHG1ajU3zAaMHeTFjz_5WZ9fHlkpMLZfHY0ImlmY4,6415
46
+ task-framework/skills/task-lifecycle-portability/references/design-session-20260611.md,sha256=kvB_smqqhvsHCxawmZXJbOCNlvfSww5d48_Y6qXrkzI,1670
47
+ task-framework/skills/task-lifecycle-portability/references/output-model-design.md,sha256=nbdU-yhBFak2xAvjRuJN9TaF6mMkzUwDqJ5XcIsQ2vI,1784
48
+ task-framework/skills/task-lifecycle-portability/references/pipeline-output-transition.md,sha256=3y_x0Z9BxFmrVkmVjQUr7hE4oj599PRdSfwAAmYmZFM,1775
49
+ task-framework/skills/task-lifecycle-portability/references/task-recovery-5d5a1a-example.md,sha256=NpYe_KA3vOtmW46573TXV4V5XWdMy8BeIezGR-zRA8Q,1665
50
+ task-framework/skills/task-lifecycle-portability/references/task-recovery-procedure.md,sha256=NmA9l4nn0NJC3pxV-Tzwd_50WxbsSaizn0FzFuiQYDQ,2774
51
+ task-framework/skills/task-timestamp-convention/SKILL.md,sha256=iMDDxjSN0_XA3ntu58CtztxXEdq3tKMLcL0nn6JO1mw,2285
52
+ task-framework/skills/task-tracker/SKILL.md,sha256=OPR3MEW9va34Qhqr3dvPwGT8G0sQJgWEYWg0TOjH678,2807
53
+ hermes_task_framework-1.0.0.dist-info/METADATA,sha256=YIVHxt5_oKFlkc17Vltc_mSTm1ghfQRGX-h3XdbqVjM,193
54
+ hermes_task_framework-1.0.0.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
55
+ hermes_task_framework-1.0.0.dist-info/top_level.txt,sha256=0-tkqYC6jGwG_YA5m3ax21fYIo6c7DVw4mQmR1ISl9c,15
56
+ hermes_task_framework-1.0.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (83.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1 @@
1
+ MIT License
@@ -0,0 +1 @@
1
+ task-framework
@@ -0,0 +1,2 @@
1
+ """Hermes Task Framework — structured task management skills for Hermes Agent."""
2
+ __version__ = "1.0.0"
@@ -0,0 +1,165 @@
1
+ ---
2
+ name: task-external-repos-pattern
3
+ description: "Documentation for the repos/ directory pattern — cloning external git repos into a task for analysis, audit, or code extraction. Defines cleanup semantics, directory structure, and pitfall avoidance."
4
+ author: Hermes Agent
5
+ license: MIT
6
+ category: software-development
7
+ tags: [task, repos, git, clone, analysis, external]
8
+ version: 1.0.0
9
+ ---
10
+
11
+ # External Repositories in Tasks (repos/ Pattern)
12
+
13
+ ## When to Use
14
+
15
+ When a task needs to clone one or more external git repositories for analysis, auditing, or code extraction. Common scenarios:
16
+
17
+ - **Research task** — clone a list of repos from an awesome-list to study their structure
18
+ - **Audit task** — clone a repo to analyze its codebase, commit history, or architecture
19
+ - **Integration task** — clone dependencies to understand their API surface
20
+ - **Migration tasks** — clone source repos as input material for migration scripts
21
+
22
+ ## Directory Convention
23
+
24
+ Place cloned repos in a top-level `repos/` directory inside the task:
25
+
26
+ ```
27
+ tasks/<ts>.<name>-<hash6>/
28
+ ├── input/ ← inbox source files (PDFs, REQUIREMENTS.md)
29
+ ├── output/ ← generated files (reports, docs, logs)
30
+ │ ├── docs/
31
+ │ └── logs/
32
+ ├── repos/ ← *** cloned external git repos ***
33
+ │ ├── repo-name-1/
34
+ │ ├── repo-name-2/
35
+ │ └── ...
36
+ ├── scripts/
37
+ ├── TASK.md
38
+ ├── README.md
39
+ └── .hermes-task.json
40
+ ```
41
+
42
+ ## Semantics: repos/ vs input/ vs output/
43
+
44
+ | Directory | Nature | `task_reset --hard` | Example content |
45
+ |-----------|--------|---------------------|-----------------|
46
+ | `input/` | Source materials (copied from inbox) | ❌ Never deleted | PDFs, REQUIREMENTS.md, images |
47
+ | `output/` | Generated artifacts | ✅ **Deleted** | Reports, logs, compiled files |
48
+ | `repos/` | External git clones (not inbox, not generated) | ❌ Never deleted | Cloned `.git/` trees |
49
+
50
+ **Key rule:** `repos/` is treated like `input/` — never deleted by cleanup operations. When `scripts/clean.sh` exists in the task, it explicitly declares `repos/` as PRESERVED. When no clean.sh exists, `task_reset --hard` still only touches `output/`, so repos/ survives regardless — but adding an explicit clean.sh makes the intent auditable.
51
+
52
+ ## How to Add repos/ to a Task
53
+
54
+ During task creation:
55
+
56
+ ```bash
57
+ mkdir -p tasks/<ts>.<name>-<hash6>/{input,output/docs,output/logs,repos,scripts}
58
+ ```
59
+
60
+ Clone each target repo into `repos/`:
61
+
62
+ ```bash
63
+ cd tasks/<ts>.<name>-<hash6>/repos
64
+ git clone https://github.com/owner/repo-name.git
65
+ ```
66
+
67
+ For large repos where full history isn't needed:
68
+
69
+ ```bash
70
+ git clone --depth 1 https://github.com/owner/repo-name.git
71
+ ```
72
+
73
+ ## How to Reference repos in TASK.md
74
+
75
+ In the Data Flow table:
76
+
77
+ ```markdown
78
+ ## Data Flow
79
+
80
+ | 文件 | 来源 | 用途 | 格式说明 |
81
+ |------|------|------|---------|
82
+ | `repos/owner-repo/README.md` | 外部克隆 | 分析项目结构 | 标准 markdown |
83
+ ```
84
+
85
+ In the checklist:
86
+
87
+ ```markdown
88
+ - [ ] Phase 2 — Clone repos to repos/
89
+ - [ ] Phase 3 — Analyze repos/ structure
90
+ ```
91
+
92
+ ## Cleanup Considerations
93
+
94
+ - `repos/` is NOT cleaned by `task_reset --hard`. To reclone (stale repos), do so manually or via a dedicated Phase.
95
+ - Cloned repos retain their `.git/` directories — `git pull` is sufficient to update without a full reclone.
96
+ - Add a `## 环境要求` note to TASK.md for large repos that consume significant disk space.
97
+
98
+ ## Pitfalls
99
+
100
+ - **Don't put cloned repos in `output/`** — they'd be wiped by `task_reset --hard`, losing `.git/` history and requiring a full reclone.
101
+ - **Don't put them in `input/`** — `input/` is for inbox-sourced files (PDFs, REQUIREMENTS.md). Cloned repos are a different category.
102
+ - **Beware submodules** — use `git clone --recursive` if the repo uses submodules; expect larger clones.
103
+ - **Disk space** — for massive repos (OSSU CS at GBs, dotnet docs), consider `--depth 1` shallow clone unless full history is needed.
104
+ - **Path length on Windows/WSL** — very deep paths in cloned repos may cause issues under WSL. Keep task names short enough.
105
+
106
+ ## Relation to Task-Framework
107
+
108
+ This pattern extends the `task-framework` skill's directory structure. The `task-framework` SKILL.md now lists `repos/` in its canonical directory tree and documents the `scripts/clean.sh` custom cleanup mechanism.
109
+
110
+ For `task_reset --hard` semantics: `repos/` is never deleted by cleanup operations (same as `input/`). Custom `clean.sh` scripts can further refine which directories to protect.
111
+
112
+ ## Kanban Escalation: Multi-Repo Tasks → Kanban
113
+
114
+ When a task involves **multiple independent external repos** (e.g. cloning 5+ repos from an awesome-list for study), the work typically decomposes into parallel workstreams. The user's convention is **one kanban card per task-framework task** (not one card per sub-operation):
115
+
116
+ User signal: *"一个 clone 任务创建一个 card"* / *"这是多个任务了,放到 default 看板里"*
117
+
118
+ **Right approach:**
119
+ 1. Create a single task-framework task with its own `repos/` directory
120
+ 2. Create one kanban card for that task, `--workspace dir:<task-path>`
121
+ 3. Update the bridge db.yaml to map task hash ↔ card id
122
+
123
+ **Wrong approach:**
124
+ - Creating one kanban card per individual sub-repo
125
+ - Mixing unrelated work into one card
126
+
127
+ See also: `kanban-orchestrator` skill for decomposition playbook, `kanban-bridge` for task ↔ card mapping.
128
+
129
+ ## Custom Clean Methods (Implemented)
130
+
131
+ Each task can protect sensitive directories from cleanup via a `scripts/clean.sh` script:
132
+
133
+ **查找顺序(由 `task_reset --hard` 执行):**
134
+ 1. 检查 `tasks/<ts>.<name>-<hash6>/scripts/clean.sh` — 存在则执行它(替代默认行为)
135
+ 2. 不存在 → 回退到默认 `rm -rf output/`
136
+
137
+ **clean.sh 模板:**
138
+
139
+ ```bash
140
+ #!/usr/bin/env bash
141
+ set -euo pipefail
142
+ TASK_DIR="$(cd "$(dirname "$0")/.." && pwd)"
143
+
144
+ # 明确声明要保留的路径
145
+ echo "[clean] repos/ — PRESERVED (cloned repos)"
146
+ echo "[clean] input/ — PRESERVED (source materials)"
147
+
148
+ # 只清理 output/
149
+ rm -rf "$TASK_DIR/output"
150
+ mkdir -p "$TASK_DIR/output"/{docs,logs}
151
+ echo "[clean] output/ cleaned"
152
+ ```
153
+
154
+ **设计原则:**
155
+ - clean.sh 只控制"删什么不删什么",不修改 TASK.md 或状态
156
+ - 输出中列出保留路径方便审计
157
+ - 没有 clean.sh 时回退到默认行为,不破坏现有任务
158
+
159
+ **本 task 的 clean.sh 示例路径:**
160
+ `tasks/20260615-213922.awesome-obsidian-vaults-cc6b3b/scripts/clean.sh`
161
+ 该脚本保护 `repos/`、`input/`,只清理 `output/`。
162
+
163
+ **Framework 集成状态:**
164
+ - `task-framework` SKILL.md 已更新,记录了 clean.sh 查找顺序和模板(`~/hermes/skills/software-development/task-framework/SKILL.md` 的 Task Directory Structure 章节)
165
+ - `analysis` task-type 生命周期文档也加了自定义清理的提示
@@ -0,0 +1,45 @@
1
+ # Changelog — task-framework
2
+
3
+ ## 2026-06-06
4
+
5
+ - feat: hash-based task_view — search by hash, name glob fallback (92b838d)
6
+ - feat: scripts layout — task-runner.sh, task_ref.py with ref: resolution + cycle detection (92b838d)
7
+ - feat: TASK_MEMORY.md template — per-task memory with append-only log format (92b838d, 435f85d)
8
+ - fix: browser-screen-record-task scripts/ path alignment (927124f)
9
+ - feat: venv management — auto uv venv + pip install per task (927124f)
10
+
11
+ ## 2026-06-05
12
+
13
+ - feat: timeline chart preview — Phase 3 generate_timeline_chart() shows text bar chart before compositing (c1c0b24)
14
+ - refactor: phase dir naming — name-hash6/ instead of phase_NN_name-hash6/ (f3adf22)
15
+ - refactor: hash naming — random 6-char hash instead of sequential naming (f4adfb5)
16
+ - feat: inbox REQUIREMENTS.md — human-only input file, task-framework never modifies (723c68b)
17
+ - refactor: skill architecture — generic utils/ in scripts/, skill-local .venv, script generation pattern (26e1383)
18
+ - feat: TASK.md validation — pre-execution format check, no auto-fix, ask first (2d24006)
19
+ - feat: personal/standards symlink support (3ed3c85)
20
+ - feat: phase isolation directories for cross-skill composite tasks (05ab115)
21
+ - docs: timestamp conversion — separate .mmm and .mmmmmm sections (14b7a68)
22
+ - feat: Data Flow table — links files to format docs in composite task templates (7de9fcb)
23
+ - feat: composite task model — parallel execution (和 Phase X 同步进行), dependency waits (等待 Phase X 完成) (17a7d26)
24
+ - feat: cross-skill composite task support — Skills section, dependency resolution (658c4bc)
25
+ - fix: no-placeholder-guessing rule — never fill task placeholders from conversation (78b0388)
26
+ - fix: English-only commit messages in quality-gate (78b0388)
27
+ - feat: failed status — task_setstatus supports failed/completed/cancelled/paused
28
+ - feat: task_reset — reset checkboxes, clear logs/docs, re-enable re-execution
29
+ - refactor: four-doc split — PRD + product design + TRD + tech design document-write ref
30
+
31
+ ## 2026-06-04
32
+
33
+ - fix: document-write references — update to four-doc split
34
+ - fix: PROJECT_STRUCTURE.md — tasks path ~/tasks/ → ~/studio/hermes/tasks/
35
+
36
+ ## 2026-06-03
37
+
38
+ - feat: initial task-framework skill
39
+ - Three-layer model: Methodology / Container / Tooling
40
+ - Operation catalog: info-search, code-write, paper-reproduce, document-write, code-review, data-analysis
41
+ - Composite patterns: software-dev, research, code-review-session
42
+ - Task directory structure: tasks/<ts>.<name>-<hash6>/ with TASK.md, README.md, logs/, docs/, scripts/
43
+ - Task lifecycle: task_create, task_view, task_list, task_setstatus, task_inbox, task_inbox_accept, task_inbox_decline, task_run, task_submit, task_reset
44
+ - Execution strategies: Inline / Script / Subagent / Cron
45
+ - Merge from project-tasks skill