Skip to content
cccskills
FreePublished on GitHub

backend-code

Backend Java production code, Spring Boot controllers/services/repositories, controller return values, imports, schema ERD pointer. Use when editing backend production Java.

The English summary is being prepared. Showing the original description.

nerds-odd-e/doughnut50 stars(GitHub 50 + cccskills 0)

Run score Not tested

See how to install

Files included (1)

  • SKILL.md2.3 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Backend Code Rules

Migrations: db-migration skill.

Commands

Run backend verification from the repo root:

CURSOR_DEV=true nix develop -c pnpm backend:verify

When no database migration is involved, this is faster:

CURSOR_DEV=true nix develop -c pnpm backend:test_only

Relational Schema

The docs/database-erd.md Mermaid diagram documents tables, foreign keys, and key columns. After Flyway migrations change the schema, regenerate it with the database-erd skill:

CURSOR_DEV=true nix develop -c pnpm export:database-erd

HTTP Sessions

  • HTTP sessions are stored in MySQL (Spring Session JDBC) and must stay serializable: they hold only the signed-in security context (and, in production, the OAuth2 authorization request). Do not add @SessionScope beans or session attributes; controllers are singletons, and per-request state uses @RequestScope.
  • Non-prod Basic sign-in keeps its user in the session, like production's GitHub login; there is no remember-me cookie.

Controller Return Values

  • Prefer returning entities, or other types already used as API bodies, from controllers when the JSON shape fits.
  • Narrow the serialized surface with @JsonIgnore, @JsonView, and similar mechanisms already used in the codebase.
  • Introduce a response DTO only when necessary, such as a different wire shape, aggregating multiple sources, or decoupling from persistence without overloading the entity.

Import Style

  • Always use import statements at the top of files.
  • Do not use inline fully qualified class names in code.
  • Use fully qualified names only when there is a naming conflict between classes with the same simple name from different packages.

Avoid:

ObjectMapper mapper = new com.odde.donut.configs.ObjectMapperConfig().objectMapper();
List<com.theokanning.openai.completion.chat.ChatMessage> messages = ...;

Prefer:

import com.odde.donut.configs.ObjectMapperConfig;
import com.theokanning.openai.completion.chat.ChatMessage;

ObjectMapper mapper = new ObjectMapperConfig().objectMapper();
List<ChatMessage> messages = ...;

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Backend Java — Spring Boot controllers/services, JUnit controller tests, MakeMe. Read this first for any backend work. Use when working on the Java Spring backend.

The English summary is being prepared. Showing the original description.

nerds-odd-e/doughnut50Updated Oct 26, 2026

Backend Java tests, controller-level stable-boundary tests, JUnit, @Nested, MakeMe builders, @Transactional, parameterized tests. Use when writing or changing backend JUnit tests.

The English summary is being prepared. Showing the original description.

nerds-odd-e/doughnut50Updated Oct 26, 2026

cli

Free

related to donut CLI. Use when working on donut-cli.

The English summary is being prepared. Showing the original description.

nerds-odd-e/doughnut50Updated Oct 26, 2026

Set up and run the Donut dev environment on Cursor Cloud VM (no Nix). Use when working on Cloud VM, running tests on Cloud VM, or encountering command errors related to missing nix. Triggers on: cloud VM, cloud agent, no nix available, /workspace path.

The English summary is being prepared. Showing the original description.

nerds-odd-e/doughnut50Updated Oct 26, 2026

Regenerate docs/database-erd.md from MySQL information_schema (Mermaid ERD: foreign keys and key columns). Use after Flyway schema changes, new migrations, or when the diagram is stale. Triggers on: database ERD, database-erd.md, export_database_erd, schema diagram, ER diagram after migration.

The English summary is being prepared. Showing the original description.

nerds-odd-e/doughnut50Updated Oct 26, 2026

Database migration, Flyway, SQL migrations, schema changes, database versioning, migration files, squashing historical migrations. Use when adding or changing Flyway migrations or schema.

The English summary is being prepared. Showing the original description.

nerds-odd-e/doughnut50Updated Oct 26, 2026

See all skills by nerds-odd-e

Report a problem with this skill