docs: add assisted exit transfer and history design documents
Verify / verify (push) Successful in 2m57s
Container / verify (push) Successful in 3m0s
Container / arm64 (push) Skipped
Container / amd64 (push) Successful in 1m52s
Container / manifest (push) Skipped

This commit is contained in:
sechmachine
2026-08-20 17:22:28 +07:00
parent 8878326839
commit 58a087b118
6 changed files with 103 additions and 24 deletions
+4
View File
@@ -54,6 +54,10 @@ Within a feature, create only layers it needs from `controller`, `model`, `model
Preserve the domain boundaries: attendance time never derives Task work time; historical policies, memberships, leadership, creator/assignee attribution, and decisions do not silently move when current configuration changes.
Membership-exit implementation must preserve two distinct paths. A pending exit keeps membership and existing Task rights active but excludes the target from new/self-assignment; the current/new Leader performs repeatable atomic multi-Task/one-recipient transfer batches before Mentor approval, and cancellation/rejection does not undo completed batches. Direct Mentor removal remains the atomic shortcut that transfers all unfinished Tasks to the current or replacement Leader. Completed Tasks keep the removed member's historical assignee name.
History UI must read the retained feature-owned rows already present. Project History covers memberships, leadership, invitations, exit decisions, completed/soft-deleted Tasks, comments, work logs, and stored attribution under AUTH-006 visibility. Admin-only Policy, Calendar, SMTP, and HolidayAPI History exposes non-secret domain metadata only. Do not add a generic audit/event-sourcing layer, Task-assignment-history table, or fabricated previous-assignee/status/edit timeline.
## Lombok is the default for Java boilerplate
Lombok is already installed and configured as an annotation processor. Use it by default when it removes mechanical Java without hiding a business rule.