Communitygithub.com

curiositech/windags-skills

High-converting web design techniques that dazzle and persuade. Covers social proof design, pricing page architecture, CTA optimization, scroll-driven persuasion, interactive demos, trust signals, and the visual craft behind sites that sell. Activate on 'sales page design', 'conversion design', 'high-converting', 'landing page that sells', 'pricing page design', 'social proof', 'dazzle', 'wow factor', 'persuasive design', 'conversion rate', 'make it sell'. NOT for copywriting (use marketing copywriting skills), not for A/B testing setup (use frontend-developer), not for paid ad creative (use marketing skills).

windags-skills 是什麼?

windags-skills is a Cursor agent skill that high-converting web design techniques that dazzle and persuade. Covers social proof design, pricing page architecture, CTA optimization, scroll-driven persuasion, interactive demos, trust signals, and the visual craft behind sites that sell. Activate on 'sales page design', 'conversion design', 'high-converting', 'landing page that sells', 'pricing page design', 'social proof', 'dazzle', 'wow factor', 'persuasive design', 'conversion rate', 'make it sell'. NOT for copywriting (use marketing copywriting skills), not for A/B testing setup (use frontend-developer), not for paid ad creative (use marketing skills).

相容平台~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/curiositech/windags-skills/tree/HEAD/skills/web-sales-design

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

預覽

來自技能 README

windags-skills preview

說明文件

Web Sales Design

The craft of building websites that sell. Not marketing strategy, not copywriting, not A/B test infrastructure — the actual design patterns, visual systems, and interactive techniques that turn visitors into customers.

Core principle: The best sales design is invisible. Visitors don't think "this is selling to me." They think "this is exactly what I need." Every pixel, every scroll reveal, every social proof placement either builds trust and desire or erodes it. There is no neutral.


When to Use

Use for:

  • Designing landing pages that need to convert visitors to signups/purchases
  • Building pricing pages with effective tier architecture
  • Placing and designing social proof (testimonials, logos, case studies)
  • Crafting CTA buttons that get clicked (size, color, copy, placement)
  • Structuring long-form sales pages (problem-agitate-solve scroll sequences)
  • Adding trust signals (security badges, guarantees, human faces)
  • Creating interactive product demos and feature tours
  • Building "wow moments" — scroll-triggered reveals, before/after comparisons
  • Auditing existing pages for conversion design weaknesses

Do NOT use for:

  • Copywriting and messaging strategy → use product-appeal-analyzer or copywriting skills
  • A/B test implementation → use frontend-developer
  • Paid ad creative → use marketing skills
  • UX friction audits → use ux-friction-analyzer (complementary — run both)
  • General web design → use web-design-expert
  • Payment/subscription implementation → use webapp-paywall-implementation

The Scroll-Driven Sales Page Blueprint

The modern long-form sales page follows a psychological arc. Each section has a job. Skip a section and the page leaks visitors.

The 8-Section Structure

┌─────────────────────────────────────────────┐
│  1. HERO — Promise + Identity Signal        │  ← 0-5 seconds
│     "This is for people like me"            │
├─────────────────────────────────────────────┤
│  2. LOGO BAR — Social Proof Shortcut        │  ← 5-10 seconds
│     "Trusted by names I recognize"          │
├─────────────────────────────────────────────┤
│  3. PROBLEM — Pain Acknowledged             │  ← 10-30 seconds
│     "They understand my situation"          │
├─────────────────────────────────────────────┤
│  4. AGITATE — Consequences of Inaction      │  ← 30-60 seconds
│     "This is worse than I thought"          │
├─────────────────────────────────────────────┤
│  5. SOLUTION — Product as Resolution        │  ← 1-2 minutes
│     "Here's how it works + demo"            │
├─────────────────────────────────────────────┤
│  6. PROOF — Deep Social Proof               │  ← 2-3 minutes
│     "Real people, real results"             │
├─────────────────────────────────────────────┤
│  7. PRICING — Offer Architecture            │  ← 3-4 minutes
│     "Clear value, obvious choice"           │
├─────────────────────────────────────────────┤
│  8. FINAL CTA — Urgency + Guarantee         │  ← Decision point
│     "Risk-free, act now"                    │
└─────────────────────────────────────────────┘

Section-by-Section Implementation

Section 1: Hero (The 5-Second Verdict)

The hero decides if visitors stay or leave. Every element must earn its pixel.

Layout pattern — the converging hero:

function HeroSection() {
  return (
    <section className="hero">
      {/* Eyebrow — credibility in a whisper */}
      <p className="hero-eyebrow">Trusted by 2,400+ engineering teams</p>

      {/* Headline — one promise, benefit-driven */}
      <h1 className="hero-headline">
        Ship features in hours,<br />not sprints
      </h1>

      {/* Subheadline — how, in one sentence */}
      <p className="hero-subheadline">
        AI-powered workflow automation that turns your backlog
        into deployed code — reviewed, tested, and ready.
      </p>

      {/* CTA cluster — primary + low-commitment secondary */}
      <div className="hero-cta-cluster">
        <a href="/signup" className="cta-primary">
          Start building free
        </a>
        <a href="/demo" className="cta-secondary">
          Watch 2-min demo
        </a>
      </div>

      {/* Visual proof — product in action, not a screenshot */}
      <div className="hero-visual">
        <video autoPlay muted loop playsInline>
          <source src="/demo-clip.mp4" type="video/mp4" />
        </video>
      </div>
    </section>
  );
}
.hero {
  padding: 5rem 2rem 4rem;
  text-align: center;
  max-width: 800px;
  margin: 0 auto;
}

.hero-eyebrow {
  font-size: 0.875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-primary);
  margin-bottom: 1rem;
}

.hero-headline {
  font-size: clamp(2.25rem, 5vw, 3.75rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.025em;
  margin-bottom: 1.25rem;
}

.hero-subheadline {
  font-size: clamp(1.125rem, 2vw, 1.375rem);
  line-height: 1.6;
  color: var(--color-text-secondary);
  max-width: 600px;
  margin: 0 auto 2rem;
}

.hero-cta-cluster {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 3rem;
}

What the best do differently (Stripe, Linear, Vercel, Notion):

  • Stripe: Animated gradient backgrounds that feel alive, not decorative. Product capability revealed through micro-interactions — you scroll and the product demos itself.
  • Linear: Dark mode that signals "power tool for serious builders." Zero visual waste. The design IS the product promise — speed and precision.
  • Vercel: Typography-forward hero with one line that frames the entire product. CTA is "Start Deploying" not "Sign Up" — action-oriented.
  • Notion: Shows the product working, not a screenshot. The hero IS a mini-demo.

Section 2: Logo Bar (The Trust Shortcut)

4-6 recognizable logos. Not 20. Quantity dilutes; quality validates.

function LogoBar() {
  return (
    <section className="logo-bar">
      <p className="logo-bar-label">
        Trusted by teams at
      </p>
      <div className="logo-bar-logos">
        {logos.map(logo => (
          <img
            key={logo.name}
            src={logo.src}
            alt={logo.name}
            className="logo-bar-logo"
          />
        ))}
      </div>
    </section>
  );
}
.logo-bar {
  padding: 2rem 2rem;
  text-align: center;
  border-top: 1px solid var(--color-border-subtle);
  border-bottom: 1px solid var(--color-border-subtle);
}

.logo-bar-label {
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-text-tertiary);
  margin-bottom: 1.25rem;
}

.logo-bar-logos {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.5rem;
  flex-wrap: wrap;
}

.logo-bar-logo {
  height: 28px;
  opacity: 0.5;
  filter: grayscale(1);
  transition: opacity 0.2s, filter 0.2s;
}

.logo-bar-logo:hover {
  opacity: 1;
  filter: grayscale(0);
}

Design rules:

  • Grayscale logos by default (less visual noise, more credibility paradoxically)
  • All logos same visual height (28-32px) regardless of original proportions
  • 5 logos is the sweet spot — fewer feels sparse, more feels cluttered
  • Label above ("Trusted by," "Used by teams at") not below
  • If you don't have recognizable logos, use metrics instead: "2,400+ teams", "10M+ deploys"

Section 3: Problem (Pain Acknowledged)

The visitor must feel seen. This section validates their struggle.

Pattern: The three-pain grid

function ProblemSection() {
  return (
    <section className="problem-section">
      <h2 className="section-eyebrow">Sound familiar?</h2>
      <div className="pain-grid">
        <PainCard
          icon={<ClockIcon />}
          title="Weeks lost to review cycles"
          description="PRs sit for days. Context is lost. Engineers context-switch
            between features while waiting for approvals."
        />
        <PainCard
          icon={<AlertTriangleIcon />}
          title="Bugs slip through anyway"
          description="Manual review catches style issues, not logic bugs.
            The things that break production still break production."
        />
        <PainCard
          icon={<TrendingDownIcon />}
          title="Shipping velocity flatlines"
          description="More engineers, same output. Process overhead grows
            faster than the team."
        />
      </div>
    </section>
  );
}

Design rules:

  • Use the visitor's words, not your product's jargon
  • 3 pain points maximum (more dilutes impact)
  • Icons should reinforce the emotion, not decorate
  • The section should make visitors nod, not flinch — empathy, not fear

Section 4: Agitate (The Cost of Doing Nothing)

This section raises the stakes. Not with fear — with clarity about what the problem actually costs.

Pattern: The consequence cascade

Show escalating consequences: time wasted, money lost, opportunity missed, team morale eroded. Use real numbers when possible ("The average team loses 14 hours/week to code review overhead").

Design approach: Darker background, slightly tighter typography, optional animated counter showing accumulating waste. This section is visually "heavier" than the problem section — it's the low point before the solution arrives.

Section 5: Solution (Product as Resolution)

The emotional pivot. The page shifts from problem to possibility.

Pattern: Feature showcase with scroll-triggered reveals

function SolutionSection() {
  return (
    <section className="solution-section">
      <h2>Here's how it works</h2>
      <div className="feature-showcase">
        {features.map((feature, i) => (
          <FeatureRow
            key={feature.id}
            reverse={i % 2 === 1}  /* alternating layout */
            title={feature.title}
            description={feature.description}
            visual={feature.visual}  /* video, animation, or interactive */
          />
        ))}
      </div>
    </section>
  );
}

function FeatureRow({ reverse, title, description, visual }) {
  const ref = useRef(null);
  const isVisible = useIntersectionObserver(ref, { threshold: 0.3 });

  return (
    <div
      ref={ref}
      className={`feature-row ${reverse ? 'reverse' : ''}`}
      style={{
        opacity: isVisible ? 1 : 0,
        transform: isVisible ? 'translateY(0)' : 'translateY(2rem)',
        transition: 'opacity 0.6s ease, transform 0.6s ease',
      }}
    >
      <div className="feature-text">
        <h3>{title}</h3>
        <p>{description}</p>
      </div>
      <div className="feature-visual">
        {visual}
      </div>
    </div>
  );
}
.feature-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
  padding: 4rem 0;
}

.feature-row.reverse {
  direction: rtl;
}

.feature-row.reverse > * {
  direction: ltr;
}

.feature-text h3 {
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 0.75rem;
}

.feature-text p {
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--color-text-secondary);
}

@media (max-width: 768px) {
  .feature-row {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .feature-row.reverse {
    direction: ltr;
  }
}

What makes this sell:

  • Alternating layout prevents scroll monotony
  • Visuals are interactive or animated — not static images
  • Each feature is framed as a benefit ("Ship 3x faster") not a capability ("Automated CI/CD")
  • Scroll-triggered reveals create discovery moments — the page "unfolds" as they read
  • 3-5 features maximum. More than that and you're listing, not selling.

Section 6: Proof (Deep Social Proof)

Testimonials, case studies, metrics. This is where skepticism dies.

function ProofSection() {
  return (
    <section className="proof-section">
      <h2>Teams ship faster with us</h2>

      {/* Metrics bar — hard numbers */}
      <div className="metrics-bar">
        <Metric value="73%" label="faster review cycles" />
        <Metric value="2.4x" label="more deploys per week" />
        <Metric value="89%" label="fewer production bugs" />
      </div>

      {/* Featured testimonial — one powerful quote with face */}
      <blockquote className="featured-testimonial">
        <img src="/testimonials/sarah.jpg" alt="Sarah Chen" />
        <div>
          <p className="quote">
            "We went from shipping once a month to shipping daily.
            The team actually enjoys the review process now."
          </p>
          <cite>
            <strong>Sarah Chen</strong>
            <span>VP Engineering, Acme Corp</span>
          </cite>
        </div>
      </blockquote>

      {/* Testimonial grid — breadth of proof */}
      <div className="testimonial-grid">
        {testimonials.map(t => (
          <TestimonialCard key={t.id} {...t} />
        ))}
      </div>
    </section>
  );
}
.metrics-bar {
  display: flex;
  justify-content: center;
  gap: 4rem;
  padding: 3rem 0;
}

.metric-value {
  font-size: 3rem;
  font-weight: 800;
  color: var(--color-primary);
  line-height: 1;
}

.metric-label {
  font-size: 0.9375rem;
  color: var(--color-text-secondary);
  margin-top: 0.5rem;
}

.featured-testimonial {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
  padding: 2.5rem;
  background: var(--color-surface-elevated);
  border-radius: 1rem;
  border: 1px solid var(--color-border-subtle);
  margin: 3rem 0;
}

.featured-testimonial img {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.featured-testimonial .quote {
  font-size: 1.25rem;
  line-height: 1.6;
  font-style: italic;
  margin-bottom: 1rem;
}

.testimonial-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1.5rem;
}

Social proof hierarchy (strongest to weakest):

  1. Named person + photo + company + role + specific result ("Sarah Chen, VP Eng at Acme — 73% faster reviews")
  2. Named person + photo + company ("John at Stripe")
  3. Company logo + metric ("Used by Stripe — 10k+ deploys/day")
  4. Anonymous quote with role ("VP Engineering at a Fortune 500")
  5. Star rating + count ("4.9/5 from 2,400 reviews")
  6. User count alone ("50,000+ users") — weakest but still useful

Design rules for testimonials:

  • Human faces increase trust 30%+ — always include photos
  • Specific results beat vague praise ("73% faster" beats "game-changer")
  • 3 testimonials is the sweet spot for a section; link to more
  • Video testimonials convert 2x better than text — use when available
  • Place the strongest testimonial closest to the CTA

Section 7: Pricing (See dedicated section below)

Section 8: Final CTA (The Close)

function FinalCTA() {
  return (
    <section className="final-cta">
      <h2>Ready to ship faster?</h2>
      <p>
        Start free. No credit card required.
        Cancel anytime.
      </p>
      <a href="/signup" className="cta-primary cta-large">
        Start building free
      </a>
      <p className="guarantee">
        30-day money-back guarantee. No questions asked.
      </p>
    </section>
  );
}

Design rules:

  • Repeat the primary CTA from the hero — same words, same style
  • Add risk-reduction copy: "No credit card", "Cancel anytime", "30-day guarantee"
  • Visually distinct section (different background, generous padding)
  • This is the ONLY place mild urgency is acceptable ("Join 200+ teams who started this week")
  • Never pressure. Reassure.

Pricing Page Architecture

The pricing page is where desire meets deliberation. It must make the choice feel obvious.

The Three-Tier Pattern

The most proven pricing page structure in SaaS:

┌──────────────┐  ┌──────────────────┐  ┌──────────────┐
│    Starter    │  │   Pro ← BEST     │  │  Enterprise  │
│              │  │   VALUE BADGE     │  │              │
│   $0/mo      │  │   $29/mo         │  │   Custom     │
│              │  │   HIGHLIGHTED     │  │              │
│  For trying  │  │  For building    │  │  For scaling │
│              │  │                  │  │              │
│  [Start free]│  │  [Get started]   │  │  [Contact us]│
└──────────────┘  └──────────────────┘  └──────────────┘

Implementation

function PricingSection() {
  const [annual, setAnnual] = useState(true);

  return (
    <section className="pricing-section">
      <h2>Simple, transparent pricing</h2>
      <p className="pricing-subtitle">
        Start free, scale as you grow. No surprises.
      </p>

      {/* Billing toggle */}
      <div className="billing-toggle">
        <span className={!annual ? 'active' : ''}>Monthly</span>
        <button
          className="toggle-switch"
          onClick={() => setAnnual(!annual)}
          aria-label={`Switch to ${annual ? 'monthly' : 'annual'} billing`}
        >
          <span className={`toggle-knob ${annual ? 'right' : 'left'}`} />
        </button>
        <span className={annual ? 'active' : ''}>
          Annual <span className="save-badge">Save 20%</span>
        </span>
      </div>

      {/* Tier cards */}
      <div className="pricing-grid">
        <PricingCard
          name="Starter"
          price={0}
          period="forever"
          description="For individuals and side projects"
          features={[
            'Up to 3 projects',
            '1,000 builds/month',
            'Community support',
          ]}
          cta="Start free"
          ctaVariant="secondary"
        />
        <PricingCard
          name="Pro"
          price={annual ? 29 : 36}
          period="/month"
          description="For teams shipping production software"
          features={[
            'Unlimited projects',
            '10,000 builds/month',
            'Priority support',
            'Advanced analytics',
            'Team management',
          ]}
          cta="Get started"
          ctaVariant="primary"
          highlighted={true}
          badge="Most popular"
        />
        <PricingCard
          name="Enterprise"
          price="Custom"
          description="For organizations at scale"
          features={[
            'Everything in Pro',
            'Unlimited builds',
            'SSO & SAML',
            'Dedicated support',
            'SLA guarantee',
            'Custom integrations',
          ]}
          cta="Contact sales"
          ctaVariant="secondary"
        />
      </div>

      {/* Feature comparison table */}
      <FeatureComparisonTable tiers={tiers} />
    </section>
  );
}
.pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  max-width: 1100px;
  margin: 3rem auto;
  align-items: start;
}

.pricing-card {
  padding: 2rem;
  border-radius: 1rem;
  border: 1px solid var(--color-border-subtle);
  background: var(--color-surface);
}

.pricing-card.highlighted {
  border-color: var(--color-primary);
  border-width: 2px;
  box-shadow: 0 8px 32px rgba(59, 130, 246, 0.12);
  position: relative;
  /* Subtle upward shift to draw the eye */
  transform: translateY(-0.5rem);
}

.pricing-card .badge {
  position: absolute;
  top: -0.75rem;
  left: 50%;
  transform: translateX(-50%);
  background: var(--color-primary);
  color: white;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.25rem 1rem;
  border-radius: 2rem;
}

.pricing-card .price {
  font-size: 3rem;
  font-weight: 800;
  line-height: 1;
  margin: 1rem 0 0.25rem;
}

.pricing-card .price-currency {
  font-size: 1.5rem;
  vertical-align: super;
}

.pricing-card .price-period {
  font-size: 1rem;
  font-weight: 400;
  color: var(--color-text-secondary);
}

.billing-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  margin: 2rem 0;
}

.save-badge {
  background: var(--color-success-subtle);
  color: var(--color-success);
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.125rem 0.5rem;
  border-radius: 2rem;
  margin-left: 0.25rem;
}

@media (max-width: 768px) {
  .pricing-grid {
    grid-template-columns: 1fr;
    max-width: 400px;
  }
  .pricing-card.highlighted {
    transform: none;
    order: -1; /* Move highlighted plan to top on mobile */
  }
}

Pricing Psychology (What the Best Do)

Anchoring (Vercel pattern): Enterprise tier with "Custom" pricing appears first or last, anchoring the Pro tier as reasonable by comparison.

Decoy pricing: The Starter tier exists partly to make Pro look like a bargain. If Starter has 3 projects and Pro has unlimited, the $29 gap feels trivial.

Annual nudge (Stripe pattern): Default to annual billing with a visible "Save 20%" badge. Monthly option available but not default. The toggle defaults to the position that benefits both parties.

Feature comparison table (Vercel pattern): Sticky header with plan names. Checkmarks and dashes (not just text). The highlighted column stays visually distinct as you scroll. Group features by category with section dividers.

What to learn from each:

CompanyPricing StrengthDesign Technique
StripeRadical transparencyUsage-based pricing with calculators, no hidden fees
LinearSimplicityTwo tiers, no feature matrix clutter
VercelDeveloper trustDark mode, technical detail, code-native feel
NotionAccessibilityFree tier generous enough to hook, paid tier for teams
FramerVisual proofPricing page itself demonstrates the product's capabilities

CTA Button Design

The CTA button is the single most revenue-critical element on any page. Every property matters.

Anatomy of a High-Converting CTA

.cta-primary {
  /* Size — large enough to tap, prominent enough to find */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;          /* Google Material minimum touch target */
  padding: 0.875rem 2rem;    /* Generous horizontal padding */

  /* Typography — confident, readable */
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1;

  /* Color — high contrast against page background */
  background-color: #2563eb;      /* Blue-600: trust + action */
  color: #ffffff;
  border: none;
  border-radius: 0.5rem;

  /* Interaction — responsive, alive */
  cursor: pointer;
  transition: background-color 0.15s ease, transform 0.15s ease,
              box-shadow 0.15s ease;
}

.cta-primary:hover {
  background-color: #1d4ed8;      /* Blue-700: darker on hover */
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
}

.cta-primary:active {
  transform: translateY(0);
  box-shadow: none;
}

/* Large variant — for hero and final CTA sections */
.cta-large {
  min-height: 56px;
  padding: 1rem 2.5rem;
  font-size: 1.125rem;
}

/* Secondary CTA — lower commitment option */
.cta-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0.875rem 2rem;
  font-size: 1rem;
  font-weight: 600;
  background: transparent;
  color: var(--color-text-primary);
  border: 1.5px solid var(--color-border);
  border-radius: 0.5rem;
  cursor: pointer;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

.cta-secondary:hover {
  border-color: var(--color-primary);
  background-color: var(--color-primary-subtle);
}

CTA Color Psychology

Color choice for CTAs is not arbitrary — it must contrast with the page palette while matching the emotional register of the action.

ColorHex RangeEmotional RegisterBest For
Blue#2563eb - #1d4ed8Trust, reliability, professionalismSaaS signups, B2B, finance
Green#16a34a - #15803dSafety, go, affirmationFree trials, "safe" actions, eco products
Orange#ea580c - #c2410cEnergy, warmth, urgency (mild)E-commerce, limited offers, creative tools
Purple#7c3aed - #6d28d9Premium, creative, innovativeDesign tools, premium tiers, creative SaaS
Black#18181b - #09090bAuthority, premium, confidenceLuxury, developer tools, minimalist brands
Red#dc2626 - #b91c1cUrgency, importance, stop-and-lookUSE SPARINGLY — cancellations, warnings only

The real rule: Your CTA must be the highest-contrast interactive element on the page. If your page is blue-themed, a blue CTA disappears. Use the complementary color or a warm accent.

CTA Copy That Converts

Weak (Generic)Strong (Specific)Why It Works
SubmitGet my free reportSpecific outcome
Sign UpStart building freeAction + benefit + risk removal
Learn MoreSee how it worksLower commitment, higher curiosity
Buy NowSecure my spotOwnership + mild urgency
Get StartedLaunch my first projectVisualizable action
DownloadGet the playbookNamed deliverable

Rules:

  • First person when possible ("Start my free trial" outperforms "Start your free trial")
  • 2-5 words maximum
  • Verb-first (action-oriented)
  • Benefit-laden, not task-describing
  • Never "Submit" — that is not a human word

CTA Placement Strategy

┌─────────────────────────────────────┐
│  Hero CTA                           │  ← For visitors who arrive ready
│  (Primary + Secondary)              │
├─────────────────────────────────────┤
│  ...content...                      │
├─────────────────────────────────────┤
│  Mid-page CTA                       │  ← After the solution section
│  (Inline, less prominent)           │     For visitors convinced midway
├─────────────────────────────────────┤
│  ...more content...                 │
├─────────────────────────────────────┤
│  Sticky CTA (optional)              │  ← Appears after hero scrolls
│  (Compact bar, top or bottom)       │     out of view
├─────────────────────────────────────┤
│  Final CTA                          │  ← After all proof is delivered
│  (Large, with guarantee text)       │     For visitors who read everything
└─────────────────────────────────────┘

Sticky CTA pattern (use sparingly):

.sticky-cta-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 0.75rem 2rem;
  background: var(--color-surface);
  border-top: 1px solid var(--color-border-subtle);
  display: flex;
  align-items: center;
  justify-content: space-between;
  transform: translateY(100%);
  transition: transform 0.3s ease;
  z-index: 50;
  backdrop-filter: blur(12px);
}

.sticky-cta-bar.visible {
  transform: translateY(0);
}

Show the sticky bar only after the hero CTA scrolls out of view. Hide it when the final CTA section comes into view. This ensures there is always a CTA available without being obnoxious.


Social Proof Design Patterns

Social proof is the single highest-leverage conversion element after the hero. Placement and design matter as much as the content.

The Social Proof Pyramid

Layer different types of proof throughout the page:

                    CASE STUDIES
                  (deepest proof, highest effort)
                  ─────────────────
               TESTIMONIALS + PHOTOS
             (personal, emotional, relatable)
             ──────────────────────────
          METRICS + NUMBERS
        (scale, velocity, reliability)
        ───────────────────────────────
     LOGOS + BADGES
   (instant recognition, zero reading)
   ────────────────────────────────────
  SOCIAL COUNTERS + ACTIVITY FEEDS
(volume, momentum, "everyone's doing it")
───────────────────────────────────────────

Place the base layers (logos, counters) near the top. Place deeper proof (testimonials, case studies) further down where visitors are making decisions.

Animated Social Proof (The "Live" Effect)

function LiveActivityFeed() {
  const [activities, setActivities] = useState(initialActivities);

  useEffect(() => {
    const interval = setInterval(() => {
      setActivities(prev => {
        const next = [...prev];
        next.pop();
        next.unshift(getRandomActivity());
        return next;
      });
    }, 4000);
    return () => clearInterval(interval);
  }, []);

  return (
    <div className="activity-feed" aria-live="polite">
      {activities.map((activity, i) => (
        <div
          key={activity.id}
          className="activity-item"
          style={{
            opacity: 1 - (i * 0.2),
            transform: `translateY(${i * 48}px)`,
          }}
        >
          <img src={activity.avatar} alt="" className="activity-avatar" />
          <span>
            <strong>{activity.name}</strong> from {activity.company}{' '}
            {activity.action}
          </span>
          <time>{activity.timeAgo}</time>
        </div>
      ))}
    </div>
  );
}

ETHICAL CONSTRAINT: These must be real events, not fabricated. If you have actual signups, show them (with privacy consent). If not, use aggregated metrics instead. See the Anti-Patterns section for why fake activity feeds are harmful.

Before/After Comparisons

One of the most powerful proof patterns — tangible transformation.

function BeforeAfter({ before, after }) {
  const [position, setPosition] = useState(50);
  const containerRef = useRef(null);

  const handleMove = (e) => {
    const rect = containerRef.current.getBoundingClientRect();
    const x = ((e.clientX - rect.left) / rect.width) * 100;
    setPosition(Math.max(0, Math.min(100, x)));
  };

  return (
    <div
      ref={containerRef}
      className="before-after"
      onMouseMove={handleMove}
      onTouchMove={(e) => handleMove(e.touches[0])}
      role="slider"
      aria-label="Before and after comparison"
      aria-valuemin={0}
      aria-valuemax={100}
      aria-valuenow={position}
    >
      <div className="before-side" style={{ clipPath: `inset(0 ${100 - position}% 0 0)` }}>
        <img src={before.image} alt={before.alt} />
        <span className="label">Before</span>
      </div>
      <div className="after-side">
        <img src={after.image} alt={after.alt} />
        <span className="label">After</span>
      </div>
      <div className="slider-handle" style={{ left: `${position}%` }}>
        <div className="handle-line" />
        <div className="handle-grip" />
      </div>
    </div>
  );
}

Trust Signals and Risk Reduction

Trust is not one element — it is a system woven throughout the page.

Trust Signal Placement Map

SignalWhere to PlaceWhy There
Company logosBelow heroImmediate credibility before reading
Security badges (SOC2, GDPR)Near forms and pricingReduce anxiety at commitment points
Money-back guaranteeBelow pricing CTARemove purchase risk at decision moment
Human facesTestimonials, about sectionFaces trigger trust response (amygdala)
"No credit card required"Next to signup CTAEliminate the #1 signup barrier
Privacy policy linkNear email captureShow respect for their data
Real-time user countHero or social barDemonstrate momentum and adoption
Press logos ("Featured in")Below logo bar or footerThird-party validation
Response time ("Reply in <1hr")Near contact/supportDemonstrate commitment to service

The Guarantee Component

function GuaranteeBlock() {
  return (
    <div className="guarantee-block">
      <ShieldCheckIcon className="guarantee-icon" />
      <div>
        <h4>30-day money-back guarantee</h4>
        <p>
          Try it risk-free. If it is not right for your team,
          email us within 30 days for a full refund. No questions,
          no hassle, no hard feelings.
        </p>
      </div>
    </div>
  );
}
.guarantee-block {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
  padding: 1.5rem 2rem;
  background: var(--color-success-subtle);
  border: 1px solid var(--color-success-border);
  border-radius: 0.75rem;
  max-width: 600px;
  margin: 2rem auto;
}

.guarantee-icon {
  width: 32px;
  height: 32px;
  color: var(--color-success);
  flex-shrink: 0;
}

Interactive Product Demos (The "Wow" Factor)

The moment a visitor stops scrolling and thinks "this is legit" is the moment you win. Interactivity creates those moments.

Patterns Ranked by Conversion Impact

PatternImpactEffortWhen to Use
Interactive playgroundHighestHighDeveloper tools, design tools
Video demo (autoplay, muted)HighMediumAny product with visual UI
Scroll-triggered animationHighMediumFeature explanations, data flows
Before/after sliderHighLowVisual transformations
Animated metrics counterMediumLowAny page with impressive numbers
Hover-to-revealMediumLowFeature grids, comparison tables
Lottie illustrationsMediumMediumAbstract concepts, onboarding
ROI calculatorHighMediumB2B, enterprise, cost-savings pitch

ROI Calculator Pattern

Nothing sells like showing the visitor their own potential savings.

function ROICalculator() {
  const [teamSize, setTeamSize] = useState(10);
  const [hoursPerWeek, setHoursPerWeek] = useState(8);

  const hourlyRate = 75; // average dev hourly cost
  const efficiency = 0.65; // 65% reduction claim
  const weeklySavings = teamSize * hoursPerWeek * efficiency * hourlyRate;
  const annualSavings = weeklySavings * 52;

  return (
    <div className="roi-calculator">
      <h3>See what you could save</h3>

      <div className="roi-inputs">
        <label>
          <span>Team size</span>
          <input
            type="range"
            min={1}
            max={100}
            value={teamSize}
            onChange={e => setTeamSize(Number(e.target.value))}
          />
          <output>{teamSize} engineers</output>
        </label>

        <label>
          <span>Hours spent on reviews/week</span>
          <input
            type="range"
            min={1}
            max={40}
            value={hoursPerWeek}
            onChange={e => setHoursPerWeek(Number(e.target.value))}
          />
          <output>{hoursPerWeek} hours</output>
        </label>
      </div>

      <div className="roi-result">
        <div className="roi-annual">
          <span className="roi-label">Estimated annual savings</span>
          <span className="roi-value">
            ${annualSavings.toLocaleString()}
          </span>
        </div>
        <p className="roi-footnote">
          Based on ${hourlyRate}/hr average fully-loaded developer cost
          and {Math.round(efficiency * 100)}% efficiency improvement.
        </p>
      </div>
    </div>
  );
}

Design rules for calculators:

  • Pre-filled with realistic defaults (don't start at zero — that shows zero savings)
  • Sliders over text inputs (lower friction, more playful)
  • Show the result updating in real-time as sliders move
  • Include the assumptions transparently (builds trust)
  • Always link the result to your CTA: "Save $X/year — Start free"

Anti-Patterns: Dark Patterns to Avoid

This skill exists to build sites that sell through genuine value, not manipulation. The following patterns are never acceptable. They may boost short-term metrics but they destroy trust, increase refund rates, generate negative word-of-mouth, and in many jurisdictions are now illegal.

1. Fake Urgency / Countdown Timers

What it looks like: "Offer expires in 23:14:07!" — but the timer resets on refresh.

Why it is wrong: Visitors notice. They open an incognito window, see the timer reset, and never trust your brand again. The EU Digital Services Act and similar regulations are actively penalizing this pattern. Booking.com was fined for it.

What to do instead: If you have a genuine deadline (product launch, cohort enrollment), display the real date. "Cohort starts March 15 — 12 spots remaining" is honest urgency.

2. Confirmshaming

What it looks like: "No thanks, I don't want to grow my business" as the dismiss option.

Why it is wrong: It is passive-aggressive. It makes visitors feel manipulated, which is the opposite of trust. MyMedic's "No, I'd rather bleed to death" is the canonical example of how not to do this.

What to do instead: "No thanks" or "Maybe later" — neutral, respectful language. Treat the visitor as an adult making a rational decision.

3. Hidden Costs

What it looks like: Pricing page shows $29/mo, checkout adds $5 "platform fee" + $3 "support fee."

Why it is wrong: 48% of shoppers abandon carts due to unexpected costs. The damage to trust is permanent.

What to do instead: Show the total price upfront. If there are usage-based components, show a calculator with realistic estimates. Stripe's transparent pricing is the gold standard.

4. Roach Motel (Easy In, Hard Out)

What it looks like: One-click signup, but cancellation requires a phone call or chat with a retention agent.

Why it is wrong: Customers trapped by friction become hostile ex-customers. They leave 1-star reviews and warn others. This pattern is now illegal under the FTC's "Click-to-Cancel" rule (2024).

What to do instead: Cancellation should be as easy as signup. Offer a pause option, a downgrade path, or an "are you sure?" with genuine reasons to stay — but never block the exit.

5. Misdirection / Visual Manipulation

What it looks like: The "Accept all cookies" button is large and blue. The "Manage preferences" link is gray 12px text.

Why it is wrong: GDPR enforcement is catching up to this pattern. More importantly, visitors notice the asymmetry and it erodes trust in everything else on the page.

What to do instead: Give both options equal visual weight. If your product is good, informed consent converts better long-term.

6. Fake Social Proof

What it looks like: Fabricated testimonials, stock photo "customers," inflated user counts, fake activity feeds.

Why it is wrong: It is fraud. The FTC actively investigates fake reviews and has levied multi-million dollar fines. Beyond legality, one exposed fake testimonial invalidates all your real ones.

What to do instead: Use real testimonials with real names and real photos (with permission). If you don't have enough social proof yet, use metrics ("500+ beta users") or early-access quotes. Authenticity at low scale beats fabrication at high scale.

7. Forced Continuity

What it looks like: "Free trial!" that auto-converts to a paid plan with no warning email.

Why it is wrong: Surprise charges generate chargebacks, refund requests, and trust destruction. Apple and Google app stores now require explicit confirmation before paid conversions.

What to do instead: Send a reminder email 3 days before trial ends. Make the conversion opt-in if possible. Transparency converts better because it creates goodwill.

The Ethical Test

Before shipping any persuasion pattern, ask:

  1. Would I screenshot this and post it on Twitter? If the answer is "that would look bad," don't ship it.
  2. Does this work if the visitor notices the technique? Good persuasion works when visible. Dark patterns only work when hidden.
  3. Would this cause a customer to warn others? If yes, the lifetime cost exceeds any short-term conversion gain.
  4. Is the visitor making an informed decision? Persuasion is helping people decide. Manipulation is deciding for them.

Responsive Conversion Design

Sales pages must convert on mobile — 60%+ of traffic is mobile in 2026.

Mobile-Specific Patterns

/* Stack CTA cluster vertically on mobile */
@media (max-width: 640px) {
  .hero-cta-cluster {
    flex-direction: column;
    align-items: stretch;
  }

  /* Full-width CTAs on mobile */
  .cta-primary,
  .cta-secondary {
    width: 100%;
    justify-content: center;
  }

  /* Larger touch targets */
  .cta-primary {
    min-height: 52px;
    font-size: 1.0625rem;
  }

  /* Single-column pricing */
  .pricing-grid {
    grid-template-columns: 1fr;
    max-width: 400px;
    margin: 2rem auto;
  }

  /* Move highlighted plan first */
  .pricing-card.highlighted {
    order: -1;
  }

  /* Collapse feature comparison to accordion */
  .feature-table {
    display: none;
  }
  .feature-accordion {
    display: block;
  }

  /* Testimonial cards full-width */
  .testimonial-grid {
    grid-template-columns: 1fr;
  }
}

Mobile conversion rules:

  • Thumb zone: Primary CTAs in bottom 40% of screen
  • No horizontal scrolling — ever
  • Pricing: Show the recommended plan first on mobile, others below
  • Forms: Minimize fields. Every field costs 10-15% of completions.
  • Speed: Compress images aggressively. Sub-3s load time is the conversion threshold.

Performance and Speed

A 1-second delay in load time reduces conversions by 7%. Sales pages must be fast.

MetricTargetWhy
LCP (Largest Contentful Paint)< 2.5sHero must be visible instantly
FID (First Input Delay)< 100msCTAs must respond immediately
CLS (Cumulative Layout Shift)< 0.1Shifting elements kill trust
Total page weight< 1.5MBMobile networks are unforgiving

Quick wins:

  • Lazy-load everything below the fold
  • Use <picture> with WebP/AVIF sources
  • Preload hero image and fonts
  • Inline critical CSS for above-the-fold content
  • Defer non-essential JavaScript (analytics, chat widgets)

Quality Checklist

Before shipping a sales page, verify:

Hero (Section 1)

  • Value proposition clear within 5 seconds
  • Single primary CTA visible without scrolling
  • Eyebrow or social proof signals credibility immediately
  • Headline is benefit-driven, not feature-driven
  • Visual supports the promise (not a raw screenshot)

Social Proof (Sections 2 + 6)

  • Logo bar uses 4-6 recognizable brands (grayscale default)
  • Testimonials include real names, real photos, specific results
  • Metrics are specific and verifiable ("73% faster" not "much faster")
  • No fabricated or misleading social proof

Problem/Agitate (Sections 3 + 4)

  • Visitor's language used, not internal jargon
  • Pain points are specific and relatable
  • Agitation raises stakes without fear-mongering

Solution (Section 5)

  • Features shown as benefits with visual demos
  • 3-5 features maximum (not a feature dump)
  • Scroll-triggered reveals create discovery moments
  • Interactive or animated, not static screenshots

Pricing (Section 7)

  • 2-3 tiers with clear differentiation
  • Recommended tier visually highlighted
  • Annual/monthly toggle defaults to annual with savings shown
  • All costs visible — no hidden fees
  • Feature comparison table available for detail-seekers

CTAs (Throughout)

  • Primary CTA color contrasts with page palette
  • CTA copy is verb-first, benefit-laden, 2-5 words
  • Touch targets meet minimum 48px
  • CTAs placed at hero, mid-page, and final section minimum
  • Sticky CTA appears only when hero CTA not visible

Trust (Throughout)

  • Security badges near forms and payment
  • Guarantee displayed near pricing CTA
  • "No credit card required" if applicable
  • Real human faces in testimonials

Ethics

  • No fake countdown timers or artificial urgency
  • No confirmshaming language
  • No hidden costs or surprise fees
  • Cancellation is as easy as signup
  • All social proof is authentic
  • Both cookie consent options have equal visual weight

Performance

  • LCP under 2.5 seconds
  • Page weight under 1.5MB
  • CLS under 0.1
  • Images use modern formats (WebP/AVIF)
  • Critical CSS inlined for above-the-fold

Mobile

  • All CTAs thumb-reachable
  • Pricing stacks to single column
  • No horizontal scroll anywhere
  • Touch targets 48px minimum
  • Load time under 3 seconds on 4G

Output Format

When this skill is activated, produce:

  1. Page architecture — Section-by-section blueprint with scroll order
  2. Component specifications — CSS/React for key conversion elements
  3. Social proof strategy — What proof to place where and why
  4. CTA specification — Color, size, copy, placement for all CTAs
  5. Pricing page design — Tier structure, highlighting, toggle behavior
  6. Trust signal map — Which signals, where, and why
  7. Ethics review — Confirm no dark patterns present
  8. Mobile adaptation — How each section responds on small screens

The best sales design respects the visitor enough to be honest and compelling enough to be unnecessary. If your product is genuinely good, your job is to remove the barriers between the visitor and the value — not to trick them past those barriers.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

curiositech/windags-skills

Expert in 2000s-era music visualization (Milkdrop, AVS, Geiss) and modern WebGL implementations. Specializes in Butterchurn integration, Web Audio API AnalyserNode FFT data, GLSL shaders for audio-reactive visuals, and psychedelic generative art. Activate on "Milkdrop", "music visualization", "WebGL visualizer", "Butterchurn", "audio reactive", "FFT visualization", "spectrum analyzer". NOT for simple bar charts/waveforms (use basic canvas), video editing, or non-audio visuals.

curiositech/windags-skills

Expert legal research agent for finding and scraping expungement data state by state. Knows authoritative sources, URL patterns, Firecrawl configuration, and 2026 legal landscape.

curiositech/windags-skills

Expert in 3D computer vision labeling tools, workflows, and AI-assisted annotation for LiDAR, point clouds, and sensor fusion. Covers SAM4D/Point-SAM, human-in-the-loop architectures, and vertical-specific training strategies. Activate on '3D labeling', 'point cloud annotation', 'LiDAR labeling', 'SAM 3D', 'SAM4D', 'sensor fusion annotation', '3D bounding box', 'semantic segmentation point cloud'. NOT for 2D image labeling (use clip-aware-embeddings), general ML training (use ml-engineer), video annotation without 3D (use computer-vision-pipeline), or VLM prompt engineering (use prompt-engineer).

curiositech/windags-skills

Implement WCAG 2.2 AA/AAA compliance with automated testing, keyboard navigation, screen reader support, and focus management. Activate on: accessibility audit, WCAG compliance, keyboard navigation, screen reader, aria attributes, axe-core, focus trap. NOT for: design-level accessibility review (use design-accessibility-auditor), color contrast only (use css-in-js-architect).

curiositech/windags-skills

Time-blind friendly planning, executive function support, and daily structure for ADHD brains. Specializes in realistic time estimation, dopamine-aware task design, and building systems that actually work for neurodivergent minds.

curiositech/windags-skills

Designs digital experiences for ADHD brains using neuroscience research and UX principles. Expert in reducing cognitive load, time blindness solutions, dopamine-driven engagement, and compassionate design patterns. Activate on 'ADHD design', 'cognitive load', 'accessibility', 'neurodivergent UX', 'time blindness', 'dopamine-driven', 'executive function'. NOT for general accessibility (WCAG only), neurotypical UX design, or simple UI styling without ADHD context.

curiositech/windags-skills

>- Apply crisis decision-making research to agent routing, uncertainty triage, and coordination failure analysis in time-pressured systems. Use when diagnosing handoff failures, analytical paralysis, or expert judgment under incomplete information. NOT for routine coding, simple CRUD design, or static single-agent tasks with complete information.

curiositech/windags-skills

Extend and modify the admin dashboard, developer portal, and operations console. Use when adding new admin tabs, metrics, monitoring features, or internal tools. Activates for dashboard development, analytics, user management, and internal tooling.

curiositech/windags-skills

Conversation patterns and interaction protocols for multi-agent systems. Covers request/response, pub/sub, blackboard, delegation chains, debate, critique, consensus, fan-out/fan-in, supervisor-worker, and peer negotiation. Deep analysis of AutoGen conversation patterns, CrewAI delegation, LangGraph state passing, and FIPA-ACL performatives. Teaches how to design what agents say to each other and in what order. Activate on: "agent conversation", "agent protocol", "multi-agent debate", "agent delegation", "supervisor worker pattern", "agent voting", "consensus protocol", "fan-out fan-in", "agent negotiation", "blackboard pattern", "agent dialogue", "conversation topology", "agent handoff". NOT for: wire format or serialization (use agent-interchange-formats), orchestration infrastructure (use agentic-infrastructure-2026), single agent behavior (use agentic-patterns).

curiositech/windags-skills

Meta-agent for creating new custom agents, skills, and MCP integrations. Expert in agent design, MCP development, skill architecture, and rapid prototyping. Activate on 'create agent', 'new skill', 'MCP server', 'custom tool', 'agent design'. NOT for using existing agents (invoke them directly), general coding (use language-specific skills), or infrastructure setup (use deployment-engineer).

curiositech/windags-skills

AI-powered calendar management and agent-based scheduling coordination. Covers calendar APIs (Google Calendar, CalDAV/iCal), AI scheduling assistants (Reclaim, Clockwise, Motion, Cal.com), building custom calendar agents with MCP, multi-calendar merging, timezone management, focus block protection, meeting fatigue detection, and agent-to-agent meeting negotiation protocols. Activate on: "calendar agent", "AI scheduling", "calendar coordination", "meeting scheduling", "calendar API", "focus time protection", "calendar optimization", "Google Calendar MCP", "Reclaim", "Clockwise", "Motion", "Cal.com", "smart scheduling", "calendar-aware agent", "timezone scheduling", "agent negotiation meetings". NOT for: manual calendar UI component design (use form-validation-architect), project management scheduling or Gantt charts (use project-management-guru-adhd), general time-tracking or pomodoro apps (use adhd-daily-planner for time-awareness), building the agent itself from scratch (use agent-creator).

curiositech/windags-skills

Build and adopt production AI agent infrastructure in 2026. Covers framework selection (LangGraph, CrewAI, AutoGen, MCP), orchestration patterns, evaluation, observability, memory systems, and tool use. Also covers the SOCIAL dimension: how to sell agent infrastructure internally, change management, measuring ROI, building trust in autonomous systems, and scaling adoption across teams. Activate on: "agent infrastructure", "agent framework comparison", "which agent framework", "sell AI tools internally", "agent adoption", "agent observability", "agent evaluation", "MCP architecture", "agentic mesh", "enterprise AI agents", "AI change management", "agent ROI". NOT for: building specific agents (use ai-engineer), designing agent behavior patterns (use agentic-patterns), prompt tuning (use prompt-engineer).

curiositech/windags-skills

Fundamental patterns for effective agentic behavior. Teaches decomposition, tool orchestration, error recovery, context management, quality self-assessment, and knowing when to stop. Model-agnostic principles that make any agent more effective regardless of domain. Activate on: "how should I structure this agent", "agentic workflow", "agent patterns", "multi-step task", "tool orchestration", "/agentic-patterns", "decompose this", "agent best practices", "chain of actions", "when should the agent stop", "agent loop design". NOT for: creating agent infrastructure (use agent-creator), building DAGs (use windags-architect), specific tool implementation.

curiositech/windags-skills

Automated discovery and matching of agent skills for dynamic task routing and capability assessment

curiositech/windags-skills

Cryptographic security for agentic systems — zero-trust agent networking, signed message envelopes (JWS/JWE), capability-based security (ocaps), Merkle tree audit trails, WASM sandboxing, and formal verification. Covers CLI dev tool security, mTLS between agents, permission boundaries (least privilege for AI agents), and supply chain security for skills/plugins. Activate on: "agent security", "zero trust agents", "secure agent communication", "capability-based security", "ocap", "signed messages between agents", "agent audit trail", "sandbox agent execution", "agent permissions", "mTLS agents", "cryptographic verification", "agent supply chain", "OWASP agentic", "prove agent did X", "tamper-proof agent logs". NOT for: application-level SAST scanning (use security-auditor), network firewall rules (use infrastructure), SOC2/HIPAA compliance (organizational), or prompt injection defense (use prompt-engineer).

curiositech/windags-skills

Data structures and serialization formats for agent-to-agent communication. Covers message envelopes, structured output schemas, capability declarations, task handoff payloads, error/retry signaling, and context windows as data structures. Deep comparison of A2A protocol, MCP, OpenAI function calling, and LangChain message types. Teaches when to use rigid schemas vs free-form with validation, typed vs untyped, streaming vs batch. Activate on: "agent message format", "agent communication schema", "agent-to-agent protocol", "A2A protocol", "MCP message format", "structured output for agents", "agent interop", "interchange format", "agent serialization", "task handoff format", "capability declaration". NOT for: what agents say to each other (use agent-conversation-protocols), orchestration topology (use multi-agent-coordination), building agent infrastructure (use agentic-infrastructure-2026).

curiositech/windags-skills

Logic-based agent programming language implementing BDI architecture for practical autonomous agent development

curiositech/windags-skills

>- Design AgentSpeak(L)-style BDI agents with context-guarded plans, selection functions, and intention stacks. Use for interruptible autonomy, agent policy, and multi-agent orchestration in dynamic environments. NOT for simple rule engines, static planners, or centralized workflows.

curiositech/windags-skills

Foundational concurrent computation model where actors communicate exclusively through asynchronous message passing

curiositech/windags-skills

license: Apache-2.0 NOT for unrelated tasks outside this domain.

相關技能