homebot-dev-workflow
HomeBot (kingithegreat/Sadie) build, test and landing procedures moved verbatim from AGENTS.md — the unreachable-capability defect, three traps, CI and local…
Skill by kingithegreat
Chalk Labs
Need help deploying homebot-dev-workflow?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/kingithegreat-homebot-dev-workflow
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing, devops, productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/homebot-dev-workflow
What's inside
- Skill name
homebot-dev-workflow- Description
- HomeBot (kingithegreat/Sadie) build, test and landing procedures moved verbatim from AGENTS.md — the unreachable-capability defect, three traps, CI and local test setup, npm ci order, platform limits, standing rules, working alongside other agents and landing under strict branch protection.
- License
- MIT
- Instructions
- 174 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- body: contains an absolute path from the author's machine
Files (1)
- SKILL.md
SKILL.md (first lines)
# HomeBot dev workflow (moved verbatim from AGENTS.md, 2026-10-20)
## The defect this codebase actually produces
Not crashes. **Capability that exists, works, is exported, is tested — and that nothing a user can
reach ever calls.** Every bug found in one recent full-day session was this shape: a safety
whitelist whose every caller threw before reaching it, a privacy switch that rendered only after a
failed fetch, a QA stage that inspected nothing, web tools the model was never handed, a model
downloader with no delete button, and an entire coding pillar with no button in the mode bar.
Type checkers, linters and unit tests are all green for every one of these, because the code
genuinely works.
**So before you finish anything, ask: what reaches this?** Trace outward until you arrive at
something a person can click, type or say. If you cannot, you have built another one.
## Three traps that cost real hours here
- **A control added to `AdvancedSettingsTab` is invisible by default.** Settings opens in Simple.
This shipped a live bug — Aden could not find the Claude subscription option after a refactor.
Decide deliberately which view a new setting belongs in.
- **Bot-opened PRs park every check at `action_required` and nothing tells you.** Required checks
simply never report and it reads as slow CI. Ten runs were held in one day, five for three days:
```bash
gh api "repos/kingithegreat/Sadie/actions/runs?status=action_required&per_page=30" \
--jq '.workflow_runs[].id' |
while read id; do gh api -X POST "repos/kingithegreat/Sadie/actions/runs/$id/approve"; done
```
That loop is the workaround, not the fix. Copilot's PRs are held because it is treated as an
outside contributor; GitHub added a repo setting to skip that approval, which only Aden can
toggle. Until it is on, run the loop after every bot push.
- **A filter that matches nothing looks exactly like a clean pass.** Before believing any zero —
a grep, a `:not()` list, a "no results found" — feed it something it *should* match. A recent
button-grep returned two hits from a 710-line panel that actually offered six actions.
## CI tests the app; unit tests do not prove a reachable feature
Verified 2026-09-08: `ci.yml` has a root `build` job AND a Windows `widget` job that
typechecks the app, runs its full Jest suite, builds Electron, and tests overlays in the
real renderer. Separate jobs check lint and permissions. `widget-e2e-ci.yaml` runs the
three-OS E2E matrix; its `e2e-all` aggregate is required by main's branch protection.
Re-read that live protection before relying on it. Every required context must be present
and green. Neither unit tests nor a green PR prove that a media provider produced a real
video or that a user can reach a capability. Trace and exercise that path too.
Run the relevant local checks before publishing:
```bash
cd widget && npx tsc --noEmit && npm run lint && npx jest --config=jest.config.ts --runInBand --no-coverage
cd .. && npx jest && npm run docs:check
```
### Widget tests that do real I/O need an explicit timeout
A widget unit test that runs a **real handler against a loopback HTTP server** (e.g. the
ComfyUI server in `storyboard-frame-provider.test.ts`, which renders frames through a real
socket and reads files) can legitimately take multiple seconds. The Jest default is
**5000 ms**, which such tests brush right up against — that test measured ~4.6s locally and
flaked as a timeout under CI load, taking the whole `widget` job red on several PRs at once
(because they all ran the same suite). The fix was `jest.setTimeout(15_000)` in that file.
Rule: **any test that does real loopback HTTP generation or real subprocess/file work gets an
explicit `jest.setTimeout(...)` above the 5s default** (15s is fine), not the default. A
timeout on such a test is a CI-load symptom, not a product bug, and it will appear as a bare
"exceeded 5000 ms" with no failing assertion. Before believing a `widget` job is red for a
real reason, check whether it is one such timeout.
### `npm ci` needs both packages, then native rebuilds
`widget/src/main/tools/crm.ts` imports `../../../../src/crm/store` — a **root-package** file — and
`src/crm/store.ts:54` does `require('better-sqlite3')`, which Node resolves from the **root's**
`node_modules/`. Installing only `widget/` leaves 10 CRM and email tests failing on a module that
is present in widget's tree but not where the importer looks for it. `ci.yml:80-103` does this
in order; mirror it locally:
```bash
# from the repo root
npm ci --ignore-scripts # root package (CRM store lives here)
cd widget && npm ci --ignore-scripts # widget
npm rebuild better-sqlite3 # widget binding for Node ABI
cd .. && npm rebuild better-sqlite3 # root binding
```
`--ignore-scripts` skips electron-builder's `install-app-deps` (slow, builds against Electron's
ABI which Jest does not use). The explicit `npm rebuild better-sqlite3` after the install is
what produces the Node-ABI binary the CRM store actually loads. Without these four steps the
local `jest` run will report `crm-tools.test.ts` and `email-tool.test.ts` as failing on
`Cannot find module 'better-sqlite3' from '../src/crm/store.ts'` — and that is the same single
root cause for all 10 failures, not 10 separate bugs.
### Not every tool can run that
HomeBot ships Windows-only, and `ci.yml` runs the widget job on `windows-latest` because that is
the only platform the suite passes on. 43 test files write fixtures to `os.tmpdir()` while the
main-process file tools refuse any path outside `os.homedir()` — the same directory on Windows,
`/tmp` versus home on Linux. Measured on Linux 2026-08-24, same tree, only `TMPDIR` differing:
**79 failures across 4 suites without it, 5 in 1 suite with it.** Those last 5 are all
`sd-cpp-setup.test.ts`, which refuses on non-Windows by design (`sd-cpp-setup.ts:177`) — on Linux
that is the clean result, not a regression.
| Tool | Runs on | Can run the widget suite |
|---|---|---|
| Cline, Claude Code (local) | Aden's Windows box | Yes — no excuse for an unverified claim |
| Copilot coding agent | Linux Actions runner | Yes with `TMPDIR="$HOME/homebot-test-tmp"` — expect 5 failures in `sd-cpp-setup.test.ts`, nothing else |
| Claude Code on the web | Linux container | Same as Copilot; often no `node_modules` at all |
`.github/workflows/copilot-setup-steps.yml` installs both packages and exports `TMPDIR` for the
Copilot agent. Set it on the command line regardless — a silent fallback to `/tmp` is
indistinguishable from 92 real bugs.
**So pick work that matches where you run.** Linux-bound agents are better spent on the root
package, pure modules in `src/`, docs, CI and n8n workflows than on `widget/` UI they cannot
exercise. And if you could not run the suite, write "unit tests not run in this environment"
rather than implying green. An honest unverified is useful; a false green costs a reviewer more
than the change was worth.
## Standing rules from the Contract worth repeatingFrom kingithegreat/Sadie, MIT.
More from kingithegreat/Sadie
- 0.587score
homebot-defect-patterns
kingithegreat
Repo-specific defect patterns for HomeBot/SADIE that pass every automated check and only fail in a built, running app — dead IPC channels, relative require()…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
stateful-fix-patterns
kingithegreat
Failure patterns in fixes that touch persisted state, saved settings, or external CLIs — fixes that only work for new data and leave existing users broken…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
tts-engine-evaluation
kingithegreat
Settle a "should we switch TTS engines / is X better than Edge TTS" question by measuring produced audio files, not by reading library docs or trusting…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
feature-decision-closure
kingithegreat
Close out a "should we build X" question so no future session re-litigates it — record the decision, the evidence that settled it, and the next lever if the…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
multi-agent-verify-content
kingithegreat
Verify that another agent's (or your own) work actually landed in a squash-merge repo where PR numbers and commit SHAs are both unreliable.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
character-art-spec
kingithegreat
What a character art kit must contain (Leila/Flappy and guests), how it is laid out, and the only approved way to generate it.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
pr-handoff-evidence
kingithegreat
Open, land and hand off a Sadie PR with acceptance evidence that another agent or Aden can check.
SkillAFreshness: A★ 1Claude Code +9 - 0.576score
mouth-viseme-matching
kingithegreat
Which mouth tiles exist, how audio maps to them, and on which poses a mouth may be composited.
SkillAFreshness: A★ 1Claude Code +9 - 0.576score
art-asset-naming-and-folders
kingithegreat
Where character assets live and how they must be named so the pipeline finds them.
SkillAFreshness: A★ 1Claude Code +9 - 0.576score
drive-plan-update
kingithegreat
Record verified progress in the Drive doc "HomeBot — Current Plan" without clobbering concurrent edits.
SkillAFreshness: A★ 1Claude Code +9 - 0.576score
episode-script-to-shots
kingithegreat
Turn an Ancient Pathways episode script into shots and image tickets using the existing pipeline, not a new one.
SkillAFreshness: A★ 1Claude Code +9 - 0.575score
claim-and-branch
kingithegreat
Claim a piece of HomeBot work in CLAIMS.md and start it on a safe branch/worktree so no two agents build the same thing.
SkillAFreshness: A★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 1
- Last commit (this folder)
- Oct 20, 2026 (11 days ago)
- Last release
- Dec 14, 2025 (10 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/kingithegreat/Sadie
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from kingithegreat
- 0.587score
tts-engine-evaluation
kingithegreat
Settle a "should we switch TTS engines / is X better than Edge TTS" question by measuring produced audio files, not by reading library docs or trusting…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
feature-decision-closure
kingithegreat
Close out a "should we build X" question so no future session re-litigates it — record the decision, the evidence that settled it, and the next lever if the…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
homebot-defect-patterns
kingithegreat
Repo-specific defect patterns for HomeBot/SADIE that pass every automated check and only fail in a built, running app — dead IPC channels, relative require()…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
multi-agent-verify-content
kingithegreat
Verify that another agent's (or your own) work actually landed in a squash-merge repo where PR numbers and commit SHAs are both unreliable.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
stateful-fix-patterns
kingithegreat
Failure patterns in fixes that touch persisted state, saved settings, or external CLIs — fixes that only work for new data and leave existing users broken…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
character-art-spec
kingithegreat
What a character art kit must contain (Leila/Flappy and guests), how it is laid out, and the only approved way to generate it.
SkillAFreshness: A★ 1Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get homebot-dev-workflow running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
homebot-dev-workflow skill. Agent Mart. https://agentmart.dev/skills/kingithegreat-homebot-dev-workflow (last updated 2026-10-24)