Claude Code integration for Java Backend Coding Technology - skills, agents, and commands for AI-assisted development.
JBCT ships three complementary tool families. This page covers the AI tools; the other two have their own pages:
jbct) - a fast command-line formatter and linter that enforces JBCT structure deterministically; ideal for pre-commit hooks and CI/CD. See CLI Tools.mvn verify. See Maven Plugin.The CLI and Maven plugin keep structure mechanically correct on every build; the AI tools add context-aware generation and review on top. Together they cover authoring, verification, and review.
JBCT provides four AI tools for Claude Code:
| Tool | Type | Purpose |
|---|---|---|
| jbct | Skill | Learning, quick reference, understanding patterns |
| jbct-coder | Subagent | Code generation following JBCT patterns |
| jbct-reviewer | Subagent | Code review for JBCT compliance |
| jbct-review | Skill/Command | Parallel review with 10 focused workers |
# Clone repository git clone https://github.com/siy/coding-technology.git cd coding-technology/ai-tools # Install skills and agents cp -r skills agents ~/.claude/
./check-drift.sh
Reports any skill or agent whose installed copy has diverged from this repo, alongside
the other staleness checks below. Re-run cp -r skills agents ~/.claude/ to reconcile.
Skills are installed away from this repo, so a stale reference here becomes an invisible
wrong answer there. Two scripts keep that from happening; both run in CI
(.github/workflows/checks.yml).
./check-drift.sh # references, version pins, installed-copy divergence python3 sync-book-blocks.py --check # book-owned blocks still match the books python3 sync-book-blocks.py --write # regenerate them after a book edit
check-drift.sh flags references to retired documents, links that do not resolve, links
that escape their skill directory (those cannot survive installation — cite the book by
its pragmatica.dev URL), Pragmatica Core pins that disagree with the declared canonical
version, and book version headers that disagree with the book’s own CHANGELOG.md.
sync-book-blocks.py copies enumerable rules the books own — naming vocabularies,
ordering rules, catalogs — into the tooling between <!-- book:<id> --> markers. The
book is the source; those regions are build output, so edit the book and regenerate. A
renamed book heading fails extraction rather than silently leaving a stale copy.
ls ~/.claude/skills/jbct/SKILL.md ls ~/.claude/skills/jbct-review/SKILL.md ls ~/.claude/agents/jbct-coder.md ls ~/.claude/agents/jbct-reviewer.md
Purpose: Learning JBCT principles, quick reference, understanding patterns.
Activation: Automatic when working with Result, Option, Promise types, value objects, use cases, or JBCT patterns.
The skill uses progressive detalization:
jbct/
├── SKILL.md # Entry point with quick reference
├── fundamentals/ # Core principles
│ ├── four-return-kinds.md # T, Option, Result, Promise
│ ├── parse-dont-validate.md # Value object patterns
│ └── no-business-exceptions.md # Typed failures with Cause
├── patterns/ # Six structural patterns
│ ├── leaf.md # Atomic operations
│ ├── sequencer.md # Sequential composition
│ ├── fork-join.md # Parallel operations
│ ├── condition.md # Branching logic
│ ├── iteration.md # Collection processing
│ └── aspects.md # Cross-cutting concerns
├── use-cases/ # Use case design
│ ├── structure.md # Anatomy and conventions
│ └── complete-example.md # RegisterUser walkthrough
├── testing/ # Testing strategies
│ └── patterns.md # Functional assertions
└── project-structure/ # Project organization
└── organization.md # Vertical slicing
The skill provides immediate access to:
T, Option<T>, Result<T>, Promise<T>onSuccess/onFailureUser: "How do I create a value object with validation?" Claude: [Uses jbct skill to explain parse-don't-validate pattern with example] User: "When should I use Result vs Promise?" Claude: [Uses jbct skill to explain Four Return Kinds decision tree] User: "Show me Fork-Join pattern" Claude: [Uses jbct skill to show Promise.all/Result.all examples]
Purpose: Autonomous code generation following JBCT patterns.
Invocation: "Use jbct-coder to implement..." or Task tool with subagent_type: "jbct-coder"
| Component | Description |
|---|---|
| Use case interface | Request, Response, execute signature |
| ValidRequest | Static factory with Result.all() |
| Step interfaces | Single-method interfaces for composition |
| Value objects | Parse-don’t-validate pattern |
| Error types | Sealed interfaces with Cause |
| Factory method | Lambda-returning factory |
| Tests | Validation, happy path, failure cases |
User: "Use jbct-coder to implement a RegisterUser use case" Claude: [Generates complete implementation] - RegisterUser interface with Request/Response - ValidRequest with email/password validation - CheckEmail, HashPassword, SaveUser steps - RegistrationError sealed interface - registerUser() factory returning lambda - RegisterUserTest with all test cases
The coder follows a deterministic algorithm:
Purpose: Comprehensive code review for JBCT compliance.
Invocation: "Use jbct-reviewer to check..." or Task tool with subagent_type: "jbct-reviewer"
| Category | What It Checks |
|---|---|
| Return Types | Four Return Kinds, no Void, no Promise<Result<T>> |
| Value Objects | Factory patterns, immutability, validation at construction |
| Use Cases | Structure, composition, lambda factories |
| Patterns | Correct use of Leaf, Sequencer, Fork-Join |
| Composition | Lambda complexity, fold() abuse, method references |
| Null Policy | Option usage, no null checks in business logic |
| Thread Safety | Immutability, no shared mutable state |
| Naming | Factory conventions, zone-appropriate verbs |
| Testing | Functional assertions, organization |
# JBCT Code Review Summary ## 🎯 Overall JBCT Compliance **Compliance Level**: ✅ COMPLIANT | ⚠️ PARTIAL | ❌ NON-COMPLIANT **Recommendation**: ✅ APPROVE | ⚠️ APPROVE WITH CHANGES | ❌ REQUEST CHANGES ## 🔒 Critical JBCT Violations [Violations with file:line, code quotes, fixes] ## ⚠️ JBCT Warnings [Pattern misuse, structural issues] ## 🛠️ Suggestions [Naming conventions, style improvements] ## 🧹 Nitpicks [Minor formatting issues]
User: "Use jbct-reviewer to check my RegisterUser implementation" Claude: [Reviews all files, produces structured report] - Checks return types - Validates value object factories - Verifies lambda complexity - Reports findings with severity levels
Purpose: Thorough parallel review using 10 focused workers plus aggregation.
Invocation: /jbct-review command in Claude Code
/jbct-review # Full codebase, all focus areas /jbct-review src/main/java # Specific path /jbct-review --focus="Composition,Null" # Specific areas only /jbct-review src --focus="ValueObjects" # Combined
| Short Name | What It Checks |
|---|---|
ValueObjects |
Factory patterns, immutability |
UseCases |
Structure, composition, lambda factories |
ReturnTypes |
Result/Promise, Void→Unit, no exceptions |
Structural |
Leaf, Sequencer, Fork-Join patterns |
Composition |
fold() abuse, lambda complexity |
Null |
Option usage, null policy |
ThreadSafety |
Immutability, shared state |
Naming |
Factory conventions, zones, acronyms |
Testing |
Assertions, organization |
CrossCutting |
Security, performance, logging |
1. Parse arguments (path, focus areas) 2. Discover all Java files in target path 3. Launch 10 parallel workers (one per focus area) 4. Each worker reviews ALL files for its specific area 5. Wait for all workers to complete 6. Launch aggregator to consolidate reports 7. Output unified report with deduplication
User: /jbct-review src/main/java 1. Discover: 47 Java files found 2. Launch 10 parallel workers: - Worker 1: focus="Value Objects" - Worker 2: focus="Use Cases" - ... - Worker 10: focus="Cross-Cutting Concerns" 3. Wait for all workers 4. Aggregate results 5. Output: 3 Critical, 12 Warning, 8 Suggestion, 5 Nitpick
| Scenario | Tool |
|---|---|
| Learning JBCT patterns | jbct skill (automatic) |
| Quick API reference | jbct skill |
| Implementing new use case | jbct-coder |
| Implementing value objects | jbct-coder |
| Writing tests | jbct-coder |
| Review single file | jbct-reviewer |
| Review PR/branch | jbct-review (/jbct-review) |
| Full codebase audit | jbct-review |
| Check specific patterns | jbct-review with --focus |
For automated checks in CI/CD, use JBCT CLI:
# Check if installed jbct --version # Format + lint jbct check src/main/java
The AI tools complement the CLI:
All tools use Pragmatica Core 1.0.0-rc1 for functional types.
<dependency> <groupId>org.pragmatica-lite</groupId> <artifactId>core</artifactId> <version>1.0.0-rc1</version> </dependency>
Library documentation: https://central.sonatype.com/artifact/org.pragmatica-lite/core