You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Research epic, written 2026-08-13 from Sir's onboarding design. Nothing here
is committed work. It records what the ten-step process needs versus what the
code does today, so the gaps are visible before anyone starts building.
The promise
Point A — a solo consultant with 4–15 clients whose day starts with "what
did I promise to whom?" Agreements live in their head. Prep happens at 9pm.
The AI tools they bought made it worse, because the AI forgets between sessions
and they rebuild context for the tool as well as for themselves.
Point B — same business, memory problem gone. Briefed before every call.
Every promise, decision and open loop tracked until it closes. 15–20 hours a
month returned, shown on a signed monthly report.
What already exists, and fits well
Steps 4–6 are largely built. The onboarding ritual
(/awaken → /reading-the-room → /verify → /soul → /composing → /preparing → /first-brief → /desk) already pulls ~100 days of mail, extracts facts chunked,
discovers instinct patterns, writes USER.md / SOUL.md / RULES.md,
materialises a matter pack and an errand pack, seeds day-one Desk cards and
composes a first brief. That is substantially "Alfred shows what it learned
about you" and "build your Matters".
Step 9 is a precise fit, not a coincidence. "Day 60 — discretion on" is the
tier ladder: Asking → Confirming → Acting, where reaching Acting requires
the principal's explicit approval (#452), enforced at two independent points
that read the shared reader in matching/tiers.py and fail closed. Day 60 is
literally the principal working the Approve/Decline queue on /instincts. The
ladder was built for this shape after the 2026-08-06 incident.
Step 6's training loop is real and verified. Desk click → decision →
observation → nightly reflection → tier change. Confirmed end to end.
Point A's core complaint has its primitive. "What did I promise to whom" is
the commitment canonical type (#469–#471), with an 11-state lifecycle because
the coarse four-value status cannot express delivered_awaiting_acceptance.
Gap 1 — there is no way in
Step 1 (application at alfred.black) does not exist. Wasp auth only lets
someone sign into an Alfred that already exists for them. There is no
application, no queue, no provisioning trigger.
Step 3 (deployment) is a project, not a step. Provisioning is manual.
Gap 2 — day 1 requires SSH
"Connect your ChatGPT or Claude account" is, today, exactly this — it is what HermesAuthBanner.tsx:66 tells the operator to run:
A paying consultant cannot be handed a terminal on day 1. This is the real
content of #300 — not "one OAuth ceremony or two" but "can it happen in a
browser at all". A device flow is the natural shape (the dashboard shows a code
and a link, Hermes polls), mirroring the existing Tailscale card.
Note the direction: this is Alfred authenticating to the principal's ChatGPT
subscription, the opposite of the app OAuth in #546. It is also a commercial
advantage worth keeping — no per-seat model cost, no API keys in custody — but
it is unavoidable, because everything the principal sees is produced by Hermes.
Workspace choice is two of three. Slack works. The Claude connector works.
ChatGPT is #546, parked, and blocked on the one-VM-one-URL problem.
Gap 3 — the number on the signed report cannot be computed
This is the one that matters.
Point B promises 15–20 hours a month returned, on a signed monthly report.
Step 2 says "we count the hours leaking". Step 7 is "Alfred presents how it
will save you 15+ hours".
A grep across the entire repository for saved-time instrumentation returns
exactly one hit:
That is a string inside a prompt template — an LLM's guess, not a measurement.
The hours machinery that does exist (#468, alfred-hours-reconstruction)
reconstructs billable client hours from cross-source evidence for
invoicing. That is the opposite direction: it answers "how long did I work on
X", not "how much did Alfred give back".
So the central commercial claim has no instrumentation behind it. And a delta
needs a baseline, which step 2 assumes was captured on the sales call and which
nothing stores.
Why this is hard, not merely unbuilt
Attributing saved time is easy to fake and hard to defend. "Alfred handled 40
Desk cards, at 3 minutes each, therefore 2 hours" is a number that survives
exactly one sceptical question from the person signing it.
Design constraints worth committing to before any code:
Measure at the moment of action, not retrospectively. A monthly
reconstruction is a story; a per-action record with provenance is evidence.
A defensible small number beats an impressive one. This report is shown
to someone deciding whether to keep paying. One inflated month costs more
trust than a year of conservative ones earns.
No baseline, no claim. If step 2's measurement was not captured, the day
30 report should say so rather than compare against an assumption.
Gap 4 — step 7 has no surface
Nothing presents "here is the plan". Day 30 currently has no artifact.
What is genuinely fine
Steps 4, 5, 6, 9 and 10 rest on machinery that exists and works. The weekly
check-ins in steps 6 and 8 are human process and need no code. Step 10 is the
Desk, which is the daily surface already.
Nothing in day 1 is repeatable without it, and it is the smallest of these
2
Answer: do OpenAI's terms permit a daemon on a personal ChatGPT subscription?
If no, the model changes; cheaper to know before a funnel exists
3
Saved-hours instrumentation + baseline capture
The commercial promise; also the longest lead time because the design question is real
4
Day-30 plan surface
Consumes (3)
5
Signup + provisioning
Largest, and only needed when hand-holding each deployment stops scaling
Items 1 and 2 are independent and worth doing regardless.
The honest summary
Steps 4, 5, 6, 9 and 10 mostly work today. Steps 1, 2, 3 and 7 do not exist.
The binding constraint is not the onboarding ritual — that is the part that is
built. It is that the thing being sold is measured nowhere, and that day 1
currently requires a terminal.
The promise
Point A — a solo consultant with 4–15 clients whose day starts with "what
did I promise to whom?" Agreements live in their head. Prep happens at 9pm.
The AI tools they bought made it worse, because the AI forgets between sessions
and they rebuild context for the tool as well as for themselves.
Point B — same business, memory problem gone. Briefed before every call.
Every promise, decision and open loop tracked until it closes. 15–20 hours a
month returned, shown on a signed monthly report.
What already exists, and fits well
Steps 4–6 are largely built. The onboarding ritual
(
/awaken → /reading-the-room → /verify → /soul → /composing → /preparing → /first-brief → /desk) already pulls ~100 days of mail, extracts facts chunked,discovers instinct patterns, writes
USER.md/SOUL.md/RULES.md,materialises a matter pack and an errand pack, seeds day-one Desk cards and
composes a first brief. That is substantially "Alfred shows what it learned
about you" and "build your Matters".
Step 9 is a precise fit, not a coincidence. "Day 60 — discretion on" is the
tier ladder:
Asking → Confirming → Acting, where reachingActingrequiresthe principal's explicit approval (#452), enforced at two independent points
that read the shared reader in
matching/tiers.pyand fail closed. Day 60 isliterally the principal working the Approve/Decline queue on
/instincts. Theladder was built for this shape after the 2026-08-06 incident.
Step 6's training loop is real and verified. Desk click → decision →
observation → nightly reflection → tier change. Confirmed end to end.
Point A's core complaint has its primitive. "What did I promise to whom" is
the
commitmentcanonical type (#469–#471), with an 11-state lifecycle becausethe coarse four-value status cannot express
delivered_awaiting_acceptance.Gap 1 — there is no way in
Step 1 (application at alfred.black) does not exist. Wasp auth only lets
someone sign into an Alfred that already exists for them. There is no
application, no queue, no provisioning trigger.
Step 3 (deployment) is a project, not a step. Provisioning is manual.
Gap 2 — day 1 requires SSH
"Connect your ChatGPT or Claude account" is, today, exactly this — it is what
HermesAuthBanner.tsx:66tells the operator to run:A paying consultant cannot be handed a terminal on day 1. This is the real
content of #300 — not "one OAuth ceremony or two" but "can it happen in a
browser at all". A device flow is the natural shape (the dashboard shows a code
and a link, Hermes polls), mirroring the existing Tailscale card.
Note the direction: this is Alfred authenticating to the principal's ChatGPT
subscription, the opposite of the app OAuth in #546. It is also a commercial
advantage worth keeping — no per-seat model cost, no API keys in custody — but
it is unavoidable, because everything the principal sees is produced by Hermes.
Workspace choice is two of three. Slack works. The Claude connector works.
ChatGPT is #546, parked, and blocked on the one-VM-one-URL problem.
Gap 3 — the number on the signed report cannot be computed
This is the one that matters.
Point B promises 15–20 hours a month returned, on a signed monthly report.
Step 2 says "we count the hours leaking". Step 7 is "Alfred presents how it
will save you 15+ hours".
A grep across the entire repository for saved-time instrumentation returns
exactly one hit:
That is a string inside a prompt template — an LLM's guess, not a measurement.
The hours machinery that does exist (#468,
alfred-hours-reconstruction)reconstructs billable client hours from cross-source evidence for
invoicing. That is the opposite direction: it answers "how long did I work on
X", not "how much did Alfred give back".
So the central commercial claim has no instrumentation behind it. And a delta
needs a baseline, which step 2 assumes was captured on the sales call and which
nothing stores.
Why this is hard, not merely unbuilt
Attributing saved time is easy to fake and hard to defend. "Alfred handled 40
Desk cards, at 3 minutes each, therefore 2 hours" is a number that survives
exactly one sceptical question from the person signing it.
Design constraints worth committing to before any code:
reconstruction is a story; a per-action record with provenance is evidence.
pattern — an auditable per-period proposal that is never accepted
automatically at any confidence. The saved-hours report should reuse it.
to someone deciding whether to keep paying. One inflated month costs more
trust than a year of conservative ones earns.
30 report should say so rather than compare against an assumption.
Gap 4 — step 7 has no surface
Nothing presents "here is the plan". Day 30 currently has no artifact.
What is genuinely fine
Steps 4, 5, 6, 9 and 10 rest on machinery that exists and works. The weekly
check-ins in steps 6 and 8 are human process and need no code. Step 10 is the
Desk, which is the daily surface already.
Sequencing
Items 1 and 2 are independent and worth doing regardless.
The honest summary
Steps 4, 5, 6, 9 and 10 mostly work today. Steps 1, 2, 3 and 7 do not exist.
The binding constraint is not the onboarding ritual — that is the part that is
built. It is that the thing being sold is measured nowhere, and that day 1
currently requires a terminal.