From 520c0761fd290fe7308a08b641e953eaed66c5f6 Mon Sep 17 00:00:00 2001
From: Anton Castro
Date: Tue, 21 Jul 2026 00:01:16 -0700
Subject: [PATCH] feat: className pass-through, theming docs, llms.txt +
registry index, component template, code of conduct, landing teasers + claim
lines
---
CODE_OF_CONDUCT.md | 11 +++
CONTRIBUTING.md | 4 +
app/how-it-works/page.tsx | 37 ++++++++
app/page.tsx | 90 ++++++++++++-------
registry/_template/component-name.tsx | 63 +++++++++++++
registry/agent-inbox/agent-inbox.tsx | 6 +-
registry/agent-roster/agent-roster.tsx | 6 +-
registry/agent-task-list/agent-task-list.tsx | 6 +-
registry/approval-gate/approval-gate.tsx | 5 +-
.../confidence-meter/confidence-meter.tsx | 5 +-
registry/context-budget/context-budget.tsx | 6 +-
registry/interrupt-bar/interrupt-bar.tsx | 5 +-
registry/tool-call-card/tool-call-card.tsx | 6 +-
scripts/build-registry.mjs | 49 +++++++++-
14 files changed, 252 insertions(+), 47 deletions(-)
create mode 100644 CODE_OF_CONDUCT.md
create mode 100644 registry/_template/component-name.tsx
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..74f746e
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,11 @@
+# Code of Conduct
+
+The pit crew works fast because it trusts each other. Same rules here.
+
+**Expected:** Be direct about the work and generous with the person. Critique components, patterns, and prose as hard as you like; never the human who made them. Assume competence and good faith, especially across the designer/engineer divide this project exists to bridge. Scars and real product stories are the most valued contribution; share yours and respect others'.
+
+**Not tolerated:** Harassment, discrimination, or personal attacks of any kind; gatekeeping ("that's not real engineering / real design"); sustained disruption of discussions; publishing others' private information.
+
+**Enforcement:** Report conduct issues to ac.design.px@gmail.com. The maintainer will review and respond within a week. Consequences scale from a warning to a permanent ban from the project's spaces, at the maintainer's judgment.
+
+Adapted in spirit from the [Contributor Covenant](https://www.contributor-covenant.org/) v2.1.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index e98c3e8..fa546e9 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -9,6 +9,10 @@ Thanks for pulling into the pit. This doc is the whole contract: what a contribu
- **Fixes** — bugs, typos, broken demos. No proposal needed; just PR.
- **Principle chapters** are held to the highest bar: a real claim plus a working component as evidence. Open a discussion before writing one.
+## Start from the template
+
+Copy `registry/_template/component-name.tsx` — it encodes every convention below (tokens, states-in-words, tap targets, className pass-through) so your first five minutes are building, not reverse-engineering.
+
## Definition of done (components)
Every component PR ships all five, or it isn't done:
diff --git a/app/how-it-works/page.tsx b/app/how-it-works/page.tsx
index d87adba..2a5bd7a 100644
--- a/app/how-it-works/page.tsx
+++ b/app/how-it-works/page.tsx
@@ -125,6 +125,43 @@ export default function HowItWorksPage() {
product; what happens when a human leans in is what we make excellent.
+
Make it yours
+
+ Every component speaks in semantic tokens, never raw values. That means the
+ whole system rethemes from one place: define the tokens in your Tailwind theme
+ with your own values, and every card, gate, and meter follows. No wrapping, no
+ forking, no component edits.
+
+ Past tokens, the path escalates one step at a time: pass{" "}
+ className{" "}
+ for layout and overrides, or take the single source file and own it entirely.
+ Keep the contrast honest when you retheme; the tokens above all clear WCAG AA on
+ their surfaces.
+
+
The name
A pit stop is the moment a fast autonomous thing submits to human hands: twelve
diff --git a/app/page.tsx b/app/page.tsx
index 846d62b..74fa74f 100644
--- a/app/page.tsx
+++ b/app/page.tsx
@@ -2,24 +2,40 @@ import Link from "next/link";
import { PitFlag } from "@/components/docs/pit-flag";
import { TrackLoop } from "@/components/docs/track-loop";
import { Reveal } from "@/components/docs/reveal";
+import { minis } from "@/app/components/gallery-minis";
const principles = [
- { title: "Legible thinking", href: "/principles/legible-thinking", status: "Live" },
- { title: "Interruptibility", href: "/principles/interruptibility", status: "Live" },
- { title: "Delegation contracts", href: "/principles/delegation-contracts", status: "Live" },
- { title: "Calibrated trust", href: "/principles/calibrated-trust", status: "Live" },
- { title: "Graceful failure", href: "/principles/graceful-failure", status: "Live" },
+ {
+ title: "Legible thinking",
+ claim: "Agents don't lose trust by being wrong. They lose it by being wrong invisibly.",
+ href: "/principles/legible-thinking",
+ },
+ {
+ title: "Interruptibility",
+ claim: "Users delegate more to agents they can stop.",
+ href: "/principles/interruptibility",
+ },
+ {
+ title: "Delegation contracts",
+ claim: "Delegation fails at the handoff, not at execution.",
+ href: "/principles/delegation-contracts",
+ },
+ {
+ title: "Calibrated trust",
+ claim: "The goal is accurate trust, not more trust.",
+ href: "/principles/calibrated-trust",
+ },
+ {
+ title: "Graceful failure",
+ claim: "Software fails like glass. Agents fail like weather.",
+ href: "/principles/graceful-failure",
+ },
];
-const components = [
- { title: "Tool Call Card", href: "/components/tool-call-card", status: "Live" },
- { title: "Approval Gate", href: "/components/approval-gate", status: "Live" },
- { title: "Agent Task List", href: "/components/agent-task-list", status: "Live" },
- { title: "Interrupt Bar", href: "/components/interrupt-bar", status: "Live" },
- { title: "Confidence Meter", href: "/components/confidence-meter", status: "Live" },
- { title: "Agent Roster", href: "/components/agent-roster", status: "Live" },
- { title: "Agent Inbox", href: "/components/agent-inbox", status: "Live" },
- { title: "Context Budget", href: "/components/context-budget", status: "Live" },
+const teasers = [
+ { slug: "tool-call-card", title: "Tool Call Card", category: "Legibility" },
+ { slug: "approval-gate", title: "Approval Gate", category: "Control" },
+ { slug: "confidence-meter", title: "Confidence Meter", category: "Trust" },
];
/* two-tone icons in the site accent */
@@ -81,17 +97,13 @@ const heroCards = [
},
];
-function Row({ title, href, status }: { title: string; href: string | null; status: string }) {
+function PrincipleRow({ title, claim, href }: { title: string; claim: string; href: string }) {
return (
-