Nothing here yet — hit + Add handoff below, or tell any chat “add a handoff to Mission Control”.
3
Fronts on the board
4
Answers waiting on you
The boxes
Added only by your say-so
3 TAB SHINGLE DEVELOPMENTS
Working
🔍 Find this chat
Where it’s at
Built the whole Connecticut condo targeting engine out of free state data — 2,331 complexes built 1970–2005, 112,361 units, every one scored and matched to the management company that controls it. 297 are A/B tier and 140 sit inside the July 4 2026 record-hail footprint (3.00″ stone in Bristol, a state record; claim window open to July 2028). Heritage Village in Southbury alone is 3,060 units on 52-year-old roofs. The whole play works because in a true CT condominium the roof is a common element on the association’s master policy — one board decides and one policy pays for every building at once. Engine rebuilds itself from data.ct.gov; workbook, call sheet and legal playbook are all written.
Waiting on you
Which manufacturer certifications do you hold, and with which manufacturers? If a spec calls for a 20-year NDL warranty on the low-slope sections and you are not certified at that tier, you are not a bidder at any price — nothing about your number overcomes it.
What are your current general liability and umbrella limits? This size job wants $5–10M with the association AND the management company named as additional insured. It is the silent reason contractors never make bid lists, and it is a phone call to your agent.
You already own the whole property half for free — the CT Grand List, 1.29M parcels, sitting in your Documents since 7/30. It has every filter you named plus year built and coordinates; the only thing missing is phone numbers, which you can append for 2¢–3¢ per hit. Everything now hinges on one question: is PropStream Pro's free skip tracing 50,000 per MONTH or 50,000 per YEAR? At your volume that's a $45,000 difference. Also settled: do NOT buy the $549 TelephoneLists.biz state file — it's landline-only, and you delete every landline.
Waiting on you
Call PropStream — 3 questions: free tracing monthly or annual? Does an export + a trace burn one save or two? Is tracing also free on annual Essentials with Lead Automator?
ANSWERED (Aug 16, 9:52 PM): roof-age band — 20+ years
ANSWERED (Aug 16, 9:52 PM): Public DNC flag — I couldn’t care less if people are on this list. I’m going to text them anyway.
Updated Aug 16Documents\LEAD DATA SOURCING REPORT.txt
GITHUB HANDOFF - make this project collaborative on GitHub.
This project should live in a PRIVATE GitHub repo so chats on BOTH
computers (Patrick's and John's) can work on it at the same time
without overwriting each other.
1. If this project has no repo yet: create a PRIVATE repo with the
gh CLI on this machine, named after the project (short, kebab
case). Put the working files in it - code, scripts, documents,
and a STATUS.md describing exactly where the project stands.
NEVER commit credentials, tokens, API keys, or customer lists -
those stay in local files outside the repo, always.
2. Invite the other side as a collaborator with push access. On
Patrick's machine the owner account is thehomeinsulators; invite
John's GitHub username (ask him for it - it is not on file yet).
On John's machine, invite thehomeinsulators. The command is:
gh api repos/OWNER/REPO/collaborators/USERNAME -X PUT
-f permission=push
3. WORKING RULES, every session, both machines, no exceptions:
- git pull BEFORE touching anything
- commit + push after every meaningful change, plain-language
commit messages
- if a push is rejected: pull, merge, push again - never force
- STATUS.md is the shared truth of project state: update it
whenever the state changes, read it when you start
- note the repo link in this project's Mission Control box stamp
so anyone can find it from the board
4. Tell Patrick and John the repo link when it is up, and put it in
this project's box.
THE REPOS THAT ALREADY EXIST - USE THESE, DO NOT MAKE NEW ONES
github.com/thehomeinsulators/cheaper-skip-trace (cheaper skip tracing)
github.com/thehomeinsulators/condo-roof-targeting (3-tab shingle developments)
Owner account: thehomeinsulators. John's GitHub username is joaop1025,
already invited with push access. Each repo carries a STATUS.md written from
its board box - refresh it whenever the project moves.
Clone with: gh repo clone thehomeinsulators/<repo-name>
NEVER commit credentials, API keys, tokens or customer lists.
CHEAPER SKIP TRACE - project handoff. Paste this into a fresh chat
to work this project.
PROJECT: getting homeowner phone numbers for roofing outreach as
cheaply as possible.
BOARD BOX: data-card id "lead-data-sourcing" (title CHEAPER SKIP TRACE)
CHAT NAME for /rename: CHEAPER SKIP TRACE
WHERE THE WORK LIVES: Documents\LEAD DATA SOURCING REPORT.txt on
Patrick's machine, plus the CT Grand List parcel data in his
Documents since 7/30.
WHERE IT STANDS: the whole property half is already owned for free -
the Connecticut Grand List, 1.29 million parcels, with every filter
named plus year built and coordinates. The only missing piece is
phone numbers, roughly 2 to 3 cents per hit. Everything hinges on
one open question: is PropStream Pro's free skip tracing 50,000 per
MONTH or 50,000 per YEAR? At this volume that is a $45,000
difference. Already settled: do NOT buy the $549 TelephoneLists.biz
state file - it is landline only, and every landline gets deleted.
Also settled by Patrick: target roof-age band is 20+ years, and the
public DNC flag is not a filter he wants applied.
STILL OPEN (only Patrick can close it): call PropStream and get
three answers - is free tracing monthly or annual; does an export
plus a trace burn one save or two; is tracing also free on annual
Essentials with Lead Automator.
HOW THIS CHAT REPORTS IN (do this first, then get to work):
A. THE BOARD: https://thehomeinsulators.net/john
This is the shared Patrick + John roofing board. Fetch it with a
cache-busting query on the end (?fresh= plus a new random number
every time). Keep only the page markup from the title tag down.
Never work from memory of the page.
B. YOUR BOX: this project already has a box on that board (its
data-card id is named below). Keep THAT box current - never add a
second one, never touch another project's box, and never add
anything nobody asked for. Update it at the end of any turn where
this project actually moved: something finished, a blocker
appeared or cleared, the status changed. Where-it's-at is 2-3
plain sentences with the single most important thing in bold.
Waiting-on-you lists ONLY things a person must decide or do.
C. THREE RULES THAT KEEP THE PAGE ALIVE - all three have broken it
before:
1. COUNT YOUR TAGS. Your finished box must have exactly as many
opening div tags as closing ones (the template has 8 of each),
and so must the whole page. One missing closing tag swallows
every box below yours and collapses the board into a single
narrow column.
2. PURE ASCII ONLY. Write special characters as HTML entities
(like ’ for an apostrophe) in the markup, CSS escapes
inside a style block, and JS escapes inside a script block.
A literal special character turns to garbage the next time
anything re-reads the page.
3. NEVER write a raw angle bracket inside a pre block or box
text - escape it. A literal tag name in prose gets parsed as
real markup and silently kills every button on the page.
D. PUBLISH = deploy the updated page with PUBLISH.bat in C:\Users\theho\BOARDS exactly
as written in GODADDY\credentials.txt under this user's home
folder (on Patrick's machine: C:\Users\theho\GODADDY\credentials.txt).
Then load the live URL and confirm it renders. Verify the site returns text/html after.
RACE RULE: re-fetch fresh and re-apply only your box immediately
before deploying - never deploy from a copy minutes old. No
credentials file on this computer? Say so plainly, paste your
finished box HTML in chat for the other side to place, and carry
on with the actual work.
E. ANSWERS ARE ORDERS: every time you fetch the board, check YOUR
box for items marked ANSWERED - that is Patrick or John answering
you from their phone. Act on it immediately, then remove the
consumed item on your next box update.
F. HALF-HOUR WATCH: start your loop feature, self-paced at about
every 30 minutes, for the life of this chat: fetch the board,
act on ANSWERED stamps, refresh the box only if the project
actually moved, otherwise do nothing that round.
G. NAME THE CHAT: ask me to run /rename with the project name below,
one time, so the find-chip on the box can locate this chat later.
SHARED CODE - GITHUB (so both computers can work this project):
Repo: PRIVATE repo named cheaper-skip-trace under the thehomeinsulators
account. If it does not exist yet, create it with the gh CLI and
push the working files plus a STATUS.md that says exactly where
the project stands.
Invite the other side with push access:
gh api repos/OWNER/REPO/collaborators/USERNAME -X PUT -f permission=push
Patrick's side invites John (ask Patrick for John's GitHub
username - it is not on file yet). John's side invites
thehomeinsulators.
Every session, both machines, no exceptions: git pull BEFORE
touching anything; commit and push after every meaningful change
with plain-language messages; if a push is rejected, pull, merge
and push again - never force. STATUS.md is the shared truth.
NEVER commit credentials, API keys, tokens, or raw customer and
homeowner lists. Those stay in local files outside the repo.
Put the repo link in this project's box stamp when it is up.
3 TAB SHINGLE DEVELOPMENTS (CT CONDO ROOFS) - project handoff. Paste
this into a fresh chat to work this project.
PROJECT: selling roof replacements to Connecticut condominium
associations, where the roof is a common element on the
association's master policy - one board decides and one policy pays
for every building at once.
BOARD BOX: data-card id "condo-roof-targeting"
(title 3 TAB SHINGLE DEVELOPMENTS)
CHAT NAME for /rename: 3 TAB SHINGLE DEVELOPMENTS
WHERE THE WORK LIVES: C:\Users\theho\CONDOBOT on Patrick's machine.
WHERE IT STANDS: the targeting engine is built out of free state
data - 2,331 complexes built 1970 to 2005, 112,361 units, every one
scored and matched to the management company that controls it. 297
are A/B tier and 140 sit inside the July 4 2026 record-hail
footprint (a 3.00 inch stone in Bristol, a state record; the claim
window is open to July 2028). Heritage Village in Southbury alone is
3,060 units on 52-year-old roofs. The engine rebuilds itself from
data.ct.gov, and the workbook, call sheet and legal playbook are
written.
STILL OPEN (only Patrick can answer): which manufacturer
certifications he holds and with which manufacturers - if a spec
calls for a 20-year NDL warranty on the low-slope sections and he is
not certified at that tier, he is not a bidder at any price. And his
current general liability and umbrella limits - this size job wants
$5 to $10M with the association AND the management company named as
additional insured, which is the silent reason contractors never
make bid lists.
HOW THIS CHAT REPORTS IN (do this first, then get to work):
A. THE BOARD: https://thehomeinsulators.net/john
This is the shared Patrick + John roofing board. Fetch it with a
cache-busting query on the end (?fresh= plus a new random number
every time). Keep only the page markup from the title tag down.
Never work from memory of the page.
B. YOUR BOX: this project already has a box on that board (its
data-card id is named below). Keep THAT box current - never add a
second one, never touch another project's box, and never add
anything nobody asked for. Update it at the end of any turn where
this project actually moved: something finished, a blocker
appeared or cleared, the status changed. Where-it's-at is 2-3
plain sentences with the single most important thing in bold.
Waiting-on-you lists ONLY things a person must decide or do.
C. THREE RULES THAT KEEP THE PAGE ALIVE - all three have broken it
before:
1. COUNT YOUR TAGS. Your finished box must have exactly as many
opening div tags as closing ones (the template has 8 of each),
and so must the whole page. One missing closing tag swallows
every box below yours and collapses the board into a single
narrow column.
2. PURE ASCII ONLY. Write special characters as HTML entities
(like ’ for an apostrophe) in the markup, CSS escapes
inside a style block, and JS escapes inside a script block.
A literal special character turns to garbage the next time
anything re-reads the page.
3. NEVER write a raw angle bracket inside a pre block or box
text - escape it. A literal tag name in prose gets parsed as
real markup and silently kills every button on the page.
D. PUBLISH = deploy the updated page with PUBLISH.bat in C:\Users\theho\BOARDS exactly
as written in GODADDY\credentials.txt under this user's home
folder (on Patrick's machine: C:\Users\theho\GODADDY\credentials.txt).
Then load the live URL and confirm it renders. Verify the site returns text/html after.
RACE RULE: re-fetch fresh and re-apply only your box immediately
before deploying - never deploy from a copy minutes old. No
credentials file on this computer? Say so plainly, paste your
finished box HTML in chat for the other side to place, and carry
on with the actual work.
E. ANSWERS ARE ORDERS: every time you fetch the board, check YOUR
box for items marked ANSWERED - that is Patrick or John answering
you from their phone. Act on it immediately, then remove the
consumed item on your next box update.
F. HALF-HOUR WATCH: start your loop feature, self-paced at about
every 30 minutes, for the life of this chat: fetch the board,
act on ANSWERED stamps, refresh the box only if the project
actually moved, otherwise do nothing that round.
G. NAME THE CHAT: ask me to run /rename with the project name below,
one time, so the find-chip on the box can locate this chat later.
SHARED CODE - GITHUB (so both computers can work this project):
Repo: PRIVATE repo named condo-roof-targeting under the thehomeinsulators
account. If it does not exist yet, create it with the gh CLI and
push the working files plus a STATUS.md that says exactly where
the project stands.
Invite the other side with push access:
gh api repos/OWNER/REPO/collaborators/USERNAME -X PUT -f permission=push
Patrick's side invites John (ask Patrick for John's GitHub
username - it is not on file yet). John's side invites
thehomeinsulators.
Every session, both machines, no exceptions: git pull BEFORE
touching anything; commit and push after every meaningful change
with plain-language messages; if a push is rejected, pull, merge
and push again - never force. STATUS.md is the shared truth.
NEVER commit credentials, API keys, tokens, or raw customer and
homeowner lists. Those stay in local files outside the repo.
Put the repo link in this project's box stamp when it is up.
MISSION CONTROL HANDOFF - put THIS chat on the board.
THE BOARD (fetch + update THIS ONE):
https://thehomeinsulators.net/john
This is the shared Patrick + John work board for the roofing side.
This handoff works the same pasted into a chat on either computer.
Do this, exactly:
1. Fetch the board's CURRENT content: WebFetch the URL above with a
cache-busting query stuck on the end - the URL plus ?fresh= plus
any random number, a NEW number every fetch. Keep ONLY the page's
own markup, from the title tag down - strip the doctype/head
wrapper above it. Never work from memory of the page.
2. Boil THIS chat down into ONE box using the BOX TEMPLATE in the
HTML comment at the top of the page source (a .card div with a
data-card id):
- Title: short project name we'd recognize
- Status pill: Working / Waiting on you / Blocked on you / Live
- WHERE IT'S AT: 2-3 sentences max, plain language, bold the one
thing that matters most
- WAITING ON YOU: only things a person has to decide or do
(decisions, answers, clicks in an account). If nothing, one
li class="none" reading "Nothing - I'm working"
- Stamp: updated date + "Chat: (name)" + where the work lives
If yours is the FIRST box, swap the empty-state div for the STATS
section (both templates are in the comment).
3. CHAT NAME + FIND CHIP: pick a short name for this chat (usually
the box title). Put it in three places: (a) the stamp as
"Chat: (name)", (b) the FIND-THIS-CHAT chip at the top of the box
(findrow template in the comment) so the name can be click-copied
into the VS Code history search, and (c) ask me to type
/rename (name) one time - that rename is what makes the chip's
string guaranteed to find this chat after it's closed.
4. NO DUPLICATES - one box per project, EVER. Before adding, check
every existing box's data-card id, title, and Chat name: if any
is plausibly this same project (even under a different name),
REPLACE that box instead of adding a second one. Pasting this
handoff again into the same chat later is normal - it just means
refresh the box. NEVER touch any other box, the handoff library,
the hidden pre blocks, or the scripts, and NEVER add anything
nobody handed off - no extra boxes, banners, or items, no matter
how urgent they seem (say it in chat instead).
5. Recount the stat tiles (fronts on the board / answers waiting)
and bump the date in the header sub-line. If removing the LAST
box, put the empty state back (template in the comment) and drop
the stats section.
6. PUBLISH = deploy the updated page to the public site using the
PUBLISH.bat in C:\Users\theho\BOARDS EXACTLY as written in the credentials file at
GODADDY\credentials.txt under THIS user's home folder (on
Patrick's machine that is C:\Users\theho\GODADDY\credentials.txt) Keep the page pure ASCII: write any
special character (curly quotes, arrows, emoji, accents) as an
HTML entity like ’ - literal characters get mangled by
re-encoding. RACE RULE: deploys have no conflict protection -
re-fetch fresh and re-apply ONLY your box IMMEDIATELY before the
deploy, never from a copy minutes old. NO CREDENTIALS FILE ON
THIS COMPUTER? Don't stop the project: say so plainly, paste the
finished box's full HTML in chat so the other side can place it,
and carry on - the board is still readable without the file, so
the watch and ANSWERED checks below still work.
7. Confirm in chat: "It's on Mission Control" + what the box says +
the /rename line to run if it hasn't been run yet.
Standing orders:
AUTO-UPDATE - from now on, keep the box current WITHOUT being asked.
At the end of any turn where this project meaningfully moved
(something finished, a blocker appeared or cleared, the status
flipped), refresh the box - once per turn max, same full flow. The
box only sees what happens IN this chat: steps done outside it
(a browser, someone's accounts) can't reach the board until they're
mentioned here.
ANSWERS ARE ORDERS - every time you fetch the board, check YOUR box
for items marked "ANSWERED": the quoted text is the answer to your
question, from whoever tapped it in. Act on it immediately, then on
your next box update remove the consumed item and fold the result
into where-it's-at.
HALF-HOUR WATCH - right after adding your box, start your loop
feature, self-paced at roughly every 30 minutes, and keep it running
for the life of this chat: each round, fetch the board fresh, act on
any ANSWERED stamps in YOUR box, refresh the box only if this
project actually moved, and otherwise do nothing that round. The
watch runs while this chat is open in VS Code and pauses when it
closes - say that limit when you confirm.
"update my box" / "take X off Mission Control" = the same
fetch-fresh, edit-one-box, deploy flow. "Add a handoff to Mission
Control" (someone pastes a script) = add ONE row + ONE hidden pre to
the HANDOFF LIBRARY per its templates - touch nothing else.