backend
FreeBackend 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.
Maintains and reprioritizes a product backlog list of canonical story or bounded-correction references, and records necessary blocking story dependencies in canonical homes. Use to add, take, reorder, or complete backlog items, adopt or repair the done catalog beside them, report which story identities are already used before allocating a new one, record or inspect a justified prerequisite, correct an evidenced supplier agreement after cleanup, or resolve product backlog merge conflicts. Excludes classroom and workshop exercise backlogs.
The English summary is being prepared. Showing the original description.
Run score Not tested
See how to installReview the instructions the agent will receive before you install.
Before editing, identify from human instructions or repository guidance:
record-state / read-state.If the backlog or the canonical home required by an affected entry cannot be identified, ask for the missing context and stop before editing. Do not require seed conventions when every affected entry is a plan-homed correction. If a required workflow is unavailable, stop that activity and ask for its guidance.
add and take refuse a plan
listed as separate work.Before writing or adding a new story or seed, read the installed
scripts/product-backlog.mjs identity-evidence [--identity <candidate>] [--seeds <path>] [--file <path>] report and choose under
allocate a new identity. The
read-only JSON names each source's highest seed number with the file, record,
or adding commit behind it: the seed directory, both backlog lists, the done
records, the done catalog, and Git history reachable from the checkout at its
revision. It gives highest and next across them, the candidate's status
(active, completed, in-history, or unlisted) with what history shows of
it, and gaps naming each source or file it could not read. --seeds names a
seed directory other than seeds/ beside the backlog; --file, a backlog
other than the default.
add and startup admission (--admit, which reads the done records on fetched
trunk) refuse an identity a done record names, or whose record cannot be read,
and write nothing; the refusal cites the record's title and completion time.
Handle it under the same rule.
Invoke the installed scripts/product-backlog.mjs take operation only as
execution of the selected authorized plan or explicitly planless quick story
starts. Refinement, planning, intent, or missing execution context or authority
leaves the entry queued. Follow
execution and resume
for readiness; Take and resume neither record nor infer it.
Preserve the title, canonical link, and identity. A planned story requires a resolvable link to its slice plan or a section of it, including on resume. Quick stories need no plan; plan-homed corrections need no duplicate plan link.
Move the entry to the end of Taken once. On resume, do not duplicate or reorder it. Refuse an absent or ambiguous entry instead of fabricating one.
Leave started work in Taken across pauses, failures, resume, completion, and retrospective; returning cancelled work requires an explicit backlog decision.
Keep stories externally valuable: shared code or convenience creates no wait. Use common architectural direction, PFE, and reconciliation first; block only when the consumer cannot start before supplier completion and explain why those approaches are insufficient. Do not infer dependencies from prose, queue order, or shared files.
Write the condition as the supplier outcome needed before the consumer can start. Consuming or integrating it belongs in consumer scope and acceptance examples; never require consumer implementation to unblock itself. For a mixed condition, use the consumer-resolution procedure to separate those responsibilities before judging fulfillment.
Use the installed scripts/product-backlog.mjs read-dependencies --link <home>
to read the consumer's canonical section and its dependency agreement basis.
Then use update-dependency --identity <consumer-id> --link <home> --dependency-file <json-path> --expect-dependencies <basis>. Both endpoints
must name existing canonical homes; the supplier's href is relative to the
backlog directory, as the consumer's --link is. Missing or ambiguous homes,
incomplete fields, and stale agreements refuse with nothing written.
The input JSON supplies supplier: {identity, href}, implementation, rationale,
condition, and state; start with waiting. satisfied requires recoverable
resolution: {revision, path, summary} explaining fulfillment; decision-needed
requires the actual unresolved question in decision. Judge completion or correct
mixed agreements after cleanup through the consumer-resolution procedure.
The command updates one agreement in a versioned json dough-story-dependencies
block, preserving other dependencies, readiness reasons, and sibling stories.
An agreement edit (supplier, implementation, rationale, or condition) reports
changed content since review without renewing the judgment; state, resolution,
or decision changes leave the review unchanged. A dependency is not a
readiness reason.
Start eligibility is derived, never stored: the assessment must be ready and
every dependency satisfied. read-state reports startEligibility; the dashboard
and start command show the same assessment, dependency, or unreadable-fact blockers.
Eligibility grants no permission and launches nothing. Unresolved relationships
block new execution, including queued one-shot starts and canonical admission;
refinement and planning remain possible. A blocker during existing execution
requires a developer decision; it does not interrupt that execution automatically.
complete --dropped,
which removes the entry and releases its profile as below and leaves the done
records to finished work.Either path removes the entry with the installed scripts/product-backlog.mjs complete operation. It also deletes the execution agent profile under
agents/ beside the backlog that names the same identity, releasing that agent
name, and writes the work's done record under done/ beside the backlog: its
identity, title, completion time, the developer configured in this workspace's
Git, and that profile's agent, host, and model when one existed. The same run
removes done records completed more than 30 days before, then rebuilds the done
catalog done/.catalog.json from the records that remain, and its report names
each file it wrote or removed. Commit those files with the backlog change; the
done record stays in the project as the published fact that the work was done.
A preparation assignment profile stays until its own release.
The done catalog lists each done record's file name, identity, completion time,
and Git blob hash, newest first, and names each unreadable record file with its
hash and no completion time, so a reader can order the records and read only
the ones it needs. Titles, developers, agents, hosts, and models stay in the
records. The catalog is derived from the record files: never edit or merge it
by hand. complete and the installed merge, rebase, and cherry-pick adapters
in merge conflicts keep it current: an
operation through an adapter that changes records also leaves a catalog
rebuilt from the resulting record files. Rebuild it with the installed
scripts/product-backlog.mjs catalog-done [--file <backlog>] and commit the
result when:
complete and those
adapters, such as by raw Git, a hand edit, or an older installed copy of
these scripts; ordone/.catalog.json: settle the record files
first, then rebuild and stage the catalog.catalog-done changes no record and no backlog entry, prunes nothing, and
writes no completion; with no record left it removes the catalog. Its report
names any unreadable record file, which stays for a person to read; the catalog
never makes up a completion time for it.
An installed Claude Code project may deny a direct Edit/Write/
MultiEdit/NotebookEdit attempt on the resolved product backlog path,
an installed Codex project may deny an apply_patch attempt there, and an
installed Cursor project may deny a Write/StrReplace/Delete attempt
there. Each reports the denial before any bytes change. This is expected:
invoke the installed scripts/product-backlog.mjs operation instead of a
direct hand-edit. Reads, edits to other files, and shell-run commands (including
shell redirection into the backlog file) are unaffected.
An authorized merge, rebase, or cherry-pick that combines two sides of the
product backlog (often PRODUCT-BACKLOG.md) — not an ordinary same-branch
add/take/place/complete — is run through this project's installed product
backlog Git adapters from the start, before Git ever reports a conflict; a
clean Git result can still combine the backlog wrongly. Read and follow
reconcile product backlog Git operations for
how to resolve the installed adapters, run the matching operation, resolve a
real conflict, and validate a clean-but-disputed result, including its
fallback for when the adapters are unavailable or do not cover the conflict.
If neither the adapters nor that reference are available, preserve the
conflict and report the missing guidance.
Supplier landing/wrap-up uses the shared completion and consumer-resolution procedure.
The generic complete command changes queue membership only.
No reviews yet. Tell others what you thought.
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.
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.
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.
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.
related to donut CLI. Use when working on donut-cli.
The English summary is being prepared. Showing the original description.
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.
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.