From b8eea664014e0638a9b25750ee71a9a4c9157da1 Mon Sep 17 00:00:00 2001 From: Sebastian Boehler Date: Sun, 22 Feb 2026 20:46:24 +0100 Subject: [PATCH] add sunderlabs persona AGENTS and IDENTITY customizations --- skills/vercel-composition-patterns/AGENTS.md | 946 ++++++ skills/vercel-react-best-practices/AGENTS.md | 2934 ++++++++++++++++++ skills/vercel-react-native-skills/AGENTS.md | 2897 +++++++++++++++++ tenants/dev/alex/AGENTS.md | 49 + tenants/dev/alex/IDENTITY.md | 10 + tenants/dev/mia/AGENTS.md | 41 + tenants/dev/mia/IDENTITY.md | 10 + tenants/dev/ops/AGENTS.md | 50 + tenants/dev/ops/IDENTITY.md | 10 + tenants/dev/rex/AGENTS.md | 58 + tenants/dev/rex/IDENTITY.md | 10 + tenants/dev/shared/SHARED_AGENTS.md | 138 + workspace/personas/analyst/IDENTITY.md | 60 + workspace/personas/backend-dev/IDENTITY.md | 64 + workspace/personas/lead-gen/IDENTITY.md | 60 + workspace/personas/marketing/IDENTITY.md | 61 + workspace/personas/researcher/IDENTITY.md | 60 + 17 files changed, 7458 insertions(+) create mode 100644 skills/vercel-composition-patterns/AGENTS.md create mode 100644 skills/vercel-react-best-practices/AGENTS.md create mode 100644 skills/vercel-react-native-skills/AGENTS.md create mode 100644 tenants/dev/alex/AGENTS.md create mode 100644 tenants/dev/alex/IDENTITY.md create mode 100644 tenants/dev/mia/AGENTS.md create mode 100644 tenants/dev/mia/IDENTITY.md create mode 100644 tenants/dev/ops/AGENTS.md create mode 100644 tenants/dev/ops/IDENTITY.md create mode 100644 tenants/dev/rex/AGENTS.md create mode 100644 tenants/dev/rex/IDENTITY.md create mode 100644 tenants/dev/shared/SHARED_AGENTS.md create mode 100644 workspace/personas/analyst/IDENTITY.md create mode 100644 workspace/personas/backend-dev/IDENTITY.md create mode 100644 workspace/personas/lead-gen/IDENTITY.md create mode 100644 workspace/personas/marketing/IDENTITY.md create mode 100644 workspace/personas/researcher/IDENTITY.md diff --git a/skills/vercel-composition-patterns/AGENTS.md b/skills/vercel-composition-patterns/AGENTS.md new file mode 100644 index 000000000..558bf9aa1 --- /dev/null +++ b/skills/vercel-composition-patterns/AGENTS.md @@ -0,0 +1,946 @@ +# React Composition Patterns + +**Version 1.0.0** +Engineering +January 2026 + +> **Note:** +> This document is mainly for agents and LLMs to follow when maintaining, +> generating, or refactoring React codebases using composition. Humans +> may also find it useful, but guidance here is optimized for automation +> and consistency by AI-assisted workflows. + +--- + +## Abstract + +Composition patterns for building flexible, maintainable React components. Avoid boolean prop proliferation by using compound components, lifting state, and composing internals. These patterns make codebases easier for both humans and AI agents to work with as they scale. + +--- + +## Table of Contents + +1. [Component Architecture](#1-component-architecture) — **HIGH** + - 1.1 [Avoid Boolean Prop Proliferation](#11-avoid-boolean-prop-proliferation) + - 1.2 [Use Compound Components](#12-use-compound-components) +2. [State Management](#2-state-management) — **MEDIUM** + - 2.1 [Decouple State Management from UI](#21-decouple-state-management-from-ui) + - 2.2 [Define Generic Context Interfaces for Dependency Injection](#22-define-generic-context-interfaces-for-dependency-injection) + - 2.3 [Lift State into Provider Components](#23-lift-state-into-provider-components) +3. [Implementation Patterns](#3-implementation-patterns) — **MEDIUM** + - 3.1 [Create Explicit Component Variants](#31-create-explicit-component-variants) + - 3.2 [Prefer Composing Children Over Render Props](#32-prefer-composing-children-over-render-props) +4. [React 19 APIs](#4-react-19-apis) — **MEDIUM** + - 4.1 [React 19 API Changes](#41-react-19-api-changes) + +--- + +## 1. Component Architecture + +**Impact: HIGH** + +Fundamental patterns for structuring components to avoid prop +proliferation and enable flexible composition. + +### 1.1 Avoid Boolean Prop Proliferation + +**Impact: CRITICAL (prevents unmaintainable component variants)** + +Don't add boolean props like `isThread`, `isEditing`, `isDMThread` to customize + +component behavior. Each boolean doubles possible states and creates + +unmaintainable conditional logic. Use composition instead. + +**Incorrect: boolean props create exponential complexity** + +```tsx +function Composer({ + onSubmit, + isThread, + channelId, + isDMThread, + dmId, + isEditing, + isForwarding, +}: Props) { + return ( +
+
+ + {isDMThread ? ( + + ) : isThread ? ( + + ) : null} + {isEditing ? ( + + ) : isForwarding ? ( + + ) : ( + + )} +