feat: redis, fileserver, httpclient 런타임 시점 구현 추가
This commit is contained in:
@@ -4,49 +4,46 @@ Repository guidance for the Java 21 + Spring Boot 4.0.0 Clean Architecture templ
|
||||
|
||||
## Prime Directive
|
||||
|
||||
Preserve architecture before optimizing for speed. The HARD-STOP SSOT is
|
||||
`.agents/plugins/ca-superpowers/rules/clean-architecture.md`; its eight current stop conditions are:
|
||||
Preserve architecture before optimizing for speed. The following eight HARD-STOP conditions are a
|
||||
synchronized summary of the canonical local policy in `AGENTS.md`:
|
||||
|
||||
1. `domain-core` gains framework, transport, database, or cloud dependencies.
|
||||
2. A controller directly uses a repository, Spring Data interface, or persistence entity.
|
||||
3. An inbound DTO leaks into `application-core` or `domain-core`.
|
||||
4. Business rules move into mappers, filters, configuration, settings, or controllers.
|
||||
5. Project dependencies violate `.harness/project/modules.yaml` and Gradle verification.
|
||||
5. Project dependencies violate `src/config/architecture/modules.json` or the Gradle dependency
|
||||
gate.
|
||||
6. Completion is claimed without the relevant verification or a named reason it could not run.
|
||||
7. A corpus conclusion is made without evidence appropriate to the selected evidence profile.
|
||||
7. A repository/corpus conclusion is made without evidence proportional to its scope and risk.
|
||||
8. Non-trivial work closes without the required LLM Wiki capture or a reported capture block.
|
||||
|
||||
If this summary and the SSOT differ, the SSOT wins.
|
||||
If this summary drifts from `AGENTS.md`, `AGENTS.md` wins and this summary must be resynchronized.
|
||||
|
||||
## Harness policy authorities
|
||||
## Gradle policy authorities
|
||||
|
||||
- Project manifest and stack: `.harness/manifest.yaml`
|
||||
- Leaf modules, dependency edges, and focused commands: `.harness/project/modules.yaml`
|
||||
- Risk classification: `.harness/core/risk-policy.yaml`
|
||||
- Evidence selection: `.harness/core/evidence-policy.yaml`
|
||||
- Orchestration and advisory depth: `.harness/core/review-policy.yaml`
|
||||
- Durable/concise reporting: `.harness/core/report-policy.yaml`
|
||||
- Physical parity check: `.harness/validators/validate_policy_parity.py`
|
||||
|
||||
Resolve a task packet once and reuse its stable task-packet hash and relevant rule hashes. Rerun
|
||||
resolution or reread a full rule only when the task overlay, packet hash, or rule hash changes.
|
||||
- `src/config/architecture/modules.json`: exactly 19 leaf identities, repository-relative source
|
||||
paths, Gradle paths, and allowed production project dependency edges.
|
||||
- `src/settings.gradle`: fail-closed registry validation, project inclusion, and directory mapping.
|
||||
- `src/build.gradle`: `verifyCleanArchitectureDependencies` and the other architecture-wide
|
||||
verification tasks.
|
||||
|
||||
Commit policy is `human-only`: agents do not stage, commit, amend, or push implementation changes.
|
||||
|
||||
## Risk-based orchestration
|
||||
## Proportional workflow
|
||||
|
||||
- Low risk: implement inline or in a focused lane and run the focused check.
|
||||
- Medium risk: use `ca-implementer`; select proportional review based on affected boundaries and
|
||||
evidence needs.
|
||||
- High risk: use `ca-implementer`, then the full chain after a human commit:
|
||||
`ca-architect-sentinel` → `ca-spec-reviewer` → `ca-quality-reviewer` → `gradle-runner`.
|
||||
- Low risk: work in the owning leaf, follow its nearest guidance, and run the focused check.
|
||||
- Medium risk: use the relevant Superpowers design, planning, TDD, debugging, and review workflows
|
||||
in proportion to the affected boundaries.
|
||||
- High risk: make architecture and behavior decisions explicit, use staged architecture/spec/quality
|
||||
review, and run architecture-wide verification authorized by the task.
|
||||
|
||||
Risk comes from change surface and task flags, not file count.
|
||||
Risk comes from change surface and runtime, security, data, or public-contract impact, not file
|
||||
count.
|
||||
|
||||
## Module families
|
||||
|
||||
`.harness/project/modules.yaml` owns the complete 19-leaf list. Root guidance summarizes families;
|
||||
the nearest `src/**/CLAUDE.md` owns local rules.
|
||||
`src/config/architecture/modules.json` owns the complete 19-leaf list. Root guidance summarizes
|
||||
families; the nearest `src/**/CLAUDE.md` owns local rules.
|
||||
|
||||
| Family | Responsibility | Stable dependency direction |
|
||||
| --- | --- | --- |
|
||||
@@ -60,7 +57,8 @@ the nearest `src/**/CLAUDE.md` owns local rules.
|
||||
| `app-bootstrap` | Spring Boot entrypoint and composition root | registered runtime leaves |
|
||||
|
||||
Never infer an individual leaf's Gradle path, allowed dependency, or test command from this table.
|
||||
Read it from `.harness/project/modules.yaml` or from the resolved task packet.
|
||||
Read its `gradle_path` and `allowed_dependencies` from
|
||||
`src/config/architecture/modules.json`; derive the focused test from that Gradle path.
|
||||
|
||||
## Layer workflow
|
||||
|
||||
@@ -88,7 +86,9 @@ or writable scope, stop and request context rather than expanding silently.
|
||||
- identifier: pure deterministic unit tests.
|
||||
- bootstrap/settings: binding, validation, wiring, and architecture tests.
|
||||
|
||||
From `src/`, run the exact focused command emitted in the task packet. Architecture-wide commands:
|
||||
From `src/`, read the owning leaf's `gradle_path` from
|
||||
`config/architecture/modules.json` and run `./gradlew <gradle-path>:test --console=plain`.
|
||||
Architecture-wide commands:
|
||||
|
||||
```bash
|
||||
./gradlew verifyCleanArchitectureDependencies --console=plain
|
||||
@@ -114,6 +114,6 @@ or the regulated profile. Otherwise a concise result is allowed.
|
||||
|
||||
## LLM Wiki capture
|
||||
|
||||
For non-trivial implementation or workflow changes, follow
|
||||
`.agents/plugins/ca-superpowers/rules/llm-wiki-capture.md`. If the controller explicitly excludes
|
||||
wiki writes for a dispatched task, report the handoff instead of writing outside scope.
|
||||
For non-trivial implementation or workflow changes, use the exact vault path and capture sequence in
|
||||
`AGENTS.md`. If the controller explicitly excludes wiki writes for a dispatched task, report the
|
||||
handoff instead of writing outside scope.
|
||||
|
||||
Reference in New Issue
Block a user