Skip to content
cccskills
FreePublished on GitHub

backend

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/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

Java/Spring in backend/src/main/java/com/odde/donut/. Tests under backend/src/test/. Schema changes: db-migration skill.

Matching backend-code (production Java) and backend-testing (tests) skills attach via paths when those files are in context — do not fetch them up front.

Commands

CURSOR_DEV=true nix develop -c pnpm backend:test_only

When a database migration is involved:

CURSOR_DEV=true nix develop -c pnpm backend:verify

Always run all backend unit tests, not a selected file or test case.

Production

  • Controllers: return entities (or existing API body types). Narrow with @JsonIgnore / @JsonView. Introduce a response DTO only when the wire shape differs.
  • Top-of-file imports. No inline fully qualified class names except when two types share a simple name.
  • After Flyway schema changes, regenerate docs/database-erd.md with the database-erd skill (pnpm export:database-erd).
  • Note collections name their trash semantics. NoteRepository.findAllByNotebookIdOrderByIdAsc is the complete stored content, trash included (export, Git snapshots, learning-session title recognition); findAvailableNotesByNotebookIdOrderByIdAsc and the Note.JPA_AVAILABLE / NATIVE_AVAILABLE predicates select participating notes (search, recall, health rules); findOccupiedFolderIdsByNotebookId counts stored content for folder occupancy. On a loaded Note, isTrashed() follows current folder ancestry and isTrashedInDatabase() is the persisted membership as loaded. Root _trash membership is owned by Folder.isTrashed and the trashed_folder view; do not recreate the rule in callers.

Tests

Small-test style (unit-testing skill): prefer controller (HTTP-stable-boundary) tests; cover services/repos via realistic makeMe preconditions and the real DB (@Transactional). Test a service/algorithm directly only when it is an intentional domain-stable contract.

Mock only external services — OpenAIClient via OpenAiStructuredResponseMock. Ownership: notebookOwnedBy(user) so trackers inherit the owner. Group with @Nested.

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 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/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