generate-scalardb-code
Generate Spring Boot + ScalarDB Java code from design specifications.
Skill by wfukatsu
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/wfukatsu-generate-scalardb-code
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/generate-scalardb-code
What's inside
- Skill name
generate-scalardb-code- Description
- Generate Spring Boot + ScalarDB Java code from design specifications. Dedicated to projects using ScalarDB.
- License
- MIT
- Instructions
- 189 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- name: missing
Files (1)
- SKILL.md
SKILL.md (first lines)
# ScalarDB Code Generation
Shared files: a path written `@rules/…`, `@skills/…`, `@templates/…` or `@docs/…` is relative to the
plugin root, `${CLAUDE_PLUGIN_ROOT}` — not to the project being worked on. Read it from there.
## Desired Outcome
Generate per-service Java code from design and implementation specifications:
- Entity classes (ScalarDB Result mapping)
- Repository implementations (Get/Put/Scan/Delete operations)
- Domain services (including transaction management)
- Spring Boot configuration (scalardb.properties, Config classes)
- Gradle build configuration (build.gradle)
- Dockerfile
## Package Ownership (the seam)
This skill owns the **domain and persistence** layers. The API layer — controllers, request/response
DTOs, mappers, Bean Validation, and the RFC 9457 exception handler — is generated by
`/architect:generate-api-code` from the OpenAPI contract, and the two must not overwrite each other:
| Package | Owner |
|---------|-------|
| `…/domain/`, `…/infrastructure/` | **this skill** |
| `…/api/` | `/architect:generate-api-code` |
| `…/application/` (`…/usecase/` when `api-layer-spec.md` declares `layering_style: clean`) | this skill writes the implementation — the application service body, or under `clean` the `<Operation>Interactor` implementing the input boundary and calling the output boundary (recovery, saga and worker use cases have no output boundary and return `void` or a domain-free result record); plus, under either style, the transaction runner (`…/tx/`), the read models (`…/view/`), the workers and relays (`…/worker/`), and the shared collaborators that a split into interactors leaves behind (assemblers, settlement steps, resolvers) — non-interactor classes in the same package, called only from it. The interface and the controller's call to it come from `generate-api-code`. **On a style switch** this skill performs the migration: move `application/` to `usecase/`, split the services into the interactors the specification names (never re-derive the logic), delete the replaced services, move their tests, and repair every artifact that still names `..application..` — the JaCoCo includes, the ArchUnit rules, the component scan, the `api/` handler's imports — reporting each edit to a file another skill owns |
| `…/domain/port/` (outbound ports to other services) + their Fakes | this skill |
| `…/infrastructure/client/` (HTTP / gRPC adapters implementing those outbound ports) | `/architect:generate-api-code` — it owns the HTTP surface in both directions, binding each client to the *other* service's contract; until it runs the application service is wired to the Fakes behind a `@ConditionalOnMissingBean` |
Run both for a complete service. Emitting a controller here would produce a second, unbound API
surface — the exact drift @rules/api-contract-fidelity.md exists to prevent.
## Knowledge Grounding
Before writing any ScalarDB API call, config key, or exception handler, resolve the OKF knowledge
bundle and pin the target ScalarDB version/edition per @rules/okf-knowledge-bundle.md. The
`implement`-phase concepts of that release (`api-guide.md`, `configurations.md`,
`scalardb-samples/`) are the authority for API signatures, property names, and retryability of
each exception; the local pattern rules below supply code shape but the pinned bundle wins on any
disagreement.
## Deprecation Check (mandatory)
After resolving the ScalarDB version, verify the deprecation status of every ScalarDB API the
design commits to **against the resolved artifact** (e.g. `javap` on the jar from the Gradle
cache) or the pinned release notes in the OKF bundle — not against the pattern templates, which
are dated examples. Do not carry a deprecation claim over from this document either: the
application-driven 2PC surface (`TwoPhaseCommitTransactionManager`, `TwoPhaseCommitTransaction`,
`getTwoPhaseCommitTransactionManager()`) was previously described here as `@Deprecated` on 3.19+,
and that is **not** what the pinned bundle says — `two-phase-commit-transactions.md` is
`status: stable` on 3.19 (@rules/scalardb-2pc-patterns.md). The check stands; the presumed answer
does not. Using a deprecated API deliberately (recorded design
deviation) requires `@SuppressWarnings("deprecation")` scoped to the smallest element, an
in-code comment naming the deviation and the non-deprecated migration path, and a line in the
run summary. Unexplained deprecation warnings in the build output are a defect, not noise.
## Dependency Versions
`build.gradle` and the `Dockerfile` pin versions, so follow @rules/dependency-versions.md before
writing them: resolve the current ScalarDB (edition-appropriate), Spring Boot, Java, and base-image
versions from their registries, pick the **stable** ones that are mutually compatible, and never copy
the illustrative numbers out of @rules/spring-boot-integration.md or
`@skills/common/references/code-patterns/` — those are dated examples. Present the version decision
table for confirmation per `--confirm-versions` / `--no-confirm-versions` /
`options.confirm_versions`, and record it in `work/version-decisions.json` plus the run summary —
`/architect:generate-docs` then picks the pins up from the emitted build files when it writes the
service docs, so do not hand-write a competing table inside its marked sections.
## Acceptance Criteria
- Fully compliant with patterns in @rules/scalardb-coding-patterns.md
- API usage, config keys, and exception retryability verified against the pinned release's docs in the OKF bundle (@rules/okf-knowledge-bundle.md)
- Applies configuration patterns from @rules/spring-boot-integration.md
- Under `layering_style: clean`: every input boundary has exactly one interactor, `usecase/` imports nothing from `api/` or `infrastructure/`, no `application/` package remains after a migration, and every artifact that named it (JaCoCo, ArchUnit, component scan) was repaired
- Proper handling of transaction exceptions (retry, rollback)
- Entities follow immutable design; value objects are immutable
- Domain tests import nothing from `infrastructure/`, ScalarDB or Spring; every repository port has an
in-memory Fake; `Clock` and id generation are injected (@rules/tdd-workflow.md §4)
- Every `TX-` entry has an `*IT` over the in-process engine covering its happy path, OCC conflict and
blind write, plus 2PC / saga scenarios where the design uses them; `./gradlew integrationTest` was
run, matched tests, and passed
- Every pinned version was looked up (not recalled), is a stable release, and is recorded in the
version decision table — with the user's confirmation when that is the configured mode
## Prerequisites
| File | Required/Recommended | Source |
|------|---------------------|--------|
| reports/06_implementation/ | Required | /architect:design-implementation |
| reports/03_design/scalardb-schema.md | Required | /architect:design-scalardb |
| reports/03_design/scalardb-transaction.md | Required | /architect:design-scalardb — the `TX-` entries the integration suite is generated from |
| reports/07_test-specs/integration-test-specs.md | Recommended | /architect:generate-test-specs — the transaction scenarios per `TX-` |
| reports/07_test-specs/ | Recommended | /architect:generate-test-specs |
| reports/07_test-specs/property-test-specs.md | Recommended when an aggregate manifest exists | /architect:generate-test-specs — the property per invariant this skill turns into a jqwik test |
| reports/03_design/aggregates/aggregate-manifest.json | Optional | /architect:design-aggregate — invariants enforced in the root, and the examples the unit tests replay |
## Domain Tests
Emit the domain layer's tests alongside it, under `generated/{service}/src/test/java/**/domain/`:
- **Example tests** — one JUnit 5 test method per `positive` / `negative` example in the aggregate
manifest, replaying `given` / `when` / `then` against the root, named after the invariant and
the example so a failure reads as the design row it contradicts.
- **Property tests** — one jqwik `@Property` per invariant, exactly as
`property-test-specs.md` specifies it: an `Arbitrary` per value object honouring its validation
rule (one class per value object under `**/domain/arbitraries/`, shared across invariants), the
aggregate generator composed from them, each `violated_by` command applied with `@ForAll`
arguments, and the assertion *invariant holds or command rejected*. Drive the root; never a
service.
- **Build** — add `jqwik` (JUnit 5 platform engine) to `build.gradle` `testImplementation`, with
its version **looked up** and recorded in the version decision table like every other pin
(@rules/dependency-versions.md); register the engine with JUnit 5 so `./gradlew test` runs the
properties, and set `tries` per property from the spec (default 1000) so stage 2's evidence
records a non-zero case count. Apply the `jacoco` plugin with a `jacocoTestCoverageVerification`
rule per package (90 % line / 80 % branch on `domain/` and `application/` — `usecase/` under
`clean` — 70 % line elsewhere,
exemptions by package pattern) and the `pitest` plugin (`junit5` plugin engine, `targetClasses`
= the domain packages, threshold 80), so the quality gate's stage 2 has named tasks to run
(@rules/ai-code-quality-gate.md §Test quality) — both plugin versions looked up, never recalled.From wfukatsu/nexus-architect, MIT.
More from wfukatsu/nexus-architect
- 0.632score
config
wfukatsu
Generate ScalarDB configuration files (database.properties, build.gradle dependencies) based on your choices.
SkillAFreshness: A★ 13Claude Code +9 - 0.632score
crud-ops
wfukatsu
Show ScalarDB CRUD operation patterns — builder syntax for Get, Scan, Insert, Upsert, Update, Delete with examples.
SkillAFreshness: A★ 13Claude Code +9 - 0.632score
docs
wfukatsu
Search ScalarDB / ScalarDL documentation for specific topics.
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
analyze
wfukatsu
Extract ubiquitous language, actor-role-permission matrix, and domain-code mapping.
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
build-app
wfukatsu
Build a complete ScalarDB application from a domain description.
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
capture-followup
wfukatsu
Capture follow-up work discovered during backlog delivery — deferred tasks, out-of-scope findings, doc drift, waived acceptance criteria — into a reviewable…
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
generate-test-specs
wfukatsu
Generate BDD scenarios, contract test, unit test, property-based test, integration test, and performance test specifications.
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
analyze-data-model
wfukatsu
Comprehensive data layer analysis including entity/relationship analysis, DB design evaluation, and ER diagram generation.
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
deliver-backlog
wfukatsu
Drive each Issue under an Epic through implement → review → human approval → merge, in order, resuming from backlog-manifest.json and stopping at every human…
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
analyze-ui
wfukatsu
Analyze the user interface of an existing system: screens with their inputs, outputs, actions and access; UI components; features and user tasks; business…
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
design-api
wfukatsu
Generate REST/GraphQL/gRPC/AsyncAPI specifications as the project's single, verifiable API contract — named schemas, every status code declared, RFC 9457…
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
design-data-layer
wfukatsu
Generic database design for non-ScalarDB projects.
SkillAFreshness: A★ 13Claude Code +9
Signals
- Stars
- 13
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Oct 8, 2026 (21 days ago)
- Last release
- Oct 9, 2026 (20 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/wfukatsu/nexus-architect
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from wfukatsu
- 0.632score
docs
wfukatsu
Search ScalarDB / ScalarDL documentation for specific topics.
SkillAFreshness: A★ 13Claude Code +9 - 0.632score
crud-ops
wfukatsu
Show ScalarDB CRUD operation patterns — builder syntax for Get, Scan, Insert, Upsert, Update, Delete with examples.
SkillAFreshness: A★ 13Claude Code +9 - 0.632score
config
wfukatsu
Generate ScalarDB configuration files (database.properties, build.gradle dependencies) based on your choices.
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
analyze
wfukatsu
Extract ubiquitous language, actor-role-permission matrix, and domain-code mapping.
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
build-app
wfukatsu
Build a complete ScalarDB application from a domain description.
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
analyze-ui
wfukatsu
Analyze the user interface of an existing system: screens with their inputs, outputs, actions and access; UI components; features and user tasks; business…
SkillAFreshness: A★ 13Claude Code +9
Cite this page
generate-scalardb-code skill. Agent Mart. https://agentmart.dev/skills/wfukatsu-generate-scalardb-code (last updated 2026-10-24)