2.6 KiB
Harness-Free Mode B Amendment
- Date: 2026-07-25
- Status: Approved scope amendment
- Mode: B — controlled reconstruction from repository evidence
- Supersedes:
2026-07-20-harness-policy-engine-design.mdand2026-07-20-harness-policy-engine.mdin full as executable guidance; both superseded documents remain only as historical provenance
Decision
The repository will recover Gradle configuration and Clean Architecture dependency enforcement
without reconstructing the absent development harness. A Gradle-owned JSON registry at
src/config/architecture/modules.json becomes the single source of truth for the current 19 leaf
modules, their repository-relative source paths, Gradle paths, and allowed production project
dependencies.
Both src/settings.gradle and verifyCleanArchitectureDependencies consume that file. Settings
validation fails closed for malformed, empty, duplicate, unsafe, or missing module entries. The
dependency gate continues to require complete leaf coverage and reject unapproved production
project edges; production leaves may never depend on the sample-portfolio fixture consumer.
Evidence and provenance
Registry entries are reconstructed from the checked-in Gradle topology and each leaf
build.gradle's api, implementation, compileOnly, and runtimeOnly project dependencies.
Test-only and fixture-only configurations are not architecture production edges. This is Mode B
provenance: it restores the repository's observable build contract, not unavailable historical
artifacts.
The pre-change RED command is:
cd src
./gradlew help --console=plain
It fails because src/settings.gradle requires the absent
.harness/project/modules.yaml.
Explicit non-goals
- No
.harness/tree, task resolver, task packet, or policy-hash runtime. - No
.agents/,.claude/,.codex/, agent plugin, hook, renderer, or platform parity reconstruction. - No production Java or runtime behavior change.
- No byte-identical restoration claim.
- No claim that the earlier Harness Policy Engine plan or the broader refactor is complete.
Enforcement and workflow
Gradle and CI gates replace harness runtime dependencies for module discovery and dependency policy. Root and module guidance point to the Gradle-owned registry and retain the eight local HARD-STOP meanings, architecture responsibilities, focused-test discipline, human-only git policy, and LLM Wiki capture workflow.
Acceptance requires successful Gradle help, projects, and
verifyCleanArchitectureDependencies, an independent deterministic 19-leaf registry check,
git diff --check, and a reviewed working-tree status.