agentsclimarketplace

Output

Skill mud-mos23/nstup-taste/skills/output

Nstup Taste gives your AI-generated interfaces actual taste. No more generic SaaS templates, purple-blue gradients, 3-column card layouts, or Inter font.

Install
npx -y skills add mud-mos23/nstup-taste --skill output

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

  • 1 stars1 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

Anti-troncature. Interdit les placeholders, TODO, commentaires vides, points de suspension. Exige du code complet et fonctionnel.

SKILL.md

3.9 KB, as published. Nobody here has run it

Output — L'Intégrité du Code

L'IA a tendance à expédier du code à moitié fini. Output force la complétude à chaque fichier.


Règles de Complétude

Interdictions Strictes

// ...                   ← INTERDIT
/* ... */                ← INTERDIT
// TODO                  ← INTERDIT
// FIXME                 ← INTERDIT
// implement later       ← INTERDIT
// add more items here   ← INTERDIT
// continue...           ← INTERDIT
// etc.                  ← INTERDIT
// rest of the code      ← INTERDIT
// similar for other...  ← INTERDIT
// handle errors         ← INTERDIT (ou tu les handles maintenant)

Ce qui est Obligatoire

  • ✅ Chaque fichier est complet et fonctionnel du début à la fin
  • ✅ Toutes les props sont définies et typées
  • ✅ Tous les imports sont résolus (pas de import X from '...' vide)
  • ✅ Tous les data-fetching ont leur loading/error/success states
  • ✅ Tous les event handlers sont implémentés
  • ✅ Toutes les routes sont connectées
  • ✅ Tous les styles sont complets (pas de classes Tailwind manquantes)

Protocole de Split de Fichier

Quand le fichier est trop long pour tenir dans le contexte :

// FILE_SPLIT: Button.tsx - part 1/2
// Contenu du fichier...

Puis dans le message suivant :

// FILE_SPLIT: Button.tsx - part 2/2
// Suite et fin du fichier...

Règles du Split

  • Le split ne coupe jamais au milieu d'une fonction, d'un composant, ou d'un bloc
  • Chaque partie doit être syntaxiquement valide
  • La partie 1 ne contient pas de code mort
  • La partie 2 reprend exactement où la partie 1 s'est arrêtée
  • Maximum 2 splits par fichier

Anti-Placeholder Patterns

❌ À ne pas faire

function Component() {
  // ... props handling
  // ... state management
  // ... render logic
  return <div>Component</div>
}

✅ À la place

interface ComponentProps {
  title: string
  description?: string
  onAction: () => void
  variant?: 'primary' | 'secondary'
  loading?: boolean
  disabled?: boolean
  className?: string
}

function Component({
  title,
  description,
  onAction,
  variant = 'primary',
  loading = false,
  disabled = false,
  className = ''
}: ComponentProps) {
  const [isHovered, setIsHovered] = useState(false)

  const handleClick = useCallback(() => {
    if (loading || disabled) return
    onAction()
  }, [loading, disabled, onAction])

  const baseStyles = 'inline-flex items-center justify-center gap-2 px-4 py-2 rounded-lg font-medium transition-all duration-200'

  const variantStyles: Record<string, string> = {
    primary: 'bg-blue-600 text-white hover:bg-blue-700 active:bg-blue-800',
    secondary: 'bg-gray-100 text-gray-900 hover:bg-gray-200 active:bg-gray-300',
  }

  return (
    <button
      onClick={handleClick}
      disabled={disabled}
      className={cn(baseStyles, variantStyles[variant], className)}
      onMouseEnter={() => setIsHovered(true)}
      onMouseLeave={() => setIsHovered(false)}
      aria-busy={loading}
    >
      {loading ? <Spinner /> : null}
      {title}
      {description && <span className="sr-only">{description}</span>}
    </button>
  )
}

Sanctions

Si le modèle produit ne serait-ce qu'un seul placeholder :

  1. STOP — ne pas continuer la génération
  2. RÉPÉTER la règle : "Code complet, pas de placeholders"
  3. REGÉNÉRER le fichier en entier

Format Garanti

Tout fichier produit doit :

  • Être syntaxiquement valide (le linter ne doit pas crier)
  • Avoir tous ses imports
  • Avoir des props/documentation si c'est un composant réutilisable
  • Avoir ses tests si demandé
  • Avoir son style (CSS Modules, Tailwind, ou CSS-in-JS)
  • Fonctionner sans modification supplémentaire

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.