- Shipped
- 8 novembre 2026 alle ore 04:09 UTC
- Author
- Kamo
- Commit
- 283edcc
A generic engine: Requirement -> Compliance Record (on file) -> Triggers -> Gates. Its first configuration is the Form W-9 before a commission withdrawal. - Platform Library: an idempotent seeder (keyed w9-package / w9) stores the official IRS Form W-9 (Rev. March 2024, SHA-256 verified) through ImageService.uploadDocument into an HR Resources binder of the platform org (crm), with an e-sign template whose 24 fields come from the PDF's own AcroForm widgets plus signature/date on the Part II line, one assignee slot, published as a package. Library items only: no requirement, assignment or email in crm. - Adoption: default-ON presets become an org requirement row lazily (first commission event, gate check or Requirements tab), never re-enabling one the org switched off; the package is copied org-locally (own Img/binder/template/version) under a per-org singleton lock. - Records reconcile against the Legal & Compliance assignments they point at (package, or the member's own-copy upload which is ALWAYS reviewed in the Review Studio); acceptance of an upload voids the unused package. Append-only history; Record On File (multipart, stored in the member's name) and Waive (reason, optional end date), both audited. - Gate: GET **************** (read-only) and POST .../authorize {subjectRef} (spends a single-use override); fails closed; a blocked member with nothing assigned is assigned after commit. Member: /member/gates/{gate}, /member/my-requirements, **************** HR: requirements CRUD, library, matrix, records, record-on-file, waive, overrides (OVERRIDE_COMPLIANCE_GATE or owner; never for yourself). - Triggers: core NATS queue group docs-compliance on compliance.event.> and security.member.activated.>; member.activated also delivers autoAssignOnJoin legal packages (it was acted on nowhere). - Nightly commission sweep / backfill: per org with commissions ON, only members with commission ledger entries or a payout account, singleton-locked; dry run on 2026-11-07 = 0 orgs, 0 members. Own scheduler (DocsService has no @EnableScheduling).
