🗝 KeyzHub
19Keys · community archive
5436 bytes raw
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# AGENTS.md — funnel-psychology harness

This master owns the **structure of the conversion path** — the funnel-psychologist's
skeleton, not the copy/sends/triggers other masters put on it (see `MANUAL.md` section 1.2
for the exact hand-off boundary). This harness turns the manual's knowledge into disciplined,
verifiable deliverable production across sessions, without drift.

## Startup Workflow (every session, in order)

1. Read `progress.md` — the active deliverable, current feature, and last-verified state.
2. Read `feature_list.json` — the single source of truth for what's done and what's next.
3. Read `session-handoff.md` — anything not obvious from the two files above.
4. Run `./init.sh` — the gate. **Never trust a prior "done" claim — re-run it.** It proves the
   linter (`verify_funnel_psychology.py`) actually catches bullshit by checking it passes
   `samples/good/*` and fails `samples/bad/*`. If `init.sh` fails, the harness itself is broken
   and no deliverable in this session can be trusted as done — fix the gate first.
5. Pick the **one** feature in `feature_list.json` whose `status` is `in_progress`, or the
   first `todo` whose `dependencies` are all `done`.

## Working rules

- **One feature at a time.** One deliverable type in flight — don't start a second before the
  current one is `done` with evidence.
- **Stay in scope.** Build only the deliverable named by the active feature. Do not invent a
  sixth deliverable type without the user's go-ahead.
- **Build inside `workspace/`.** Every deliverable file goes in `workspace/`. Never edit
  `MANUAL.md` — it is reference knowledge, not a working file.
- **Reference `MANUAL.md`, do not inline it.** Cite section numbers (e.g. "per Schwartz, §2.1")
  in deliverables; do not paste manual paragraphs into the deliverable itself.

## Definition of Done (per feature)

A feature is `done` only when ALL are true:

1. Its `verify` command in `feature_list.json` exits 0 — run
   `python3 verify_funnel_psychology.py workspace/<file>.md --type <deliverable-type>` and read
   the printed check list, not just the exit code.
2. `./init.sh` still passes end-to-end (the anti-theater gate holds — no regressions).
3. `feature_list.json` is updated: `status: "done"` + a one-line `evidence` string (the exact
   command + result that proved it, e.g. `"python3 verify_funnel_psychology.py workspace/funnel-blueprint.md --type funnel-blueprint -> PASS"`).
4. `progress.md` "Last verified" line is updated.

If you cannot produce evidence, the feature is **not** done — leave it `in_progress` and name
the blocker in `progress.md`. **NO evidence = NOT done**, full stop.

## End of Session routine

1. Update `feature_list.json` status/evidence for anything touched this session.
2. Update `progress.md`: active feature, last-verified command + result, next step.
3. Refresh `session-handoff.md` with anything the next session needs that isn't obvious from
   the two files above.
4. Leave the tree in a runnable state (`./init.sh` green), or mark the broken feature
   `in_progress` with the failure named plainly.

## Choosing a deliverable type

The five features ARE the five deliverable types this master can produce on demand
(see `MANUAL.md` section 8 for the full rubric each one is linted against):

| Feature id | What it is | Rubric anchor |
|---|---|---|
| `funnel-blueprint` | full stage-topology + offer-ladder design | MANUAL §3, §8.1 |
| `offer-stack` | one offer via Hormozi's value equation | MANUAL §4.5, §8.3 |
| `landing-page-spec` | one page's conversion contract | MANUAL §8.2 |
| `funnel-audit` | diagnosis of an existing/live funnel | MANUAL §3.7, §8.4 |
| `split-test-plan` | hypothesis-driven test entries | MANUAL §8.5 |

## Choosing a style / playbook

Once the deliverable type is picked, `MANUAL.md` section 5 (Decision Frameworks) selects the
**named style** to run — awareness × price (§5.1), sophistication overlay (§5.2), list
temperature (§5.3), Abraham's three-levers check (§5.4), the B=MAP pre-mortem (§5.5). The
concrete step-by-step build for each selected style lives in `playbooks/<style>.md` — read the
one style file you're using, not all ten.

## The no-bullshit bar (what the gate actually enforces)

`verify_funnel_psychology.py` is a real linter, not a stub — it parses markdown sections,
counts CTAs per stage, checks every conversion number for a `[benchmark|historical|guess]`
source tag, checks proof items for `[testimonial|data|demo|authority]` tags, greps for banned
hype words (`guaranteed`, `effortless`, `secret loophole`), and enforces sequential ranking on
fix lists. See `MANUAL.md` section 8.6 for the ten named ways practitioners fake competence —
that list is the direct spec for what the linter checks. If a deliverable "feels done" but the
linter fails it, the linter is right until proven otherwise — read its printed check names, fix
the deliverable, don't weaken the rubric.

## Bridge to the live stack

This master's blueprints are contracts other masters and agents execute against — the
`copywriting`, `email-marketing`, and `crm-automation` growth-masters, and the `funnel-closer`,
`outreach-operator`, and `lead-pipeline` agents. See `MANUAL.md` section 9 for the exact
hand-off table and the live 19Keys situation this master's first blueprint should target
(the 4,591-buyer / $611K / 0-ascension-emails Sovereign CRM problem).