Top-level skill: .claude/skills/forgebot/SKILL.md
Command Dashboard
ForgeBot routes conversational work to the right skill, connector, or repo script. The command surface now lives in SKILL.md; the old command wrapper is not required.
Use the skill command table directly; no duplicate .claude/commands/forgebot.md.
Slack agent:start events targeting ForgeBot can notify Adam through Apple Watch/Pushover.
ForgeBot Skill Commands
help
Show this command list and the routing table. Keep commands first, prose second.
Read-onlyroute <request>
Parse a natural-language request and load the right target skill or connector.
Routerself-test
Run credential and capability checks. Default mode avoids live writes and does not print secret values.
Smoke testself-test --live
Run the full live test, including a low-cost image generation check and clean preview report.
Liveself-test --slack-live --slack-channel C...
Prove a real Slack post, edit, and read-back round trip. Never delete Slack messages.
Slack writestart
Start the apps/forgebot dev server through Doppler and the app registry.
Port 4140slack-access <channel>
Diagnose whether ForgeBot can read or post in a Slack channel. Treat channel_not_found as likely access first.
Auth checkmention-watch-test
Dry-run or live-test the Slack @ForgeBot to Apple Watch/Pushover path.
Watch pathSlack Mention To Watch Alert
A message targets @ForgeBot through a Slack app mention event.
Messages from the ForgeBot bot itself are suppressed to prevent loops.
The route calls apple-watch/scripts/notify.ts through Doppler.
Adam confirmed the live Pushover path reached the physical Apple Watch on 2026-06-28.
Local Checks
./node_modules/.bin/tsx apps/forgebot/scripts/mention-watch-closed-loop.ts
Dry-runs trigger classification without sending Pushover.
pnpm exec tsx .claude/skills/forgebot-self-test/scripts/selftest.ts
Runs the read-only ForgeBot capability smoke test.
Live Checks
doppler run --project forgeapps --config prd -- ./node_modules/.bin/tsx apps/forgebot/scripts/mention-watch-closed-loop.ts --post-slack
Posts a controlled Slack test message, then evaluates without sending Pushover.
doppler run --project forgeapps --config prd -- ./node_modules/.bin/tsx apps/forgebot/scripts/mention-watch-closed-loop.ts --send-pushover
Uses the real Apple Watch/Pushover send path only when Adam wants the buzz.
Where Requests Go
| Intent | Target | Example |
|---|---|---|
| Slack | Slack / comms skill | Post to Slack, read a channel, check urgent messages. |
| Email connector skill | Send mail, check inbox, draft a reply. | |
| Calendar | Calendar connector skill | Review meetings, schedule, find availability. |
| Jira / GitHub | Ops and GitHub skills | Create tickets, inspect PRs, triage repos. |
| Apps | Apps skill registry | Start ForgeBot, open a dev server, check app status. |
Readable Vs Physical
- Slack connector/API auth can be healthy even when the browser handoff page fails to sign in.
- Pushover can verify message acceptance, but cannot prove on-wrist haptic delivery by API.
- ForgeBot self-tests may print secret names and pass/fail states, never secret values.
Self-Test Coverage
- Runtime tooling: Node, pnpm, tsx, Doppler, gh, curl.
- Doppler project/config: forgeapps/prd.
- Slack auth, optional channel access, GitHub auth, image generation, and clean preview publishing.