How it works
Contractor Toolkit
Open-source Claude Code plugins. Free Claude Code plugins for contractors. Tell Claude about your company once, and it drafts estimates, bid packages, RFIs and daily logs in your brand.
Live · open sourceVisit the site ↗
Architecture
Hover a box to trace its connections; click it for what it does.
- request
- webhook, queue, schedule
- the heart
- outside service
AInstall· 3Your fork · Claude Code · claude.ai · Cowork
Your forkgit repoEXTERNAL
EXTERNAL · git repo
Fork the repo, configure it once, and push it to a private repo. Teammates clone it and get the company’s skills with no setup.
Talks to
- → Claude Code (marketplace add)
Claude Codeplugin marketplaceEXTERNAL
EXTERNAL · plugin marketplace
The marketplace file registers six plugins; each installs on its own.
Talks to
- ← Your fork (marketplace add)
- → /initialize (installs)
claude.ai · Coworkskill zipsEXTERNAL
EXTERNAL · skill zips
The same skills as standalone packages, for the web app.
Talks to
- ← Skill packages (upload)
BSetup· 3/initialize · Company config · contractor-brand
/initializeten sectionsUI
UI · ten sections
A conversational interview, one section at a time. Each answer is written into the template tokens of every skill that uses it; re-run one section and only its tokens change.
Talks to
- ← Claude Code (installs)
- → Company config (writes)
Company configlocal MarkdownSTORE
STORE · local Markdown
The company’s answers, kept in local config. Capabilities are read at run time rather than substituted.
Talks to
- ← /initialize (writes)
- → contractor-brand (tokens)
- → contractor-estimating (defaults)
contractor-brandcolors · fonts · voiceSERVICE
SERVICE · colors · fonts · voice
Keeps every document on-brand: colors, type, logos and how the company sounds.
Talks to
- ← Company config (tokens)
- → contractor-docs (brand)
CSkills· 8contractor-estimating · contractor-extras · contractor-subs · contractor-docs · estimate-reviewer · scope-writer · sub-packager · Token guard
contractor-estimating13 skillsSERVICE
SERVICE · 13 skills
The preconstruction pipeline: ROM, plan takeoff, conceptual budget, scope check, sub bid packages, bid leveling, formal bid, contract and subcontract.
Talks to
- ← Company config (defaults)
- → estimate-reviewer (review)
- → scope-writer (scope)
- → sub-packager (packages)
- → contractor-docs (render)
contractor-extras13 skillsSERVICE
SERVICE · 13 skills
Everyday paperwork: proposals, RFIs and RFI logs, submittals, daily logs, look-aheads, change orders, punch lists, incident reports.
Talks to
- → contractor-docs
contractor-subs4 skillsSERVICE
SERVICE · 4 skills
For subcontractors: quotes, change order requests, T&M tickets and pay applications.
contractor-docsdocument engineSERVICE
SERVICE · document engine
Renders everything as HTML or DOCX in the company’s brand.
Talks to
- ← contractor-brand (brand)
- ← contractor-estimating (render)
- ← contractor-extras
- → Documents (Write)
estimate-revieweragentAI
AI · agent
Checks an estimate before documents are generated.
Talks to
- ← contractor-estimating (review)
scope-writeragentAI
AI · agent
Writes project-specific scope by CSI division.
Talks to
- ← contractor-estimating (scope)
sub-packageragentAI
AI · agent
Builds one self-contained bid invitation per trade.
Talks to
- ← contractor-estimating (packages)
Token guardPostToolUse hookJOB
JOB · PostToolUse hook
Runs after every file Claude writes. A finished HTML document that still has an unfilled {{TOKEN}} is blocked.
Talks to
- → Documents (guards)
DOutput· 3Documents · Release validation · Skill packages
DocumentsHTML · DOCXEXTERNAL
EXTERNAL · HTML · DOCX
Estimates, bids, contracts, logs and the rest, ready to send.
Talks to
- ← contractor-docs (Write)
- ← Token guard (guards)
Release validationPython checksJOB
JOB · Python checks
Checks manifests, inventory, resource paths and template tokens. Unconfigured templates fail; there is no switch to skip it.
Talks to
- → Skill packages (gate)
Skill packagesdist buildJOB
JOB · dist build
Builds the standalone zips, after validation passes and a person reviews them.
Talks to
- ← Release validation (gate)
- → claude.ai · Cowork (upload)
Connections · 15
→ request · ⇢ webhook, queue or schedule
- Your fork → Claude Code · marketplace add
- Claude Code → /initialize · installs
- /initialize → Company config · writes
- Company config → contractor-brand · tokens
- Company config → contractor-estimating · defaults
- contractor-estimating → estimate-reviewer · review
- contractor-estimating → scope-writer · scope
- contractor-estimating → sub-packager · packages
- contractor-brand → contractor-docs · brand
- contractor-estimating → contractor-docs · render
- contractor-extras → contractor-docs
- contractor-docs → Documents · Write
- Token guard ⇢ Documents · guards
- Release validation → Skill packages · gate
- Skill packages → claude.ai · Cowork · upload
Inside: the setup wizard and its safety gate
Setup rewrites a company’s own files, so it is run like a change to production: planned, shown as an exact diff, approved, backed up, applied, and checked byte for byte, with nothing ever reported as done that wasn’t.
Hover a box to trace its connections; click it for what it does.
AInterview· 2Ten sections · Section re-run
Ten sectionsone at a timeUI
UI · one at a time
Company, services, brand colors, type, logos, voice, contact, ideal client, capabilities and estimating defaults, each with a default you can accept.
Talks to
- → Staged answers
Section re-runonly its tokensUI
UI · only its tokens
Re-run one section and only that section’s values change.
Talks to
- → Staged answers
BPlan· 3Staged answers · Change plan · Diff + approval
Staged answersoutside live filesSERVICE
SERVICE · outside live files
Answers and full proposed files are staged away from the real ones and validated first.
Talks to
- ← Ten sections
- ← Section re-run
- → Change plan
Change planbefore hashes · contextsSTORE
STORE · before hashes · contexts
Every file, its hash before, the exact text and context of each replacement, and the fields that change. No global find-and-replace.
Talks to
- ← Staged answers
- → Diff + approval
Diff + approvalbound to the planUI
UI · bound to the plan
The exact diff is shown, and approval is tied to that plan; change the plan and it needs approving again.
Talks to
- ← Change plan
- → Snapshot (approved)
CApply· 4Snapshot · Recheck · Exact edits · Readback
Snapshotbackups firstJOB
JOB · backups first
Backs up every target and verifies the backups before anything is touched.
Talks to
- ← Diff + approval (approved)
- → Recheck
Recheckstale hash voids itSERVICE
SERVICE · stale hash voids it
Checks each file still matches its hash from the plan. If it changed since approval, the approval no longer counts.
Talks to
- ← Snapshot
- → Exact edits
Exact editsper file, per contextSERVICE
SERVICE · per file, per context
Applies only the approved edits.
Talks to
- ← Recheck
- → Readback
Readbackafter hashes · fieldsSERVICE
SERVICE · after hashes · fields
Reopens every changed file and compares it to the approved result, byte for byte and field by field.
Talks to
- ← Exact edits
- → Receipt (pass)
- → Needs a person (fail)
DOutcome· 3Needs a person · Resume · Receipt
Needs a personnever a false successSERVICE
SERVICE · never a false success
Any failure, interruption or missing backup stops here, with the backups kept.
Talks to
- ← Readback (fail)
- → Resume
Resumebefore · after · conflictSERVICE
SERVICE · before · after · conflict
On restart each file is classed from its actual bytes; finished edits are never repeated, and nothing is rolled back over someone else’s changes.
Talks to
- ← Needs a person
Receiptmeasured, not claimedSTORE
STORE · measured, not claimed
Reports only what was measured: sections, changed files, checkpoint and any tokens still unfilled.
Talks to
- ← Readback (pass)
Connections · 11
→ request · ⇢ webhook, queue or schedule
- Ten sections → Staged answers
- Section re-run → Staged answers
- Staged answers → Change plan
- Change plan → Diff + approval
- Diff + approval → Snapshot · approved
- Snapshot → Recheck
- Recheck → Exact edits
- Exact edits → Readback
- Readback → Receipt · pass
- Readback → Needs a person · fail
- Needs a person → Resume
Two flows
An idea becomes a formal bid
Walk through it and each step lights the parts it runs through in the drawings above.
By count
- plugins
- 6
- skills
- 38
- agents
- 3
- setup sections
- 10
Notes
- N.1Setup is a ten-minute interview: name, colors, logos, how you talk, who your clients are. Every document after that uses it.
- N.2Every skill is plain Markdown. You can open one and change how it works.
- N.3Push your configured copy to a private repo and your whole team gets your company’s skills with no setup.
- N.4A finished document can’t be saved with a blank {{TOKEN}} left in it.
Built by
I design, architect and build software products like this one.
More systems