@skyf0xx/hedgehog 2.0.5 → 2.0.6
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/package.json
CHANGED
|
@@ -93,7 +93,18 @@ directly while writing, not as a pass after:
|
|
|
93
93
|
`landing-systems`'s voice spec and token system, `landing-sequencer`'s
|
|
94
94
|
section list and beat structure — not a summary of any of them.
|
|
95
95
|
2. Write the headline plus 2 backups, each usable against the subject
|
|
96
|
-
statement's single job.
|
|
96
|
+
statement's single job. **The reader wants an outcome, not the
|
|
97
|
+
mechanism that produces it** — the headline's grammatical subject must
|
|
98
|
+
be what the reader gets (what changes for them, what they now have or
|
|
99
|
+
no longer have to worry about), not the product, feature, or mechanism
|
|
100
|
+
that delivers it. A headline built from the subject statement's own
|
|
101
|
+
phrasing ("ZenBin is one cryptographic trust primitive...") tends to
|
|
102
|
+
smuggle the mechanism into the subject position by default — naming it
|
|
103
|
+
is not the same as leading with it. Demote the mechanism one level: it
|
|
104
|
+
belongs in the subhead or the sentence right after, earning its
|
|
105
|
+
specificity once the outcome has already landed. If a backup headline
|
|
106
|
+
only works because the reader already knows what the mechanism is
|
|
107
|
+
for, it's failing this test, not passing it narrowly.
|
|
97
108
|
3. Write each section's copy in `landing-sequencer`'s order, to its
|
|
98
109
|
assigned beat.
|
|
99
110
|
4. Write CTA text, checked against the token system's CTA styling intent
|
|
@@ -119,6 +130,16 @@ directly while writing, not as a pass after:
|
|
|
119
130
|
- The headline and every section trace to a named adjective or the
|
|
120
131
|
subject statement — a line that could run on a competitor's page
|
|
121
132
|
unchanged (the swap test, applied to copy specifically) gets rewritten.
|
|
133
|
+
- **The headline's subject is the reader's outcome, not the mechanism.**
|
|
134
|
+
Read only the headline, with no subhead for context: does it state
|
|
135
|
+
what the reader gets, or does it name the thing that gets it to them?
|
|
136
|
+
"One signature. Three uses." fails this (the signature is the
|
|
137
|
+
subject); "Your agent's work outlives the session that made it."
|
|
138
|
+
passes (the outcome is the subject, and "signature" doesn't need to
|
|
139
|
+
appear at all). If the headline's first noun phrase is the product,
|
|
140
|
+
the feature, or the underlying mechanism rather than the change in the
|
|
141
|
+
reader's situation, rewrite it before presenting — don't let it pass
|
|
142
|
+
because it's otherwise on-voice and traceable.
|
|
122
143
|
|
|
123
144
|
## Constraints
|
|
124
145
|
|
|
@@ -27,7 +27,8 @@ literally.
|
|
|
27
27
|
|
|
28
28
|
**In:** raw brief (from `planner`'s planning intake,
|
|
29
29
|
`.hedgehog/chain/00-brief.md`)
|
|
30
|
-
**Out:** one-paragraph subject/audience/job statement
|
|
30
|
+
**Out:** one-paragraph subject/audience/job statement, confirmed by the
|
|
31
|
+
user before Step 2 starts
|
|
31
32
|
|
|
32
33
|
Name the concrete subject, its audience, and the page's single job. If
|
|
33
34
|
the brief doesn't pin this down, state the assumption explicitly rather
|
|
@@ -35,6 +36,28 @@ than proceeding on vagueness — an unstated assumption here is the single
|
|
|
35
36
|
most expensive thing to get wrong, since every later phase inherits it
|
|
36
37
|
silently.
|
|
37
38
|
|
|
39
|
+
**Plain-verb check (run before presenting the statement):** restate the
|
|
40
|
+
subject in one sentence using only the concrete verb a builder would use
|
|
41
|
+
describing it out loud — no abstraction noun ("primitive," "mechanism,"
|
|
42
|
+
"infrastructure layer") standing in for the verb. If that plain-verb
|
|
43
|
+
sentence doesn't foreground the same verb as the formal subject
|
|
44
|
+
statement, the statement has already been abstracted past what the user
|
|
45
|
+
actually said — tighten it, or if there's a genuine choice between
|
|
46
|
+
leading with the action versus the mechanism behind it, that's not yours
|
|
47
|
+
to resolve silently.
|
|
48
|
+
|
|
49
|
+
**Confirm the statement before Step 2.** Show the user the subject/
|
|
50
|
+
audience/job statement in plain language — not the finished prose, the
|
|
51
|
+
one-line "here's the big idea" version — and get explicit go-ahead before
|
|
52
|
+
any adjective work is built on it. This is a hard stop, the same weight
|
|
53
|
+
as planning intake's own Confirm & Lock: every phase from here through
|
|
54
|
+
`landing-copywriter` inherits this framing silently, and by the time
|
|
55
|
+
copy is reviewed at phase 9, correcting the framing means unwinding
|
|
56
|
+
multiple committed phases via the Correction Protocol instead of one
|
|
57
|
+
quick revision now. A revision at this point is just another pass at
|
|
58
|
+
Step 1, not a Correction Protocol entry, since nothing downstream exists
|
|
59
|
+
yet.
|
|
60
|
+
|
|
38
61
|
### Step 2 — Brand Anthropologist
|
|
39
62
|
|
|
40
63
|
**In:** subject statement
|
|
@@ -84,15 +107,24 @@ adjective is meant to fade rather than hold constant throughout the page.
|
|
|
84
107
|
1. Read `.hedgehog/chain/00-brief.md` (written by `planner` at planning
|
|
85
108
|
intake). If it's missing or thin, stop and flag it back — you don't
|
|
86
109
|
re-run planning intake yourself.
|
|
87
|
-
2. Run step 1 (subject/audience/job).
|
|
88
|
-
3.
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
110
|
+
2. Run step 1 (subject/audience/job), including its plain-verb check.
|
|
111
|
+
3. **Confirm step 1's statement with the user. Wait for explicit
|
|
112
|
+
go-ahead before proceeding to step 2** — this is a hard stop, not a
|
|
113
|
+
formality; nothing downstream exists yet, so a revision here is free.
|
|
114
|
+
4. Run steps 2–3 (Brand Anthropologist, Psychologist), informed by the
|
|
115
|
+
confirmed subject statement.
|
|
116
|
+
5. Run step 4c (Perfumer) against the completed sort from step 3.
|
|
117
|
+
6. Self-test (below) before presenting the combined artifact.
|
|
118
|
+
7. Commit the combined artifact as `feat(landing): strategy`.
|
|
93
119
|
|
|
94
120
|
## Self-test
|
|
95
121
|
|
|
122
|
+
- The subject statement was confirmed by the user before step 2 started
|
|
123
|
+
— not drafted and assumed. If it wasn't, stop now and go back for
|
|
124
|
+
confirmation rather than letting adjective work compound on an
|
|
125
|
+
unconfirmed framing.
|
|
126
|
+
- The plain-verb check was run and passed (or the framing choice — action
|
|
127
|
+
vs. mechanism — was put to the user explicitly, not resolved silently).
|
|
96
128
|
- Every adjective has a named opposite. An adjective without one isn't
|
|
97
129
|
falsifiable — send it back through step 2.
|
|
98
130
|
- Every adjective is sorted into exactly one of visceral/behavioral/
|