diff --git a/app/(public)/about/page.tsx b/app/(public)/about/page.tsx index 11db57e..0ad6cff 100644 --- a/app/(public)/about/page.tsx +++ b/app/(public)/about/page.tsx @@ -22,35 +22,32 @@ export default function AboutPage() {

I'm Royal Simpson Pinto, an AI and product engineer. I spent - months documenting real AI agent failures in production: deleted - data, wrong recipients, surprise bills, exposed credentials. That - public registry still exists on this site, and every guardrail in - my installs traces back to a case in it. + months documenting real AI agent failures in production: deleted data, + wrong recipients, surprise bills, exposed credentials. That public + registry still exists on this site, and every guardrail in my installs + traces back to a case in it.

- The lesson from all those cases is simple. Agents fail when they - get unlimited access, no audit trail, and nobody approving the - risky calls. So that is exactly what my installs refuse to do: - scoped keys, every action logged, and a human approval step for - anything irreversible. + The lesson from all those cases is simple. Agents fail when they get + unlimited access, no audit trail, and nobody approving the risky + calls. So that is exactly what my installs refuse to do: scoped keys, + every action logged, and a human approval step for anything + irreversible.

What I sell

- One thing: a 14-day pilot that puts an agent on one of your - support or portal workflows. Triage plus guarded refunds within - your policy, or portal pulls with screenshot proof. $1,200 fixed, - and the second half is only due if it closes real work. After - that, $400 per month care, pause anytime. + One thing: a 14-day pilot that puts an agent on one of your support or + portal workflows. Triage plus guarded refunds within your policy, or + portal pulls with screenshot proof. $1,200 fixed, and the second half + is only due if it closes real work. After that, $400 per month care, + pause anytime.

- - Book the pilot here - - . I reply within a day. + Book the pilot here. I reply within a day.

Why trust a solo builder

@@ -71,9 +68,9 @@ export default function AboutPage() {

The public case registry remains online as a reference: numbered, - tagged, searchable reports of agent incidents, with a moderation - queue and anonymous submissions. It no longer defines this site; - it is the evidence shelf the installs stand on. + tagged, searchable reports of agent incidents, with a moderation queue + and anonymous submissions. It no longer defines this site; it is the + evidence shelf the installs stand on.

@@ -90,8 +87,8 @@ export default function AboutPage() {

AgentPostmortem is an independent project. We are not affiliated - with Anthropic, OpenAI, Google, Microsoft, or any AI vendor named - in the case database. + with Anthropic, OpenAI, Google, Microsoft, or any AI vendor named in + the case database.

diff --git a/app/(public)/page.tsx b/app/(public)/page.tsx index d37d01c..274bb42 100644 --- a/app/(public)/page.tsx +++ b/app/(public)/page.tsx @@ -89,9 +89,9 @@ export default function HomePage() {

- Done for you install for support and ops teams. Triage plus - small refunds within policy, portal pulls with screenshot proof, - risky actions paused for your one tap approval. + Done for you install for support and ops teams. Triage plus small + refunds within policy, portal pulls with screenshot proof, risky + actions paused for your one tap approval.

@@ -125,7 +125,10 @@ export default function HomePage() { {/* Plan cards */} -
+
{PLAN_CARDS.map((card, i) => (

- $1,200 fixed for the 14 day pilot. Then $400 per month care, - pause anytime. Reply within a day. + $1,200 fixed for the 14 day pilot. Then $400 per month care, pause + anytime. Reply within a day.

(EMPTY); const [errors, setErrors] = useState({}); - const [touched, setTouched] = useState>>({}); + const [touched, setTouched] = useState>>( + {}, + ); const [formError, setFormError] = useState(""); const [sending, setSending] = useState(false); const [done, setDone] = useState(""); const refs = useRef< Partial< - Record + Record< + PilotField, + HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | null + > > >({}); @@ -75,7 +80,13 @@ export function PilotForm() { } function focusFirstInvalid(next: PilotErrors) { - const order: PilotField[] = ["name", "email", "company", "track", "workflow"]; + const order: PilotField[] = [ + "name", + "email", + "company", + "track", + "workflow", + ]; for (const field of order) { if (next[field]) { setTouched((prev) => ({ ...prev, [field]: true })); @@ -152,7 +163,11 @@ export function PilotForm() { const errorLine = (field: PilotField) => touched[field] && errors[field] ? ( - ) : null; @@ -208,7 +223,8 @@ export function PilotForm() {
{/* Honeypot: invisible to humans, irresistible to bots. */} -