Crew lead signs before work starts

Assigning a project to a crew creates a pending acceptance contract; the crew lead signs it personally — typed name and drawn signature — before the project goes active.

What it is

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

See it
Crew lead signs before work starts
Prepared for
Ivy Brubaker
1140 Ridge Line Rd · Fair Play
Shell package$26,914
Concrete & site$7,814
Doors & windows$5,209
Trim & finish$3,473
Total
$43,410
Signature
The acceptance agreement rendered with the project name filled in, over the crew lead's signature pad. SignedContractView.tsx + AcceptanceSignatureModal. Sample data — no customer information appears here.
How it works
  1. 1createInitialAssignment() when the project starts — the assignment is pending.
  2. 2The crew lead opens the agreement, reads the rendered body with this project's tokens filled in, types their name and draws a signature.
  3. 3signAssignment() snapshots the agreement body onto the signature row and flips the assignment to active with an accepted_at stamp.
  4. 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.
  5. 5declineAssignment() marks a refusal before signing so the project can be reassigned.
Why we built it

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.'

The problem
  • Crew assignments with no personal commitment on record
  • No named person responsible for the crew working under them
  • Handoffs between crews leaving nobody accountable
Sound familiar?
What you get
A signed personal commitment before work begins
An append-only assignment history you can reconstruct
Reassignment forces a fresh signature
What's inside
Write your own crew agreement
Settings → Sub Agreement holds your own crew acceptance text; saving publishes a new version and already-signed contracts keep the text they were signed on.
Crew agreements priced from the approved estimate
Four placeholders fill per project at signing — and the labour amount comes from the APPROVED estimate's frozen labour total, not whatever the estimate says today.
Pending crew contracts you can chase or sign yourself
A queue of projects waiting on a crew-lead signature, each opening a modal to remind the lead, sign it yourself as owner, or delete a pending contract created in error.
Read the crew contract — signed or still pending
One tab per signed contract showing the exact agreement in force at signing, and — when nothing is signed yet — the full current document so the builder can read what the crew is being asked to accept.

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 →