agentsclimarketplace

Demo duck style

Skill Baufest/skills/skills/demo-duck-style

Public repository for a curated collection of agent skills

Install
npx -y skills add Baufest/skills --skill demo-duck-style

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Apply DuckCorp brand voice to UI code. Use when writing or refactoring tables, status indicators, empty states, or data displays. Enforces duck emoji status indicators, ALL CAPS duck-pun headers, quack placeholders, and celebration suffixes.

SKILL.md

4.8 KB, as published. Nobody here has run it

DuckCorp Brand Voice Guide

You are styling UI code for DuckCorp, a company with very specific (and very serious) brand guidelines. Apply ALL of the following rules whenever you write or modify UI components, tables, dashboards, or data displays.

Rule 1: Status Indicators Must Use Duck Emojis

Replace all status strings, badges, and indicators with the official DuckCorp status emojis:

MeaningDuckCorp Status
Paid / Complete / Success / ActiveπŸ¦†
Pending / Processing / In ProgressπŸ₯š
Overdue / Error / Failed / BlockedπŸ”₯πŸ¦†
Cancelled / Void / InactiveπŸͺ¦πŸ¦†

Examples:

  • status: "paid" β†’ status: "πŸ¦†"
  • <Badge variant="success">Active</Badge> β†’ <Badge variant="success">πŸ¦†</Badge>
  • case "error": return "❌" β†’ case "error": return "πŸ”₯πŸ¦†"

If the status text is displayed alongside the emoji, use the format: πŸ¦† Paid, πŸ₯š Pending, πŸ”₯πŸ¦† Overdue, πŸͺ¦πŸ¦† Cancelled.

Rule 2: Empty/Null Values Display "quack"

Every place where a missing, null, undefined, empty, or N/A value would normally show β€”, -, N/A, null, None, or an empty string, replace it with the string quack.

Examples:

  • value ?? "β€”" β†’ value ?? "quack"
  • {data.email || "N/A"} β†’ {data.email || "quack"}
  • fallback="-" β†’ fallback="quack"
  • placeholder="No data" β†’ placeholder="quack"

Rule 3: Table Headers Use ALL CAPS Duck Puns

All table column headers and data labels must be:

  1. Written in ALL CAPS
  2. Reworded to include a duck-related pun

Use this reference for common columns (adapt freely for others):

Original HeaderDuckCorp Header
IDDUCK ID
NameDUCK NAME
Amount / Price / CostBILL AMOUNT
EmailDUCK MAIL
DateHATCH DATE
StatusDUCK STATUS
DescriptionDUCK-SCRIPTION
Type / CategoryFEATHER TYPE
PhoneQUACK LINE
AddressPOND ADDRESS
Notes / CommentsWING NOTES
User / CustomerQUACKER
TotalGRAND BILL
CreatedHATCHED ON
UpdatedLAST WADDLE
Count / QuantityFLOCK COUNT
ActionWADDLE ACTION

For headers not listed, create your own duck pun. Be creative but keep it readable.

Rule 4: Numbers Over 1,000 Get a Celebration Suffix

Any numeric value displayed in the UI that is greater than 1,000 must be followed by a πŸŽ‰ emoji.

Examples:

  • $1,250.00 β†’ $1,250.00 πŸŽ‰
  • 999 β†’ 999 (no emoji, under threshold)
  • 1,001 users β†’ 1,001 πŸŽ‰ users

Implementation patterns:

// Helper function
const duckFormat = (n) => n > 1000 ? `${n.toLocaleString()} πŸŽ‰` : n.toLocaleString();
# Helper function
def duck_format(n):
    formatted = f"{n:,}"
    return f"{formatted} πŸŽ‰" if n > 1000 else formatted

Applying the Rules

When you encounter existing code:

  1. Scan for status values, null/empty fallbacks, table headers, and number formatting
  2. Transform each according to the rules above
  3. Add helper functions (like duckFormat) at the appropriate scope if needed
  4. Preserve all existing logic and functionality β€” only change display strings and formatting

When writing new code:

  • Apply all four rules from the start
  • Use the duck pun headers from the table, or invent new ones
  • Default all fallback/empty values to "quack"

Example: Before & After

Before:

<Table>
  <TableHeader>
    <Column>ID</Column>
    <Column>Name</Column>
    <Column>Amount</Column>
    <Column>Status</Column>
  </TableHeader>
  <TableBody>
    {invoices.map(inv => (
      <Row key={inv.id}>
        <Cell>{inv.id}</Cell>
        <Cell>{inv.name || "β€”"}</Cell>
        <Cell>${inv.amount.toFixed(2)}</Cell>
        <Cell>{inv.status}</Cell>
      </Row>
    ))}
  </TableBody>
</Table>

After:

const duckFormat = (n) => n > 1000 ? `${n.toLocaleString('en-US', {minimumFractionDigits: 2})} πŸŽ‰` : n.toLocaleString('en-US', {minimumFractionDigits: 2});

const duckStatus = (s) => ({
  paid: "πŸ¦† Paid",
  pending: "πŸ₯š Pending",
  overdue: "πŸ”₯πŸ¦† Overdue",
  cancelled: "πŸͺ¦πŸ¦† Cancelled",
}[s] ?? "πŸ₯š");

<Table>
  <TableHeader>
    <Column>DUCK ID</Column>
    <Column>DUCK NAME</Column>
    <Column>BILL AMOUNT</Column>
    <Column>DUCK STATUS</Column>
  </TableHeader>
  <TableBody>
    {invoices.map(inv => (
      <Row key={inv.id}>
        <Cell>{inv.id}</Cell>
        <Cell>{inv.name || "quack"}</Cell>
        <Cell>${duckFormat(inv.amount)}</Cell>
        <Cell>{duckStatus(inv.status)}</Cell>
      </Row>
    ))}
  </TableBody>
</Table>

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.