git:20260831.80517f1 to git:20260902.15fbea8

20 added, 93 removed. Audit A to A.

---
name: java-developer
description: Implement or fix small-to-medium Java features without full SDD (Spring Boot default). Use for isolated JVM/Spring Boot work or when invoking /java-developer.
---
## STOP - Read before ANY tool call
1. Read `{{GUARDRAILS_PATH}}`
2. Read `_shared/sdd-artifacts/SESSION.md`; load session-state for `$Cwd`
3. If the relevant gate is not approved: **STOP** - ask user **(pt-BR)** - do **NOT** Write/Shell
4. SDD/develop skills: after **ONE** step/task, **STOP** session - handoff only
5. This skill body is **English**; user-facing prompts may be **(pt-BR)**
### Step -1 - Gate check (report in chat before continuing)
```
Gate check:
[ ] guardrails.mdc read
[ ] SESSION.md read; session-state loaded
[ ] PIPELINE.md read (SDD skills only)
[ ] User confirmed current action (sim)
-> If any unchecked: STOP
```
---
+ # Skill: java-developer
+
## Trigger
Invoke when the user asks for: `/java-developer`, `java fix`, `implement Spring Boot feature`, or for **small** JVM backend work that does not need a full PRD/PLAN cycle.
## Outcome
Working **Java** (Spring Boot by default) code and tests in the open workspace: build and tests green, on a valid feature branch, with optional commit handoff. Does not replace SDD for multi-step or cross-repo features.
- ## When to prefer SDD instead
-
- Recommend `/sdd-spec` -> `sdd-plan` -> `sdd-develop` if **two or more** apply:
-
- | Signal | Indicator |
- |--------|-----------|
- | Layers | 3+ layers (web, service, persistence, messaging) across many packages |
- | Database | New or altered schema / Flyway/Liquibase migrations |
- | Repos | Backend and another repo or service |
- | Integrations | New messaging, external APIs, or consumers |
- | Size | 10+ files or estimated 4+ hours |
- | PLAN exists | User already has an approved PLAN - use `sdd-develop` |
-
## Lazy-load (only when needed)
| When | Path (after `scripts/sync-cursor.ps1`) |
|------|----------------------------------------|
| Repo context | `{{TOOLKIT_ROOT}}/skills/_shared/developer-common/step-0-context.md` |
| Before coding | `{{TOOLKIT_ROOT}}/skills/_shared/developer-common/step-0.5-review-guidelines.md` |
| Branching | `{{TOOLKIT_ROOT}}/rules/branch-validation.mdc`, `{{TOOLKIT_ROOT}}/skills/_shared/developer-common/step-3-branching.md` |
| Pre-commit | `{{TOOLKIT_ROOT}}/skills/_shared/developer-common/step-3.5-precommit-validation.md` |
| Commit / PR | `{{TOOLKIT_ROOT}}/skills/_shared/developer-common/step-4-commits-pr.md`, `{{TOOLKIT_ROOT}}/rules/conventional-commits.mdc` |
| Pre-PR gate | `{{TOOLKIT_ROOT}}/skills/_shared/developer-common/step-7-checklist.md` |
| Spring Boot defaults | `{{TOOLKIT_ROOT}}/skills/_shared/java-guidelines/spring-boot-defaults.md` |
| Layers / packages | `{{TOOLKIT_ROOT}}/skills/_shared/java-guidelines/layered-structure.md` |
| Architecture boundaries | `{{TOOLKIT_ROOT}}/skills/_shared/java-guidelines/architecture-boundaries.md` |
| Architecture (greenfield / style unset) | `{{TOOLKIT_ROOT}}/skills/_shared/code-guidelines/principles/architecture-selection.md` — then **one** approved style only |
| Architecture (ARCH = concentric / clean / hexagonal) | `{{TOOLKIT_ROOT}}/skills/_shared/java-guidelines/architecture/clean-hexagonal.md` (+ optional `principles/architecture/concentric-dependency.md`) |
| Architecture (ARCH = vertical-slice / modulith) | `{{TOOLKIT_ROOT}}/skills/_shared/java-guidelines/architecture/modulith-vertical.md` (+ optional `principles/architecture/vertical-slice.md`) |
| Architecture (ARCH = ddd / tactical DDD) | `{{TOOLKIT_ROOT}}/skills/_shared/java-guidelines/architecture/ddd-tactical.md` (+ optional `principles/architecture/ddd-tactical.md`) |
| Architecture (ARCH = event-driven / EDA) | `{{TOOLKIT_ROOT}}/skills/_shared/java-guidelines/architecture/event-driven.md` (+ optional `principles/architecture/event-driven.md`) |
| Java style | `{{TOOLKIT_ROOT}}/skills/_shared/java-guidelines/java-style.md` |
| Build / BOM | `{{TOOLKIT_ROOT}}/skills/_shared/java-guidelines/build-and-bom.md` |
| Configuration | `{{TOOLKIT_ROOT}}/skills/_shared/java-guidelines/configuration.md` |
| Testing | `{{TOOLKIT_ROOT}}/skills/_shared/java-guidelines/testing.md` |
| Security basics | `{{TOOLKIT_ROOT}}/skills/_shared/java-guidelines/security-basics.md` |
| Final checklist | `{{TOOLKIT_ROOT}}/skills/_shared/java-guidelines/checklist.md` |
| Subagent-first / SPAWN.md | `{{TOOLKIT_ROOT}}/skills/_shared/developer-common/subagent-first.md`, `{{TOOLKIT_ROOT}}/skills/_shared/agents/SPAWN.md` |
| Caveman Mode (if active) | `{{TOOLKIT_ROOT}}/skills/_shared/caveman/CAVEMAN.md` - **Full cap** |
| Context pressure | `{{TOOLKIT_ROOT}}/rules/context-management.mdc` |
+ | Reference index (routing only) | `{{TOOLKIT_ROOT}}/skills/java-developer/reference.md` |
+ | Process step detail (lazy) | `{{TOOLKIT_ROOT}}/skills/java-developer/references/<section>.md` |
Do **not** preload other stack guideline packs or corporate pipeline docs. Load only the `java-guidelines` rows needed for the current task. **MUST NOT** glob `architecture/**` — load **one** style overlay from ARCH/CONTINUITY (brownfield: discover-first if style omitted).
- **Never by default:** do not preload other stack guideline packs. Load only Java/Spring rows needed for the current task.
+ **Never by default:** do not preload all `references/*.md`. do not preload other stack guideline packs. Load only Java/Spring rows needed for the current task. Do not dump full stack guideline packs or memory-bank. Load **one** section per Process step (`SKILL-REFERENCE-RETRIEVAL.md`).
+ ## Reference routing
+
+ | Situation | Path |
+ |-----------|------|
+ | Scope / SDD escalation / design brief | `references/scope.md` |
+ | Implement flow | `references/execute-flow.md` |
+ | Must not (full) | `references/must-not.md` |
+
## Process
+ Read `references/<section>.md` for procedural detail — **not** full `reference.md`.
+
### Step -1b - Caveman Mode (Full cap)
1. Read `{{SDD_ROOT}}/preferences.json` (create `{ "caveman_mode": false, "caveman_level": "full" }` if missing).
2. If `caveman_mode` is false: continue without compression.
3. If true: load `{{TOOLKIT_ROOT}}/skills/_shared/caveman/CAVEMAN.md`; apply **Full** participation cap + prefs `caveman_level` (Lite skills never escalate); show once: `[Caveman] Modo ativo (respostas compactas, level={effective}). Digite caveman off para desativar.`
4. Honor `caveman on|off|status|lite|full|ultra` (and `stop caveman` / `normal mode`) during the session.
5. Auto-Clarity + never-compress gates/drafts/paths per `CAVEMAN.md`.
- ### Subagent-first (before implement)
-
- Classify complexity → consult capability `subagents` → if medium/complex and `native`: spawn ≤2 children (scoped **paths** + **receipt**); **trivial** stays **in-parent**; if `subagents=none` or Task unavailable → **fallback** **in-parent** (never hard-fail). Load `SPAWN.md` + `subagent-first.md`; do not paste guidelines into child prompts.
-
- ### 0. Workspace
-
- Confirm target repo (`pom.xml` and/or Gradle `build.gradle` / `build.gradle.kts` / `settings.gradle*`). Read `AGENTS.md` / `README.md`. Default framework: **Spring Boot** unless the project clearly uses another stack (do not invent Quarkus/Micronaut as defaults). Summarize the user request and acceptance.
-
- ### 1. Guidelines (step 0.5)
-
- Follow `{{TOOLKIT_ROOT}}/skills/_shared/developer-common/step-0.5-review-guidelines.md`: load only the `java-guidelines` files needed for this task. Confirm test stack aligned to the project (prefer **JUnit 5**, **Mockito**, **AssertJ** when greenfield).
-
- ### 2. Branch (step 3)
-
- Baseline branch from user or repo default. Create/checkout `feature/<slug>` or `feat/<id>` - never commit on `main` / `master` / `develop`.
-
- ### 3. Plan micro-steps
-
- List 3-7 concrete tasks (files to touch, tests to add). Stay within one session when possible; checkpoint per `context-management.mdc` (>= 40% -> pause, offer `/commit`).
-
- ### 4. Implement
-
- Match existing project patterns (Glob/Read similar types first). Prefer Spring Boot idioms: controllers/REST, services, repositories, DTOs, validation.
-
- | Layer | Typical work |
- |-------|----------------|
- | Web | Controllers, filters, DTOs, validation |
- | Service | Application services, domain rules |
- | Persistence | Repositories, entities, migrations |
- | Integration | Clients, messaging consumers/producers |
-
- Apply `spring-boot-defaults.md` and `layered-structure.md` from `java-guidelines/` while writing - do not paste full bodies into chat.
-
- ### 5. Tests
-
- Add or update tests for changed behavior. Prefer integration tests (`@SpringBootTest` / slice tests) for real flows when the project already uses them; unit tests for isolated logic.
-
- ### 6. Build and test
-
- Maven:
-
- ```bash
- ./mvnw test
- # or: mvn test
- ```
-
- Gradle:
-
- ```bash
- ./gradlew test
- ```
-
- Fix failures within scope. Ask before running the full multi-module suite if the repo is very large.
-
- ### 7. Pre-commit (step 3.5) and handoff
-
- Run `{{TOOLKIT_ROOT}}/skills/_shared/developer-common/step-3.5-precommit-validation.md` when appropriate. Offer `/commit` - do not commit automatically.
-
- Before push/PR, run `{{TOOLKIT_ROOT}}/skills/_shared/developer-common/step-7-checklist.md` and `{{TOOLKIT_ROOT}}/skills/_shared/java-guidelines/checklist.md`.
-
- ### 8. SDD escalation
-
- If scope grows during work, stop and recommend:
+ ### 0. Scope
+ Follow `references/scope.md` (SDD escalation, design brief / host detection when present).
- ```
- /sdd-spec - [feature description]
- # then
- /sdd-plan - PRD/...
- # then
- /sdd-develop - PLAN/... - Step 1
- ```
+ ### 1. Execute
+ Follow `references/execute-flow.md` (subagent-first, workspace → guidelines → branch → implement → tests → handoff).
## Must not
- - Paste guideline packs into child prompts (pass scoped **paths** + require **receipt** only)
- - Spawn children for **trivial** work (keep **in-parent**)
- - Hard-fail when capability `subagents` is `none` or Task is unavailable (use **fallback** **in-parent**)
- - Treat Quarkus or Micronaut as the default stack (Spring Boot is default)
- - Create or route to a separate `node-developer` skill
- - Nested `feature/base/...` branches; commit on default integration branches
- - Speculative features outside stated acceptance (YAGNI)
- - Auto-commit or auto-PR without user request
- - Deprecated SDD skill aliases in handoff text - use `sdd-spec`, `sdd-plan`, `sdd-develop`, `commit` only
+ Enforce the full list in `references/must-not.md`. Critical: no guideline dumps into children; no auto-commit; lazy-load stack guidelines only — never dump full packs or memory-bank.
## Handoff
| Situation | Next |
|-----------|------|
| Commit | `/commit` |
| Review | `/code-review` |
| Large scope | `/sdd-spec` -> `sdd-plan` -> `sdd-develop` |
| Next PLAN step | New chat -> `/sdd-develop - PLAN/... - Step N` |