Project_crew_assignments and crew_acceptance_signatures back a lifecycle where every state transition appends a row and nothing is updated in place once an assignment ends. The default agreement covers personal commitment (walking off without written authorisation is a breach), responsibility for crew members under the lead's supervision, reporting, safety and code compliance, reassignment handoff, and the electronic-signature acknowledgment.
Also called: crew acceptance contract · sub agreement · subcontractor agreement · crew walked off the job · project acceptance agreement
- 1createInitialAssignment() when the project starts — the assignment is pending.
- 2The crew lead opens the agreement, reads the rendered body with this project's tokens filled in, types their name and draws a signature.
- 3signAssignment() snapshots the agreement body onto the signature row and flips the assignment to active with an accepted_at stamp.
- 4swapAssignment() ends the current assignment and creates a new pending one — a unique partial index guarantees only one pending or active assignment at a time.
- 5declineAssignment() marks a refusal before signing so the project can be reassigned.
The module states its own principle: 'Every state transition appends a row; nothing is updated in place once an assignment is ended. Signatures are immutable. This is the audit trail.' The agreement's own clause 5 handles reassignment: 'If management formally reassigns this project to a different crew, the incoming crew lead must sign this same agreement before taking over.'
- Crew assignments with no personal commitment on record
- No named person responsible for the crew working under them
- Handoffs between crews leaving nobody accountable
See it on your own jobs
Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.
or keep browsing features →