Repository source: docs/plans/archive/signed_user_approvals_step1_solution_assessment.md
Signed User-to-User Approvals — Step 1: Solution Assessment
Problem
User-to-user approval records currently claim an approver identity but lack a detached signature proving that the approver authorized the approval.
Option A — Reuse the signed post lifecycle for approval replies
Pros: The browser signs the canonical approval reply with the approver's existing key; the server verifies it and stores the detached signature beside the approval record.
Pros: Reuses the established signing, verification, and failure-handling model for threads and replies; no new trust model or database migration.
Cons: The approval action needs a browser-signing step and clear feedback if signing cannot complete.
Option B — Build an approval-specific signing protocol
Pros: Can tailor request and response data solely to approval actions.
Cons: Duplicates the existing prepare, signature-verification, and record-finalization lifecycle; increases the chance that approval semantics diverge from signed posts.
Option C — Have the server sign approval records
Pros: Keeps approval as a one-click server operation.
Cons: Proves only that the server wrote the record, not that the approving user authorized it; does not meet the user-to-user accountability requirement.
Recommendation
Choose Option A. Treat an approval as a signed, generated reply in the target user's bootstrap thread, using the existing browser key and detached-signature model. The signer must be an already-approved identity, and approval seeds remain unsigned trust anchors outside this feature's scope.
Approval Gate
Reply Approved Step 1 to proceed to the feature description.