Files
clean-architecture-backend-…/docs/superpowers/specs/2026-07-25-harness-free-mode-b-amendment.md
T

60 lines
2.6 KiB
Markdown

# 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.md` and
`2026-07-20-harness-policy-engine.md` in 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:
```bash
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.