๐Ÿ— KeyzHub
19Keys ยท community archive
3195 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
# Progress

**Last Updated:** harness build session, 2026-07-12
**Current Objective:** stand up the email-marketing harness gate; verify it against real deliverables.
**Recommended Next Step:** build the first real `launch-sequence` or `daily-email` artifact into `workspace/` and run it through `verify_email_marketing.py`.

## Master

`email-marketing` (agent: `email-strategist`) โ€” MANUAL.md is the deep knowledge; this harness is the operating discipline. 9 playbooks live in `playbooks/`.

## Feature status (see `feature_list.json` for full detail)

| Feature | Status | Evidence |
|---|---|---|
| `welcome-sequence` | done | `samples/good/welcome-sequence.md` passes `verify_email_marketing.py` (exit 0); `samples/bad/welcome-sequence.md` fails on 8 named checks (exit 1) |
| `launch-sequence` | todo | โ€” |
| `ecom-flow-set` | todo | โ€” |
| `daily-email` | todo | โ€” |
| `reactivation-campaign` | todo | โ€” |
| `deliverability-audit` | todo | โ€” |

## Last verified

`./init.sh` โ€” PASS. Confirmed both directions of the anti-theater gate:
- `samples/good/welcome-sequence.md` โ†’ linter exits 0.
- `samples/bad/welcome-sequence.md` โ†’ linter exits 1 on 8 named checks (email count, hard pitch before email 3, missing compliance tags, multi-CTA email, missing lead-magnet delivery, wrong pitch count, unclosed loop).

## Next step

1. Pick the next `todo` feature (no dependencies block any of them โ€” all five remaining features are independently startable).
2. Write a real deliverable into `workspace/<feature-id>.md` with the correct frontmatter `type:` and the field format the linter expects (see `samples/good/welcome-sequence.md` for the welcome-sequence format; extend the same block style for the others โ€” see `verify_email_marketing.py`'s per-type parser for the exact fields each rubric checks).
3. Run `python3 verify_email_marketing.py workspace/<feature-id>.md` until it passes.
4. Update `feature_list.json` (`status: "done"`, real `evidence` line) and this file.

## Blockers

None on the harness itself. Note (context, not a harness blocker): the real
19Keys sending channel is still blocked on the CAN-SPAM postal-address P0 and
DMARC publication (`MANUAL.md` ยง9.2, ยง9.6) โ€” the `deliverability-audit`
feature, when built for real, should reflect that honestly (mostly `[todo]`
items) rather than an optimistic all-`[verified]` checklist.

## Log

- (seed) Harness scaffolded to match the `build-your-own-x` pattern: `AGENTS.md`, `feature_list.json`, `init.sh`, `verify_email_marketing.py`, `samples/good/`, `samples/bad/`, `progress.md`, `session-handoff.md`. 9 playbooks already existed in `playbooks/` from a prior session.
- Built `verify_email_marketing.py` covering all 6 deliverable-type rubrics from `MANUAL.md` ยง8.1 (welcome-sequence, launch-sequence, ecom-flow-set, daily-email, reactivation-campaign, deliverability-audit).
- Wrote `samples/good/welcome-sequence.md` (passes) and `samples/bad/welcome-sequence.md` (fails on 8 named checks) to prove the gate.
- `./init.sh` confirmed both directions hold. Marked `welcome-sequence` feature `done` on that evidence; all other features left honestly `todo` pending real `workspace/` artifacts.