@skyf0xx/hedgehog 2.0.11 → 2.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -60
- package/package.json +1 -1
- package/src/agents/landing-builder.md +18 -10
- package/src/agents/landing-copywriter.md +216 -137
- package/src/agents/landing-critic.md +19 -12
- package/src/agents/landing-headline-writer.md +89 -0
- package/src/agents/landing-sequencer.md +52 -10
- package/src/agents/landing-strategist.md +8 -5
- package/src/agents/landing-systems.md +2 -2
- package/src/skills/hedgehog-landing-loop/SKILL.md +46 -21
- package/src/skills/landing-copy-cta/SKILL.md +82 -0
- package/src/skills/landing-copy-headline/SKILL.md +133 -0
- package/src/skills/landing-copy-hero/SKILL.md +84 -0
- package/src/skills/landing-copy-mechanism/SKILL.md +86 -0
- package/src/skills/landing-copy-objection/SKILL.md +85 -0
- package/src/skills/landing-copy-problem/SKILL.md +81 -0
- package/src/skills/landing-copy-proof/SKILL.md +82 -0
- package/src/templates/CLAUDE.core.landing-page.md +30 -10
- package/src/templates/TODO.core.landing-page.md +2 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: landing-sequencer
|
|
3
|
-
description: Use for the sequence phase of the Chain Method (landing-page core) — per-section transition type, relative weight, spacing, and
|
|
3
|
+
description: Use for the sequence phase of the Chain Method (landing-page core) — per-section transition type, relative weight, spacing, beat structure, and copy archetype role. Runs after landing-systems, before landing-headline-writer and landing-copywriter. Specializes in pacing a scroll as a deliberate composition rather than a stack of sections, using Motion/Lenis as the implementation target.
|
|
4
4
|
model: sonnet
|
|
5
5
|
color: orange
|
|
6
6
|
tools: Read, Glob, Grep, Edit, Write
|
|
@@ -32,7 +32,8 @@ spec. Your artifact is the sequencing decisions, not the code.
|
|
|
32
32
|
**In:** signature element + token system (from `landing-systems`) +
|
|
33
33
|
note-timing spec (from `landing-strategist`)
|
|
34
34
|
**Out:** per-section transition type, relative section weight, per-
|
|
35
|
-
transition spacing, sub-section beat structure
|
|
35
|
+
transition spacing, sub-section beat structure, and each section's copy
|
|
36
|
+
archetype role (see Copy archetype role, below)
|
|
36
37
|
|
|
37
38
|
Treat sections as panels in sequence, after McCloud's panel-transition
|
|
38
39
|
taxonomy (*Understanding Comics*): moment-to-moment, action-to-action,
|
|
@@ -69,6 +70,38 @@ the exact section your sequence puts them — if your natural pacing wants
|
|
|
69
70
|
them elsewhere, that's a real conflict to resolve explicitly (flag it
|
|
70
71
|
back), not something to silently override.
|
|
71
72
|
|
|
73
|
+
## Copy archetype role
|
|
74
|
+
|
|
75
|
+
Alongside transition, weight, and beat, assign each section exactly one
|
|
76
|
+
role from this fixed set — the taxonomy `landing-copywriter` reads to
|
|
77
|
+
pick which `landing-copy-*` skill it invokes for that section:
|
|
78
|
+
|
|
79
|
+
- **Hero** — the section immediately beneath the headline; names the
|
|
80
|
+
mechanism and bridges to credibility (`landing-copy-hero`)
|
|
81
|
+
- **Problem** — establishes the gap the headline's outcome would close
|
|
82
|
+
(`landing-copy-problem`)
|
|
83
|
+
- **Mechanism** — explains how the product closes that gap
|
|
84
|
+
(`landing-copy-mechanism`)
|
|
85
|
+
- **Proof** — evidence the mechanism's claim is true
|
|
86
|
+
(`landing-copy-proof`)
|
|
87
|
+
- **Objection** — names and answers a specific reader hesitation
|
|
88
|
+
(`landing-copy-objection`)
|
|
89
|
+
- **CTA** — the ask, wherever it falls in the sequence
|
|
90
|
+
(`landing-copy-cta`)
|
|
91
|
+
|
|
92
|
+
A section can carry two roles only where they're genuinely the same
|
|
93
|
+
beat doing double duty (a closing section that's both Proof and CTA) —
|
|
94
|
+
name both explicitly rather than picking one arbitrarily. Don't assign a
|
|
95
|
+
role a section doesn't need just to fill out the taxonomy — a short page
|
|
96
|
+
might skip Objection entirely, and that's a legitimate sequencing
|
|
97
|
+
decision, not a gap.
|
|
98
|
+
|
|
99
|
+
Assign roles in the same pass as the beat structure: a section's role and
|
|
100
|
+
its beat count are two different decisions (role is *what job the
|
|
101
|
+
section does*, beat count is *how much room it gets*), but both come from
|
|
102
|
+
reading the same AIDA beat-map and section list, so make them together
|
|
103
|
+
rather than in separate passes.
|
|
104
|
+
|
|
72
105
|
## Workflow
|
|
73
106
|
|
|
74
107
|
1. Read `landing-systems`'s token system and signature element, and
|
|
@@ -80,10 +113,12 @@ back), not something to silently override.
|
|
|
80
113
|
4. Assign relative weight (section size) and spacing (gutter) per
|
|
81
114
|
section, plus any sub-section beat structure (setup/build/payoff)
|
|
82
115
|
within a section that needs it.
|
|
83
|
-
5.
|
|
116
|
+
5. Assign each section's copy archetype role from the fixed set (Copy
|
|
117
|
+
archetype role, above), in the same pass as its beat structure.
|
|
118
|
+
6. Confirm the peak moment and ending treatment land where
|
|
84
119
|
`landing-strategist` specified, or flag the conflict.
|
|
85
|
-
|
|
86
|
-
|
|
120
|
+
7. Self-test (below).
|
|
121
|
+
8. Commit as `feat(landing): sequence`.
|
|
87
122
|
|
|
88
123
|
## Self-test
|
|
89
124
|
|
|
@@ -95,16 +130,23 @@ back), not something to silently override.
|
|
|
95
130
|
- The whole sequence reads as one composition, checked as a whole, not
|
|
96
131
|
approved section-by-section only.
|
|
97
132
|
- The peak moment and ending treatment are placed, not omitted.
|
|
133
|
+
- Every section has exactly one archetype role (or two, only where
|
|
134
|
+
genuinely doing double duty, both named explicitly) — no section left
|
|
135
|
+
unassigned, since `landing-copywriter` can't pick a skill for a section
|
|
136
|
+
with no role.
|
|
98
137
|
|
|
99
138
|
## Constraints
|
|
100
139
|
|
|
101
|
-
- Never introduce a transition, beat, or
|
|
102
|
-
trace to the token system, the signature element, or the
|
|
103
|
-
spec — a transition chosen for variety's sake with no
|
|
104
|
-
justification is exactly what gets redlined at the next phase.
|
|
140
|
+
- Never introduce a transition, beat, emphasis, or archetype-role choice
|
|
141
|
+
that doesn't trace to the token system, the signature element, or the
|
|
142
|
+
note-timing spec — a transition chosen for variety's sake with no
|
|
143
|
+
upstream justification is exactly what gets redlined at the next phase.
|
|
105
144
|
- Never write actual Motion code, Astro markup, or final section
|
|
106
|
-
content — that's `landing-builder`'s step
|
|
145
|
+
content — that's `landing-builder`'s step 12. Your output is the spec,
|
|
107
146
|
not the implementation.
|
|
147
|
+
- Never assign an archetype role just to fill out the taxonomy — a page
|
|
148
|
+
that doesn't need an Objection section skips it; forcing one in is a
|
|
149
|
+
worse defect than an incomplete-looking set.
|
|
108
150
|
- Don't relitigate the token system or the signature element — if
|
|
109
151
|
either seems wrong for pacing purposes, flag it back to
|
|
110
152
|
`landing-systems` rather than quietly working around it.
|
|
@@ -11,9 +11,11 @@ Method (`hedgehog-landing-loop`), running steps 1–3 and 4c of the
|
|
|
11
11
|
pipeline in one context: Strategist → Brand Anthropologist →
|
|
12
12
|
Psychologist → Perfumer. Your output is the emotional target spec every
|
|
13
13
|
downstream agent (`landing-systems`, `landing-sequencer`,
|
|
14
|
-
`landing-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
`landing-headline-writer`, `landing-copywriter`, `landing-critic`,
|
|
15
|
+
`landing-builder`) must trace its choices back to. No design language, no
|
|
16
|
+
color, no type, no layout, and no finished copy — that's
|
|
17
|
+
`landing-systems`'s voice-spec job and `landing-headline-writer`'s/
|
|
18
|
+
`landing-copywriter`'s drafting job, working from what you hand them.
|
|
17
19
|
|
|
18
20
|
## Stack (locked)
|
|
19
21
|
|
|
@@ -52,7 +54,7 @@ one-line "here's the big idea" version — and get explicit go-ahead before
|
|
|
52
54
|
any adjective work is built on it. This is a hard stop, the same weight
|
|
53
55
|
as planning intake's own Confirm & Lock: every phase from here through
|
|
54
56
|
`landing-copywriter` inherits this framing silently, and by the time
|
|
55
|
-
copy is reviewed at
|
|
57
|
+
copy is reviewed at phases 9–10, correcting the framing means unwinding
|
|
56
58
|
multiple committed phases via the Correction Protocol instead of one
|
|
57
59
|
quick revision now. A revision at this point is just another pass at
|
|
58
60
|
Step 1, not a Correction Protocol entry, since nothing downstream exists
|
|
@@ -148,7 +150,8 @@ adjective is meant to fade rather than hold constant throughout the page.
|
|
|
148
150
|
taking.
|
|
149
151
|
- Never write finished copy — headlines, body prose, CTA text. Your
|
|
150
152
|
sorted adjectives and note timing are the input to `landing-systems`'s
|
|
151
|
-
|
|
153
|
+
step 4b (the voice spec) and, downstream of that, `landing-headline-writer`
|
|
154
|
+
and `landing-copywriter` — not a draft of the copy itself.
|
|
152
155
|
- Never invent audience or job details the brief didn't state or the user
|
|
153
156
|
didn't confirm. Ambiguity here means stop and ask, the same bar
|
|
154
157
|
`planner` used at intake.
|
|
@@ -85,8 +85,8 @@ itself into noise instead of a mood — this is what the self-test's
|
|
|
85
85
|
|
|
86
86
|
**In:** sorted emotional targets (from `landing-strategist`)
|
|
87
87
|
**Out:** voice spec (sentence rhythm, verb mode, user-side naming, what's
|
|
88
|
-
said vs. omitted) — rules for `landing-
|
|
89
|
-
drafted copy itself
|
|
88
|
+
said vs. omitted) — rules for `landing-headline-writer` and
|
|
89
|
+
`landing-copywriter` to write from, not drafted copy itself
|
|
90
90
|
|
|
91
91
|
Write from the user's side of the screen. Active voice by default. One
|
|
92
92
|
job per line. You have veto power over an adjective: if it's effectively
|
|
@@ -89,20 +89,26 @@ artifact; everything else is strictly sequential.
|
|
|
89
89
|
| 6 | Systems Designer | `landing-systems` | The token system (hex values, type roles, spacing unit, easing family, copy voice, with note timing attached) | bundled into `feat(landing): systems` |
|
|
90
90
|
| 7 | Signature Element | `landing-systems` | Signature element (source, persistence, continuity, scale range, literalness) | bundled into `feat(landing): systems` |
|
|
91
91
|
| 8 | Sequencer | `landing-sequencer` | Per-section transition type, weight, spacing, beat structure | `feat(landing): sequence` |
|
|
92
|
-
| 9 |
|
|
93
|
-
| 10 |
|
|
94
|
-
| 11 |
|
|
92
|
+
| 9 | Headline | `landing-headline-writer` | The headline plus 2 backups, from 3 distinct rhetorical mechanisms, reviewed and locked by the user | `feat(landing): headline` |
|
|
93
|
+
| 10 | Copywriter (one invocation per section) | `landing-copywriter` | One section's body text and CTA copy per invocation, to the fixed paragraph algorithm, reviewed and locked by the user before the next section starts | `feat(landing): copy` (one commit once every section locks, or extended per section — never split across an unlocked section) |
|
|
94
|
+
| 11 | Critic + Usability Auditor | `landing-critic` | Redlines, or a pass — reconciled traceability/distinctiveness + usability audit | `feat(landing): audit` (no commit if redlined — see Correction Protocol) |
|
|
95
|
+
| 12 | Builder | `landing-builder` | The built page, in Astro | `feat(landing): build` |
|
|
95
96
|
|
|
96
97
|
Phases 1 through 4 are one agent's context (`landing-strategist`)
|
|
97
98
|
because they're one continuous judgment call — subject into feeling into
|
|
98
99
|
timing — not separable artifacts with different tool footprints. Same
|
|
99
100
|
reasoning collapses 5–7 into `landing-systems` (everything that becomes
|
|
100
|
-
a Tailwind token or a copy rule) and
|
|
101
|
-
`landing-critic` pass.
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
101
|
+
a Tailwind token or a copy rule) and 11's reconciliation into a single
|
|
102
|
+
`landing-critic` pass. The headline is its own phase (9), one agent, one
|
|
103
|
+
artifact, one review checkpoint, because it's the single highest-leverage
|
|
104
|
+
line on the page — every section beneath it either delivers on its
|
|
105
|
+
promise or doesn't, so it locks before any section body is drafted. Copy
|
|
106
|
+
(10) is its own phase too, run once per section rather than once for the
|
|
107
|
+
whole page, specifically so the user reads and confirms each section's
|
|
108
|
+
actual words before the next section is drafted, and before either the
|
|
109
|
+
audit or the build runs — see `landing-headline-writer`'s and
|
|
110
|
+
`landing-copywriter`'s own files for their writing standards, the
|
|
111
|
+
paragraph algorithm, and their self-tests.
|
|
106
112
|
|
|
107
113
|
## The Loop (every unit of work)
|
|
108
114
|
|
|
@@ -113,14 +119,20 @@ self-test.
|
|
|
113
119
|
3. **Delegate exactly one phase** to its owning agent, passing it the
|
|
114
120
|
full chain so far (every upstream artifact, not just the immediately
|
|
115
121
|
prior one) — an agent that only sees its direct input can't verify its
|
|
116
|
-
own traceability back to the subject statement.
|
|
122
|
+
own traceability back to the subject statement. Phase 10
|
|
123
|
+
(`landing-copywriter`) is delegated once per section, in
|
|
124
|
+
`landing-sequencer`'s order — each invocation is still "exactly one
|
|
125
|
+
phase" in the sense this step means: one section, reviewed and locked,
|
|
126
|
+
before the next invocation starts.
|
|
117
127
|
4. The agent **runs its self-test** (see that agent's own file for what
|
|
118
128
|
it checks) before presenting its artifact.
|
|
119
129
|
5. The agent **commits** using the exact Conventional Commit format
|
|
120
130
|
above.
|
|
121
131
|
6. **Check off the line in `TODO.md`** once the agent reports the commit
|
|
122
|
-
landed.
|
|
123
|
-
|
|
132
|
+
landed. Phase 10 stays unchecked until every section in
|
|
133
|
+
`landing-sequencer`'s list has locked, not after the first section.
|
|
134
|
+
7. **Repeat**, one delegated phase (or one section, at phase 10) at a
|
|
135
|
+
time.
|
|
124
136
|
|
|
125
137
|
Each commit batches exactly one phase's artifact; a wrong phase is fixed
|
|
126
138
|
forward later via the Correction Protocol.
|
|
@@ -152,8 +164,10 @@ subject statement, or matches a known AI-default cluster:
|
|
|
152
164
|
agent.
|
|
153
165
|
3. Fast-forward every dependent phase that breaks. A token system change
|
|
154
166
|
(phase 6) ripples through the signature element (7), the sequence
|
|
155
|
-
(8), the
|
|
156
|
-
|
|
167
|
+
(8), the headline (9, if the voice spec shifted) and every locked
|
|
168
|
+
section of copy (10, re-run per affected section, not the whole phase
|
|
169
|
+
over again), and the build (12) — each gets its own small commit, in
|
|
170
|
+
order, not one bundled fix.
|
|
157
171
|
4. Re-run `landing-critic` against the patched chain before resuming.
|
|
158
172
|
5. The commit messages are the explanation.
|
|
159
173
|
6. Resume the loop.
|
|
@@ -168,12 +182,23 @@ confirm step 1's subject/audience/job statement has been shown to and
|
|
|
168
182
|
confirmed by the user — not just drafted. This is the cheapest point in
|
|
169
183
|
the whole chain to correct the core framing (nothing downstream exists
|
|
170
184
|
yet); every phase after it inherits that framing silently, and by the
|
|
171
|
-
time
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
Before `landing-
|
|
176
|
-
been presented to and
|
|
185
|
+
time copy is reviewed at phases 9–10, a wrong framing means unwinding
|
|
186
|
+
several committed phases via the Correction Protocol instead of one free
|
|
187
|
+
revision here.
|
|
188
|
+
|
|
189
|
+
Before `landing-copywriter` starts (phase 10), confirm
|
|
190
|
+
`landing-headline-writer`'s headline has been presented to and locked by
|
|
191
|
+
the user, not just drafted — every section's copy is written against
|
|
192
|
+
whichever headline is locked at phase 9, so an unlocked headline means
|
|
193
|
+
every section written against it is provisional too.
|
|
194
|
+
|
|
195
|
+
Before each `landing-copywriter` invocation after the first, confirm the
|
|
196
|
+
previous section is locked, not just presented — the next section's
|
|
197
|
+
continuity check (no repeated claims, no synonym drift) reads the prior
|
|
198
|
+
section's actual locked text, not a draft still awaiting edits.
|
|
199
|
+
|
|
200
|
+
Before `landing-critic` starts, confirm every section `landing-copywriter`
|
|
201
|
+
wrote has been presented to and locked by the user, not just written —
|
|
177
202
|
`landing-critic`'s traceability audit reads confirmed copy, not a draft
|
|
178
203
|
still awaiting review.
|
|
179
204
|
|
|
@@ -181,7 +206,7 @@ Before `landing-builder` starts, confirm:
|
|
|
181
206
|
|
|
182
207
|
- `landing-critic` returned a pass, not a redline — a redlined spec never
|
|
183
208
|
reaches the Builder; it goes back to the phase the redline names.
|
|
184
|
-
- Every phase 1–
|
|
209
|
+
- Every phase 1–11 has its commit landed.
|
|
185
210
|
|
|
186
211
|
Before `landing-strategist` starts, confirm planning intake's Confirm &
|
|
187
212
|
Lock has held and its commit has landed. If not, stop and ask.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: landing-copy-cta
|
|
3
|
+
description: Use whenever `landing-copywriter` drafts the CTA/close — the final ask, or any mid-page section `landing-sequencer` assigned the CTA. Trigger when a section carries the token system's CTA styling intent, distinct from every other archetype (which build the case, not make the ask).
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Landing Copy: CTA / Close
|
|
7
|
+
|
|
8
|
+
This is the ask. Every other section builds toward this moment; this
|
|
9
|
+
section's only job is to make the ask itself, matched to the urgency the
|
|
10
|
+
token system already specified. It is not a place to introduce new
|
|
11
|
+
argument, new proof, or new mechanism — if the case isn't made by the
|
|
12
|
+
time this section runs, that's an upstream section's gap, not something
|
|
13
|
+
to patch here with more copy.
|
|
14
|
+
|
|
15
|
+
## What this section answers
|
|
16
|
+
|
|
17
|
+
One thing: **what does the reader do right now?** Not why (that's every
|
|
18
|
+
section before this one), not what happens after (a line of reassurance
|
|
19
|
+
is allowed, but this section doesn't re-argue the case) — the specific
|
|
20
|
+
action, named as an action.
|
|
21
|
+
|
|
22
|
+
## The algorithm
|
|
23
|
+
|
|
24
|
+
Per `landing-copywriter`'s paragraph algorithm, a CTA-only section gets
|
|
25
|
+
**0 paragraphs — 1 line**, rendered as a `>` blockquote per the output
|
|
26
|
+
format. Where `landing-sequencer` assigns the CTA to a section that also
|
|
27
|
+
carries a beat (a closing section with both a payoff paragraph and the
|
|
28
|
+
ask), the CTA line still stays separate from the paragraph — never
|
|
29
|
+
merged into the last sentence of prose.
|
|
30
|
+
|
|
31
|
+
The line itself, in order:
|
|
32
|
+
|
|
33
|
+
1. **Verb first, plain and specific.** "Start your free trial," not "Get
|
|
34
|
+
started" if there's a more specific verb available — "Get started" is
|
|
35
|
+
correct only when it's genuinely the most specific true description
|
|
36
|
+
of the action.
|
|
37
|
+
2. **Match the token system's urgency.** If `landing-systems` marked the
|
|
38
|
+
CTA high-urgency, the verb mode carries that (imperative, immediate:
|
|
39
|
+
"Start now"). If low-pressure, the verb mode matches (invitational,
|
|
40
|
+
unhurried: "See how it works"). A CTA whose verb mode contradicts the
|
|
41
|
+
token system's stated intent is a mismatch to fix here, not something
|
|
42
|
+
`landing-builder` should silently soften or sharpen later.
|
|
43
|
+
3. **No stacked qualifiers.** One clear verb phrase — "Start your free
|
|
44
|
+
14-day trial, no credit card required" crams a second claim into the
|
|
45
|
+
CTA line itself; if that reassurance is load-bearing, it's a
|
|
46
|
+
fragment of copy just below the button, not inside the CTA text.
|
|
47
|
+
|
|
48
|
+
## Writing standard (scoped to this section)
|
|
49
|
+
|
|
50
|
+
- Apply `landing-copywriter`'s full writing standard.
|
|
51
|
+
- **No stock closers.** Never end the page on "the future looks bright"
|
|
52
|
+
or "join us on this journey" — the CTA is the specific action, not a
|
|
53
|
+
sentiment.
|
|
54
|
+
- **No urgency manufactured with punctuation or caps.** Urgency comes
|
|
55
|
+
from verb mode and the token system's specified intent, never from an
|
|
56
|
+
exclamation point or all-caps standing in for an actual persuasive
|
|
57
|
+
reason.
|
|
58
|
+
- **No hedge in the ask.** "You might want to consider starting a trial"
|
|
59
|
+
fails here completely — the ask is direct or it isn't an ask.
|
|
60
|
+
|
|
61
|
+
## Self-test
|
|
62
|
+
|
|
63
|
+
- The line is a specific action verb, not a vague "Learn more" where a
|
|
64
|
+
more specific true verb was available.
|
|
65
|
+
- Verb mode matches the token system's stated CTA urgency (high-pressure
|
|
66
|
+
vs. low-pressure) — checked explicitly, not assumed.
|
|
67
|
+
- The line stands alone as a `>` blockquote, not merged into the
|
|
68
|
+
preceding paragraph's last sentence.
|
|
69
|
+
- No new argument, proof, or mechanism claim appears in this section —
|
|
70
|
+
if the case isn't made by now, that's flagged upstream, not patched
|
|
71
|
+
here.
|
|
72
|
+
|
|
73
|
+
## Constraints
|
|
74
|
+
|
|
75
|
+
- Never introduce new persuasive content in the CTA section — its job
|
|
76
|
+
is the ask, not one more argument.
|
|
77
|
+
- Never let the CTA's verb mode drift from what the token system
|
|
78
|
+
specified for this build — a mismatch here is a defect, not a stylistic
|
|
79
|
+
choice.
|
|
80
|
+
- Never stack a second claim or qualifier into the CTA line itself —
|
|
81
|
+
supporting reassurance is separate copy, not part of the action verb
|
|
82
|
+
phrase.
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: landing-copy-headline
|
|
3
|
+
description: Use whenever `landing-headline-writer` drafts the page headline (Chain Method step 9). Gives the 8 named rhetorical mechanisms, the outcome-subject test, and the selection procedure for generating 3 distinct-mechanism candidates and presenting them for the user's lock. Trigger on "write the headline", "headline candidates", or the start of `landing-headline-writer`'s own workflow.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Landing Copy: Headline
|
|
7
|
+
|
|
8
|
+
The headline is the single highest-leverage line on the page — every
|
|
9
|
+
section beneath it either delivers on its promise or doesn't. This skill
|
|
10
|
+
is the algorithm `landing-headline-writer` runs to generate it: don't
|
|
11
|
+
draft headline wording by feel, run the mechanism generation and the
|
|
12
|
+
outcome-subject test below every time.
|
|
13
|
+
|
|
14
|
+
This skill covers the headline only. The subhead or lede immediately
|
|
15
|
+
beneath it, if the page has one, is `landing-copywriter`'s
|
|
16
|
+
`landing-copy-hero` skill — a different section, a different algorithm.
|
|
17
|
+
|
|
18
|
+
## Step 1: Pull the raw material, don't invent it
|
|
19
|
+
|
|
20
|
+
Read, don't re-derive:
|
|
21
|
+
|
|
22
|
+
- `landing-strategist`'s subject/audience/job statement — the concrete
|
|
23
|
+
claim available to make
|
|
24
|
+
- The adjective pairs and their named opposites — what the headline is
|
|
25
|
+
allowed to promise emotionally
|
|
26
|
+
- `landing-systems`'s voice spec — sentence rhythm, verb mode, user-side
|
|
27
|
+
naming
|
|
28
|
+
|
|
29
|
+
Every candidate below is generated from this material. A headline that
|
|
30
|
+
doesn't trace to a specific adjective or the subject statement fails
|
|
31
|
+
`landing-critic`'s traceability audit later — catch that here, not there.
|
|
32
|
+
|
|
33
|
+
## Step 2: Generate one candidate per mechanism
|
|
34
|
+
|
|
35
|
+
Generate against at least 3 of these 8, chosen as whichever the subject
|
|
36
|
+
statement actually supports — not the same 3 by default on every build:
|
|
37
|
+
|
|
38
|
+
- **Outcome** — state the desired outcome directly ("Build software
|
|
39
|
+
that holds together.")
|
|
40
|
+
- **Transformation** — current state → desired state ("Turn ideas into
|
|
41
|
+
products people use.")
|
|
42
|
+
- **Tension** — expectation → contradiction ("Your product is ready.
|
|
43
|
+
Your story isn't.")
|
|
44
|
+
- **Reframe** — common frame → stronger frame ("Your website isn't a
|
|
45
|
+
brochure. It's a decision engine.")
|
|
46
|
+
- **Provocation** — command → uncomfortable truth ("Stop building
|
|
47
|
+
features nobody asked for.")
|
|
48
|
+
- **Identity** — audience → belief or standard ("For teams that refuse
|
|
49
|
+
to ship generic software.")
|
|
50
|
+
- **Mechanism** — how it works → implied benefit ("A disciplined path
|
|
51
|
+
from schema to screen.") — use only when the mechanism itself is the
|
|
52
|
+
distinctive, ownable claim; it still has to pass Step 3.
|
|
53
|
+
- **Curiosity** — open question → implied possibility ("What happens
|
|
54
|
+
when your tools finally work together?")
|
|
55
|
+
|
|
56
|
+
Generate from **distinct mechanisms**, not three phrasings of one idea —
|
|
57
|
+
the point is testing which mechanism the subject statement actually
|
|
58
|
+
supports, not polishing a single guess.
|
|
59
|
+
|
|
60
|
+
## Step 3: The outcome-subject test (run on every candidate)
|
|
61
|
+
|
|
62
|
+
**The reader wants an outcome, not the mechanism that produces it** — the
|
|
63
|
+
headline's grammatical subject must be what the reader gets (what
|
|
64
|
+
changes for them, what they now have or no longer have to worry about),
|
|
65
|
+
not the product, feature, or mechanism that delivers it.
|
|
66
|
+
|
|
67
|
+
Run this test by reading only the headline, with no subhead for context:
|
|
68
|
+
does it state what the reader gets, or does it name the thing that gets
|
|
69
|
+
it to them?
|
|
70
|
+
|
|
71
|
+
- "One signature. Three uses." **fails** — the signature is the subject.
|
|
72
|
+
- "Your agent's work outlives the session that made it." **passes.**
|
|
73
|
+
|
|
74
|
+
A headline built from the subject statement's own phrasing ("ZenBin is
|
|
75
|
+
one cryptographic trust primitive...") tends to smuggle the mechanism
|
|
76
|
+
into the subject position by default — naming it is not the same as
|
|
77
|
+
leading with it. Demote the mechanism one level: it belongs in the
|
|
78
|
+
subhead or the sentence right after, earning its specificity once the
|
|
79
|
+
outcome has already landed. If a candidate only works because the reader
|
|
80
|
+
already knows what the mechanism is for, it's failing this test, not
|
|
81
|
+
passing it narrowly.
|
|
82
|
+
|
|
83
|
+
**This test overrides mechanism choice.** An Outcome- or
|
|
84
|
+
Transformation-mechanism candidate that fails it still fails, and a
|
|
85
|
+
Mechanism-mechanism candidate that passes it is still eligible. Rewrite
|
|
86
|
+
or cut any candidate that fails before Step 4.
|
|
87
|
+
|
|
88
|
+
## Step 4: Apply the writing standard
|
|
89
|
+
|
|
90
|
+
Scoped to a single line — the same bar `landing-copywriter` holds section
|
|
91
|
+
copy to:
|
|
92
|
+
|
|
93
|
+
- **Cut inflated words.** No "delve," "landscape," "robust,"
|
|
94
|
+
"comprehensive," "leverage," "seamless," "cutting-edge," "elevate,"
|
|
95
|
+
"unlock," "empower," "streamline," "game-changer," "harness,"
|
|
96
|
+
"revolutionize," or any word from that register.
|
|
97
|
+
- **No negation formulas.** Never write "It's not X — it's Y."
|
|
98
|
+
- **No em dashes.** Use a comma, period, or restructure the sentence.
|
|
99
|
+
- **Concrete over abstract.** A claim like "significant improvement"
|
|
100
|
+
ships only with the number, name, or comparison that makes it
|
|
101
|
+
checkable. If the brief doesn't supply one, the claim doesn't ship in
|
|
102
|
+
that form.
|
|
103
|
+
|
|
104
|
+
## Step 5: Select and present
|
|
105
|
+
|
|
106
|
+
Select the 3 strongest, distinct candidates that survived Steps 3 and 4.
|
|
107
|
+
Label each with its mechanism name and present all 3 to the user — this
|
|
108
|
+
is a hard stop; wait for an explicit pick (the other 2 stand as backups)
|
|
109
|
+
or a redirect. Every section `landing-copywriter` writes afterward is
|
|
110
|
+
checked against whichever headline locks here, so an unconfirmed pick
|
|
111
|
+
compounds the same way an unconfirmed subject statement does at strategy
|
|
112
|
+
step 1.
|
|
113
|
+
|
|
114
|
+
## Self-test
|
|
115
|
+
|
|
116
|
+
- All 3 presented candidates came from 3 distinct mechanisms, not 3
|
|
117
|
+
phrasings of the same one.
|
|
118
|
+
- Every candidate traces to a named adjective or the subject statement —
|
|
119
|
+
a line that could run on a competitor's page unchanged (the swap test)
|
|
120
|
+
was rewritten before presenting, not left for `landing-critic` to
|
|
121
|
+
catch.
|
|
122
|
+
- Every candidate passed the outcome-subject test individually — not
|
|
123
|
+
waved through because the set as a whole "feels balanced."
|
|
124
|
+
- The user was shown all 3, labeled by mechanism, and explicitly picked
|
|
125
|
+
or redirected — not assumed.
|
|
126
|
+
|
|
127
|
+
## Constraints
|
|
128
|
+
|
|
129
|
+
- Never present fewer than 3 distinct-mechanism candidates.
|
|
130
|
+
- Never lock a headline without the user's explicit confirmation.
|
|
131
|
+
- Never draft the subhead, section body, or CTA copy here — that's
|
|
132
|
+
`landing-copywriter`'s `landing-copy-hero` and other section skills,
|
|
133
|
+
run only after this one locks.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: landing-copy-hero
|
|
3
|
+
description: Use whenever `landing-copywriter` drafts the section directly beneath the locked headline — the subhead/lede that makes the headline's claim credible. Trigger when the section's role is "hero support" in `landing-sequencer`'s list, distinct from the headline itself (`landing-copy-headline`) or the problem/agitation section (`landing-copy-problem`).
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Landing Copy: Hero (subhead/lede)
|
|
7
|
+
|
|
8
|
+
The hero section's job is narrow: make the headline's claim credible in
|
|
9
|
+
one breath, before the reader has committed to reading further. It is not
|
|
10
|
+
the place to make the full case — that's every section after it. A hero
|
|
11
|
+
section that tries to argue, prove, or handle objections has taken on a
|
|
12
|
+
different section's job.
|
|
13
|
+
|
|
14
|
+
This skill covers the section immediately beneath the locked headline
|
|
15
|
+
only. The headline itself is `landing-headline-writer`'s
|
|
16
|
+
`landing-copy-headline` skill.
|
|
17
|
+
|
|
18
|
+
## What this section answers
|
|
19
|
+
|
|
20
|
+
One question, in this order:
|
|
21
|
+
|
|
22
|
+
1. **What is the mechanism, named plainly?** The headline led with the
|
|
23
|
+
outcome and deliberately withheld the mechanism (per
|
|
24
|
+
`landing-copy-headline`'s outcome-subject test) — this section is
|
|
25
|
+
where that mechanism gets named, in plain language, for the first
|
|
26
|
+
time.
|
|
27
|
+
2. **Why should the reader believe the headline's claim is achievable,
|
|
28
|
+
not aspirational?** One line of credibility, not a proof point (proof
|
|
29
|
+
points belong to `landing-copy-proof`) — a plain statement of how the
|
|
30
|
+
mechanism gets the reader from their current state to the headline's
|
|
31
|
+
promise.
|
|
32
|
+
|
|
33
|
+
## The algorithm
|
|
34
|
+
|
|
35
|
+
Per this core's fixed paragraph algorithm (`landing-copywriter`'s own
|
|
36
|
+
file): this section's paragraph count is set by however many beats
|
|
37
|
+
`landing-sequencer` assigned it, almost always 1 (a hero is rarely a
|
|
38
|
+
multi-beat section). Within that single paragraph:
|
|
39
|
+
|
|
40
|
+
1. **Sentence 1 — name the mechanism.** Plain verb, plain noun. No
|
|
41
|
+
abstraction standing in for the thing itself (the same plain-verb
|
|
42
|
+
discipline `landing-strategist` applies at the subject-statement
|
|
43
|
+
stage).
|
|
44
|
+
2. **Sentence 2 (only if the beat has room) — the credibility bridge.**
|
|
45
|
+
One sentence connecting the mechanism to the headline's promise: how
|
|
46
|
+
doing this thing gets the reader that outcome. Not evidence, not a
|
|
47
|
+
number — that's `landing-copy-proof`'s job — just the logical link
|
|
48
|
+
made explicit.
|
|
49
|
+
|
|
50
|
+
Two sentences is the ceiling for a single-beat hero. If it's taking a
|
|
51
|
+
third sentence to make the mechanism credible, the mechanism itself is
|
|
52
|
+
underspecified — flag it back rather than padding the section to compensate.
|
|
53
|
+
|
|
54
|
+
## Writing standard (scoped to this section)
|
|
55
|
+
|
|
56
|
+
- Apply `landing-copywriter`'s full writing standard (inflated words, em
|
|
57
|
+
dashes, hedge stacks, etc.) — this section gets no exception.
|
|
58
|
+
- **No proof, no numbers, no named evidence here.** A stat or case study
|
|
59
|
+
in the hero section is `landing-copy-proof`'s content pulled forward —
|
|
60
|
+
redirect it downstream, keep this section to the plain claim.
|
|
61
|
+
- **No objection-handling here.** "But you might be wondering..." belongs
|
|
62
|
+
to `landing-copy-objection`, not this section.
|
|
63
|
+
- Match the token system's CTA styling intent only if this section
|
|
64
|
+
carries a CTA (rare — most builds put the CTA in `landing-copy-cta`'s
|
|
65
|
+
section instead).
|
|
66
|
+
|
|
67
|
+
## Self-test
|
|
68
|
+
|
|
69
|
+
- The mechanism is named in plain language, not gestured at.
|
|
70
|
+
- The section makes no argument, cites no proof, and handles no
|
|
71
|
+
objection — those are the next sections' jobs.
|
|
72
|
+
- Paragraph count matches the beat count `landing-sequencer` assigned —
|
|
73
|
+
1 paragraph for a single beat, not padded to 2 for weight.
|
|
74
|
+
- Read against the locked headline: does this section make the headline
|
|
75
|
+
more believable, or does it just restate the headline in different
|
|
76
|
+
words? Restating fails this test.
|
|
77
|
+
|
|
78
|
+
## Constraints
|
|
79
|
+
|
|
80
|
+
- Never draft the headline itself — that's `landing-copy-headline`,
|
|
81
|
+
already locked before this section starts.
|
|
82
|
+
- Never pull proof points, stats, or objection-handling into this
|
|
83
|
+
section to make it feel more substantial — a thin hero section is
|
|
84
|
+
correct; padding it borrows from a downstream section's job.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: landing-copy-mechanism
|
|
3
|
+
description: Use whenever `landing-copywriter` drafts a mechanism/how-it-works section — the section that resolves the problem section's tension by explaining how the product changes the situation. Trigger when the section's role in `landing-sequencer`'s list is to earn the headline's claim through explanation, distinct from proof (evidence the claim is true) or pricing (tiers and plans).
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Landing Copy: Mechanism (how it works)
|
|
7
|
+
|
|
8
|
+
This section earns the claim the headline made and the hero section
|
|
9
|
+
named. Its job is explanation, not evidence — "here is how this changes
|
|
10
|
+
your situation," not "here is why you should believe it changes your
|
|
11
|
+
situation" (that's `landing-copy-proof`). A mechanism section that leans
|
|
12
|
+
on stats or testimonials instead of actually explaining the how has
|
|
13
|
+
borrowed proof's job instead of doing its own.
|
|
14
|
+
|
|
15
|
+
## What this section answers
|
|
16
|
+
|
|
17
|
+
One question: **how, specifically, does the product close the gap the
|
|
18
|
+
problem section named?** Specific enough that the reader could explain
|
|
19
|
+
it back in one sentence. A mechanism explained so abstractly it could
|
|
20
|
+
describe any competing product's approach unchanged has failed the swap
|
|
21
|
+
test the same way an ungrounded adjective does.
|
|
22
|
+
|
|
23
|
+
## The algorithm
|
|
24
|
+
|
|
25
|
+
Paragraph count from the beat count `landing-sequencer` assigned. Order
|
|
26
|
+
within budget:
|
|
27
|
+
|
|
28
|
+
1. **State the mechanism directly.** The specific thing the product does
|
|
29
|
+
— a feature, a process, a discipline — named plainly, in the same
|
|
30
|
+
register the hero section used (no re-invention of terminology
|
|
31
|
+
mid-page; if the hero section named it one way, this section uses the
|
|
32
|
+
same name — no synonym cycling across section boundaries).
|
|
33
|
+
2. **Connect it to the problem section's specific friction.** Not a
|
|
34
|
+
generic benefit statement — the mechanism resolving the exact cost the
|
|
35
|
+
problem section named. This is the section's actual load-bearing
|
|
36
|
+
sentence: if it could be deleted and the mechanism would still sound
|
|
37
|
+
equally justified, it's not doing its job.
|
|
38
|
+
3. **Land on the changed state.** Close on what's now true for the reader
|
|
39
|
+
that wasn't true before this section — the transformation completed,
|
|
40
|
+
not a segue into proof or a preview of what's coming.
|
|
41
|
+
|
|
42
|
+
A 1-beat mechanism section compresses all three (state it, connect it,
|
|
43
|
+
land the change) into one paragraph; a 3-beat section earns each its own
|
|
44
|
+
paragraph, particularly when the mechanism has real internal steps worth
|
|
45
|
+
walking through (in which case genuinely enumerable steps become a `-`
|
|
46
|
+
list per `landing-copywriter`'s output format, alongside the connecting
|
|
47
|
+
prose — not instead of it).
|
|
48
|
+
|
|
49
|
+
## Writing standard (scoped to this section)
|
|
50
|
+
|
|
51
|
+
- Apply `landing-copywriter`'s full writing standard.
|
|
52
|
+
- **No unnamed authority, here specifically.** A mechanism section is the
|
|
53
|
+
easiest place to reach for "proven approach" or "industry-standard
|
|
54
|
+
method" without naming what makes it proven — if there's no named
|
|
55
|
+
source, state the mechanism as the product's own claim, not a floated
|
|
56
|
+
authority.
|
|
57
|
+
- **List-shaped content only for genuine steps.** If the mechanism has 3+
|
|
58
|
+
discrete, ordered steps, a numbered or bulleted list is correct per
|
|
59
|
+
`landing-copywriter`'s output format. If it's one continuous idea, keep
|
|
60
|
+
it prose — don't force steps that don't exist to make the section look
|
|
61
|
+
more substantial.
|
|
62
|
+
- **No proof creep.** A specific number, a named customer, a benchmark —
|
|
63
|
+
all belong to `landing-copy-proof`. If a proof point is doing the
|
|
64
|
+
persuading here instead of the mechanism's own logic, that's the wrong
|
|
65
|
+
section carrying the weight.
|
|
66
|
+
|
|
67
|
+
## Self-test
|
|
68
|
+
|
|
69
|
+
- The mechanism is named specifically enough to explain back in one
|
|
70
|
+
sentence — not a category noun standing in for the actual thing (the
|
|
71
|
+
same plain-verb discipline from `landing-strategist`'s step 1).
|
|
72
|
+
- This section's central claim connects directly to the specific
|
|
73
|
+
friction the problem section named, not a generic benefit.
|
|
74
|
+
- No proof point (stat, name, benchmark) appears here — that content is
|
|
75
|
+
flagged to `landing-copy-proof` instead.
|
|
76
|
+
- The terminology matches whatever the hero section already named the
|
|
77
|
+
mechanism — no synonym rotation across the section boundary.
|
|
78
|
+
|
|
79
|
+
## Constraints
|
|
80
|
+
|
|
81
|
+
- Never lean on a proof point instead of an actual explanation — a
|
|
82
|
+
mechanism section that's mostly a stat has skipped its own job.
|
|
83
|
+
- Never introduce new terminology for something already named in the
|
|
84
|
+
hero section.
|
|
85
|
+
- Never turn a single continuous idea into a padded list to look more
|
|
86
|
+
thorough — list only what's genuinely enumerable.
|