HunterX v7 — Sprint 034.1

FINAL RELEASE GATE — Phase 1: Repository Integrity & V6/V7 Contamination Audit

Date: 2026-08-10 Phase: 034.1 (integrity audit only — no feature development) Author: Principal Release Engineer (Phase 034.1) Scope: Repository inventory, V6 contamination audit, runtime path, configuration, packaging, CI/CD, documentation, database artifacts, classification, safe repairs, validation.


1. Executive Summary

HunterX v7 (src/-layout, pyproject.toml version = "7.0.0") is implemented, runs, and passes its full test suite, but the repository is still contaminated by V6-era implementation, packaging, documentation, and runtime paths, and the entire V7 delivery is currently untracked in git.

Key conclusions:

  1. V7 is the real runtime — verified end-to-end: hunterx versionHunterX v7.0.0; hunterx platform → full composition; API factory hunterx.api.app:create_app (FastAPI, /health); mission creation via hunterx mission create / hunterx hunt.
  2. V6 contamination vectors exist and were repaired where unambiguous: the root hunterx.py shim dispatched to the V6 CLI; the Dockerfile baked in VERSION=6.0.0, a hunterx doctor health check (a command V7 does not have), and V6 hunterx.yaml/payloads/ copies; install.sh downloaded hunterx-6.0.0.tar.gz from PyPI and verified with V6-only commands; 12 SQLite database artifacts were tracked in git.
  3. One P0 remains: the entire V7 tree (src/, tests/{unit,…}, eng/, alembic/, config/, capabilities/, V7 workflows, requirements.lock, V7 docs) is uncommitted. A clean clone of main today contains only the retired V6 flat package. The release gate cannot be closed until the V7 tree is staged/committed (034.2 decision — not performed here per instructions).
  4. Known, classified, carry-over issues are listed in §10 (P0–P3) for 034.2.

Phase gate: PASS (with one P0 carry-over that blocks the release gate until the V7 tree is committed).


2. Repository Inventory

2.1 Active (V7) paths

Path Role Status
src/hunterx/ V7 clean-architecture package (domain, application, infrastructure, engines, tools, api, cli, platform) Active — untracked
tests/unit|component|architecture|integration|golden|security|acceptance|performance|engineering|framework V7 test suites Active — untracked
eng/ Engineering platform (gates, security, sbom, packaging, readiness, release) Active — untracked
alembic/ + alembic.ini V7 migrations (23 version scripts) Active — untracked
config/ (architecture.yaml, api_baseline.json, vulture_allowlist.py, config/capabilities/*.json) Architecture matrix, baseline, capability manifests Active — untracked
capabilities/ V7 capability manifests (11 JSON) Active — untracked
.github/workflows/* (14 new) V7 CI/CD Active — untracked
requirements.lock V7 locked dependency set Active — untracked
docs/v7-*.md, docs/{architecture,bible,cli,configuration,features,installation,use-cases} V7 design + reference docs Active — untracked
docs/_includes/seo.html, docs/_layouts/{post,tutorial}.html, docs/_redirects V7 doc-site infra Active — untracked

2.2 Obsolete / V6 paths

Path Role Status
hunterx/ (245 files) Retired V6 flat package (cli.py, core/, modules/, engines/, api/, reporting/, utils/) Tracked — preserved in-tree by design (pyproject documents “intentionally NOT packaged”)
hunterx/assets/data/*.db, hunterx/data/ai_cache.db, hunterx/modules/data/*.db, data/*.db V6 SQLite runtime DBs (ai cache, payload index/provenance, adaptive memory) Were tracked — untracked this phase (repair)
api/, core/, plugins/ (top-level) V6-era duplicate/orphan modules (core/ is an empty stub; api/ duplicates hunterx/api) Tracked — dead
payloads/ (42 files), data/ V6 payload corpus + DB data Tracked — unused by V7
hunterx.yaml (root) V6 config schema Tracked — merged inertly by V7 loader from cwd
hunterx.py (root) V6 CLI shim Tracked — repaired to delegate to V7
requirements.txt V6 dependency set (requests, bs4, lxml, websocket-client) Tracked — conflicts with V7 pyproject/lock
install.sh, Dockerfile, docker-compose.yml V6-era install/image/compose Tracked — Dockerfile + install.sh repaired; compose flagged
awesome-*.md, awesome-pentest, pentest.md, temp_cli_apps.md V6-era clutter Tracked — P2
tests/test_*.py (~36) + tests/conftest.py (root) V6 flat tests Tracked — excluded from suite by pyproject (documented)
docs/*.md, docs/_posts, docs/_tutorials, docs/cli, docs/features, docs/configuration, docs/installation V6 documentation Tracked/untracked — see §8

2.3 Orphans, duplicates, dead paths


3. V6 Contamination Findings

3.1 In src/ (V7)

None. Grep for from hunterx.core|modules|utils|engines inside src/ returns zero matches. The V7 package is internally clean.

3.2 Runtime entry points (VERIFIED)

3.3 Environment prefixes

3.4 Configuration schema

Two distinct schemas exist: root hunterx.yaml (V6: profile/stealth/auth/ai/oob/ presets) and src/hunterx/config/hunterx.yaml (V7: app_name/environment/database/ cache/queue/security/api). The V7 loader reads a cwd hunterx.yaml as a profile; the V6 file is merged and its unknown keys are ignored by pydantic (inert, but a latent trap).

3.5 CLI command surface

V6 commands (scan, module, doctor, payload, agents, skills, workflow, reasoning, api, update, ai) do not exist in V7. V7 exposes version/help/config/platform, mission *, hunt *, finding *, report *, target *, campaign *, tools *. Docker healthcheck hunterx doctor and install.sh smoke/help text used V6 commands — repaired.

3.6 CI / Docker references

No workflow hardcodes 6.0.0. The Dockerfile’s ARG VERSION=6.0.0 default, COPY hunterx.yaml/COPY payloads/ and hunterx doctor healthcheck were V6 — repaired. docker-compose.yml remains fully V6 (see §10 P1-02).


4. Active Runtime Path (verified end-to-end)

  1. Install: pip install .pyproject.toml[tool.setuptools.packages.find] where=["src"] → only src/hunterx is packaged → console scripts hunterx and hunterx-arch.
  2. CLI startup: hunterxhunterx.cli:main (src/hunterx/cli/__init__.py) → CliApplication + register_default_commandsbuild_platform().
  3. API startup: hunterx.api.app:create_app (FastAPI, version="7.0.0", /health + mission/finding/report/target-memory/tools/orchestration routers).
  4. Platform construction: build_platform() assembles the Platform composition root — 30+ application services, four facades (TIP, Tool Integration SDK, Tool Integration Factory, Mission Planning), CoreEngine, observability stack, in-memory default adapters, optional SQL repositories.
  5. Mission creation/execution: hunterx mission createMissionOrchestrationService.create_missionMissionOrchestrator (hunterx.domain.mission_orchestration.orchestrator); hunterx hunt creates
    • starts a full-spectrum mission via MissionDashboardService.

V7 is the actual runtime. The only contamination paths to V6 were the repo-root hunterx.py/python -m hunterx/import hunterx shadowing (root on sys.path) and V6 packaging/Docker/install artifacts — all addressed in §9 except the documented repo-root shadowing caveat (P1-01) and compose (P1-02).


5. Configuration Audit

Source Authoritative?
src/hunterx/config/hunterx.yaml (bundled default profile) Authoritative default
src/hunterx/config/settings.py (Settings, pydantic) Schema authority
src/hunterx/config/loader.py load_default_settings() Loader authority
cwd hunterx.yaml (root, V6 schema) Legacy — merged inertly
HUNTERX_CONFIG env var Supported (points to a profile file)
HUNTERX_* env vars Declared but NOT implemented (see finding)
Root hunterx.yaml (V6), hunterx/config/hunterx.yaml (V6) Legacy
docker-compose.yml HX_* env Legacy — inert/broken
Alembic HUNTERX_DB_URL V7 migration env override

Precedence (as documented in loader.py): bundled defaults → user profile (HUNTERX_CONFIG or cwd hunterx.yaml) → environment (HUNTERX_*).

Finding (P1-06): the environment step is not implemented. Settings is a plain pydantic BaseModel with no model_config/SettingsConfigDict; load_default_settings() merges YAML only. Verified: HUNTERX_ENVIRONMENT=dev, HUNTERX_LOG_LEVEL=DEBUG have no effect. The docstrings in settings.py/loader.py promise auto env mapping that does not exist. This also means the Dockerfile’s HUNTERX_LOG_LEVEL (renamed this phase) is inert until 034.2 implements env support.


6. Packaging Audit


7. CI/CD Reference Audit

Reviewed 19 workflows (release, test, ci, build, unit-tests, integration-tests, security-tests, performance-tests, architecture-tests, compliance, cosign-sign, dependency-review, docs-validation, packaging-validation, readiness, sbom, docker-publish, pypi-publish) + .pre-commit-config.yaml, renovate.json, dependabot.yml, CODEOWNERS.

No CI changes were made this phase (per instructions).


8. Documentation Consistency Audit

Classified by category (full per-file audit was performed; highlights below).

Phase: Final engineering certification before Sprint 035 Status: BLOCKED — 2× P0 and 5× P1 release blockers remain Date: 2026-08-11 Platform verified: Windows 11 / Python 3.14.6 (installed hunterx 7.0.0, editable install of the v7 src/ layout) Scope: The complete integrated v7 platform (src/hunterx), mission lifecycle, toolchain, intelligence pipeline, persistence, evidence, PoC engine, recovery, observability, API/CLI, packaging, CI/CD and documentation.

This is the final engineering certification that Sprint 034.5 explicitly deferred to. It audits the complete system as one integrated platform and re-checks the release gates declared PASS in earlier 034.x reports. Known defects are not hidden: this report surfaces unresolved blockers that earlier reports carried as open or declared resolved prematurely.


1. System Certification

The SYSTEM FLOW

TARGET → SCOPE → RECON → ENUMERATION → DISCOVERY → INTELLIGENCE → PLANNING
→ TOOL SELECTION → EXECUTION → PARSING → NORMALIZATION → CORRELATION
→ HYPOTHESIS → TESTING → VERIFICATION → PROOF → PoC → REPLAY → IMPACT
→ FINDING → PERSISTENCE → REPORT

is implemented across the v7 stack and was verified end-to-end:

Stage Implementation Verified
TARGET / SCOPE TargetIntelligenceEngine (ingest_target), MissionScopeGuard, scope_mission ✔ (tests)
RECON → DISCOVERY ReconService, DnsService, LiveHostService, CrawlService, JavaScriptService ✔ (tests)
INTELLIGENCE TargetIntelligenceEngine.run_cycle (gaps → hypotheses → rank → actions) ✔ 381 AI/intel tests
PLANNING / TOOL SELECTION DeterministicMissionPlanner, ToolSelector, ToolSequencePlanner, MissionToolSelector
EXECUTION ExecutionEngine / SDK pipeline (prepare→run→validate→normalize→cleanup), BinaryRunner guarded seam
PARSING / NORMALIZATION ParserEngine, ToolParser, ToolNormalizer, NormalizerEngineCanonicalObservation ✔ 80 tools tests
CORRELATION TargetCorrelator
HYPOTHESIS / TESTING / VERIFICATION HypothesisLoopEngine, VulnerabilityValidationService (verdict ladder)
PROOF / PoC / REPLAY VulnerabilityProofService, PoCGenerator/PoCReplayVerifier, ProofValidator
IMPACT / FINDING ImpactAnalysisEngine, VulnerabilityFindingService, FindingLifecycleStateMachine
PERSISTENCE TIDB stores (SqlTidbRepositoryFactory) + Alembic migrations ✔ (see §8)
REPORT ProfessionalReportingService (analyze→generate→QA→export, 6 formats) ✔ live E2E

No major subsystem is an isolated island: mission orchestration consumes observations, findings and evidence from the toolchain/intelligence/proof subsystems, and the reporting subsystem consumes persisted finding records. One integration seam was found at report time (mission-context findings are not auto-registered into the reporting finding store) — the intended flow requires creating the finding via VulnerabilityFindingService (verified working).

Verdict: the architecture is integrated and the pipeline works.


2. End-to-End Results

Representative missions verified (deterministic, no real tool binaries required — the certified design treats tool output as data; adapters are fixture-validated and tools-marked tests are excluded by default, consistent with 034.5 §1):

Mission type How verified Result
Web target hunterx hunt web_application_assessment https://example.com (CLI, clean venv) ✔ created + started
Web (deep) tests/acceptance/full_assessment full-spectrum scenarios ✔ 69 tests in batch
API target acceptance API chain (api-graphql → inql/graphqlmap → nuclei) ✔ 034.5 chain certified, tests pass
Cloud / SaaS prowler / cloud-analysis chain scenarios ✔ 034.5 chain certified
Repository / code gitleaks → trufflehog → semgrep chain ✔ 034.5 chain certified
Multi-stage tests/acceptance/test_autonomous_mission_acceptance.py (SyntheticTargetEnvironment: recon→enum→vuln→validate→prove→report, injected failures)
Integrated live flow Custom harness on build_platform(): create → start → ingest (httpx/nuclei) → hypothesis → verify → finding → impact → finalize → finding persist (TIDB) → PoC → report generate → export ✔ all steps true

Live integration run (this certification, SQLite temp DB):

create ✓  start ✓  ingest ✓  hypothesis ✓  verify ✓  finding ✓  impact ✓
finalize ✓  finding_persisted ✓  poc_generated ✓  report_generate ✓
report_export ✓  observation_records ✓ (2 persisted)

Mission state, persistence, events, evidence and reporting all function in the integrated flow.


3. Failure / Recovery

Failure-injection and recovery verification (all suites pass):

Failure injected Verification Recovery verified
Tool missing binary / crash / timeout / non-zero exit / malformed / empty / rate-limit / network tests/tools/test_failure_handling.py, tests/security/tools/ retry policy, capability-equivalent fallback (never blind), partial-result preservation
Chain step failure tests/acceptance/toolchain/test_chain_failure_falls_back_to_equivalent_tool fallback once to equivalent tool, PARTIAL chain result
Database dead URL tests/integration/tidb/test_persistence_failure_recovery.py OperationalError classified; healthy repo still works
DB constraint violation same suite IntegrityError rolled back, no duplicates
Mid-batch failure tests/integration/tidb/test_transaction_integrity.py save_many atomic, zero partial rows
Mission crash / resume MissionOrchestrator.checkpoint/resume_from_checkpoint, OffensiveOrchestrationEngine.run_mission(checkpoint_after_steps=N); integration + acceptance tests checkpoint snapshots + RESUMED run linked to resumed_from_run_id/checkpoint_id
Event delivery InMemoryEventStore replay, InMemoryDeadLetterQueue store.replay + dead-lettering
Parser hostile input test_failure_handling.py::TestMalformedAndEmptyOutput malformed lines skipped, never executed

Known limitation (documented, not hidden): DB retry/pool-pre-ping/failover does not exist at runtime (create_engine_from_settings has no retry hook) and in-memory fallback is config-time only — a deployment responsibility (carried P3 from 034.3 §18).


4. AI Certification

Verdict: AI certification PASSES.


5. Toolchain Certification

Carried forward from 034.5 (re-verified this sprint):


6. Persistence Certification

Two persistence defects are NOT hidden:

  1. Operational mission state is not resumable across process restarts — the MissionOrchestrator._missions dict is in-memory only and start() has no restore path; TIDB persistence records audit/read-model data but cannot resume the orchestrator. See P1-03.
  2. Timeline read-model (tidb_mission_timelines) is never written by the mission service (GET /missions/{id}/timeline returns empty in persistent deployments). Verified live. See P2-08.

7. Security Certification


8. Performance

Measured from the benchmark suite (tests/performance, 122 tests) and a live N+1-query audit:

Verdict: performance is acceptable in practice; the performance gate is broken.


9. Observability

Verdict: observability is implemented and verified (tests in the default suite).


10. API / CLI


11. Packaging / Clean Installation

Verdict: packaging gate passes, but the default install is broken (P0-02).


12. CI/CD

18 workflows exist. Merge-gating: ci.yml (eng gates), unit-tests, integration-tests, performance-tests, security-tests, packaging-validation, architecture-tests, docs-validation, compliance, dependency-review, build, test. Release/other: release, sbom, cosign-sign, docker-publish, pypi-publish, readiness.

CI cannot validate V7. The main branch does not contain the v7 tree: git ls-files src → 0 files; eng/, tests/{unit,component,…}, alembic/, capabilities/, config/ and the 14 new workflows are all untracked. A clean checkout of main has only the v6 flat package (461 tracked files). Every CI workflow that references src, eng, or the v7 test suites would fail or error on a clean checkout. P0-01.

Mandatory gates as run against the working tree this sprint:

Gate Result Detail
pytest PASS 3474 passed, 8 skipped, 2 deselected
mypy PASS clean
coverage PASS line-rate 81.7% (XML) ≥ 80%; combined 77%
architecture PASS exit 0 (warnings only)
docs PASS 7/7
compliance PASS  
hygiene PASS  
dependencies PASS pip-audit clean
ruff FAIL 133 errors
deadcode FAIL vulture: 3
security FAIL bandit B314 ×2 MEDIUM + 46 LOW
performance FAIL 3 tests > 20s (self-inflicted)
packaging PASS  

13. Documentation

Verdict: documentation is extensive and link-valid, but several critical runtime behaviors depend on undocumented or unimplemented assumptions (env config, base-install no-dependency mode).


14. Test Matrix

Suite Collected Result
unit 2008 PASS
component 86 PASS
integration 283 PASS (2 tools-deselected)
golden 167 PASS (7 skipped = intentional gate scenarios)
security 396 PASS
acceptance 200 PASS
performance 122 PASS (benchmarks run)
engineering 91 PASS
architecture 129 PASS
tools 80 PASS when run explicitly — NOT in default testpaths (P2-03)
Full default suite 3484 3474 passed, 8 skipped, 2 deselected

Empty or misleading suites:


15. Known Issues

# Severity Description Evidence
K01 P0 Entire V7 tree untracked in git (src/, eng/, v7 tests/, alembic/, capabilities/, config/, 14 workflows, requirements.lock, v7 docs) — CI/release cannot validate V7 from a clean checkout git ls-files src = 0; 103 untracked entries; carried from 034.1 P0-01, still open
K02 P0 Base install (no extras) crashes at import — sqlalchemy required by infrastructure/db/sql/* unconditionally; breaks pip install hunterx, the Docker image, and the documented zero-dependency mode clean venv install test; Dockerfile pip install "." + hunterx version healthcheck
K03 P1 ruff gate red: 133 errors (UP007×39, D102×25, I001×21, UP035×14, F401×12, B023×7, …) — mandatory CI gate fails ruff check src eng tests alembic
K04 P1 bandit B314 ×2 MEDIUM: XXE/entity-expansion via stdlib ET.fromstring on attacker-controlled WSDL (soap.py:73) and nmap XML (nmap.py:138) — security gate red bandit -r src/hunterx
K05 P1 Mission orchestration state is in-memory only — no restore path; mission start/checkpoint/resume fail across process restarts even with SQL persistence; CLI createstart broken live CLI + orchestrator get() audit (orchestrator.py:208-215)
K06 P1 HUNTERX_* env config never applied — loader ignores environment (docstring/settings/docs promise it); breaks config-by-env for containers/CI loader.py has no env read; HUNTERX_DATABASE_URL ignored (verified)
K07 P1 deadcode gate red: vulture 3 (dead if False else 0 in telemetry.py:44, unused fp/msg params in httpclient.py:89) vulture run
K08 P2 Performance gate cannot pass as configured (flags its own benchmark tests >20s); throughput itself is fine gate run + durations
K09 P2 Legacy SQL repo N+1, per-row existence SELECT in save_many, service-level table scans, per-entity commit loops 034.3 §10/§18, verified
K10 P2 tests/tools (80) excluded from default testpaths — CI pytest gate misses the toolchain certification suite pyproject testpaths
K11 P2 Timeline read-model never written (tidb_mission_timelines) — /missions/{id}/timeline empty in persistent deployments live E2E (timeline_records=false)
K12 P2 Unguarded select-then-insert race on concurrent first-time upsert (IntegrityError) 034.3 concurrency suite
K13 P2 docker-compose.yml v6-era; root hunterx.yaml v6 config; docs/api.md/docs/cli.md/docs/AGENTS.md document v6 API/CLI audit
K14 P2 Coverage combined (branch-adjusted) is 77% — only the XML line-rate (81.7%) passes the 80% gate coverage run
K15 P2/P3 ~30 arsenal tools knowledge-only; interactsh/metasploit/mitmproxy/zap execution-dependent; chain fan-out single-target; report redactor limits; PATH-resolved binaries w/o integrity pinning; no per-CPU rlimit 034.5 §18/§19 carried
K16 P3 RELEASE_CHECKLIST.md, install.sh, RELEASE_NOTES_v6.0.0.md reference v6-era commands/versions audit

16. P0 / P1 / P2 / P3 Summary

P0 — release blockers (2)

| # | Issue | Status | |—|—|—| | K01 | V7 tree untracked in git — CI/release cannot validate V7 | Open (carried from 034.1, declared resolved in 034.2–034.5 — incorrect) | | K02 | Base install/Docker image crash (unconditional sqlalchemy import) | Open (new) |

P1 — must fix (5)

| # | Issue | Status | |—|—|—| | K03 | ruff gate red (133) | Open (was P2-08 in 034.1, now worse; 034.5 “no P1” claim wrong) | | K04 | bandit B314 XXE ×2 — security gate red | Open (new) | | K05 | Mission orchestrator not resumable across restarts | Open (new) | | K06 | Env config (HUNTERX_*) unimplemented | Open (new) | | K07 | deadcode gate red | Open (new) |

P2 — acceptable technical debt (8)

K08 performance-gate self-fail, K09 N+1/commit loops, K10 tools suite not in testpaths, K11 timeline read-model unwritten, K12 concurrency upsert race, K13 v6-era compose/config/docs, K14 combined coverage 77%, K15 carried toolchain gaps (knowledge-only adapters, fan-out, redactor, binary pinning, rlimits).

P3 — post-release (2)

K16 stale v6 checklists/installer references; plus carried items (no DB runtime failover, CODEOWNERS gaps, __main__.py absence).


17. Release Readiness Score

Scoring model: 100 − 30×(#P0) − 15×(#P1) − 3×(#P2), floor 0.

The product code and tests are healthy and green; the release engineering envelope is not (git state, default install, security/deadcode/ruff gates, mission resumability, env config).


18. Final Gate

Gate Requirement Result
[ ] end-to-end missions work ✔ PASS (live + acceptance)
[ ] persistence works ⚠ PARTIAL (records persist; orchestrator not resumable — P1)
[ ] toolchain works ✔ PASS (contracts/chaining/parsing; 80 tests green when run)
[ ] intelligence pipeline works ✔ PASS (381 tests)
[ ] evidence works ✔ PASS (evidence-gated lifecycle)
[ ] PoC lifecycle works ✔ PASS (generate→validate→replay→verdict)
[ ] recovery works ✔ PASS (tool/DB/mission-step/event injection suites)
[ ] security gates pass ✖ FAIL (bandit B314 ×2; ruff/deadcode also red)
[ ] performance is acceptable ⚠ PARTIAL (throughput fine; gate broken)
[ ] API works ✔ PASS (live /health, /missions; auth verified)
[ ] CLI works ✖ FAIL (cross-invocation mission workflow broken — P1)
[ ] clean installation works ✖ FAIL (base install crashes — P0-02)
[ ] CI validates V7 ✖ FAIL (V7 untracked — P0-01)
[ ] documentation is coherent ⚠ PARTIAL (link-valid; v6 API/CLI docs + unimplemented env config)
[ ] no P0 remains ✖ FAIL (2 P0)
[ ] no unresolved P1 release blocker remains ✖ FAIL (5 P1)

19. Final Recommendation

STOP. Do NOT begin Sprint 035.

Sprint 034.6 — FINAL ENGINEERING CERTIFICATION: BLOCKED.

The engineering substance of HunterX v7 is strong and healthy — the integrated platform works end-to-end, all 3474 default tests pass, the toolchain and intelligence/proof pipelines are certified, and no functional regression was found. But the release is not ready because the engineering gate envelope fails:

  1. P0 — the v7 delivery is not in git. A clean main checkout cannot build, test or release V7. This is Sprint 034.1’s own P0-01, never closed; later 034.x reports declared “no P0” inaccurately.
  2. P0 — the default install is broken. pip install hunterx crashes at import without the optional db extra; the Docker image healthcheck fails.
  3. P1 — three mandatory CI gates are red (ruff 133, bandit B314 XXE ×2, deadcode) and the performance gate can never pass as configured.
  4. P1 — two runtime contract breaks: mission orchestration state is not resumable across process restarts, and HUNTERX_* environment configuration is documented but never implemented.

Exact remaining blockers (minimum to unblock):

Sprint 035 may begin only after the P0 items are closed and the P1 items are resolved or explicitly re-scoped with acceptance criteria.

/<body>; nav.html links /Docker_Guide, /arch; robots.txt sitemap URL points to the deleted sitemap.xml; seo.html/tutorial.html/post.html Liquid syntax errors; every docs/cli/*.md has malformed single-line front matter; CITATION.cff has malformed YAML; docs/quickstart.md references non-existent hunterx setup/ hunterx feeds update; docs/contributing.md references non-existent tests/test_scanner.py`.


9. Database / Artifact Audit

Artifact Location Tracked? Notes
V6 SQLite DBs (ai_cache, payload_index, payload_provenance, adaptive_memory) data/*.db (4), hunterx/assets/data/*.db (4), hunterx/data/ai_cache.db (1), hunterx/modules/data/*.db (3) Were tracked → untracked (repair) Binary cache/index DBs; data/* are byte-identical copies
V7 runtime DB hunterx.db (root, ~10 MB, 22 V7 tables) Untracked Now gitignored
Test/build artifacts artifacts/ (coverage, SBOM, gates, benchmarks, security reports) Untracked Now gitignored
Caches .mypy_cache/, .ruff_cache/, .benchmarks/, .pytest_cache/ Untracked Now gitignored
Build output dist/, build/, hunterx.egg-info/, src/hunterx.egg-info/ Untracked Root hunterx.egg-info/ (V6 metadata) deleted this phase
Google site verification googlea591cd58e85d83b3.html Tracked Public verification token — benign
Credentials/private keys/secrets None found No private keys, .env, or API keys in tracked files; sk-/AKIA matches in V6 payload JSON (ghdb.json, detector test vectors) are test payloads, not real secrets

Conclusion: the repo previously shipped 12 binary SQLite DBs in git (now untracked, on disk only), and no credential material was found. DBs are not included in release artifacts (src-only packaging).


10. Issue Classification

P0 — RELEASE BLOCKER

| ID | Issue | State | |—|—|—| | P0-01 | Entire V7 delivery is untracked: src/, V7 tests/, eng/, alembic/, config/, capabilities/, V7 workflows, requirements.lock, V7 docs, THIRD_PARTY_NOTICES, CODEOWNERS, dependabot.yml. A clean main clone has only the V6 flat package. Release tagging/packaging cannot proceed from a committed state. | Open — needs staging/commit decision in 034.2 |

P1 — MUST FIX

| ID | Issue | State | |—|—|—| | P1-01 | Repo-root shadowing: import hunterx / python -m hunterx from the repo root resolve to the V6 flat package (root precedes src on sys.path). Only tests/conftest.py compensates. | Open — structural (needs V6 tree relocation or documented mitigation) | | P1-02 | docker-compose.yml is entirely V6: VERSION: 6.0.0, HX_* env, mounts V6 hunterx.yaml, command: ["api", "--port", "8443"] (no such V7 command). Broken for V7. | Open — needs V7 API startup design (034.2) | | P1-03 | Tracked SQLite DB artifacts (12 files) in git. | Repaired (git rm --cached + gitignore) | | P1-04 | hunterx.py shim dispatched to the V6 CLI. | Repaired (now delegates to src/) | | P1-05 | Dockerfile V6 markers (VERSION=6.0.0, hunterx doctor healthcheck, V6 hunterx.yaml/payloads/ copies, HX_LOG_LEVEL, EXPOSE 8443). | Repaired | | P1-06 | V7 env-var precedence declared but not implemented (HUNTERX_* has no effect; verified). | Open — implement in 034.2 | | P1-07 | install.sh V6 markers (sdist 6.0.0 URL, banner, V6-only smoke/help commands). | Repaired (version strings + V7 commands); wrapper python -m hunterx fallback still needs V7 __main__.py (see P2-09) |

P2 — TECHNICAL DEBT

| ID | Issue | |—|—| | P2-01 | Retired V6 flat package hunterx/ (245 files) retained at repo root; root-shadowing risk (see P1-01). Recommend relocation to a legacy/ tree. | | P2-02 | Orphan top-level api/, core/ (empty stub), plugins/ — dead V6 duplicates; not packaged, unreferenced. | | P2-03 | Root hunterx.yaml (V6 schema) tracked; V7 loader merges it inertly. Recommend removal or conversion. | | P2-04 | capabilities/ vs config/capabilities/ duplicate manifest locations; neither referenced by code. | | P2-05 | requirements.txt (V6 deps) conflicts with pyproject/lock; watched by dependency-review + Renovate. | | P2-06 | V6 payload corpus payloads/ (42 tracked files) unused by V7. | | P2-07 | V6 clutter at root: awesome-*.md, awesome-pentest, pentest.md, temp_cli_apps.md, summary.txt. | | P2-08 | Ruff gate red: 77 pre-existing violations in src/hunterx (D102×25, F401×16, I001×8, B023×7, etc.) under ruff 0.15.x. Mandatory CI ruff gate fails. Pre-existing, non-V6. | | P2-09 | No src/hunterx/__main__.pypython -m hunterx unsupported for installed V7 (console script is official entry). A __main__.py was drafted but reverted because hunterx-arch classified it as a legacy→cli boundary violation (ARCH-001); classify it as cli layer when added. | | P2-10 | V6 flat tests at tests/ root (~36 files) — excluded from suite (documented in pyproject). | | P2-11 | Doc-site broken: docs/_config.yml YAML parse failure; default.html missing `<h1 id="hunterx-v7--sprint-0346--final-engineering-certification">HunterX v7 — Sprint 034.6 — Final Engineering Certification</h1>

Phase: Final engineering certification before Sprint 035 Status: BLOCKED — 2× P0 and 5× P1 release blockers remain Date: 2026-08-11 Platform verified: Windows 11 / Python 3.14.6 (installed hunterx 7.0.0, editable install of the v7 src/ layout) Scope: The complete integrated v7 platform (src/hunterx), mission lifecycle, toolchain, intelligence pipeline, persistence, evidence, PoC engine, recovery, observability, API/CLI, packaging, CI/CD and documentation.

This is the final engineering certification that Sprint 034.5 explicitly deferred to. It audits the complete system as one integrated platform and re-checks the release gates declared PASS in earlier 034.x reports. Known defects are not hidden: this report surfaces unresolved blockers that earlier reports carried as open or declared resolved prematurely.


1. System Certification

The SYSTEM FLOW

TARGET → SCOPE → RECON → ENUMERATION → DISCOVERY → INTELLIGENCE → PLANNING
→ TOOL SELECTION → EXECUTION → PARSING → NORMALIZATION → CORRELATION
→ HYPOTHESIS → TESTING → VERIFICATION → PROOF → PoC → REPLAY → IMPACT
→ FINDING → PERSISTENCE → REPORT

is implemented across the v7 stack and was verified end-to-end:

Stage Implementation Verified
TARGET / SCOPE TargetIntelligenceEngine (ingest_target), MissionScopeGuard, scope_mission ✔ (tests)
RECON → DISCOVERY ReconService, DnsService, LiveHostService, CrawlService, JavaScriptService ✔ (tests)
INTELLIGENCE TargetIntelligenceEngine.run_cycle (gaps → hypotheses → rank → actions) ✔ 381 AI/intel tests
PLANNING / TOOL SELECTION DeterministicMissionPlanner, ToolSelector, ToolSequencePlanner, MissionToolSelector
EXECUTION ExecutionEngine / SDK pipeline (prepare→run→validate→normalize→cleanup), BinaryRunner guarded seam
PARSING / NORMALIZATION ParserEngine, ToolParser, ToolNormalizer, NormalizerEngineCanonicalObservation ✔ 80 tools tests
CORRELATION TargetCorrelator
HYPOTHESIS / TESTING / VERIFICATION HypothesisLoopEngine, VulnerabilityValidationService (verdict ladder)
PROOF / PoC / REPLAY VulnerabilityProofService, PoCGenerator/PoCReplayVerifier, ProofValidator
IMPACT / FINDING ImpactAnalysisEngine, VulnerabilityFindingService, FindingLifecycleStateMachine
PERSISTENCE TIDB stores (SqlTidbRepositoryFactory) + Alembic migrations ✔ (see §8)
REPORT ProfessionalReportingService (analyze→generate→QA→export, 6 formats) ✔ live E2E

No major subsystem is an isolated island: mission orchestration consumes observations, findings and evidence from the toolchain/intelligence/proof subsystems, and the reporting subsystem consumes persisted finding records. One integration seam was found at report time (mission-context findings are not auto-registered into the reporting finding store) — the intended flow requires creating the finding via VulnerabilityFindingService (verified working).

Verdict: the architecture is integrated and the pipeline works.


2. End-to-End Results

Representative missions verified (deterministic, no real tool binaries required — the certified design treats tool output as data; adapters are fixture-validated and tools-marked tests are excluded by default, consistent with 034.5 §1):

Mission type How verified Result
Web target hunterx hunt web_application_assessment https://example.com (CLI, clean venv) ✔ created + started
Web (deep) tests/acceptance/full_assessment full-spectrum scenarios ✔ 69 tests in batch
API target acceptance API chain (api-graphql → inql/graphqlmap → nuclei) ✔ 034.5 chain certified, tests pass
Cloud / SaaS prowler / cloud-analysis chain scenarios ✔ 034.5 chain certified
Repository / code gitleaks → trufflehog → semgrep chain ✔ 034.5 chain certified
Multi-stage tests/acceptance/test_autonomous_mission_acceptance.py (SyntheticTargetEnvironment: recon→enum→vuln→validate→prove→report, injected failures)
Integrated live flow Custom harness on build_platform(): create → start → ingest (httpx/nuclei) → hypothesis → verify → finding → impact → finalize → finding persist (TIDB) → PoC → report generate → export ✔ all steps true

Live integration run (this certification, SQLite temp DB):

create ✓  start ✓  ingest ✓  hypothesis ✓  verify ✓  finding ✓  impact ✓
finalize ✓  finding_persisted ✓  poc_generated ✓  report_generate ✓
report_export ✓  observation_records ✓ (2 persisted)

Mission state, persistence, events, evidence and reporting all function in the integrated flow.


3. Failure / Recovery

Failure-injection and recovery verification (all suites pass):

Failure injected Verification Recovery verified
Tool missing binary / crash / timeout / non-zero exit / malformed / empty / rate-limit / network tests/tools/test_failure_handling.py, tests/security/tools/ retry policy, capability-equivalent fallback (never blind), partial-result preservation
Chain step failure tests/acceptance/toolchain/test_chain_failure_falls_back_to_equivalent_tool fallback once to equivalent tool, PARTIAL chain result
Database dead URL tests/integration/tidb/test_persistence_failure_recovery.py OperationalError classified; healthy repo still works
DB constraint violation same suite IntegrityError rolled back, no duplicates
Mid-batch failure tests/integration/tidb/test_transaction_integrity.py save_many atomic, zero partial rows
Mission crash / resume MissionOrchestrator.checkpoint/resume_from_checkpoint, OffensiveOrchestrationEngine.run_mission(checkpoint_after_steps=N); integration + acceptance tests checkpoint snapshots + RESUMED run linked to resumed_from_run_id/checkpoint_id
Event delivery InMemoryEventStore replay, InMemoryDeadLetterQueue store.replay + dead-lettering
Parser hostile input test_failure_handling.py::TestMalformedAndEmptyOutput malformed lines skipped, never executed

Known limitation (documented, not hidden): DB retry/pool-pre-ping/failover does not exist at runtime (create_engine_from_settings has no retry hook) and in-memory fallback is config-time only — a deployment responsibility (carried P3 from 034.3 §18).


4. AI Certification

Verdict: AI certification PASSES.


5. Toolchain Certification

Carried forward from 034.5 (re-verified this sprint):


6. Persistence Certification

Two persistence defects are NOT hidden:

  1. Operational mission state is not resumable across process restarts — the MissionOrchestrator._missions dict is in-memory only and start() has no restore path; TIDB persistence records audit/read-model data but cannot resume the orchestrator. See P1-03.
  2. Timeline read-model (tidb_mission_timelines) is never written by the mission service (GET /missions/{id}/timeline returns empty in persistent deployments). Verified live. See P2-08.

7. Security Certification


8. Performance

Measured from the benchmark suite (tests/performance, 122 tests) and a live N+1-query audit:

Verdict: performance is acceptable in practice; the performance gate is broken.


9. Observability

Verdict: observability is implemented and verified (tests in the default suite).


10. API / CLI


11. Packaging / Clean Installation

Verdict: packaging gate passes, but the default install is broken (P0-02).


12. CI/CD

18 workflows exist. Merge-gating: ci.yml (eng gates), unit-tests, integration-tests, performance-tests, security-tests, packaging-validation, architecture-tests, docs-validation, compliance, dependency-review, build, test. Release/other: release, sbom, cosign-sign, docker-publish, pypi-publish, readiness.

CI cannot validate V7. The main branch does not contain the v7 tree: git ls-files src → 0 files; eng/, tests/{unit,component,…}, alembic/, capabilities/, config/ and the 14 new workflows are all untracked. A clean checkout of main has only the v6 flat package (461 tracked files). Every CI workflow that references src, eng, or the v7 test suites would fail or error on a clean checkout. P0-01.

Mandatory gates as run against the working tree this sprint:

Gate Result Detail
pytest PASS 3474 passed, 8 skipped, 2 deselected
mypy PASS clean
coverage PASS line-rate 81.7% (XML) ≥ 80%; combined 77%
architecture PASS exit 0 (warnings only)
docs PASS 7/7
compliance PASS  
hygiene PASS  
dependencies PASS pip-audit clean
ruff FAIL 133 errors
deadcode FAIL vulture: 3
security FAIL bandit B314 ×2 MEDIUM + 46 LOW
performance FAIL 3 tests > 20s (self-inflicted)
packaging PASS  

13. Documentation

Verdict: documentation is extensive and link-valid, but several critical runtime behaviors depend on undocumented or unimplemented assumptions (env config, base-install no-dependency mode).


14. Test Matrix

Suite Collected Result
unit 2008 PASS
component 86 PASS
integration 283 PASS (2 tools-deselected)
golden 167 PASS (7 skipped = intentional gate scenarios)
security 396 PASS
acceptance 200 PASS
performance 122 PASS (benchmarks run)
engineering 91 PASS
architecture 129 PASS
tools 80 PASS when run explicitly — NOT in default testpaths (P2-03)
Full default suite 3484 3474 passed, 8 skipped, 2 deselected

Empty or misleading suites:


15. Known Issues

# Severity Description Evidence
K01 P0 Entire V7 tree untracked in git (src/, eng/, v7 tests/, alembic/, capabilities/, config/, 14 workflows, requirements.lock, v7 docs) — CI/release cannot validate V7 from a clean checkout git ls-files src = 0; 103 untracked entries; carried from 034.1 P0-01, still open
K02 P0 Base install (no extras) crashes at import — sqlalchemy required by infrastructure/db/sql/* unconditionally; breaks pip install hunterx, the Docker image, and the documented zero-dependency mode clean venv install test; Dockerfile pip install "." + hunterx version healthcheck
K03 P1 ruff gate red: 133 errors (UP007×39, D102×25, I001×21, UP035×14, F401×12, B023×7, …) — mandatory CI gate fails ruff check src eng tests alembic
K04 P1 bandit B314 ×2 MEDIUM: XXE/entity-expansion via stdlib ET.fromstring on attacker-controlled WSDL (soap.py:73) and nmap XML (nmap.py:138) — security gate red bandit -r src/hunterx
K05 P1 Mission orchestration state is in-memory only — no restore path; mission start/checkpoint/resume fail across process restarts even with SQL persistence; CLI createstart broken live CLI + orchestrator get() audit (orchestrator.py:208-215)
K06 P1 HUNTERX_* env config never applied — loader ignores environment (docstring/settings/docs promise it); breaks config-by-env for containers/CI loader.py has no env read; HUNTERX_DATABASE_URL ignored (verified)
K07 P1 deadcode gate red: vulture 3 (dead if False else 0 in telemetry.py:44, unused fp/msg params in httpclient.py:89) vulture run
K08 P2 Performance gate cannot pass as configured (flags its own benchmark tests >20s); throughput itself is fine gate run + durations
K09 P2 Legacy SQL repo N+1, per-row existence SELECT in save_many, service-level table scans, per-entity commit loops 034.3 §10/§18, verified
K10 P2 tests/tools (80) excluded from default testpaths — CI pytest gate misses the toolchain certification suite pyproject testpaths
K11 P2 Timeline read-model never written (tidb_mission_timelines) — /missions/{id}/timeline empty in persistent deployments live E2E (timeline_records=false)
K12 P2 Unguarded select-then-insert race on concurrent first-time upsert (IntegrityError) 034.3 concurrency suite
K13 P2 docker-compose.yml v6-era; root hunterx.yaml v6 config; docs/api.md/docs/cli.md/docs/AGENTS.md document v6 API/CLI audit
K14 P2 Coverage combined (branch-adjusted) is 77% — only the XML line-rate (81.7%) passes the 80% gate coverage run
K15 P2/P3 ~30 arsenal tools knowledge-only; interactsh/metasploit/mitmproxy/zap execution-dependent; chain fan-out single-target; report redactor limits; PATH-resolved binaries w/o integrity pinning; no per-CPU rlimit 034.5 §18/§19 carried
K16 P3 RELEASE_CHECKLIST.md, install.sh, RELEASE_NOTES_v6.0.0.md reference v6-era commands/versions audit

16. P0 / P1 / P2 / P3 Summary

P0 — release blockers (2)

| # | Issue | Status | |—|—|—| | K01 | V7 tree untracked in git — CI/release cannot validate V7 | Open (carried from 034.1, declared resolved in 034.2–034.5 — incorrect) | | K02 | Base install/Docker image crash (unconditional sqlalchemy import) | Open (new) |

P1 — must fix (5)

| # | Issue | Status | |—|—|—| | K03 | ruff gate red (133) | Open (was P2-08 in 034.1, now worse; 034.5 “no P1” claim wrong) | | K04 | bandit B314 XXE ×2 — security gate red | Open (new) | | K05 | Mission orchestrator not resumable across restarts | Open (new) | | K06 | Env config (HUNTERX_*) unimplemented | Open (new) | | K07 | deadcode gate red | Open (new) |

P2 — acceptable technical debt (8)

K08 performance-gate self-fail, K09 N+1/commit loops, K10 tools suite not in testpaths, K11 timeline read-model unwritten, K12 concurrency upsert race, K13 v6-era compose/config/docs, K14 combined coverage 77%, K15 carried toolchain gaps (knowledge-only adapters, fan-out, redactor, binary pinning, rlimits).

P3 — post-release (2)

K16 stale v6 checklists/installer references; plus carried items (no DB runtime failover, CODEOWNERS gaps, __main__.py absence).


17. Release Readiness Score

Scoring model: 100 − 30×(#P0) − 15×(#P1) − 3×(#P2), floor 0.

The product code and tests are healthy and green; the release engineering envelope is not (git state, default install, security/deadcode/ruff gates, mission resumability, env config).


18. Final Gate

Gate Requirement Result
[ ] end-to-end missions work ✔ PASS (live + acceptance)
[ ] persistence works ⚠ PARTIAL (records persist; orchestrator not resumable — P1)
[ ] toolchain works ✔ PASS (contracts/chaining/parsing; 80 tests green when run)
[ ] intelligence pipeline works ✔ PASS (381 tests)
[ ] evidence works ✔ PASS (evidence-gated lifecycle)
[ ] PoC lifecycle works ✔ PASS (generate→validate→replay→verdict)
[ ] recovery works ✔ PASS (tool/DB/mission-step/event injection suites)
[ ] security gates pass ✖ FAIL (bandit B314 ×2; ruff/deadcode also red)
[ ] performance is acceptable ⚠ PARTIAL (throughput fine; gate broken)
[ ] API works ✔ PASS (live /health, /missions; auth verified)
[ ] CLI works ✖ FAIL (cross-invocation mission workflow broken — P1)
[ ] clean installation works ✖ FAIL (base install crashes — P0-02)
[ ] CI validates V7 ✖ FAIL (V7 untracked — P0-01)
[ ] documentation is coherent ⚠ PARTIAL (link-valid; v6 API/CLI docs + unimplemented env config)
[ ] no P0 remains ✖ FAIL (2 P0)
[ ] no unresolved P1 release blocker remains ✖ FAIL (5 P1)

19. Final Recommendation

STOP. Do NOT begin Sprint 035.

Sprint 034.6 — FINAL ENGINEERING CERTIFICATION: BLOCKED.

The engineering substance of HunterX v7 is strong and healthy — the integrated platform works end-to-end, all 3474 default tests pass, the toolchain and intelligence/proof pipelines are certified, and no functional regression was found. But the release is not ready because the engineering gate envelope fails:

  1. P0 — the v7 delivery is not in git. A clean main checkout cannot build, test or release V7. This is Sprint 034.1’s own P0-01, never closed; later 034.x reports declared “no P0” inaccurately.
  2. P0 — the default install is broken. pip install hunterx crashes at import without the optional db extra; the Docker image healthcheck fails.
  3. P1 — three mandatory CI gates are red (ruff 133, bandit B314 XXE ×2, deadcode) and the performance gate can never pass as configured.
  4. P1 — two runtime contract breaks: mission orchestration state is not resumable across process restarts, and HUNTERX_* environment configuration is documented but never implemented.

Exact remaining blockers (minimum to unblock):

Sprint 035 may begin only after the P0 items are closed and the P1 items are resolved or explicitly re-scoped with acceptance criteria.

; broken nav/sitemap; malformed docs/cli/ front matter. | | P2-12 | Stale version claims across CHANGELOG.md, ROADMAP.md, CITATION.cff, SECURITY.md, SUPPORTED_PLATFORMS.md (6.0.0 vs 7.0.0). | | P2-13 | V6-era docs still describing scan/module/doctor/payload/agents commands and HX_` env on live pages (README, docs index, features, cli, configuration, Docker_Guide, faq, systemd, tutorials, posts). |

P3 — POST-RELEASE

| ID | Issue | |—|—| | P3-01 | .pre-commit-config.yaml hunterx-arch local hook with language: system silently no-ops if uninstalled. | | P3-02 | CODEOWNERS gaps for src/hunterx/{cli,platform,architecture,api,security,knowledge}. | | P3-03 | Orphaned .pyc files in alembic/versions/__pycache__ for deleted migrations. | | P3-04 | googlea591cd58e85d83b3.html tracked (public token, benign) — confirm intent. |


11. Repairs Performed (validated)

  1. .gitignore — added *.db, *.sqlite, *.sqlite3, hunterx.db, /data/, /artifacts/, .mypy_cache/, .ruff_cache/, .benchmarks/.
  2. Untracked 12 V6 SQLite DBs (git rm --cached; files kept on disk) — verified no .db files remain tracked.
  3. Deleted stale root hunterx.egg-info/ (V6.0.0 metadata). Verified importlib.metadata.distribution("hunterx") now reports 7.0.0.
  4. hunterx.py — now inserts src/ ahead of the repo root and delegates to V7 (python hunterx.py versionHunterX v7.0.0).
  5. DockerfileARG VERSION=7.0.0; HEALTHCHECK hunterx version; removed COPY hunterx.yaml/COPY payloads/; HX_LOG_LEVELHUNTERX_LOG_LEVEL; EXPOSE 8080. No 6.0.0/HX_/doctor markers remain.
  6. install.sh — sdist URL hunterx-7.0.0.tar.gz; banner v7; smoke test hunterx version; help text uses V7 commands.
  7. .dockerignore — exclude V6 tree (hunterx/, payloads/, core/, api/, plugins/, awesome-pentest/), DBs, caches, artifacts/, data/, and non-runtime trees (alembic/, eng/, capabilities/, config/).
  8. docs/v7-api-intelligence-implementation-plan.md — removed the broken link to the nonexistent v7-api-intelligence.md; docs gate now 7/7.

12. Validation Results

Check Result
hunterx version (console script) HunterX v7.0.0, exit 0 ✔
hunterx platform Full composition JSON ✔
hunterx help V7 command surface only (no scan/doctor/module) ✔
python hunterx.py version HunterX v7.0.0, exit 0 ✔
python -c "import hunterx" (repo root) V6 (documented caveat, P1-01)
pytest tests/unit 2008 passed
pytest tests/component 86 passed
pytest tests/architecture 129 passed
pytest tests/integration tests/golden tests/acceptance tests/security 704 passed, 8 skipped
hunterx-arch lint --root . Exit 0 (green) ✔
mypy eng src/hunterx/shared Clean ✔
python -m eng gates --gate docs 7/7 PASS ✔
python -m eng gates --gate hygiene PASS ✔
python -m eng gates --gate compliance PASS ✔
ruff check src 77 pre-existing violations (gate red — P2-08)
Docker build Not executed (no Docker daemon); Dockerfile statically verified
.gitignore / .dockerignore Applied; DB files remain on disk, untracked

13. Final Phase Verdict

Phase 034.1 — PASS, with one P0 release blocker carried forward.

STOP — Phase 034.1 complete. Do not proceed to 034.2 automatically.