All skills
simota avatar

/funnel

@35ffd55
by shingo imotasimota/agent-skills85 stars
15

Constructing landing pages from a focused section to a premium multi-stage studio pipeline: structure, copy, conversion, responsive build, craft gates, and launch handoffs. Use when building or optimizing an LP, CTA, conversion flow, or premium launch surface.

Use this Skill: https://skilld.dev/gh/simota/agent-skills/funnel

This session only. Nothing lands on disk.

referencepremium-handoff-protocols.md

≈3.7k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Handoff Protocols

Read reference/premium-conversion-playbook.md when choosing a conversion strategy, framework, or evidence-backed target.

How funnel premium brokers work between stages and how it dispatches each delegate. Every delegate call carries a PREMIUM_LP_STAGE_BUNDLE. Every stage exit produces a STAGE_REPORT. There is no free-form delegation in funnel premium.


PREMIUM_LP_STAGE_BUNDLE Schema (Canonical)

The canonical envelope for every delegate invocation. SKILL.md presents a minimum payload view; this file is the source of truth.

PREMIUM_LP_STAGE_BUNDLE:
  Recipe: premium | lead-gen | saas | ecom | event | magnet
  Stage: DISCOVER | AUDIENCE | STRATEGY | STRUCTURE | DESIGN | BUILD | OPTIMIZE | VERIFY | LAUNCH
  Delegate: <agent name>
  Primary_Promise: <one sentence; locked at UNDERSTAND/RECIPE phase via Two-Promise Probe>
  Target_Persona: <persona ID or summary; from Audience stage onward>
  CVR_Target: <evidence-calibrated value per reference/premium-conversion-playbook.md; from Strategy stage onward>
  Brand_System_Ref:
    path: <path to brand system record; mandatory from STRUCTURE onward>
    vision_archetype_locked: true | false
    saga_story_locked: true | false
    compete_positioning_locked: true | false
  Axis_Targets:
    design_rubric: ">= 20/27"          # Hero-Contract Legibility added as 9th criterion
    motion_rubric: ">= 15/20"
    brand_rubric: ">= 17/24"           # Trust-Signal Density added as 6th criterion
    ia_rubric: ">= 15/20"
    geo_rubric: ">= 15/20"             # /20 scale only — never /100
    lighthouse_mobile: { perf: ">=90", accessibility: ">=95", best_practices: ">=95", seo: ">=95" }
    cwv: { lcp_s: "<=2.5", inp_ms: "<=200", cls: "<=0.1", ttfb_ms: "<=800", fcp_s: "<=1.8" }
    a11y_baseline: WCAG_2.2_AA         # stretch AAA where feasible
    motion_inp_contribution_ms: "<=50" # hard ceiling, not aspiration
  Upstream_Outputs:
    - artifact: <path or summary>
      source_stage: <stage>
      source_agent: <agent>
  Constraints:
    tokens_source: <path to design tokens or "TBD">
    brand_direction: <path to direction.md or "TBD">
    framework: <react | vue | svelte | astro | static>
    locales: [<bcp47 codes> or single locale]
    asset_weight_budget: { hero_image_kb: 200, hero_video_mb: 2, font_total_kb: 100 }
  Success_Criteria:
    - <stage-gate criterion this delegate must hit>
  Provenance:
    project_state: .agents/funnel-premium/{project}.json
    decisions_log: .agents/funnel-premium.md
  Open_Questions:
    - <unresolved item the delegate should flag, not silently decide>

Rule: bundle must be complete for the stage being dispatched. Missing fields above the stage's "from" line are blocking. Brand_System_Ref must have all three *_locked flags true before any STRUCTURE-stage bundle is emitted (Brand System triple lock).

AUTORUN-Gate Matrix

When _AGENT_CONTEXT.mode = AUTORUN or AUTORUN_FULL, the following stage activities MUST emit _STEP_COMPLETE.Status = NEED_INFO and pause — they never proceed silently:

Trigger Action
Brand System triple lock incomplete at STRATEGY exit NEED_INFO with missing piece (archetype / story / positioning)
External paid API would be called (Builder image gen, etc.) NEED_INFO with budget estimate
Recipe switch mid-pipeline NEED_INFO with artifact-compatibility list
Fan-out would exceed 5 concurrent delegates (including cross-stage specialists) NEED_INFO with batching proposal
Brief carries two unrelated value propositions detected NEED_INFO with one-promise question
Stage gate fails twice in a row NEED_INFO with repair-or-cut choice
External API outage > 2 retries (Frame/Figma MCP, Builder) NEED_INFO with fallback options
Sentinel high-severity finding requires Builder dispatch NEED_INFO with routing recommendation

Delegate Outage Protocol

Delegate Outage Symptom Fallback Path
Frame (Figma MCP 5xx) get_design_context fails Manual screenshot bundle from user; downgrade Code Connect to handwritten mapping
Builder (image-gen timeout) hero asset not produced Ink (vector illustration)
Voyager (BrowserStack/SauceLabs outage) E2E run fails Local Playwright run on representative devices; flag risk in Launch dossier

Triggers OUTAGE recovery: 2 consecutive retries fail with same error class within 5 min.

State Persistence Discipline

.agents/funnel-premium/{project}.json is updated by funnel premium only. Delegates return values; they do not write state. Write protocol:

  1. Read current state.
  2. Compute merged state (append-only on decisions_log, replace-or-insert on stages.<STAGE>).
  3. Write to .agents/funnel-premium/{project}.json.tmp.
  4. Atomic rename .tmp → .agents/funnel-premium/{project}.json.

decisions_log is append-only; never rewrite or reorder past entries. Each entry has {ts, decision, by, reason}.


Delegate-Specific Handoffs

To Field (DISCOVER)

Delegate: Field
Task: "Identify category structure, market signals, top 3 trends for <Primary_Promise>"
Required_Output:
  - category_definition
  - market_signals: [size, growth, segments]
  - top_3_insights: with citations
Constraints:
  scope: <consumer | B2B | both>
  region: <geo>

To Compete (DISCOVER)

Delegate: Compete
Task: "Teardown top 3–5 competitor LPs for <Primary_Promise>"
Required_Output:
  - competitor_list
  - feature_matrix
  - positioning_map
  - top_2_differentiation_hooks
  - ai_brand_visibility_snapshot
Constraints:
  exclude: <competitors to skip>

To Cast (AUDIENCE)

Delegate: Cast
Task: "Generate <n=1..3> personas for <Primary_Promise> targeting <segment>"
Required_Output:
  - persona_cards: name, role, goals, frictions, JTBD, channel, decision_driver
  - primary_persona_id
Constraints:
  registry: .agents/cast/registry.json  # reuse if applicable

To Pulse (STRATEGY)

Delegate: Pulse
Task: "Design KPI tree, funnel events, CVR target for <Recipe>"
Required_Output:
  - kpi_tree: primary (CVR) + 3..5 secondary
  - funnel_events: ordered event taxonomy
  - cvr_target:
      median: <matched, dated source value or unavailable>
      top_quartile: <matched, dated source value or unavailable>
      top_decile: <matched, dated source value or unavailable>
      chosen_target: <justified target; not a promised uplift>
      traffic_source_qualifier: <warm | cold | mixed>   # for lead-magnet, B2B contact, newsletter
      recipe_alignment_check: <recipe/objective ↔ baseline definition and source>  # MUST match
  - north_star_metric
  - mention_rate_target: <for GEO measurement, ≥15% mention in AI-search>
  - citation_rate_target: <baseline + 30% via Growth/Beacon>
Constraints:
  industry_baseline_ref: <actual dated baseline source or unavailable>
  alignment_check: |
    if the source objective/denominator does not match Recipe, reject that baseline.
    Follow reference/premium-conversion-playbook.md for target selection and missing-data handling.
    if traffic_source_qualifier missing for lead-magnet/B2B/newsletter, FAIL fast.

To Funnel (STRUCTURE)

Delegate: Funnel
Task: "Build LP structure for <Recipe> with primary persona <persona_id>"
Required_Output:
  - wireframe_outline: hero + 5..7 sections
  - cta_strategy: above-fold + repeat CTA placement
  - form_design: field list + progressive disclosure plan (if form-driven)
  - copy_direction_brief: headline angle + benefit framing + objection list + proof type
Constraints:
  framework_choice: <e.g., AIDA / PAS / BAB / 4Ps>
  one_promise_rule: enforced

To Prose (STRUCTURE)

Delegate: Prose
Task: "Write copy v1 for wireframe outline"
Required_Output:
  - headline + sub-headline (3 variants each for later A/B)
  - hero_cta_micro
  - benefit_block_copy (3..5)
  - objection_handling_copy
  - faq_copy (3..5 Q/A)
  - error_state_microcopy
Constraints:
  voice_and_tone: <from Vision or brand guide>
  reading_level: FK <range>

To Vision (DESIGN)

Delegate: Vision
Task: "Set creative direction for <Primary_Promise>, persona <persona_id>"
Required_Output:
  - direction.md: archetype, mood, type direction, palette intent, motion intent
  - rationale: why this direction wins for this persona
Constraints:
  brand_guide_ref: <path or "greenfield">
  archetype_constraints: <if locked>

To Muse (DESIGN)

Delegate: Muse
Task: "Produce tokens matching Vision direction"
Required_Output:
  - tokens.json (DTCG-aligned): color, type, spacing, radius, motion
  - apply_plan: where tokens go in codebase
Constraints:
  contrast_minimum: WCAG_2.2_AA
  existing_tokens_ref: <path or "new system">

To Forge (BUILD)

Delegate: Forge
Task: "Prototype the LP on Muse tokens"
Required_Output:
  - working_prototype: framework <choice>, tokens applied, no hardcoded values
  - lighthouse_prototype_score
Constraints:
  framework: <from Constraints>
  scope: "prototype only, not production"

To Artisan (BUILD)

Delegate: Artisan
Task: "Productionize the Forge prototype"
Required_Output:
  - production_code: type-safe, lint-clean, build-passing
  - component_structure
  - data_contracts (if any)
Constraints:
  tokens_source: <Muse output path>
  perf_budget: <from Constraints>
  framework_idioms: <e.g., RSC for Next.js, Composition API for Vue>

To Growth (OPTIMIZE)

Delegate: Growth
Task: "Run four-pillar optimization: SEO + SMO + CRO + GEO"
Required_Output:
  - seo_audit: meta, OGP, JSON-LD, heading hierarchy, alt text
  - smo_spec: social share cards (Twitter/X, OG)
  - cro_recommendations: CTA, form, exit-intent
  - geo_score: AI-citation readiness ≥ 90
Constraints:
  target_keywords: <from brief or Field>
  structured_data_types: <Product | Article | Event | Course | FAQ as applicable>

To Bolt (OPTIMIZE)

Delegate: Bolt
Task: "Hit perf budget"
Required_Output:
  - lighthouse_mobile: Perf ≥ 90, Acc ≥ 95, BP ≥ 95, SEO ≥ 95
  - cwv: LCP ≤ 2.5s, INP ≤ 200ms, CLS ≤ 0.1
  - optimization_log: what changed and why
Constraints:
  preserve: motion intent (coordinate with Flow), copy fidelity (no truncation)

To Judge (VERIFY)

Delegate: Judge
Task: "Tri-engine review of production LP code"
Required_Output:
  - findings: P1/P2/P3 with grounding
  - intent_alignment_verdict
  - ship_recommendation: GO | NO_GO | CONDITIONAL
Constraints:
  spec_source: <Structure stage wireframe + copy spec>
  fail_on: any unresolved P1 or P2

To Voyager (VERIFY)

Delegate: Voyager
Task: "E2E test suite for LP"
Required_Output:
  - test_suite: happy path + form submit + CTA flows + error states + visual regression
  - run_result: green
  - a11y_test_result: AA pass
Constraints:
  framework: <Playwright | Cypress | WebdriverIO>
  ci_integration: <yes | no>

To Launch (LAUNCH)

Delegate: Launch
Task: "Release plan for LP"
Required_Output:
  - version
  - rollout_strategy: full | staged | canary
  - rollback_plan
  - feature_flag (if applicable)
  - changelog_entry
Constraints:
  release_window: <from user or default>
  dependent_systems: <e.g., analytics, CRM webhook, email automation>

Stage Output → Next-Stage Input Map

Stage Produces Consumed By
DISCOVER category_definition, competitors, pain quotes AUDIENCE, STRATEGY, STRUCTURE
AUDIENCE personas, journey map, unmet needs STRATEGY, STRUCTURE, DESIGN, VERIFY
STRATEGY KPI tree, CVR target, funnel events STRUCTURE, BUILD, OPTIMIZE, LAUNCH
STRUCTURE wireframe, copy v1, form spec DESIGN, BUILD, VERIFY
DESIGN direction.md, tokens, a11y baseline, assets BUILD, OPTIMIZE, VERIFY
BUILD production code, prototype, motion impl OPTIMIZE, VERIFY
OPTIMIZE Lighthouse 90+, GEO 90+, first variant VERIFY, LAUNCH
VERIFY Judge ship-go, Voyager green, Attest 95%+ LAUNCH
LAUNCH release dossier, live LP, analytics live (downstream Experiment runs)

Receiving Handoffs

From Nexus (NEXUS_TO_LURE_HANDOFF)

Schema in _common/HANDOFF.md. funnel premium reads Constraints, Scope, and Acceptance_Criteria, selects Recipe, and emits its first PREMIUM_LP_STAGE_BUNDLE.

From Judge (JUDGE_TO_LURE_FEEDBACK)

When Judge sends feedback on a previously shipped LP:

JUDGE_TO_LURE_FEEDBACK:
  Findings: <P1/P2/P3 list>
  Affected_Stages: [VERIFY, OPTIMIZE]  # what should have caught this
  Suggested_Fix: <agent + scope>

funnel premium either re-enters at Optimize or Verify (scoped repair) or escalates to user.


Emitting Outbound Handoffs

To Atelier (LURE_TO_ATELIER_HANDOFF)

When delegating the whole design pipeline (multi-artifact bundle):

LURE_TO_ATELIER_HANDOFF:
  Trigger: "LP + slide + 1-pager + marketing captures bundle"
  Primary_Promise: <one sentence>
  Persona: <persona_id>
  Brand_Direction: <path to direction.md or "needs Vision">
  Artifacts_Requested:
    - landing_page
    - slide_deck
    - 1_pager
    - hero_assets
  Tokens_Source: <existing or "needs Muse">
  Return_Schedule: "single closed-loop pipeline"

To Nexus (LURE_TO_NEXUS_ESCALATE)

When scope exceeds LP axis:

LURE_TO_NEXUS_ESCALATE:
  Reason: <multi-page site | full product | infra | brand identity>
  LP_Slice_Completed: <stages cleared so far>
  Open_Items: <what remains>
  Recommended_Routing: <next orchestrator or chain>

To User (LURE_PROGRESS_REPORT)

After each stage gate:

LURE_PROGRESS_REPORT:
  Recipe: <recipe>
  Stage_Reached: <stage>
  Gate_Outcome: PASS | FAIL_REPAIR | FAIL_ESCALATE | CONDITIONAL_PASS
  Artifacts: [<paths>]
  Open_Items: [<list>]
  Next: <stage to advance or question to user>
  ETA_Remaining_Stages: <count>

Persistence

State per project lives at .agents/funnel-premium/{project}.json:

{
  "project": "<id>",
  "recipe": "premium",
  "primary_promise": "...",
  "primary_persona": "...",
  "cvr_target": 0.05,
  "perf_budget": { "lcp_s": 2.5, "inp_ms": 200, "cls": 0.1 },
  "stages": {
    "DISCOVER": { "status": "PASS", "delegates": ["field","compete","voice"], "artifacts": ["..."] },
    "AUDIENCE": { "status": "PASS", "delegates": ["cast","echo","echo[demand]"], "artifacts": ["..."] },
    "...": {}
  },
  "decisions_log": [
    { "ts": "2026-05-16T10:00:00Z", "decision": "primary persona = ICP-1", "by": "user" }
  ]
}

Source: SKILL.md on GitHub

No alerts13d4 checks · Risk SAFE
  • Gen Agent Trust Hub13d

    The funnel skill provides comprehensive landing page design and conversion strategy guidelines. It possesses a minor vulnerability surface to indirect prompt injection via the processing of external persona and competitor data. No malicious code or exfiltration patterns were detected.

  • Socket13d

    No alerts

  • Snyk13d

    Risk: LOW · No issues

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 35ffd55. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 days ago.

Activeupdated 2 weeks ago

README badge

README badge for simota/agent-skills/funnel