@ericrisco/rsc 3.6.0 → 3.7.1
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 +99 -69
- package/manifest.json +110 -3
- package/package.json +1 -1
- package/scripts/lib/default-skill-floor.js +5 -1
- package/scripts/lib/domains.js +2 -2
- package/scripts/lib/recommend.js +4 -0
- package/skills/customer-research/SKILL.md +78 -0
- package/skills/customer-research/evals/README.md +26 -0
- package/skills/customer-research/evals/cases.yaml +48 -0
- package/skills/landing-copy/SKILL.md +32 -30
- package/skills/landing-copy/evals/README.md +7 -0
- package/skills/landing-copy/evals/cases.yaml +11 -3
- package/skills/landing-copy/references/frameworks.md +7 -6
- package/skills/landing-copy/references/page-skeleton.md +36 -77
- package/skills/landing-copy/references/vsl-page-handoff.md +9 -0
- package/skills/landing-copy/scripts/verify.sh +7 -7
- package/skills/offer-design/SKILL.md +82 -0
- package/skills/offer-design/evals/README.md +26 -0
- package/skills/offer-design/evals/cases.yaml +42 -0
- package/skills/sales-funnel/SKILL.md +106 -0
- package/skills/sales-funnel/evals/README.md +28 -0
- package/skills/sales-funnel/evals/cases.yaml +50 -0
- package/skills/tidy/SKILL.md +150 -0
- package/skills/tidy/evals/README.md +23 -0
- package/skills/tidy/evals/cases.yaml +53 -0
- package/skills/vsl-script/SKILL.md +96 -0
- package/skills/vsl-script/evals/README.md +27 -0
- package/skills/vsl-script/evals/cases.yaml +51 -0
- package/skills/vsl-script/references/storyboard-handoff.md +39 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: landing-copy
|
|
3
3
|
description: "Use when writing the words on a single conversion page — the hero headline and subhead, the offer, the proof and testimonials, and one primary CTA — or diagnosing a page that gets traffic and does not convert, as a copy problem rather than a layout one. NOT the paid ad that drives the click (that is `ads`), NOT the visual layout the words sit in (that is `design`), NOT the experiment that picks the winning variant (that is `ab-testing`)."
|
|
4
4
|
tags: [landing-page, copywriting, conversion, hero-headline, cta, social-proof]
|
|
5
|
-
recommends: [ads, design, brand-voice, ab-testing, case-studies]
|
|
5
|
+
recommends: [ads, design, brand-voice, ab-testing, case-studies, offer-design, sales-funnel, vsl-script]
|
|
6
6
|
origin: risco
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -17,8 +17,8 @@ This skill owns **conversion copy for a single page**: a hero headline under ~8
|
|
|
17
17
|
- Writing or rewriting a hero: H1 + subhead + button copy.
|
|
18
18
|
- Structuring a full landing/sales page (hook → problem → offer → proof → CTA → objections).
|
|
19
19
|
- Choosing and writing one primary CTA and its repeated instances.
|
|
20
|
-
- Turning features into benefits ("
|
|
21
|
-
- Slotting proof —
|
|
20
|
+
- Turning features into benefits ("preview before import" → "inspect exceptions before changing live records").
|
|
21
|
+
- Slotting supported proof — demonstrations, permitted testimonials or contextualized metrics — next to the ask.
|
|
22
22
|
- Making the page headline *match* the ad/email that drove the click (message match).
|
|
23
23
|
- Rescuing a page that gets traffic but does not convert — when the failure is the words.
|
|
24
24
|
|
|
@@ -35,12 +35,20 @@ This skill owns **conversion copy for a single page**: a hero headline under ~8
|
|
|
35
35
|
|
|
36
36
|
Boundary in one line: **you own the words that convert on one page; `ads` owns the click that arrives, `design` owns the layout they sit in, `ab-testing` owns the proof of which words win.**
|
|
37
37
|
|
|
38
|
-
##
|
|
38
|
+
## When the page carries a sales video
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
Use the campaign's approved offer revision, research and funnel brief before drafting. When these exist under `02-DOCS/wiki/marketing/<campaign>/`, reuse them; keep established project paths. Read [the VSL page handoff](references/vsl-page-handoff.md) when a video is the main sales argument or its claims differ from the page.
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
Treat video and page as two ways to understand the same offer. Preserve the same deliverables, price, conditions, evidence IDs and primary action. A visitor who cannot play the video still needs the essential offer and purchase conditions in text. A short introduction can invite playback; it does not replace the written decision path.
|
|
43
|
+
|
|
44
|
+
- Offer is undecided → `offer-design` owns that decision, not a more forceful headline.
|
|
45
|
+
- Multiple pages or booking/payment paths → `sales-funnel` owns the route.
|
|
46
|
+
- Spoken narration, pacing and scene cues → `vsl-script` owns the video.
|
|
47
|
+
- Unsupported ad/video claim → flag the mismatch and draft from supported facts; repeating the claim does not validate it.
|
|
48
|
+
|
|
49
|
+
## Establish a baseline before predicting conversion
|
|
50
|
+
|
|
51
|
+
Use the account's observed traffic, eligible visitors and completed actions when available. Define the conversion and observation window before comparing rates. If no baseline exists, say so and route measurement to `analytics` and experiment design to `ab-testing`. External benchmarks need dated sources and comparable audiences; they are not promised outcomes.
|
|
44
52
|
|
|
45
53
|
## The four blocks — the spine of the page
|
|
46
54
|
|
|
@@ -48,18 +56,18 @@ Every conversion page is these four jobs, top to bottom. Each has a distinct que
|
|
|
48
56
|
|
|
49
57
|
| Block | Must answer | Lives where | Failure mode if weak |
|
|
50
58
|
| --- | --- | --- | --- |
|
|
51
|
-
| **Hook** | "What is this and why should I care?" in <5s | Hero, above the fold | Visitor
|
|
59
|
+
| **Hook** | "What is this and why should I care?" in <5s | Hero, above the fold | Visitor cannot tell whether to continue |
|
|
52
60
|
| **Offer** | "What exactly do I get, and what does it cost me?" | Right after the hook / problem | Feature dump; reader can't tell what they walk away with |
|
|
53
61
|
| **Proof** | "Why should I believe you?" | Adjacent to each CTA | Claims read as marketing; trust never forms |
|
|
54
62
|
| **CTA** | "What is the one thing to do next?" | Hero, repeated down the page | Competing asks → decision fatigue → no click |
|
|
55
63
|
|
|
56
64
|
## The hook
|
|
57
65
|
|
|
58
|
-
The H1 carries the *what*; the subhead carries the *benefit*; both must
|
|
66
|
+
The H1 carries the *what*; the subhead carries the *benefit*; both must stay consistent with the supported offer behind the visitor's click.
|
|
59
67
|
|
|
60
68
|
- **H1 under ~8 words / ~44 characters.** The constraint forces clarity, and a clear headline beats a clever one every time. If you can't say it in 8 words you don't understand the offer yet.
|
|
61
69
|
- **Subhead carries the benefit** — who it's for and the outcome they get, in one clause.
|
|
62
|
-
- **Message match:** the
|
|
70
|
+
- **Message match:** maintain the supported offer and action from the ad/email. If its promise lacks evidence, flag it and draft from verified facts; consistency does not make an unsupported claim true. `ads` owns correction of the source ad.
|
|
63
71
|
|
|
64
72
|
```text
|
|
65
73
|
Bad — "Reimagine The Future Of Financial Operations" (clever, 6 words, says nothing)
|
|
@@ -74,27 +82,21 @@ Name the thing, the outcome, and the cost in effort or money. Lead with the outc
|
|
|
74
82
|
The scaffold is **FAB** — Feature → Advantage → Benefit — but you stop at the benefit the reader cares about and back it with the mechanism as proof, not the other way round.
|
|
75
83
|
|
|
76
84
|
```text
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
85
|
+
Feature — "Import preview."
|
|
86
|
+
Benefit — "Inspect the exceptions before you approve changes to live records."
|
|
87
|
+
Evidence — A verified demonstration of the actual preview and approval flow.
|
|
80
88
|
```
|
|
81
89
|
|
|
82
90
|
Rule: every feature line answers "so what?" with an outcome. If it can't, cut it.
|
|
83
91
|
|
|
84
92
|
## The proof
|
|
85
93
|
|
|
86
|
-
|
|
94
|
+
Choose evidence that supports the claim the visitor is deciding on. A product demonstration can establish behavior; a customer result needs its source, context and permission. A guarantee is a commercial condition, not evidence of effectiveness.
|
|
87
95
|
|
|
88
|
-
-
|
|
89
|
-
-
|
|
90
|
-
-
|
|
91
|
-
-
|
|
92
|
-
|
|
93
|
-
```text
|
|
94
|
-
Bad — "Loved by teams everywhere. World-class results!"
|
|
95
|
-
Good — "We cut expense-report time 82% in the first month."
|
|
96
|
-
— Maria Ortiz, CFO, Lumen (47-person finance team)
|
|
97
|
-
```
|
|
96
|
+
- Use permitted, attributable testimonials when available; there is no required quota of names or numerical results.
|
|
97
|
+
- Place relevant proof near the claim or action it supports. Keep its scope clear: one customer result does not establish a typical outcome.
|
|
98
|
+
- Without outcome evidence, show verified product behavior and narrow the promise. Mark unresolved evidence in draft notes, not as public endorsements.
|
|
99
|
+
- Preserve evidence IDs and publication status from the offer brief. A public review is not automatically cleared for promotional reuse.
|
|
98
100
|
|
|
99
101
|
## The CTA
|
|
100
102
|
|
|
@@ -102,7 +104,7 @@ One primary action, verb-led, repeated — not varied — down the page.
|
|
|
102
104
|
|
|
103
105
|
- **One primary CTA per page.** Competing asks cause decision fatigue and lower conversion. The same action appears in the hero and again at each decision point; secondary links may exist but must not compete visually or verbally with the primary.
|
|
104
106
|
- **Movement verbs, never "Submit".** "Start free trial", "Get my quote", "See plans" — the button states the value, not the form action.
|
|
105
|
-
- **First-person framing
|
|
107
|
+
- **First-person framing is one option to test:** "Start my free trial" reads as the visitor's own intent. Pair the button with one line of friction-reducing microcopy ("No credit card required").
|
|
106
108
|
|
|
107
109
|
```text
|
|
108
110
|
Bad buttons — [Submit] [Learn more] [Contact sales]
|
|
@@ -137,19 +139,19 @@ its derivatives). In Claude Code a Stop hook runs the same check on your final a
|
|
|
137
139
|
| "A clever headline will stand out" | Clever is unclear. Name the outcome in <8 words; clear beats clever. |
|
|
138
140
|
| "More features = more value shown" | Feature dumps bury the benefit. Lead with the outcome, then the mechanism. |
|
|
139
141
|
| "Give them several CTAs to choose from" | Choice kills conversion. One primary action, repeated, not varied. |
|
|
140
|
-
| "Any testimonials will do" |
|
|
142
|
+
| "Any testimonials will do" | Use relevant, permitted evidence; a verified demonstration may be the best available proof. |
|
|
141
143
|
| "World-class, cutting-edge, game-changing" | Hype words signal AI-template copy. Replace with a number or a named result. |
|
|
142
|
-
| "The page can say its own thing" |
|
|
143
|
-
| "Promise them a 12% conversion rate" |
|
|
144
|
+
| "The page can say its own thing" | Keep the supported promise consistent; correct unsupported source claims instead of repeating them. |
|
|
145
|
+
| "Promise them a 12% conversion rate" | Use an observed baseline and explicit test; mark performance unmeasured when no data exists. |
|
|
144
146
|
| "I'll invent a plausible metric" | Never. Mark `[[NEEDS PROOF]]` and ask the user. |
|
|
145
147
|
|
|
146
148
|
## Page skeleton + worked example
|
|
147
149
|
|
|
148
|
-
The annotated top-to-bottom skeleton (hook → problem → offer → proof → CTA → objections/FAQ → final CTA), with
|
|
150
|
+
The annotated top-to-bottom skeleton (hook → problem → offer → proof → CTA → objections/FAQ → final CTA), with a worked demonstration-led example and explicit source limits, lives in `references/page-skeleton.md`. Start there when you write a full page rather than a single block.
|
|
149
151
|
|
|
150
152
|
## Verify your copy
|
|
151
153
|
|
|
152
|
-
Run `scripts/verify.sh` over the file you wrote (or your project) before claiming done. It is a read-only, dependency-free static check: H1 length, exactly one primary CTA verb (flags competing asks), presence of a proof block and a benefit subhead, a banlist of hype/AI-tell phrases, and a "Submit" warning. It warns on soft issues and exits non-zero only on hard ones (no CTA, no proof). It
|
|
154
|
+
Run `scripts/verify.sh` over the file you wrote (or your project) before claiming done. It is a read-only, dependency-free static check: H1 length, exactly one primary CTA verb (flags competing asks), presence of a proof block and a benefit subhead, a banlist of hype/AI-tell phrases, and a "Submit" warning. It warns on soft issues and exits non-zero only on hard ones (no CTA, no proof). It detects proof-shaped text, not factual support or publication permission; those require source review. Demonstrations are valid proof markers when their claims match the behavior shown.
|
|
153
155
|
|
|
154
156
|
## See also
|
|
155
157
|
|
|
@@ -16,3 +16,10 @@ rubric-scored generation: run the scenario with and without the skill loaded and
|
|
|
16
16
|
grade each output against `must_include` (one point per item); the skill passes
|
|
17
17
|
if WITH covers >= 80% and clearly beats WITHOUT. Report raw fractions, not a
|
|
18
18
|
rounded pass, and re-run after any edit to `SKILL.md` or the references.
|
|
19
|
+
|
|
20
|
+
## VSL integration validation — 2026-10-31
|
|
21
|
+
|
|
22
|
+
The added offer-revision scenario and source-grounding repairs were statically reviewed.
|
|
23
|
+
The proof-marker regression tests exercise demonstration-only evidence and paths with spaces.
|
|
24
|
+
The revised skill was applied to the product README. These checks are not a fresh A/B measurement
|
|
25
|
+
of landing-copy quality; the capability comparisons described above remain a separate evaluation.
|
|
@@ -54,10 +54,18 @@ capability:
|
|
|
54
54
|
must_include:
|
|
55
55
|
- "H1 is under ~8 words / ~44 chars and is clear, not clever (names the outcome)."
|
|
56
56
|
- "Subhead carries the benefit and names who it is for."
|
|
57
|
-
- "
|
|
57
|
+
- "Identifies the ad's 80% as an unverified claim; requests its source or drafts without repeating it as proven."
|
|
58
58
|
- "Offer lines are feature->benefit (FAB), benefit on top with the mechanism beneath — not a bare feature list."
|
|
59
|
-
- "
|
|
59
|
+
- "Does not invent named testimonials or numeric customer results; marks missing evidence for collection and uses only supplied facts."
|
|
60
60
|
- "Exactly one primary CTA with a movement verb (e.g. 'Start my free trial'), repeated unchanged — no competing asks, no 'Submit'."
|
|
61
61
|
- "No banned superlatives ('world-class', 'cutting-edge', 'game-changer', 'revolutionize', 'seamlessly')."
|
|
62
|
-
- "
|
|
62
|
+
- "Treats conversion performance as unmeasured because the scenario provides no baseline; does not invent a benchmark or promise a rate."
|
|
63
63
|
- "Any proof that is not real is marked [[NEEDS PROOF]], not fabricated."
|
|
64
|
+
|
|
65
|
+
- scenario: "Write the hero and purchase section around a VSL for a workshop. Approved offer rev2: EUR 180, two live sessions, no individual review, start 12 November, refund until 48 hours before start. Old video rev1 says EUR 120 with personal review. Evidence E1 is a public demo; a testimonial E2 has no publication permission. Audience includes visitors who cannot play video. No measured conversion results. Deliver useful copy and the handoff decision."
|
|
66
|
+
must_include:
|
|
67
|
+
- "Uses rev2 price and scope in draft copy and marks rev1 video as needing correction before coordinated publication."
|
|
68
|
+
- "Provides essential offer and refund conditions in text without requiring playback."
|
|
69
|
+
- "Uses E1 demonstration and excludes the unapproved E2 testimonial from public copy."
|
|
70
|
+
- "Keeps one primary action and identifies unresolved destination or booking details without inventing them."
|
|
71
|
+
- "Does not promise conversion improvement or invent evidence."
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Frameworks are skeletons you fill with the **buyer's own words** — never fill-in
|
|
4
4
|
templates you ship as-is. Pick one for the page's spine and one (FAB) for the
|
|
5
|
-
offer block.
|
|
5
|
+
offer block. Examples below are fictional illustrations, not evidence or publishable customer claims.
|
|
6
|
+
Use only behavior and outcomes supported by the actual product evidence.
|
|
6
7
|
|
|
7
8
|
## PAS — Problem, Agitate, Solution
|
|
8
9
|
|
|
@@ -35,16 +36,16 @@ Strong for **transformation** stories and pages built around a customer journey.
|
|
|
35
36
|
|
|
36
37
|
This is the feature→benefit transform. Climb the ladder, then **stop at the benefit** the reader cares about and use the feature/mechanism as the proof underneath.
|
|
37
38
|
|
|
38
|
-
- **Feature** — what it has: "
|
|
39
|
-
- **Advantage** — what that does: "
|
|
40
|
-
- **Benefit** — what the buyer gets: "
|
|
39
|
+
- **Feature** — what it has: "Import preview."
|
|
40
|
+
- **Advantage** — what that does: "shows records needing review before the import."
|
|
41
|
+
- **Benefit** — what the buyer gets: "inspect exceptions before approving changes to live records" (when the product supports this preview).
|
|
41
42
|
|
|
42
43
|
Write the benefit as the line; keep the feature as the evidence beneath it.
|
|
43
44
|
|
|
44
45
|
```text
|
|
45
46
|
Bad — "Includes SSO, SCIM provisioning, and audit logs."
|
|
46
|
-
|
|
47
|
-
|
|
47
|
+
Better — "Review recorded access changes in the audit log."
|
|
48
|
+
Use only if that behavior is verified; the feature list alone does not prove it.
|
|
48
49
|
```
|
|
49
50
|
|
|
50
51
|
## Awareness stage changes how much you agitate
|
|
@@ -1,92 +1,51 @@
|
|
|
1
|
-
# Page skeleton
|
|
1
|
+
# Page skeleton and evidence-led example
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
them with the buyer's real words and *real* proof. Cut any block that has no job
|
|
6
|
-
for this product; do not pad.
|
|
3
|
+
Choose sections by the buyer's unanswered questions. For a VSL page, also read
|
|
4
|
+
`vsl-page-handoff.md`; the video and readable text carry the same offer revision.
|
|
7
5
|
|
|
8
|
-
##
|
|
6
|
+
## Section decisions
|
|
9
7
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
2. PROBLEM (skip or shorten for warm/hot traffic — see frameworks.md)
|
|
19
|
-
Name the pain in the reader's words: "{{the friction they live with today}}."
|
|
20
|
-
One line of agitation if traffic is cold. No more.
|
|
21
|
-
|
|
22
|
-
3. OFFER
|
|
23
|
-
What they get: {{the thing}}.
|
|
24
|
-
Benefit-led feature lines (FAB — benefit on top, mechanism beneath):
|
|
25
|
-
- {{benefit}}, because {{feature/mechanism}}.
|
|
26
|
-
- {{benefit}}, because {{feature/mechanism}}.
|
|
27
|
-
- {{benefit}}, because {{feature/mechanism}}.
|
|
28
|
-
Cost/effort: {{price or "free to start" or "5-minute setup"}}.
|
|
29
|
-
|
|
30
|
-
4. PROOF (place adjacent to the CTA below it)
|
|
31
|
-
3–5 named testimonials, each with a concrete result:
|
|
32
|
-
"{{result, with a number}}" — {{Name, Role, Company}}
|
|
33
|
-
Plus: {{metric}} · {{recognizable logos}} · {{risk reversal / guarantee}}.
|
|
8
|
+
| Question | Content | Evidence needed |
|
|
9
|
+
| --- | --- | --- |
|
|
10
|
+
| Is this for me? | Clear headline, audience, supported benefit, primary action | Buyer research and approved offer |
|
|
11
|
+
| Why consider it? | Relevant problem or current alternative; shorten for informed visitors | Research, distinguished from assumptions |
|
|
12
|
+
| What do I receive? | Included items, scope, prerequisites and cost | Approved offer revision |
|
|
13
|
+
| Why believe it? | Demonstration, permitted testimony or contextualized measured result | Source ID, scope and permission |
|
|
14
|
+
| What happens next? | Action, destination, next step and exact conditions | Verified journey or explicit draft requirement |
|
|
15
|
+
| What could stop me? | Real objections, answered with known facts | Research and product constraints |
|
|
34
16
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
17
|
+
Repeat one primary action at useful decision points. There is no required quota of testimonials.
|
|
18
|
+
A guarantee is a condition, not evidence that the product achieves a result. Keep unsupported
|
|
19
|
+
claims outside public copy and state what evidence or decision would resolve them.
|
|
38
20
|
|
|
39
|
-
|
|
40
|
-
Pre-empt the top 3–5 reasons not to act, each as a question → direct answer.
|
|
41
|
-
"Do I need a card?" "What if it doesn't work for my team?" "How long is setup?"
|
|
21
|
+
## Worked example: fictional fixture, verified behavior supplied
|
|
42
22
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
## Worked example — B2B SaaS (expense automation)
|
|
48
|
-
|
|
49
|
-
Traffic source: a Google ad reading **"Cut expense-report time 80%"**. The hero
|
|
50
|
-
must echo that promise (message match).
|
|
23
|
+
Assume the task supplies these facts: a migration preview flags duplicate accounts before writing
|
|
24
|
+
live records; importing requires an approver; demo E1 uses synthetic records; the action is booking
|
|
25
|
+
a walkthrough. There are no customer results, delivery-time measurements or published prices.
|
|
51
26
|
|
|
52
27
|
```text
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
Subhead: For finance teams of 20–200 drowning in receipts — snap a photo,
|
|
56
|
-
we file and route it for approval automatically.
|
|
57
|
-
CTA: [Start my free trial]
|
|
58
|
-
Microcopy: No credit card. 5-minute setup.
|
|
59
|
-
|
|
60
|
-
2. PROBLEM
|
|
61
|
-
Month-end means chasing 40 people for crumpled receipts and reconciling a
|
|
62
|
-
spreadsheet you don't fully trust. It eats the days you should spend forecasting.
|
|
28
|
+
HEADLINE
|
|
29
|
+
Review import exceptions before going live
|
|
63
30
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
- Close the month in 2 days instead of 9, because rules auto-categorize every line.
|
|
67
|
-
- Catch policy breaches before they post, because checks run at submit time.
|
|
68
|
-
- Audit-ready in one export, because every approval is logged automatically.
|
|
69
|
-
Free for your first 50 reports. $8 / active user / month after.
|
|
31
|
+
SUBHEAD
|
|
32
|
+
For teams migrating account records: see flagged duplicates before an approver authorizes the import.
|
|
70
33
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
late nights to a Tuesday afternoon." — Maria Ortiz, CFO, Lumen (47-person team)
|
|
74
|
-
"Closed our books in 2 days for the first time ever." — Daniel Roca, Controller, Vora
|
|
75
|
-
Trusted by 1,200 finance teams · SOC 2 Type II · 30-day money-back guarantee
|
|
34
|
+
ACTION
|
|
35
|
+
Book a walkthrough
|
|
76
36
|
|
|
77
|
-
|
|
78
|
-
|
|
37
|
+
WHAT YOU CAN INSPECT
|
|
38
|
+
The preview identifies records requiring review. Your approver decides whether the mapping is ready.
|
|
79
39
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
Q: Will it work with my accounting tool? A: Syncs with QuickBooks, Xero, NetSuite.
|
|
83
|
-
Q: How long is setup? A: Five minutes — connect your cards, set rules once.
|
|
40
|
+
PRODUCT DEMONSTRATION
|
|
41
|
+
Watch the preview flag duplicate accounts in synthetic test data, then show the approval step.
|
|
84
42
|
|
|
85
|
-
|
|
86
|
-
|
|
43
|
+
WHAT HAPPENS NEXT
|
|
44
|
+
Book a walkthrough to see the process and discuss your migration requirements.
|
|
87
45
|
```
|
|
88
46
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
47
|
+
Production note: capture E1 and verify the booking destination before publication. The example
|
|
48
|
+
supports preview and approval behavior. It does not support a claim that errors are eliminated or
|
|
49
|
+
migration finishes within a particular time. A source ad promising those outcomes must be corrected,
|
|
50
|
+
not echoed to preserve message match. Private source IDs belong in the handoff, not necessarily in
|
|
51
|
+
public-facing copy.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# A page and video that agree
|
|
2
|
+
|
|
3
|
+
Read the offer revision, funnel decision and VSL before writing. Produce a small alignment table: promise, included items, price/currency/tax wording, payment terms, guarantee, deadline, evidence IDs and destination. Record the source revision for each. A changed price invalidates earlier video/page copy until reconciled; do not silently choose the more persuasive version.
|
|
4
|
+
|
|
5
|
+
Give visitors three useful paths: watch with captions, read the essential argument, or reach the stated next action. Put meaningful button labels at points where a decision is possible. Hiding essential conditions until a timer expires is not a requirement of a VSL page. Do not add autoplay or delay checkout without a user-approved rationale and a way to access the offer without playback.
|
|
6
|
+
|
|
7
|
+
Keep private source notes separate from public copy. Pending testimonials are draft placeholders, never invented quotes. If permission is missing, omit identifying details and use a supported product demonstration where available. A quote's existence is not permission to publish it.
|
|
8
|
+
|
|
9
|
+
Deliver copy by section, a video placement/accessible-text note, the shared action label and destination, the offer revision, and an explicit list of unpublished claims. Hand layout to design, implementation to the selected stack, playback events to analytics and controlled comparisons to ab-testing. Do not claim that a text linter proves the assertions or conversion performance.
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
# WHAT IT DOES (read-only; never edits a file)
|
|
6
6
|
# Network-free static checks over a generated landing-copy file (or a tree):
|
|
7
7
|
# 1. HARD no CTA at all (no button-style line, no movement-verb call to act).
|
|
8
|
-
# 2. HARD no proof block (no testimonial/quote
|
|
8
|
+
# 2. HARD no proof block (no testimonial/quote, metric or demonstration marker).
|
|
9
9
|
# 3. SOFT H1 over ~8 words or ~60 chars (warn — clarity beats clever).
|
|
10
10
|
# 4. SOFT competing CTAs — more than one distinct primary action verb used
|
|
11
11
|
# as a button-style line (decision fatigue).
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
# 1 a hard violation, or --strict with any warning
|
|
30
30
|
# 2 bad usage
|
|
31
31
|
#
|
|
32
|
-
#
|
|
32
|
+
# Bash 3.2+, no external deps beyond grep/wc. Runs on stock macOS /bin/sh.
|
|
33
33
|
|
|
34
34
|
set -eu
|
|
35
35
|
|
|
@@ -88,7 +88,7 @@ CTA_VERBS='start|get|see|book|claim|try|join|download|create|build|grab|reserve|
|
|
|
88
88
|
BANLIST='world-class|cutting-edge|revolutioni[sz]e|game-changer|game changer|seamlessly|unlock the power|in today.?s fast-paced world|next-level|best-in-class'
|
|
89
89
|
|
|
90
90
|
checked=0
|
|
91
|
-
|
|
91
|
+
while IFS= read -r f; do
|
|
92
92
|
[ -f "$f" ] || continue
|
|
93
93
|
[ -s "$f" ] || continue
|
|
94
94
|
checked=$((checked + 1))
|
|
@@ -101,12 +101,12 @@ for f in $FILES; do
|
|
|
101
101
|
fail "$f: no CTA found (no movement verb, no button) — a page needs one primary action"
|
|
102
102
|
fi
|
|
103
103
|
|
|
104
|
-
# 2. HARD: proof
|
|
105
|
-
if grep -
|
|
104
|
+
# 2. HARD: a proof-shaped block exists. This heuristic does NOT verify truth or permissions.
|
|
105
|
+
if grep -Eiq 'demonstration|demo:|demostración|demostracion|"|“|”|>|—|--|testimonial|trusted by|review' "$f" \
|
|
106
106
|
|| grep -Eq '[0-9]+%|[0-9]+x|\$[0-9]|[0-9][0-9,]+ (customers|teams|users)' "$f"; then
|
|
107
107
|
:
|
|
108
108
|
else
|
|
109
|
-
fail "$f: no proof block found (
|
|
109
|
+
fail "$f: no proof block found (add a sourced demonstration, testimonial or metric) — belief is built next to the ask"
|
|
110
110
|
fi
|
|
111
111
|
|
|
112
112
|
# 3. SOFT: H1 length. First markdown '# ' heading or first non-empty line.
|
|
@@ -148,7 +148,7 @@ for f in $FILES; do
|
|
|
148
148
|
if grep -Eiq '(^|[^a-z])submit([^a-z]|$)' "$f"; then
|
|
149
149
|
warn "$f: 'Submit' as button copy — use a movement verb that states the value (e.g. 'Start my free trial')"
|
|
150
150
|
fi
|
|
151
|
-
done
|
|
151
|
+
done <<< "$FILES"
|
|
152
152
|
|
|
153
153
|
printf '\n'
|
|
154
154
|
if [ "$fail_count" -gt 0 ]; then
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: offer-design
|
|
3
|
+
description: "Use when deciding what a buyer receives, why it solves their problem, and which promises, extras and conditions the seller can support. Produces an evidence-backed offer brief. NOT setting price levels (that is `pricing`) or writing the page (that is `landing-copy`)."
|
|
4
|
+
tags: [offer, value-proposition, differentiation, guarantee, deliverables, commercial-terms]
|
|
5
|
+
recommends: [customer-research, pricing, sales-funnel, vsl-script, landing-copy]
|
|
6
|
+
origin: risco
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Offer design — a promise the business can fulfill
|
|
10
|
+
|
|
11
|
+
Define the exchange between seller and buyer before expressing it in a landing or video. An offer can be a paid service, a product, a trial or a free tool. Respect the actual business model; a free project does not need an invented price, bonus or refund promise.
|
|
12
|
+
|
|
13
|
+
## Read the facts once
|
|
14
|
+
|
|
15
|
+
Load existing buyer research, product facts, approved terms and campaign artifacts. Identify the buyer's desired result, the current alternative, available proof and delivery constraints. Missing buyer evidence goes to `customer-research`; choosing price levels, tiers and margin floors goes to `pricing`. You can draft around an unknown, but mark it as proposed or unresolved.
|
|
16
|
+
|
|
17
|
+
Use the user's approved price and conditions. Never replace them because a template favors a different offer. If two artifacts disagree, identify their revisions and resolve the conflict from owner-approved terms; otherwise ask which is authoritative before treating either as settled.
|
|
18
|
+
|
|
19
|
+
For an authorized saved campaign, reuse its location or write `02-DOCS/wiki/marketing/<campaign>/offer.md`, linked from `02-DOCS/wiki/index.md`. Give the offer a stable ID and revision, with the research revision it consumes. Analysis-only requests stay in the response.
|
|
20
|
+
|
|
21
|
+
## Construct the promise from delivery outward
|
|
22
|
+
|
|
23
|
+
Work through four connections. Each needs an answer or a visible unresolved decision.
|
|
24
|
+
|
|
25
|
+
| Connection | Decision to make |
|
|
26
|
+
| --- | --- |
|
|
27
|
+
| Buyer problem → promised result | Which specific result matters to this segment, and what remains outside the seller's control? |
|
|
28
|
+
| Result → deliverable | What does the buyer actually receive, when does work start, and what counts as completion? |
|
|
29
|
+
| Deliverable → reason to believe | Which real product behavior explains the result, and what evidence supports each step? |
|
|
30
|
+
| Commitment → operating capacity | Who must do the work, what inputs are required, and what limits the number of buyers served? |
|
|
31
|
+
|
|
32
|
+
Separate **deliverables the seller controls**, **outcomes that depend on the buyer**, and **aspirations still awaiting evidence**. A compelling aspiration is not permission to promise it.
|
|
33
|
+
|
|
34
|
+
### Explain the mechanism without inventing an invention
|
|
35
|
+
|
|
36
|
+
Describe the causal chain in plain language: product action → intermediate effect → buyer benefit. Link each step to an evidence ID or label it a hypothesis. Compare it with the buyer's current alternative, not an invented weak competitor.
|
|
37
|
+
|
|
38
|
+
A familiar method can still be useful. Claim exclusivity only when established; naming a method does not make it proprietary. Use a demonstration of verified behavior when outcome evidence is absent. Label synthetic examples as demonstrations, never customer results.
|
|
39
|
+
|
|
40
|
+
### Reconcile promises with capacity
|
|
41
|
+
|
|
42
|
+
Calculate the simplest delivery ceiling from supplied constraints: available hours divided by required hours per engagement, for example. Include support, review and rework if known; if not, identify the calculated ceiling as an upper bound. State customer prerequisites and when any delivery clock starts. Do not turn an unmeasured turnaround into a deadline guarantee.
|
|
43
|
+
|
|
44
|
+
For extras, specify the buyer obstacle each removes and its delivery cost. Keep extras that make the core offer easier to use. A reference value requires a real, relevant basis; without one, describe the utility without a currency valuation. Scarcity requires an actual constraint and current availability, not merely a theoretical capacity ceiling.
|
|
45
|
+
|
|
46
|
+
### Design terms as decisions, not decorative copy
|
|
47
|
+
|
|
48
|
+
Keep approved conditions exact. New terms are proposals until approved, including support limits, refund windows and availability. For a proposed remedy, state the triggering condition, eligible buyer action, remedy and operational owner. Discuss feasibility before recommending a guarantee the seller cannot honor.
|
|
49
|
+
|
|
50
|
+
An absent voluntary guarantee does not establish that all sales are legally final. Preserve known terms and flag missing policy for its owner; use `terms-conditions` when legal drafting is requested. Do not invent rights or waive existing obligations.
|
|
51
|
+
|
|
52
|
+
## Deliver the offer brief
|
|
53
|
+
|
|
54
|
+
Provide a usable version now, separating approved facts from proposals:
|
|
55
|
+
|
|
56
|
+
- **Identity:** offer ID/revision, buyer segment, source research revision and primary action.
|
|
57
|
+
- **Promise:** intended result, qualified wording, exclusions and dependencies.
|
|
58
|
+
- **Delivery:** included items, completion definition, required buyer inputs, timing basis and support boundary.
|
|
59
|
+
- **Differentiation:** causal explanation, relevant alternative and evidence IDs for demonstrable claims.
|
|
60
|
+
- **Commercial terms:** approved price, currency, tax treatment, payment schedule and policies; unknowns remain explicit.
|
|
61
|
+
- **Proof map:** claim → source → what it establishes → publication/use status. Private interview insights can guide the offer without becoming public testimonials.
|
|
62
|
+
- **Open decisions:** proposed changes, accountable owner and what must be resolved before publication.
|
|
63
|
+
- **Validation:** one remaining uncertainty, a practical check and the result that would change the offer.
|
|
64
|
+
|
|
65
|
+
If no single package dominates, compare a small number against the same buyer need, evidence and capacity constraints. Recommend one and explain the trade-off. Do not assign invented conversion percentages.
|
|
66
|
+
|
|
67
|
+
When revising an offer, list changed terms and affected artifacts. The landing, VSL and funnel must name the same approved offer revision before publication. A price change is incomplete while a linked video still quotes the old price. Hand off the brief; generating copy, publishing pages and taking payments remain separate tasks.
|
|
68
|
+
|
|
69
|
+
## Failure modes
|
|
70
|
+
|
|
71
|
+
| Failure | Correction |
|
|
72
|
+
| --- | --- |
|
|
73
|
+
| A new name is the only differentiator | Explain an observable process difference or narrow the comparison honestly. |
|
|
74
|
+
| Every buyer objection becomes another bonus | Check whether the core delivery itself needs improvement. |
|
|
75
|
+
| The cheapest package requires unbounded labor | Bound fulfillment first and route economic decisions to `pricing`. |
|
|
76
|
+
| Unknown terms disappear into confident copy | Preserve proposal status through the landing and video handoffs. |
|
|
77
|
+
|
|
78
|
+
This skill's evidence and feasibility decisions need semantic review. A grep cannot establish that a promise is supported; use the capability eval rather than a decorative artifact checker.
|
|
79
|
+
|
|
80
|
+
## Orientación (siempre)
|
|
81
|
+
|
|
82
|
+
Habla con la voz de `orient`: frases cortas, una idea por frase, y cada respuesta se entiende sola. Registro técnico o con analogías según `technical_level` en `02-DOCS/wiki/harness/user-profile.md`. Cierra cada turno con el **bloque-brújula** (📍 dónde estás · ➡️ siguiente, terminando en pregunta; ✅ y 🧭 cuando hay algo hecho o decidido). **Nunca termines en seco.** Protocolo completo: skill `orient` → `skills/orient/references/orientation-contract.md`. (Defiere a `suggest` el "¿instalo la skill que falta?".)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# offer-design evaluation
|
|
2
|
+
|
|
3
|
+
`cases.yaml` separates routing from capability. These are judgment evaluations, not deterministic proof of commercial performance.
|
|
4
|
+
|
|
5
|
+
## Routing
|
|
6
|
+
|
|
7
|
+
Present only the skill description plus the competing catalog descriptions to a fresh agent. Run each positive and negative prompt in three fresh trials. A case passes when the majority selects the intended owner; target at least 90% accuracy across cases. Inspect ambiguous cases rather than broadening the description to catch everything.
|
|
8
|
+
|
|
9
|
+
## Capability
|
|
10
|
+
|
|
11
|
+
Run each complete scenario in fresh isolated sessions: baseline without this skill or its rubric, treatment with this skill. Both receive identical source facts and permitted tools. Keep the repository read-only and save outputs outside tracked files. Use three trials for a release evaluation; retain the actual outputs and session/tool records.
|
|
12
|
+
|
|
13
|
+
Blind the arm labels before an independent grader reads the outputs. Grade each `must_include` item with an exact supporting excerpt, then completeness, actionability, correctness and grounding on 0–10. Use the repository's `scripts/skill-behavior-eval.js` scorer: treatment absolute score must be at least 8.5 and lift over baseline at least +1.0. Run transcript integrity checks where available; absence of such checks is a reported limitation, never an integrity pass.
|
|
14
|
+
|
|
15
|
+
The structural linter checks YAML shape and routes. It cannot determine whether an inference is warranted, a promise feasible or a permission sufficient. No `verify.sh` claims to do that. Neither a judge score nor a well-formed brief proves sales lift. Test changed descriptions and bodies again; record actual results separately from these instructions.
|
|
16
|
+
|
|
17
|
+
## Initial evaluation — 2026-10-31
|
|
18
|
+
|
|
19
|
+
One capability scenario, one fresh execution per arm, independently blind-graded:
|
|
20
|
+
with skill **9.8/10**, without **8.7/10**, difference **+1.1**.
|
|
21
|
+
The catalog scorer requires absolute >=8.5 and improvement >=1.0. This run
|
|
22
|
+
passed both numerical thresholds.
|
|
23
|
+
This is a single-trial result, not the repeated-trial protocol above or evidence of conversion gains.
|
|
24
|
+
Arms used separate contexts and files; the scorer reported transcript integrity **not checked**.
|
|
25
|
+
The owner authorized release 3.7.0 with the pack’s incomplete behavioral evidence documented.
|
|
26
|
+
The thresholds remain unchanged; release authorization is not an evaluation pass.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
skill: offer-design
|
|
2
|
+
|
|
3
|
+
should_trigger:
|
|
4
|
+
- prompt: "Turn this service into a clear offer with deliverables, boundaries and credible proof."
|
|
5
|
+
why: "Defines the commercial promise and fulfillment commitment."
|
|
6
|
+
- prompt: "People understand the product but can't tell why they should choose our package."
|
|
7
|
+
why: "Diagnoses offer differentiation before rewriting copy."
|
|
8
|
+
- prompt: "Quiero que la oferta sea más atractiva sin inventar bonos ni bajar el precio."
|
|
9
|
+
why: "Spanish request changes actual value and terms, not price optimization."
|
|
10
|
+
- prompt: "Check whether our guarantee and bonus fit what the team can actually deliver."
|
|
11
|
+
why: "Connects promise to capacity and conditions."
|
|
12
|
+
- prompt: "Explain why our method works using these product facts, then choose the strongest offer angle."
|
|
13
|
+
why: "Mechanism development belongs inside evidence-backed offer design."
|
|
14
|
+
|
|
15
|
+
should_not_trigger:
|
|
16
|
+
- prompt: "Set our SaaS seat price and calculate the margin floor."
|
|
17
|
+
route_to: pricing
|
|
18
|
+
why: "Pricing owns price levels and economic models."
|
|
19
|
+
- prompt: "The offer is approved. Write the landing page around it."
|
|
20
|
+
route_to: landing-copy
|
|
21
|
+
why: "Expression of settled terms belongs to page copy."
|
|
22
|
+
- prompt: "Create the Stripe products and checkout session for this price."
|
|
23
|
+
route_to: stripe
|
|
24
|
+
why: "Billing implementation does not design the offer."
|
|
25
|
+
- prompt: "Read these interviews and discover what buyers care about."
|
|
26
|
+
route_to: customer-research
|
|
27
|
+
why: "The missing input is buyer evidence, not a commercial package."
|
|
28
|
+
|
|
29
|
+
capability:
|
|
30
|
+
- scenario: |
|
|
31
|
+
Produce an offer brief ready for a landing/VSL team for DataRelay, a migration service. Work only from these facts; do not write the landing or implement checkout. Owner-approved price is EUR 900 including taxes, paid once. The team can spend 24 engineer-hours per week on migrations. Each client requires 8 engineer-hours before any extras. The owner proposes: "Move in 48 hours, zero errors guaranteed; unlimited live help; a EUR 2,000 bonus; only two places left." No bonus has ever been sold, no capacity has been booked this week, and no refund policy has been approved.
|
|
32
|
+
Product facts: before writing to production, the service produces an exception report and asks the customer's owner to approve the mapping. Import runs only after approval. Mapping review requires the customer's sample export and one named approver. There is no measured delivery-time history. Other providers also offer migration previews, so this is not an exclusive invention.
|
|
33
|
+
Buyer evidence R-1, research revision 2: small firms fear discovering errors after going live; two interviewees asked to inspect exceptions first. These interviews are private and cannot be quoted publicly. Evidence E-1: the product's documented preview-and-approval behavior can be demonstrated on synthetic data. Evidence E-2: one client said "the preview caught our duplicate accounts"; no quantitative result or publication consent. Draft offer O-1 revision 1 still says EUR 750 and links to the landing and video briefs. Owner asks for a usable offer now and a minimal validation step, not another broad discovery interview.
|
|
34
|
+
must_include:
|
|
35
|
+
- "Keeps the approved EUR 900 including taxes, one-time price; explicitly supersedes EUR 750 and identifies landing/video briefs as needing refresh against the new offer revision."
|
|
36
|
+
- "Derives a maximum of three base migrations per week from 24/8 and states that support, rework or scheduling can reduce that ceiling; does not present two remaining places as a fact."
|
|
37
|
+
- "Replaces unconditional 48-hour/zero-error outcomes with a deliverable or process commitment, keeping customer inputs, approval dependency and unknown timing visible."
|
|
38
|
+
- "Explains exception preview and customer approval as a credible reason to choose the service without claiming exclusive invention or proven elimination of errors."
|
|
39
|
+
- "Specifies included work and a bounded support proposal, marks new support/refund terms for owner approval, and avoids inventing a refund entitlement or publishing unlimited help."
|
|
40
|
+
- "Uses the synthetic-data demonstration as available product proof while separating private buyer insight and the unapproved client quote from publishable testimonials."
|
|
41
|
+
- "Removes the unsupported EUR 2,000 bonus valuation, avoids fabricated scarcity, and leaves no unresolved commercial term disguised as approved fact."
|
|
42
|
+
- "Delivers a concrete revised offer with evidence references and a small validation focused on a remaining decision, rather than stopping with generic questions or promising conversion lift."
|