hermes-task-framework 1.0.3__tar.gz → 1.2.0__tar.gz

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 (64) hide show
  1. {hermes_task_framework-1.0.3 → hermes_task_framework-1.2.0}/PKG-INFO +1 -1
  2. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-external-repos-pattern/SKILL.md +32 -15
  3. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/CHANGELOG.md +31 -1
  4. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/SKILL.md +205 -264
  5. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/docs/product-requirements.md +3 -3
  6. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/references/auto-runner.md +1 -1
  7. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/references/composites/software-dev.md +1 -1
  8. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/references/generating-output-documents.md +1 -1
  9. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/references/operations/document-write.md +4 -4
  10. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/references/research-workflow.md +2 -2
  11. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/references/task-hash-naming.md +2 -2
  12. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/references/task-lifecycle-example.md +5 -5
  13. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/references/task-types/analysis.md +2 -2
  14. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/references/task-types/external-audit.md +1 -1
  15. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/references/task-types/video-production-pipeline.md +6 -6
  16. hermes_task_framework-1.2.0/hermes_task_framework/skills/task-framework/scripts/manage_task.py +810 -0
  17. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/scripts/task-runner.sh +5 -5
  18. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/scripts/task_ref.py +73 -11
  19. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/scripts/update-index.py +54 -2
  20. hermes_task_framework-1.0.3/task-framework/skills/task-framework/templates/TASK_MEMORY.md → hermes_task_framework-1.2.0/hermes_task_framework/skills/task-framework/templates/CHANGELOG.md +3 -3
  21. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/templates/TASK.md +5 -5
  22. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/templates/run.py +2 -2
  23. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-lifecycle-edge-cases/SKILL.md +30 -13
  24. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-lifecycle-edge-cases/references/task-5d5a1a-recovery-example.md +15 -16
  25. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-lifecycle-portability/SKILL.md +37 -50
  26. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-lifecycle-portability/references/design-session-20260611.md +4 -5
  27. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-lifecycle-portability/references/output-model-design.md +7 -7
  28. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-lifecycle-portability/references/pipeline-output-transition.md +3 -3
  29. hermes_task_framework-1.2.0/hermes_task_framework/skills/task-lifecycle-portability/references/task-recovery-5d5a1a-example.md +27 -0
  30. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-lifecycle-portability/references/task-recovery-procedure.md +7 -12
  31. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-timestamp-convention/SKILL.md +25 -18
  32. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-tracker/SKILL.md +32 -16
  33. {hermes_task_framework-1.0.3 → hermes_task_framework-1.2.0}/hermes_task_framework.egg-info/PKG-INFO +1 -1
  34. hermes_task_framework-1.2.0/hermes_task_framework.egg-info/SOURCES.txt +54 -0
  35. hermes_task_framework-1.2.0/hermes_task_framework.egg-info/top_level.txt +1 -0
  36. {hermes_task_framework-1.0.3 → hermes_task_framework-1.2.0}/pyproject.toml +3 -3
  37. hermes_task_framework-1.0.3/hermes_task_framework.egg-info/SOURCES.txt +0 -58
  38. hermes_task_framework-1.0.3/hermes_task_framework.egg-info/top_level.txt +0 -1
  39. hermes_task_framework-1.0.3/task-framework/skills/task-framework/scripts/__pycache__/manage_task.cpython-312.pyc +0 -0
  40. hermes_task_framework-1.0.3/task-framework/skills/task-framework/scripts/__pycache__/task_ref.cpython-312.pyc +0 -0
  41. hermes_task_framework-1.0.3/task-framework/skills/task-framework/scripts/__pycache__/update-index.cpython-311.pyc +0 -0
  42. hermes_task_framework-1.0.3/task-framework/skills/task-framework/scripts/__pycache__/update-index.cpython-312.pyc +0 -0
  43. hermes_task_framework-1.0.3/task-framework/skills/task-framework/scripts/manage_task.py +0 -442
  44. hermes_task_framework-1.0.3/task-framework/skills/task-lifecycle-portability/references/task-recovery-5d5a1a-example.md +0 -27
  45. {hermes_task_framework-1.0.3 → hermes_task_framework-1.2.0}/LICENSE +0 -0
  46. {hermes_task_framework-1.0.3 → hermes_task_framework-1.2.0}/README.md +0 -0
  47. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/__init__.py +0 -0
  48. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/docs/TASKS.md +0 -0
  49. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/docs/architecture.dot +0 -0
  50. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/docs/architecture.svg +0 -0
  51. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/references/composites/code-review-session.md +0 -0
  52. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/references/composites/research.md +0 -0
  53. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/references/document-analysis-workflow.md +0 -0
  54. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/references/file-safety-lesson.md +0 -0
  55. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/references/operations/code-write.md +0 -0
  56. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/references/operations/info-search.md +0 -0
  57. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/references/operations/web-research.md +0 -0
  58. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/references/policy-time-metadata.md +0 -0
  59. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/references/task-format-validation.md +0 -0
  60. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/references/task-overview-discovery.md +0 -0
  61. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/scripts/__init__.py +0 -0
  62. {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/scripts/convert_md_to_pdf.py +0 -0
  63. {hermes_task_framework-1.0.3 → hermes_task_framework-1.2.0}/hermes_task_framework.egg-info/dependency_links.txt +0 -0
  64. {hermes_task_framework-1.0.3 → hermes_task_framework-1.2.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hermes-task-framework
3
- Version: 1.0.3
3
+ Version: 1.2.0
4
4
  Summary: Structured task management skills for Hermes Agent — task creation, decomposition, stage gates
5
5
  Project-URL: Source, https://github.com/nuffin/hermes-task-framework-pip
6
6
  Requires-Python: >=3.11
@@ -1,10 +1,31 @@
1
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
2
  author: Hermes Agent
5
- license: MIT
6
3
  category: software-development
7
- tags: [task, repos, git, clone, analysis, external]
4
+ description: Documentation for the repos/ directory pattern — cloning external git
5
+ repos into a task for analysis, audit, or code extraction. Defines cleanup semantics,
6
+ directory structure, and pitfall avoidance.
7
+ license: MIT
8
+ metadata:
9
+ hermes:
10
+ scenes:
11
+ - research
12
+ - coding
13
+ tags:
14
+ - git
15
+ - repos
16
+ - clone
17
+ - analysis
18
+ - audit
19
+ - task
20
+ - software-development
21
+ name: task-external-repos-pattern
22
+ tags:
23
+ - task
24
+ - repos
25
+ - git
26
+ - clone
27
+ - analysis
28
+ - external
8
29
  version: 1.0.0
9
30
  ---
10
31
 
@@ -109,23 +130,19 @@ This pattern extends the `task-framework` skill's directory structure. The `task
109
130
 
110
131
  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
132
 
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):
133
+ ## Optional: Escalate to External Task Manager
115
134
 
116
- User signal: *"一个 clone 任务创建一个 card"* / *"这是多个任务了,放到 default 看板里"*
135
+ 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 recommended convention is **one tracking card per task-framework task** (not one card per sub-operation):
117
136
 
118
137
  **Right approach:**
119
138
  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
139
+ 2. If using an external task manager (kanban board, issue tracker, etc.), create one card/issue for that task and link it via the task hash
140
+ 3. Map the external card ID back to `.hermes-task.json` if your workflow requires bidirectional linking
122
141
 
123
142
  **Wrong approach:**
124
- - Creating one kanban card per individual sub-repo
143
+ - Creating one tracking card per individual sub-repo
125
144
  - Mixing unrelated work into one card
126
145
 
127
- See also: `kanban-orchestrator` skill for decomposition playbook, `kanban-bridge` for task ↔ card mapping.
128
-
129
146
  ## Custom Clean Methods (Implemented)
130
147
 
131
148
  Each task can protect sensitive directories from cleanup via a `scripts/clean.sh` script:
@@ -157,9 +174,9 @@ echo "[clean] output/ cleaned"
157
174
  - 没有 clean.sh 时回退到默认行为,不破坏现有任务
158
175
 
159
176
  **本 task 的 clean.sh 示例路径:**
160
- `tasks/20260615-213922.awesome-obsidian-vaults-cc6b3b/scripts/clean.sh`
177
+ `tasks/<ts>.<task-name>-<hash6>/scripts/clean.sh`
161
178
  该脚本保护 `repos/`、`input/`,只清理 `output/`。
162
179
 
163
180
  **Framework 集成状态:**
164
- - `task-framework` SKILL.md 已更新,记录了 clean.sh 查找顺序和模板(`~/hermes/skills/software-development/task-framework/SKILL.md` 的 Task Directory Structure 章节)
181
+ - `task-framework` SKILL.md 已更新,记录了 clean.sh 查找顺序和模板
165
182
  - `analysis` task-type 生命周期文档也加了自定义清理的提示
@@ -1,10 +1,40 @@
1
1
  # Changelog — task-framework
2
2
 
3
+ ## 2026-08-06 (v1.1.0)
4
+
5
+ ### feat: manage_task.py — 6 new lifecycle commands
6
+ - `create` — directory + hash + meta + templates + optional inbox move
7
+ - `accept` — create task from inbox file/dir (auto-derives name)
8
+ - `decline` — move inbox item to declined/ with DECLINED.md
9
+ - `status` — update ## Status line + auto index update
10
+ - `view` — print README.md + TASK.md (hash/dir/name resolution)
11
+ - `reset` — clear output/ + reset checkboxes + set status active (--no-hard for soft reset)
12
+ - All commands use cp+verify+rm for file moves (never raw mv)
13
+ - All commands auto-run update-index.py after changes
14
+
15
+ ### fix: code quality (A1-A4, B1/B4/B6, C2/C3/C6)
16
+ - A1: replace 4 stale ~/.hermes/skills/ hardcoded paths with relative scripts/ paths
17
+ - A2: cmd_init .hermes-task.json schema 5→12 fields (matches cmd_create)
18
+ - A3: unify three index systems — reindex calls update-index.py, list scans dirs directly
19
+ - A4: task-runner.sh log path logs/ → output/logs/ (matches task_reset cleanup scope)
20
+ - B1: hash6() uses secrets.token_hex(3) instead of md5(random) across all 3 scripts
21
+ - B4: _safe_move_file/_safe_move_dir rollback on failure (clean dst, preserve src)
22
+ - B6: cmd_decline uses os.path.basename() to prevent path injection
23
+ - C2: remove stale "Skill 文件结构一览" section (listed 3 scripts, actually 5)
24
+ - C3: add .gitignore, remove tracked __pycache__/*.pyc
25
+ - C6: unify env var resolution — all 3 scripts share _resolve_tasks_root() (HERMES_TASKS_ROOT | HERMES_TASKS_DIR → profile config → global config → fallback)
26
+
27
+ ### docs: SKILL.md updates (D1-D5)
28
+ - D1: trigger signal section uses manage_task.py create instead of ad-hoc bash
29
+ - D3: update create_task.py reference to manage_task.py create
30
+ - D4: Named Outputs uses task_ref.set_output() instead of inline python -c
31
+ - D5: resolve_ref/check_cycles reference scripts/task_ref.py instead of inline code
32
+
3
33
  ## 2026-06-06
4
34
 
5
35
  - feat: hash-based task_view — search by hash, name glob fallback (92b838d)
6
36
  - 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)
37
+ - feat: CHANGELOG.md template — per-task memory with append-only log format (92b838d, 435f85d)
8
38
  - fix: browser-screen-record-task scripts/ path alignment (927124f)
9
39
  - feat: venv management — auto uv venv + pip install per task (927124f)
10
40