hermes-half 1.0.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_half-1.0.0/LICENSE +21 -0
- hermes_half-1.0.0/PKG-INFO +226 -0
- hermes_half-1.0.0/README.md +196 -0
- hermes_half-1.0.0/pyproject.toml +124 -0
- hermes_half-1.0.0/setup.cfg +4 -0
- hermes_half-1.0.0/src/half/__init__.py +19 -0
- hermes_half-1.0.0/src/half/__main__.py +209 -0
- hermes_half-1.0.0/src/half/agent_mail/__init__.py +34 -0
- hermes_half-1.0.0/src/half/agent_mail/database.py +467 -0
- hermes_half-1.0.0/src/half/agent_mail/git_backend.py +212 -0
- hermes_half-1.0.0/src/half/agent_mail/models.py +107 -0
- hermes_half-1.0.0/src/half/agent_mail/server.py +295 -0
- hermes_half-1.0.0/src/half/agents/__init__.py +40 -0
- hermes_half-1.0.0/src/half/agents/architect.py +261 -0
- hermes_half-1.0.0/src/half/agents/cicd.py +187 -0
- hermes_half-1.0.0/src/half/agents/code_simplifier.py +338 -0
- hermes_half-1.0.0/src/half/agents/codify.py +188 -0
- hermes_half-1.0.0/src/half/agents/discovery.py +162 -0
- hermes_half-1.0.0/src/half/agents/implement.py +241 -0
- hermes_half-1.0.0/src/half/agents/infrastructure.py +215 -0
- hermes_half-1.0.0/src/half/agents/integration.py +170 -0
- hermes_half-1.0.0/src/half/agents/iterate.py +230 -0
- hermes_half-1.0.0/src/half/agents/launch.py +175 -0
- hermes_half-1.0.0/src/half/agents/observe.py +126 -0
- hermes_half-1.0.0/src/half/agents/scaffold.py +275 -0
- hermes_half-1.0.0/src/half/agents/security.py +207 -0
- hermes_half-1.0.0/src/half/agents/specification.py +244 -0
- hermes_half-1.0.0/src/half/agents/testing.py +163 -0
- hermes_half-1.0.0/src/half/agg_investigation.py +311 -0
- hermes_half-1.0.0/src/half/ai_declaration.py +169 -0
- hermes_half-1.0.0/src/half/boot_sequence.py +314 -0
- hermes_half-1.0.0/src/half/branchfs.py +182 -0
- hermes_half-1.0.0/src/half/browser_research.py +166 -0
- hermes_half-1.0.0/src/half/config.py +133 -0
- hermes_half-1.0.0/src/half/core/__init__.py +0 -0
- hermes_half-1.0.0/src/half/core/artifacts.py +174 -0
- hermes_half-1.0.0/src/half/core/error_budget.py +169 -0
- hermes_half-1.0.0/src/half/core/fail_safe.py +169 -0
- hermes_half-1.0.0/src/half/core/gate_checker.py +221 -0
- hermes_half-1.0.0/src/half/core/orchestrator.py +282 -0
- hermes_half-1.0.0/src/half/doctor.py +389 -0
- hermes_half-1.0.0/src/half/doom_loop.py +301 -0
- hermes_half-1.0.0/src/half/durable_exec.py +144 -0
- hermes_half-1.0.0/src/half/env_bootstrap.py +255 -0
- hermes_half-1.0.0/src/half/evals.py +334 -0
- hermes_half-1.0.0/src/half/event_driven.py +261 -0
- hermes_half-1.0.0/src/half/forced_patch.py +157 -0
- hermes_half-1.0.0/src/half/git_worktree.py +301 -0
- hermes_half-1.0.0/src/half/goal.py +66 -0
- hermes_half-1.0.0/src/half/half_focalboard/__init__.py +272 -0
- hermes_half-1.0.0/src/half/half_sidecar.py +324 -0
- hermes_half-1.0.0/src/half/half_voice/__init__.py +9 -0
- hermes_half-1.0.0/src/half/half_voice/engine.py +366 -0
- hermes_half-1.0.0/src/half/http_sidecar.py +152 -0
- hermes_half-1.0.0/src/half/indexing.py +186 -0
- hermes_half-1.0.0/src/half/interview.py +323 -0
- hermes_half-1.0.0/src/half/lm_studio.py +145 -0
- hermes_half-1.0.0/src/half/meta_reasoning.py +141 -0
- hermes_half-1.0.0/src/half/mutation_testing.py +343 -0
- hermes_half-1.0.0/src/half/no_slop.py +224 -0
- hermes_half-1.0.0/src/half/pda_digest.py +122 -0
- hermes_half-1.0.0/src/half/pglite_registry.py +408 -0
- hermes_half-1.0.0/src/half/prewarm.py +235 -0
- hermes_half-1.0.0/src/half/providers.py +230 -0
- hermes_half-1.0.0/src/half/psm.py +216 -0
- hermes_half-1.0.0/src/half/pydantic_ai.py +152 -0
- hermes_half-1.0.0/src/half/ralph_loop.py +208 -0
- hermes_half-1.0.0/src/half/reflection_loop.py +412 -0
- hermes_half-1.0.0/src/half/rest_daemon.py +135 -0
- hermes_half-1.0.0/src/half/reversibility_gate.py +278 -0
- hermes_half-1.0.0/src/half/rlvmr.py +128 -0
- hermes_half-1.0.0/src/half/routing.py +478 -0
- hermes_half-1.0.0/src/half/runtime/__init__.py +32 -0
- hermes_half-1.0.0/src/half/runtime/checkpointer.py +146 -0
- hermes_half-1.0.0/src/half/runtime/graph.py +317 -0
- hermes_half-1.0.0/src/half/runtime/nodes.py +732 -0
- hermes_half-1.0.0/src/half/runtime/state.py +107 -0
- hermes_half-1.0.0/src/half/sandbox.py +193 -0
- hermes_half-1.0.0/src/half/sandbox_exec.py +205 -0
- hermes_half-1.0.0/src/half/security_scanners.py +174 -0
- hermes_half-1.0.0/src/half/self_correct.py +292 -0
- hermes_half-1.0.0/src/half/spec_verify.py +250 -0
- hermes_half-1.0.0/src/half/stale_monitor.py +236 -0
- hermes_half-1.0.0/src/half/state/__init__.py +292 -0
- hermes_half-1.0.0/src/half/vram_monitor.py +210 -0
- hermes_half-1.0.0/src/half/webhooks.py +195 -0
- hermes_half-1.0.0/src/hermes_half.egg-info/PKG-INFO +226 -0
- hermes_half-1.0.0/src/hermes_half.egg-info/SOURCES.txt +104 -0
- hermes_half-1.0.0/src/hermes_half.egg-info/dependency_links.txt +1 -0
- hermes_half-1.0.0/src/hermes_half.egg-info/entry_points.txt +2 -0
- hermes_half-1.0.0/src/hermes_half.egg-info/requires.txt +5 -0
- hermes_half-1.0.0/src/hermes_half.egg-info/top_level.txt +1 -0
- hermes_half-1.0.0/tests/test_agent_mail.py +210 -0
- hermes_half-1.0.0/tests/test_agents.py +403 -0
- hermes_half-1.0.0/tests/test_config_cli.py +221 -0
- hermes_half-1.0.0/tests/test_coverage.py +878 -0
- hermes_half-1.0.0/tests/test_coverage_extra.py +336 -0
- hermes_half-1.0.0/tests/test_edge_coverage.py +265 -0
- hermes_half-1.0.0/tests/test_error_budget_artifacts.py +400 -0
- hermes_half-1.0.0/tests/test_final_coverage.py +1010 -0
- hermes_half-1.0.0/tests/test_final_push.py +670 -0
- hermes_half-1.0.0/tests/test_half.py +178 -0
- hermes_half-1.0.0/tests/test_integration.py +188 -0
- hermes_half-1.0.0/tests/test_remaining_coverage.py +249 -0
- hermes_half-1.0.0/tests/test_runtime.py +155 -0
- hermes_half-1.0.0/tests/test_v15_coverage.py +282 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Turin Tech Solutions
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: hermes-half
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Hermes Agentic Lifecycle Framework — transform concepts into production software
|
|
5
|
+
Author-email: Hermes Agent / Turin Tech Solutions <josh@turintechsolutions.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/iknowkungfubar/Hermes-Agentic-Lifecycle-Framework
|
|
8
|
+
Project-URL: Documentation, https://github.com/iknowkungfubar/Hermes-Agentic-Lifecycle-Framework#readme
|
|
9
|
+
Project-URL: Repository, https://github.com/iknowkungfubar/Hermes-Agentic-Lifecycle-Framework
|
|
10
|
+
Project-URL: Changelog, https://github.com/iknowkungfubar/Hermes-Agentic-Lifecycle-Framework/blob/master/CHANGELOG.md
|
|
11
|
+
Project-URL: Issues, https://github.com/iknowkungfubar/Hermes-Agentic-Lifecycle-Framework/issues
|
|
12
|
+
Keywords: half,lifecycle,sdlc,agentic-se,automation,ci-cd
|
|
13
|
+
Classifier: Development Status :: 4 - Beta
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
18
|
+
Classifier: Topic :: Software Development :: Build Tools
|
|
19
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
20
|
+
Classifier: Topic :: Software Development :: Testing
|
|
21
|
+
Requires-Python: >=3.13
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
Requires-Dist: pydantic>=2.0
|
|
25
|
+
Requires-Dist: pyyaml>=6.0
|
|
26
|
+
Requires-Dist: langgraph>=0.4
|
|
27
|
+
Requires-Dist: langgraph-checkpoint-sqlite>=2.0
|
|
28
|
+
Requires-Dist: mcp>=1.0
|
|
29
|
+
Dynamic: license-file
|
|
30
|
+
|
|
31
|
+
<div align="center">
|
|
32
|
+
|
|
33
|
+
# ⚡ HALF — Hermes Agentic Lifecycle Framework
|
|
34
|
+
|
|
35
|
+
**Transform high-level business concepts into production-ready software through autonomous, multi-agent orchestration.**
|
|
36
|
+
|
|
37
|
+
[](https://github.com/iknowkungfubar/Hermes-Agentic-Lifecycle-Framework/actions/workflows/ci.yml)
|
|
38
|
+
[](LICENSE)
|
|
39
|
+
[](pyproject.toml)
|
|
40
|
+
[](https://mypy-lang.org/)
|
|
41
|
+
[](https://docs.astral.sh/ruff/)
|
|
42
|
+
[](tests/)
|
|
43
|
+
|
|
44
|
+
</div>
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## What is HALF?
|
|
49
|
+
|
|
50
|
+
**HALF** is a modular, open-source framework that enables AI agents to autonomously execute the full software development lifecycle. It implements a **5-phase structured SDLC** with built-in quality gates, fail-safe protocols, and explicit human checkpoints.
|
|
51
|
+
|
|
52
|
+
```mermaid
|
|
53
|
+
graph LR
|
|
54
|
+
A[Concept] --> B[Phase 1<br/>Discovery & Strategy]
|
|
55
|
+
B -->|Gate G1| C[Phase 2<br/>Development & Coding]
|
|
56
|
+
C -->|Gate G2| D[Phase 3<br/>Quality Assurance]
|
|
57
|
+
D -->|Gate G3| E[Phase 4<br/>Polish & Deployment]
|
|
58
|
+
E -->|Finality Gate| F[Phase 5<br/>Iteration]
|
|
59
|
+
F --> B
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Core Principles
|
|
63
|
+
|
|
64
|
+
- **Agent executes, human directs** — Agents handle implementation; humans set intent, review checkpoints, own decisions
|
|
65
|
+
- **Gates before progress** — Every phase has mandatory quality gates
|
|
66
|
+
- **Fail-safe by design** — 3-level escalation: step retry → phase retry → human gap report
|
|
67
|
+
- **TDD is mandatory** — Harness-first: write failing tests before any implementation
|
|
68
|
+
- **Codification Imperative** — Every manual fix becomes a durable improvement to the agent system
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Quick Start
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# 1. Clone
|
|
76
|
+
git clone https://github.com/iknowkungfubar/Hermes-Agentic-Lifecycle-Framework.git
|
|
77
|
+
cd Hermes-Agentic-Lifecycle-Framework
|
|
78
|
+
|
|
79
|
+
# 2. Install
|
|
80
|
+
pip install uv
|
|
81
|
+
uv sync --group dev
|
|
82
|
+
|
|
83
|
+
# 3. Verify
|
|
84
|
+
make test
|
|
85
|
+
|
|
86
|
+
# 4. Bootstrap a project
|
|
87
|
+
./scripts/genesis.sh --project my-app --mode full
|
|
88
|
+
|
|
89
|
+
# 5. Use in Hermes Agent
|
|
90
|
+
skill_view(name="half")
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## The 5 Phases
|
|
96
|
+
|
|
97
|
+
| Phase | Objective | Agent Skills | Human Checkpoint |
|
|
98
|
+
|-------|-----------|-------------|------------------|
|
|
99
|
+
| **1: Discovery & Strategy** | Requirements → Spec → Architecture | Discovery, Specification, Architect | **Review spec + arch** |
|
|
100
|
+
| **2: Development & Coding** | TDD implementation with Tri-Phasic Loop | Scaffold, Research, Plan, Implement, Simplify | — |
|
|
101
|
+
| **3: Quality Assurance** | Test completeness + security red-teaming | Testing, Security, Integration | **Review test + security report** |
|
|
102
|
+
| **4: Polish & Deployment** | IaC + CI/CD + production readiness | Infrastructure, CICD, Launch | **Finality Gate sign-off** |
|
|
103
|
+
| **5: Iteration** | Monitoring + triage + codification | Observe, Iterate, Codify | — |
|
|
104
|
+
|
|
105
|
+
### Three Human Checkpoints (non-negotiable)
|
|
106
|
+
|
|
107
|
+
1. **After Phase 1** — Review spec and architecture before code is written
|
|
108
|
+
2. **After Phase 3** — Review test results, security findings, merge confidence
|
|
109
|
+
3. **After Phase 4** — Review launch readiness via Finality Gate (cryptographic sign-off)
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Architecture
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
117
|
+
│ Command Center (Tauri Desktop GUI) │
|
|
118
|
+
│ ┌──────────────┐ ┌───────────────┐ ┌──────────────────┐ │
|
|
119
|
+
│ │ Focalboard │ │ Agent Mail │ │ Grafana/Laminar │ │
|
|
120
|
+
│ │ (Kanban) │ │ (Messages) │ │ (Observability) │ │
|
|
121
|
+
│ └──────┬───────┘ └──────┬────────┘ └────────┬─────────┘ │
|
|
122
|
+
└─────────┼──────────────────┼────────────────────┼────────────┘
|
|
123
|
+
│ │ │
|
|
124
|
+
▼ ▼ ▼
|
|
125
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
126
|
+
│ LangGraph State Machine │
|
|
127
|
+
│ Phase 1 → Phase 2 → Phase 3 → Phase 4 → Phase 5 │
|
|
128
|
+
│ ↕ (iteration cycle) │
|
|
129
|
+
│ 16 Agent Skills + Code-Simplifier + Gates │
|
|
130
|
+
└─────────────────────────────────────────────────────────────┘
|
|
131
|
+
│ │ │
|
|
132
|
+
▼ ▼ ▼
|
|
133
|
+
┌──────────────┐ ┌──────────────────┐ ┌────────────────────┐
|
|
134
|
+
│ Observability│ │ Execution │ │ CI/CD (GitHub │
|
|
135
|
+
│ (LangWatch, │ │ Sandbox (Docker/ │ │ Actions → Deploy) │
|
|
136
|
+
│ Laminar, │ │ Podman) │ │ with per-stage │
|
|
137
|
+
│ Prometheus) │ │ Read-only Vault │ │ quality gates │
|
|
138
|
+
└──────────────┘ └──────────────────┘ └────────────────────┘
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Repository Structure
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
src/
|
|
147
|
+
├── half/ # Package root + CLI entrypoint
|
|
148
|
+
├── agents/ # 16 agent skill implementations
|
|
149
|
+
├── core/ # Orchestrator, gates, fail-safe, error budget
|
|
150
|
+
├── runtime/ # LangGraph graph, checkpointer, nodes
|
|
151
|
+
├── state/ # LangGraph security (CVE mitigations)
|
|
152
|
+
├── agent_mail/ # Decentralized agent coordination
|
|
153
|
+
├── half_voice/ # Speech-to-text and text-to-speech
|
|
154
|
+
├── half_focalboard/ # Kanban API client
|
|
155
|
+
└── half_sidecar.py # Tauri Python sidecar
|
|
156
|
+
|
|
157
|
+
scripts/ # Bootstrap, genesis, deploy, install-foss
|
|
158
|
+
templates/ # fail-safes.yaml, gap-report.md
|
|
159
|
+
references/ # quickstart-execution.md
|
|
160
|
+
docker/ # Dockerfile + docker-compose (app + FOSS stack)
|
|
161
|
+
vault_root/ # Obsidian RAG vault structure
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Fail-Safe Protocol
|
|
167
|
+
|
|
168
|
+
```yaml
|
|
169
|
+
escalation:
|
|
170
|
+
level_1: "Step retry (×3) — auto-analyze failure, adjust, retry"
|
|
171
|
+
level_2: "Phase retry (×2) — re-run phase with expanded context"
|
|
172
|
+
level_3: "Human escalation — generate Gap Report, pause pipeline"
|
|
173
|
+
circuit_breakers:
|
|
174
|
+
- ">5 test failures → halt phase 2"
|
|
175
|
+
- "CRITICAL security finding → halt phase 3"
|
|
176
|
+
- "coverage drops >5% → warn before proceeding"
|
|
177
|
+
error_budget:
|
|
178
|
+
total: "100 points / 30 days"
|
|
179
|
+
thresholds: {warning: "<40%", critical: "<20%", exhausted: "0%"}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Security
|
|
185
|
+
|
|
186
|
+
| CVE | Component | Mitigation |
|
|
187
|
+
|-----|-----------|------------|
|
|
188
|
+
| CVE-2025-67644 | LangGraph SQLite | Metadata allowlist validates all filter keys |
|
|
189
|
+
| CVE-2026-28277 | LangGraph msgpack | JSON-safe serialization prevents RCE |
|
|
190
|
+
|
|
191
|
+
- Execution sandbox (read-only vault mount, network-isolated)
|
|
192
|
+
- Dangerous command denylist (rm -rf, dd, mkfs, format)
|
|
193
|
+
- Path traversal protection via pre-execution hooks
|
|
194
|
+
- Secrets detection in CI (trufflehog)
|
|
195
|
+
- Weekly dependency scans via Dependabot
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Development
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
make install # Install dependencies
|
|
203
|
+
make lint # Run ruff linter
|
|
204
|
+
make typecheck # Run mypy type checker
|
|
205
|
+
make test # Run test suite (62 tests)
|
|
206
|
+
make ready # Full CI pipeline
|
|
207
|
+
make ship # Release build (Tauri + Python)
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## License
|
|
213
|
+
|
|
214
|
+
MIT — See [LICENSE](LICENSE).
|
|
215
|
+
|
|
216
|
+
Built by [Turin Tech Solutions](mailto:josh@turintechsolutions.com) with Hermes Agent.
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
<div align="center">
|
|
221
|
+
<a href="docs/getting-started/installation.md">Installation</a> •
|
|
222
|
+
<a href="docs/getting-started/quickstart.md">Quick Start</a> •
|
|
223
|
+
<a href="docs/guide/overview.md">User Guide</a> •
|
|
224
|
+
<a href="CONTRIBUTING.md">Contributing</a> •
|
|
225
|
+
<a href="CHANGELOG.md">Changelog</a>
|
|
226
|
+
</div>
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# ⚡ HALF — Hermes Agentic Lifecycle Framework
|
|
4
|
+
|
|
5
|
+
**Transform high-level business concepts into production-ready software through autonomous, multi-agent orchestration.**
|
|
6
|
+
|
|
7
|
+
[](https://github.com/iknowkungfubar/Hermes-Agentic-Lifecycle-Framework/actions/workflows/ci.yml)
|
|
8
|
+
[](LICENSE)
|
|
9
|
+
[](pyproject.toml)
|
|
10
|
+
[](https://mypy-lang.org/)
|
|
11
|
+
[](https://docs.astral.sh/ruff/)
|
|
12
|
+
[](tests/)
|
|
13
|
+
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## What is HALF?
|
|
19
|
+
|
|
20
|
+
**HALF** is a modular, open-source framework that enables AI agents to autonomously execute the full software development lifecycle. It implements a **5-phase structured SDLC** with built-in quality gates, fail-safe protocols, and explicit human checkpoints.
|
|
21
|
+
|
|
22
|
+
```mermaid
|
|
23
|
+
graph LR
|
|
24
|
+
A[Concept] --> B[Phase 1<br/>Discovery & Strategy]
|
|
25
|
+
B -->|Gate G1| C[Phase 2<br/>Development & Coding]
|
|
26
|
+
C -->|Gate G2| D[Phase 3<br/>Quality Assurance]
|
|
27
|
+
D -->|Gate G3| E[Phase 4<br/>Polish & Deployment]
|
|
28
|
+
E -->|Finality Gate| F[Phase 5<br/>Iteration]
|
|
29
|
+
F --> B
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Core Principles
|
|
33
|
+
|
|
34
|
+
- **Agent executes, human directs** — Agents handle implementation; humans set intent, review checkpoints, own decisions
|
|
35
|
+
- **Gates before progress** — Every phase has mandatory quality gates
|
|
36
|
+
- **Fail-safe by design** — 3-level escalation: step retry → phase retry → human gap report
|
|
37
|
+
- **TDD is mandatory** — Harness-first: write failing tests before any implementation
|
|
38
|
+
- **Codification Imperative** — Every manual fix becomes a durable improvement to the agent system
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Quick Start
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# 1. Clone
|
|
46
|
+
git clone https://github.com/iknowkungfubar/Hermes-Agentic-Lifecycle-Framework.git
|
|
47
|
+
cd Hermes-Agentic-Lifecycle-Framework
|
|
48
|
+
|
|
49
|
+
# 2. Install
|
|
50
|
+
pip install uv
|
|
51
|
+
uv sync --group dev
|
|
52
|
+
|
|
53
|
+
# 3. Verify
|
|
54
|
+
make test
|
|
55
|
+
|
|
56
|
+
# 4. Bootstrap a project
|
|
57
|
+
./scripts/genesis.sh --project my-app --mode full
|
|
58
|
+
|
|
59
|
+
# 5. Use in Hermes Agent
|
|
60
|
+
skill_view(name="half")
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## The 5 Phases
|
|
66
|
+
|
|
67
|
+
| Phase | Objective | Agent Skills | Human Checkpoint |
|
|
68
|
+
|-------|-----------|-------------|------------------|
|
|
69
|
+
| **1: Discovery & Strategy** | Requirements → Spec → Architecture | Discovery, Specification, Architect | **Review spec + arch** |
|
|
70
|
+
| **2: Development & Coding** | TDD implementation with Tri-Phasic Loop | Scaffold, Research, Plan, Implement, Simplify | — |
|
|
71
|
+
| **3: Quality Assurance** | Test completeness + security red-teaming | Testing, Security, Integration | **Review test + security report** |
|
|
72
|
+
| **4: Polish & Deployment** | IaC + CI/CD + production readiness | Infrastructure, CICD, Launch | **Finality Gate sign-off** |
|
|
73
|
+
| **5: Iteration** | Monitoring + triage + codification | Observe, Iterate, Codify | — |
|
|
74
|
+
|
|
75
|
+
### Three Human Checkpoints (non-negotiable)
|
|
76
|
+
|
|
77
|
+
1. **After Phase 1** — Review spec and architecture before code is written
|
|
78
|
+
2. **After Phase 3** — Review test results, security findings, merge confidence
|
|
79
|
+
3. **After Phase 4** — Review launch readiness via Finality Gate (cryptographic sign-off)
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Architecture
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
87
|
+
│ Command Center (Tauri Desktop GUI) │
|
|
88
|
+
│ ┌──────────────┐ ┌───────────────┐ ┌──────────────────┐ │
|
|
89
|
+
│ │ Focalboard │ │ Agent Mail │ │ Grafana/Laminar │ │
|
|
90
|
+
│ │ (Kanban) │ │ (Messages) │ │ (Observability) │ │
|
|
91
|
+
│ └──────┬───────┘ └──────┬────────┘ └────────┬─────────┘ │
|
|
92
|
+
└─────────┼──────────────────┼────────────────────┼────────────┘
|
|
93
|
+
│ │ │
|
|
94
|
+
▼ ▼ ▼
|
|
95
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
96
|
+
│ LangGraph State Machine │
|
|
97
|
+
│ Phase 1 → Phase 2 → Phase 3 → Phase 4 → Phase 5 │
|
|
98
|
+
│ ↕ (iteration cycle) │
|
|
99
|
+
│ 16 Agent Skills + Code-Simplifier + Gates │
|
|
100
|
+
└─────────────────────────────────────────────────────────────┘
|
|
101
|
+
│ │ │
|
|
102
|
+
▼ ▼ ▼
|
|
103
|
+
┌──────────────┐ ┌──────────────────┐ ┌────────────────────┐
|
|
104
|
+
│ Observability│ │ Execution │ │ CI/CD (GitHub │
|
|
105
|
+
│ (LangWatch, │ │ Sandbox (Docker/ │ │ Actions → Deploy) │
|
|
106
|
+
│ Laminar, │ │ Podman) │ │ with per-stage │
|
|
107
|
+
│ Prometheus) │ │ Read-only Vault │ │ quality gates │
|
|
108
|
+
└──────────────┘ └──────────────────┘ └────────────────────┘
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Repository Structure
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
src/
|
|
117
|
+
├── half/ # Package root + CLI entrypoint
|
|
118
|
+
├── agents/ # 16 agent skill implementations
|
|
119
|
+
├── core/ # Orchestrator, gates, fail-safe, error budget
|
|
120
|
+
├── runtime/ # LangGraph graph, checkpointer, nodes
|
|
121
|
+
├── state/ # LangGraph security (CVE mitigations)
|
|
122
|
+
├── agent_mail/ # Decentralized agent coordination
|
|
123
|
+
├── half_voice/ # Speech-to-text and text-to-speech
|
|
124
|
+
├── half_focalboard/ # Kanban API client
|
|
125
|
+
└── half_sidecar.py # Tauri Python sidecar
|
|
126
|
+
|
|
127
|
+
scripts/ # Bootstrap, genesis, deploy, install-foss
|
|
128
|
+
templates/ # fail-safes.yaml, gap-report.md
|
|
129
|
+
references/ # quickstart-execution.md
|
|
130
|
+
docker/ # Dockerfile + docker-compose (app + FOSS stack)
|
|
131
|
+
vault_root/ # Obsidian RAG vault structure
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Fail-Safe Protocol
|
|
137
|
+
|
|
138
|
+
```yaml
|
|
139
|
+
escalation:
|
|
140
|
+
level_1: "Step retry (×3) — auto-analyze failure, adjust, retry"
|
|
141
|
+
level_2: "Phase retry (×2) — re-run phase with expanded context"
|
|
142
|
+
level_3: "Human escalation — generate Gap Report, pause pipeline"
|
|
143
|
+
circuit_breakers:
|
|
144
|
+
- ">5 test failures → halt phase 2"
|
|
145
|
+
- "CRITICAL security finding → halt phase 3"
|
|
146
|
+
- "coverage drops >5% → warn before proceeding"
|
|
147
|
+
error_budget:
|
|
148
|
+
total: "100 points / 30 days"
|
|
149
|
+
thresholds: {warning: "<40%", critical: "<20%", exhausted: "0%"}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Security
|
|
155
|
+
|
|
156
|
+
| CVE | Component | Mitigation |
|
|
157
|
+
|-----|-----------|------------|
|
|
158
|
+
| CVE-2025-67644 | LangGraph SQLite | Metadata allowlist validates all filter keys |
|
|
159
|
+
| CVE-2026-28277 | LangGraph msgpack | JSON-safe serialization prevents RCE |
|
|
160
|
+
|
|
161
|
+
- Execution sandbox (read-only vault mount, network-isolated)
|
|
162
|
+
- Dangerous command denylist (rm -rf, dd, mkfs, format)
|
|
163
|
+
- Path traversal protection via pre-execution hooks
|
|
164
|
+
- Secrets detection in CI (trufflehog)
|
|
165
|
+
- Weekly dependency scans via Dependabot
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Development
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
make install # Install dependencies
|
|
173
|
+
make lint # Run ruff linter
|
|
174
|
+
make typecheck # Run mypy type checker
|
|
175
|
+
make test # Run test suite (62 tests)
|
|
176
|
+
make ready # Full CI pipeline
|
|
177
|
+
make ship # Release build (Tauri + Python)
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## License
|
|
183
|
+
|
|
184
|
+
MIT — See [LICENSE](LICENSE).
|
|
185
|
+
|
|
186
|
+
Built by [Turin Tech Solutions](mailto:josh@turintechsolutions.com) with Hermes Agent.
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
<div align="center">
|
|
191
|
+
<a href="docs/getting-started/installation.md">Installation</a> •
|
|
192
|
+
<a href="docs/getting-started/quickstart.md">Quick Start</a> •
|
|
193
|
+
<a href="docs/guide/overview.md">User Guide</a> •
|
|
194
|
+
<a href="CONTRIBUTING.md">Contributing</a> •
|
|
195
|
+
<a href="CHANGELOG.md">Changelog</a>
|
|
196
|
+
</div>
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=75.0", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "hermes-half"
|
|
7
|
+
version = "1.0.0"
|
|
8
|
+
description = "Hermes Agentic Lifecycle Framework — transform concepts into production software"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = {text = "MIT"}
|
|
11
|
+
authors = [
|
|
12
|
+
{name = "Hermes Agent / Turin Tech Solutions", email = "josh@turintechsolutions.com"}
|
|
13
|
+
]
|
|
14
|
+
requires-python = ">=3.13"
|
|
15
|
+
keywords = ["half", "lifecycle", "sdlc", "agentic-se", "automation", "ci-cd"]
|
|
16
|
+
classifiers = [
|
|
17
|
+
"Development Status :: 4 - Beta",
|
|
18
|
+
"Intended Audience :: Developers",
|
|
19
|
+
"License :: OSI Approved :: MIT License",
|
|
20
|
+
"Programming Language :: Python :: 3.13",
|
|
21
|
+
"Programming Language :: Python :: 3.14",
|
|
22
|
+
"Topic :: Software Development :: Build Tools",
|
|
23
|
+
"Topic :: Software Development :: Quality Assurance",
|
|
24
|
+
"Topic :: Software Development :: Testing",
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
dependencies = [
|
|
28
|
+
"pydantic>=2.0",
|
|
29
|
+
"pyyaml>=6.0",
|
|
30
|
+
"langgraph>=0.4",
|
|
31
|
+
"langgraph-checkpoint-sqlite>=2.0",
|
|
32
|
+
"mcp>=1.0",
|
|
33
|
+
]
|
|
34
|
+
|
|
35
|
+
[project.urls]
|
|
36
|
+
"Homepage" = "https://github.com/iknowkungfubar/Hermes-Agentic-Lifecycle-Framework"
|
|
37
|
+
"Documentation" = "https://github.com/iknowkungfubar/Hermes-Agentic-Lifecycle-Framework#readme"
|
|
38
|
+
"Repository" = "https://github.com/iknowkungfubar/Hermes-Agentic-Lifecycle-Framework"
|
|
39
|
+
"Changelog" = "https://github.com/iknowkungfubar/Hermes-Agentic-Lifecycle-Framework/blob/master/CHANGELOG.md"
|
|
40
|
+
"Issues" = "https://github.com/iknowkungfubar/Hermes-Agentic-Lifecycle-Framework/issues"
|
|
41
|
+
|
|
42
|
+
[project.scripts]
|
|
43
|
+
half = "half.__main__:main"
|
|
44
|
+
|
|
45
|
+
[dependency-groups]
|
|
46
|
+
dev = [
|
|
47
|
+
"ruff>=0.9",
|
|
48
|
+
"mypy>=1.14",
|
|
49
|
+
"pytest>=8.0",
|
|
50
|
+
"pytest-cov>=6.0",
|
|
51
|
+
"pytest-asyncio>=0.25",
|
|
52
|
+
"pre-commit>=4.0",
|
|
53
|
+
"mkdocs>=1.6",
|
|
54
|
+
"mkdocs-material>=9.0",
|
|
55
|
+
]
|
|
56
|
+
|
|
57
|
+
[tool.setuptools.packages.find]
|
|
58
|
+
where = ["src"]
|
|
59
|
+
include = ["half*"]
|
|
60
|
+
|
|
61
|
+
[tool.ruff]
|
|
62
|
+
line-length = 88
|
|
63
|
+
target-version = "py313"
|
|
64
|
+
|
|
65
|
+
[tool.ruff.lint]
|
|
66
|
+
select = ["ALL"]
|
|
67
|
+
ignore = [
|
|
68
|
+
"D", # docstring rules
|
|
69
|
+
"ANN", # annotation rules
|
|
70
|
+
"COM812", # trailing comma
|
|
71
|
+
"INP001", # implicit namespace package
|
|
72
|
+
"FBT001", # boolean positional args
|
|
73
|
+
"FBT002",
|
|
74
|
+
"S101", # allow assert in tests
|
|
75
|
+
]
|
|
76
|
+
|
|
77
|
+
[tool.ruff.lint.per-file-ignores]
|
|
78
|
+
"tests/**" = ["S101", "PLR2004", "ARG001", "ARG002"]
|
|
79
|
+
"scripts/**" = ["T201", "INP001"]
|
|
80
|
+
"src/half_voice/engine.py" = ["S603"]
|
|
81
|
+
|
|
82
|
+
[tool.ruff.format]
|
|
83
|
+
quote-style = "double"
|
|
84
|
+
|
|
85
|
+
[tool.mypy]
|
|
86
|
+
strict = true
|
|
87
|
+
ignore_missing_imports = true
|
|
88
|
+
allow_untyped_defs = false
|
|
89
|
+
disallow_untyped_decorators = false
|
|
90
|
+
exclude = [
|
|
91
|
+
"src-tauri/",
|
|
92
|
+
".venv/",
|
|
93
|
+
]
|
|
94
|
+
|
|
95
|
+
[tool.pytest.ini_options]
|
|
96
|
+
testpaths = ["tests"]
|
|
97
|
+
asyncio_mode = "auto"
|
|
98
|
+
addopts = "-v --cov=src --cov-report=term-missing --tb=short"
|
|
99
|
+
filterwarnings = [
|
|
100
|
+
"ignore::ResourceWarning",
|
|
101
|
+
]
|
|
102
|
+
markers = [
|
|
103
|
+
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
|
|
104
|
+
"network: marks tests that need network access",
|
|
105
|
+
"integration: marks integration tests",
|
|
106
|
+
"unit: marks unit tests",
|
|
107
|
+
]
|
|
108
|
+
|
|
109
|
+
[tool.coverage.run]
|
|
110
|
+
source = ["src"]
|
|
111
|
+
omit = [
|
|
112
|
+
"tests/*",
|
|
113
|
+
"scripts/*",
|
|
114
|
+
"src-tauri/*",
|
|
115
|
+
"src/half_voice/engine.py",
|
|
116
|
+
]
|
|
117
|
+
|
|
118
|
+
[tool.coverage.report]
|
|
119
|
+
fail_under = 10
|
|
120
|
+
show_missing = true
|
|
121
|
+
skip_covered = true
|
|
122
|
+
|
|
123
|
+
[tool.coverage.html]
|
|
124
|
+
directory = "htmlcov"
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"""HALF — Hermes Agentic Lifecycle Framework.
|
|
2
|
+
|
|
3
|
+
A modular, template-driven framework that transforms high-level business
|
|
4
|
+
concepts into production-ready software through autonomous, multi-agent
|
|
5
|
+
orchestration.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
__version__ = "1.0.0"
|
|
11
|
+
__author__ = "Hermes Agent / Turin Tech Solutions"
|
|
12
|
+
__license__ = "MIT"
|
|
13
|
+
__description__ = (
|
|
14
|
+
"Hermes Agentic Lifecycle Framework — transform concepts into production software"
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
import sys as _sys
|
|
18
|
+
|
|
19
|
+
# Check Python version
|