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.
- {hermes_task_framework-1.0.3 → hermes_task_framework-1.2.0}/PKG-INFO +1 -1
- {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
- {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/CHANGELOG.md +31 -1
- {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-framework/SKILL.md +205 -264
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- hermes_task_framework-1.2.0/hermes_task_framework/skills/task-framework/scripts/manage_task.py +810 -0
- {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
- {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
- {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
- 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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- hermes_task_framework-1.2.0/hermes_task_framework/skills/task-lifecycle-portability/references/task-recovery-5d5a1a-example.md +27 -0
- {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
- {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
- {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/skills/task-tracker/SKILL.md +32 -16
- {hermes_task_framework-1.0.3 → hermes_task_framework-1.2.0}/hermes_task_framework.egg-info/PKG-INFO +1 -1
- hermes_task_framework-1.2.0/hermes_task_framework.egg-info/SOURCES.txt +54 -0
- hermes_task_framework-1.2.0/hermes_task_framework.egg-info/top_level.txt +1 -0
- {hermes_task_framework-1.0.3 → hermes_task_framework-1.2.0}/pyproject.toml +3 -3
- hermes_task_framework-1.0.3/hermes_task_framework.egg-info/SOURCES.txt +0 -58
- hermes_task_framework-1.0.3/hermes_task_framework.egg-info/top_level.txt +0 -1
- hermes_task_framework-1.0.3/task-framework/skills/task-framework/scripts/__pycache__/manage_task.cpython-312.pyc +0 -0
- hermes_task_framework-1.0.3/task-framework/skills/task-framework/scripts/__pycache__/task_ref.cpython-312.pyc +0 -0
- hermes_task_framework-1.0.3/task-framework/skills/task-framework/scripts/__pycache__/update-index.cpython-311.pyc +0 -0
- hermes_task_framework-1.0.3/task-framework/skills/task-framework/scripts/__pycache__/update-index.cpython-312.pyc +0 -0
- hermes_task_framework-1.0.3/task-framework/skills/task-framework/scripts/manage_task.py +0 -442
- hermes_task_framework-1.0.3/task-framework/skills/task-lifecycle-portability/references/task-recovery-5d5a1a-example.md +0 -27
- {hermes_task_framework-1.0.3 → hermes_task_framework-1.2.0}/LICENSE +0 -0
- {hermes_task_framework-1.0.3 → hermes_task_framework-1.2.0}/README.md +0 -0
- {hermes_task_framework-1.0.3/task-framework → hermes_task_framework-1.2.0/hermes_task_framework}/__init__.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {hermes_task_framework-1.0.3 → hermes_task_framework-1.2.0}/hermes_task_framework.egg-info/dependency_links.txt +0 -0
- {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
|
+
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
|
-
|
|
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
|
-
##
|
|
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
|
-
|
|
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.
|
|
121
|
-
3.
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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
|
|