60 lines
2.6 KiB
Markdown
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.
|