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,63 @@
1
+ # TASK.md Recovery Procedure
2
+
3
+ When a task directory exists but `TASK.md` is missing (deleted, never created, or corrupted), reconstruct it from surrounding artifacts.
4
+
5
+ ## Step 0: Check symlink target first
6
+
7
+ If the task has hash-based naming (rightmost 6 chars = `<hash6>`), check `~/.hermes/personal/tasks/<hash>/task.md`:
8
+
9
+ ```bash
10
+ ls -la ~/.hermes/personal/tasks/<hash>/task.md
11
+ # If exists → restore with:
12
+ python3 ~/.hermes/skills/software-development/task-framework/scripts/manage_task.py relink <hash>
13
+ ```
14
+
15
+ If the personal backup exists, symlink recovery is instant.
16
+
17
+ ## Step 1: Gather evidence
18
+
19
+ | Source | What it tells you |
20
+ |--------|------------------|
21
+ | `~/.hermes/personal/tasks/<hash>/task.md` | content backup — instant recovery via relink |
22
+ | `~/.hermes/personal/tasks/<hash>/memory.md` | TASK_MEMORY.md content backup |
23
+ | `.hermes-task.json` | hash, name, outputs, dependencies |
24
+ | `TASK_MEMORY.md` | last session's state, what was done, what broke |
25
+ | `input/REQUIREMENTS.md` | original task spec |
26
+ | `output/` | all generated files |
27
+ | Root index (`tasks/TASKS.md`) | aggregated status from last index run |
28
+
29
+ ## Step 2: Identify task type and load its governing skill
30
+
31
+ Scan directory for type-signature files — `REQUIREMENTS.md` + `RECORDING.md` + `COMPOSITING.md` → video-production task. Load the relevant skill that defines this task type's phases.
32
+
33
+ > 🔴 Do NOT guess phase structure from memory or from other similar tasks. Load the domain skill and use its defined phases.
34
+
35
+ ## Step 3: Map evidence to skill's phase structure
36
+
37
+ Cross-reference:
38
+ - Phase directories in `output/` → confirm each matches a skill-defined phase
39
+ - Outputs in `.hermes-task.json` → map each to the right phase's product
40
+ - TASK_MEMORY.md execution notes → confirm sequence matches skill's defined order
41
+ - Parallel deps → check annotations match skill's flow table
42
+
43
+ ## Step 4: Write TASK.md
44
+
45
+ Follow the skill's template for format. Use the skill's standard phase names and dependency annotations. Mark all verified-completed items `[x]`.
46
+
47
+ ## Step 5: Verify before marking done
48
+
49
+ Only mark phases `[x]` if the output artifact exists and can be verified. If a phase was in-progress but incomplete, mark `[ ]` and note in `## Notes`.
50
+
51
+ ## Step 6: Update indexes
52
+
53
+ ```bash
54
+ python3 ~/.hermes/skills/software-development/task-framework/scripts/update-index.py
55
+ ```
56
+
57
+ ## Pitfalls
58
+
59
+ - 🔴 **Do NOT infer phase structure from prior conversation** — load the domain skill
60
+ - 🔴 **Do NOT invent phases that don't match the skill's template**
61
+ - 🔴 **Do NOT reorder phases from the skill's defined sequence**
62
+ - 🔴 **Always verify material existence** — directory existing ≠ phase completed
63
+ - 🔴 **BREAK placement** — keep exactly where the skill template places them
@@ -0,0 +1,72 @@
1
+ ---
2
+ name: task-timestamp-convention
3
+ description: "Task directory naming conventions — timestamp format (local timezone) AND name content guidelines. Name must be self-explanatory: <system/domain>-<deliverable-type> not generic terms."
4
+ version: 1.1.0
5
+ author: Personal Suite
6
+ license: MIT
7
+ category: software-development
8
+ platforms: [linux, macos]
9
+ metadata:
10
+ hermes:
11
+ tags:
12
+ - task
13
+ - naming
14
+ - convention
15
+ - timestamp
16
+ - directory
17
+ relations:
18
+ - type: used_in_workflow
19
+ target: task-framework
20
+ properties:
21
+ reason: "Called during every task_create"
22
+ strength: strong
23
+ ---
24
+
25
+ # Task Naming Conventions
26
+
27
+ Two aspects: **timestamp format** and **name content**.
28
+
29
+ ## 1. Timestamp: Local Timezone
30
+
31
+ When creating task directories, the timestamp must use **local time** (UTC+8), **not UTC**.
32
+
33
+ ```bash
34
+ # ✅ CORRECT — local timezone
35
+ TS=$(date +"%Y%m%d-%H%M%S")
36
+
37
+ # ❌ WRONG — UTC (off by 8 hours)
38
+ TS=$(date -u +"%Y%m%d-%H%M%S")
39
+ ```
40
+
41
+ ## 2. Name: Self-Explanatory Content
42
+
43
+ The task name (after the timestamp) must describe **what system/domain** and **what deliverable type**. Generic terms like "architecture-diagram", "analysis", "research" alone are not acceptable.
44
+
45
+ ### Pattern
46
+
47
+ ```
48
+ <system-or-domain>-<deliverable-type>
49
+ ```
50
+
51
+ ### Good vs Bad Examples
52
+
53
+ | ❌ Bad (too generic) | ✅ Good (self-explanatory) |
54
+ |---------------------|--------------------------|
55
+ | `system-architecture-diagram` | `personal-suite-troupe-architecture` |
56
+ | `api-design` | `eir-health-data-api-design` |
57
+ | `bug-fix` | `user-service-login-500-error-fix` |
58
+ | `code-review` | `heart-health-backend-PR-42-review` |
59
+ | `research` | `memory-retrieval-trigger-mechanisms-research` |
60
+
61
+ ### Why
62
+
63
+ Task names appear in `tasks/` directory listing, `tasks/README.md` index, and kanban cards. A name like `system-architecture-diagram` could mean any system — the agent and user must click into TASK.md to understand what task it is.
64
+
65
+ ### Exceptions
66
+
67
+ Simple one-off actions that live in the task root for <24h may use short names. Anything expected to persist longer must follow the pattern above.
68
+
69
+ ## 3. Related
70
+
71
+ - task-framework — parent skill governing task creation lifecycle
72
+ - workflow-conditional-branching — decision-fork pattern for multi-phase tasks
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: task-tracker
3
+ description: "任务跟踪回写 — 更新 TASK.md checkbox、追加 TASK_MEMORY.md、刷新索引。接收通用参数,隐藏 task-framework 内部约定"
4
+ version: 1.0.0
5
+ author: Hermes Agent
6
+ license: MIT
7
+ category: software-development
8
+ tags: [task, tracking, task-framework, checklist, memory]
9
+ ---
10
+
11
+ # Task Tracker
12
+
13
+ ## 定位
14
+
15
+ `task-tracker` 是任务层的 bookkeeping skill。它知道 task-framework 的内部约定(TASK.md checkbox 格式、TASK_MEMORY.md 追加格式、索引更新),对外暴露简单的参数接口。
16
+
17
+ 角色不需要知道 task-framework 的任何细节——它们只需要加载 `task-tracker` 并传入参数。
18
+
19
+ ## 参数
20
+
21
+ | 参数 | 必须 | 类型 | 说明 |
22
+ |------|------|------|------|
23
+ | `task_dir` | ✅ | path | TASK.md 所在目录的绝对路径 |
24
+ | `phase` | ✅ | string | 当前完成的 phase 标识,如 `Phase 0: scrutiny-pipeline` |
25
+ | `executor` | ✅ | string | 执行者名称,如 `scrutaris` |
26
+ | `findings` | ❌ | list | 关键发现行 |
27
+ | `outputs` | ❌ | list | 产出文件路径(相对 task_dir) |
28
+ | `next` | ❌ | string | 后续 phase |
29
+
30
+ ## 执行步骤
31
+
32
+ 1. 读取 `TASK.md`
33
+ 2. 找到包含 `<phase>` 文本的 `- [ ]` 行,改为 `- [x]`
34
+ 3. 在 `TASK_MEMORY.md` 末尾追加记录:
35
+
36
+ ```markdown
37
+ ## <phase> — <executor>
38
+
39
+ - **执行时间**: <当前时间>
40
+ - **状态**: completed
41
+ - **关键发现**:
42
+ - <finding line 1>
43
+ - <finding line 2>
44
+ - **输出**:
45
+ - `<output file 1>`
46
+ - **下一步**: <next>
47
+ ```
48
+
49
+ 4. 运行 `python3 ~/.hermes/skills/software-development/task-framework/scripts/update-index.py`
50
+
51
+ ## 使用示例
52
+
53
+ ```
54
+ 加载 task-tracker:
55
+ task_dir: /home/hauzer/studio/hermes/tasks/20260709-204723.token-factory-troupe-e957c3
56
+ phase: Phase 0: scrutiny-pipeline
57
+ executor: scrutaris
58
+ findings:
59
+ - 词元供应市场规模 ¥2,426万亿次(2025),+1,603% YoY
60
+ - 硅基流动毛利率 -24%,公有云越卖越亏
61
+ - 推广免费token占销售费用 64.7%
62
+ outputs:
63
+ - output/docs/00-scrutiny-report.md
64
+ next: Phase 1: domain-analysis
65
+ ```
66
+
67
+ ## 与 task-framework 的关系
68
+
69
+ `task-tracker` 封装了 task-framework 的以下操作:
70
+ - TASK.md checkbox 格式(`- [ ]` → `- [x]`)
71
+ - TASK_MEMORY.md 追加格式
72
+ - update-index.py 调用
73
+
74
+ task-framework 不需要知道 `task-tracker` 的存在——它只提供 task 容器。`task-tracker` 是独立工具,消费 task-framework 的产出格式。
75
+
76
+ ## 与 orchestrator 的关系
77
+
78
+ Orchestrator(stratis/corvan/valros)读取 TASK.md 的 `## Tracking` 段,获取 tracker skill 名和参数定义,注入到每个 phase 的 card body 或 worker brief 中。
79
+
80
+ 角色收到 card 后,在工作完成时按 brief 指令加载 `task-tracker` 并传入参数。角色不需要理解 task-framework——它只管传入参数。