Skip to content

Commit 2c30ec7

Browse files
khaliqgantclaude
andcommitted
agent page: trim seed log entries; mark which agents are actually live
- content/agent-log.json: dropped the 7 hand-written demo entries, kept only the 3 real runs from today (the weekly-digest test cycle that filed issue #1) - AGENT_META gains a `status` field: "live" | "scaffolded". Only weekly-digest is live right now - /agent page: header copy reframed to be honest about which agents actually run; roster cards visually de-emphasize the scaffolded ones (no fill, faded type) and show a "live" / "scaffolded" pill so a reader can tell at a glance Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 45dbeff commit 2c30ec7

3 files changed

Lines changed: 72 additions & 140 deletions

File tree

app/agent/page.tsx

Lines changed: 56 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -104,14 +104,18 @@ export default async function AgentPage() {
104104
</h1>
105105
<Squiggle className="mt-6 h-3 w-40 opacity-70" />
106106
<p className="mt-8 font-serif text-lg leading-relaxed text-ink-soft">
107-
A proactive agent runs this site &mdash; or rather, several agents do.
108-
They watch a Notion database, scan the web for mentions, draft posts,
109-
comment on PRs, answer DMs. This page is what they did, in order, with
110-
links so you can verify the receipts.
107+
Proactive agents run pieces of this site &mdash; for now, one of them
108+
does. The <em>weekly digest</em> agent wakes every Saturday, scans
109+
the web and Reddit for proactive-agent mentions, clusters what it
110+
finds, and files a single GitHub issue. The other agents in the
111+
roster are scaffolded but not yet wired to a runtime; they&rsquo;ll
112+
appear here as they come online.
111113
</p>
112114
<p className="mt-3 font-serif text-base leading-relaxed text-ink-faint">
113115
A reactive agent fires when called. A proactive agent has to{" "}
114-
<em>not</em> fire most of the time. Both are visible below.
116+
<em>not</em> fire most of the time. Both outcomes are visible below
117+
&mdash; every entry, including the skips, with a link so you can
118+
verify the receipts.
115119
</p>
116120
</div>
117121

@@ -136,25 +140,56 @@ export default async function AgentPage() {
136140
✦ The roster
137141
</h2>
138142
<ul className="mt-8 grid gap-4 sm:grid-cols-2">
139-
{Object.entries(AGENT_META).map(([key, m]) => (
140-
<li
141-
key={key}
142-
className={`rounded-2xl ${ACCENT_BG[m.accent]} relative overflow-hidden p-5`}
143-
>
144-
<div className="absolute inset-0 bg-gradient-to-br from-white/40 via-transparent to-transparent" />
145-
<div className="relative flex items-start justify-between gap-4">
146-
<div>
147-
<p className="font-mono text-xs uppercase tracking-[0.22em] text-ink/80">
148-
{TRIGGER_META[m.trigger].symbol} {TRIGGER_META[m.trigger].label}-triggered
149-
</p>
150-
<h3 className="mt-1 font-display text-xl text-ink">{m.title}</h3>
151-
<p className="mt-1.5 font-serif text-[0.95rem] leading-snug text-ink/85">
143+
{Object.entries(AGENT_META).map(([key, m]) => {
144+
const isLive = m.status === "live";
145+
return (
146+
<li
147+
key={key}
148+
className={`rounded-2xl ${
149+
isLive ? ACCENT_BG[m.accent] : "bg-paper-deep/40 border border-rule"
150+
} relative overflow-hidden p-5`}
151+
>
152+
{isLive && (
153+
<div className="absolute inset-0 bg-gradient-to-br from-white/40 via-transparent to-transparent" />
154+
)}
155+
<div className="relative">
156+
<div className="flex items-baseline justify-between gap-3">
157+
<p
158+
className={`font-mono text-xs uppercase tracking-[0.22em] ${
159+
isLive ? "text-ink/80" : "text-ink-faint"
160+
}`}
161+
>
162+
{TRIGGER_META[m.trigger].symbol}{" "}
163+
{TRIGGER_META[m.trigger].label}-triggered
164+
</p>
165+
<span
166+
className={`rounded-full px-2 py-0.5 text-[10px] uppercase tracking-[0.2em] ${
167+
isLive
168+
? "bg-ink/85 text-paper"
169+
: "border border-rule bg-paper text-ink-faint"
170+
}`}
171+
>
172+
{isLive ? "live" : "scaffolded"}
173+
</span>
174+
</div>
175+
<h3
176+
className={`mt-2 font-display text-xl ${
177+
isLive ? "text-ink" : "text-ink-soft"
178+
}`}
179+
>
180+
{m.title}
181+
</h3>
182+
<p
183+
className={`mt-1.5 font-serif text-[0.95rem] leading-snug ${
184+
isLive ? "text-ink/85" : "text-ink-faint"
185+
}`}
186+
>
152187
{m.blurb}
153188
</p>
154189
</div>
155-
</div>
156-
</li>
157-
))}
190+
</li>
191+
);
192+
})}
158193
</ul>
159194
</section>
160195

content/agent-log.json

Lines changed: 2 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"timestamp": "2026-05-11T09:07:06.868Z",
2020
"agent": "weekly-digest",
2121
"trigger": "time",
22-
"action": "Skipped quiet week",
22+
"action": "Skipped \u2014 quiet week",
2323
"summary": "No new mentions across 4 sources. Nothing filed.",
2424
"outcome": "skipped",
2525
"skippedReason": "no signal"
@@ -29,119 +29,9 @@
2929
"timestamp": "2026-05-11T08:56:40.560Z",
3030
"agent": "weekly-digest",
3131
"trigger": "time",
32-
"action": "Skipped quiet week",
32+
"action": "Skipped \u2014 quiet week",
3333
"summary": "No new mentions across 4 sources. Nothing filed.",
3434
"outcome": "skipped",
3535
"skippedReason": "no signal"
36-
},
37-
{
38-
"id": "2026-05-11-sunday-ping-001",
39-
"timestamp": "2026-05-11T13:00:00Z",
40-
"agent": "sunday-ping",
41-
"trigger": "time",
42-
"action": "Sent Sunday ping",
43-
"summary": "Read this week's digest, picked the 'restraint as a research problem' thread as the strongest angle, drafted an outline, sent it to Slack with a one-tap 'accept' button.",
44-
"outcome": "success",
45-
"links": [
46-
{
47-
"label": "This week's digest",
48-
"url": "https://github.com/AgentWorkforce/proactive-agents/issues/12"
49-
}
50-
]
51-
},
52-
{
53-
"id": "2026-05-10-weekly-digest-001",
54-
"timestamp": "2026-05-10T09:00:00Z",
55-
"agent": "weekly-digest",
56-
"trigger": "time",
57-
"action": "Filed weekly digest",
58-
"summary": "Found 14 mentions across the web and r/LocalLLaMA, r/AI_Agents, r/MachineLearning. Deduped, grouped by topic (3 clusters: tool-use cadence, restraint, push vs poll), filed as one rolling issue.",
59-
"outcome": "success",
60-
"links": [
61-
{
62-
"label": "Issue #12",
63-
"url": "https://github.com/AgentWorkforce/proactive-agents/issues/12"
64-
}
65-
]
66-
},
67-
{
68-
"id": "2026-05-09-manual-chatbot-001",
69-
"timestamp": "2026-05-09T18:42:00Z",
70-
"agent": "manual-chatbot",
71-
"trigger": "message",
72-
"action": "Answered a Slack DM",
73-
"summary": "Question: 'what's the difference between proactive and event-driven?' —€” answered with a two-paragraph distinction citing the manifesto, flagged the framing of 'event-driven' as ambiguous between push-architecture and pub-sub.",
74-
"outcome": "success",
75-
"links": [
76-
{
77-
"label": "Cited essay",
78-
"url": "/posts/three-primitives"
79-
}
80-
]
81-
},
82-
{
83-
"id": "2026-05-08-pr-reviewer-002",
84-
"timestamp": "2026-05-08T22:14:00Z",
85-
"agent": "pr-reviewer",
86-
"trigger": "change",
87-
"action": "Reviewed PR #18",
88-
"summary": "Caught two dead links (one to a moved arXiv mirror), suggested tightening the lead by 30 words, posted the deploy preview screenshot diff against main.",
89-
"outcome": "success",
90-
"links": [
91-
{
92-
"label": "PR #18",
93-
"url": "https://github.com/AgentWorkforce/proactive-agents/pull/18"
94-
}
95-
]
96-
},
97-
{
98-
"id": "2026-05-07-notion-to-blog-001",
99-
"timestamp": "2026-05-07T11:25:00Z",
100-
"agent": "notion-to-blog",
101-
"trigger": "change",
102-
"action": "Skipped —€” page still draft",
103-
"summary": "Page 'Why context is the agent's whole job' moved into Editing in Notion, but tag is still 'draft'. Nothing published. Will re-evaluate when status flips to 'ready'.",
104-
"outcome": "skipped",
105-
"skippedReason": "tag != ready",
106-
"links": [
107-
{
108-
"label": "Notion page",
109-
"url": "https://notion.so/example"
110-
}
111-
]
112-
},
113-
{
114-
"id": "2026-05-04-notion-to-blog-001",
115-
"timestamp": "2026-05-04T09:30:00Z",
116-
"agent": "notion-to-blog",
117-
"trigger": "change",
118-
"action": "Published essay",
119-
"summary": "New page in Notion 'Drafts —†’ Ready' database tagged ready. Converted to MDX, applied the site's Scene + Sidenote conventions, opened a PR with the post.",
120-
"outcome": "success",
121-
"links": [
122-
{
123-
"label": "Published post",
124-
"url": "/posts/three-primitives"
125-
},
126-
{
127-
"label": "Source PR",
128-
"url": "https://github.com/AgentWorkforce/proactive-agents/pull/15"
129-
}
130-
]
131-
},
132-
{
133-
"id": "2026-05-03-weekly-digest-001",
134-
"timestamp": "2026-05-03T09:00:00Z",
135-
"agent": "weekly-digest",
136-
"trigger": "time",
137-
"action": "Filed weekly digest",
138-
"summary": "Quiet week —€” only 4 mentions, no new clusters. Filed a short digest with a note that we may want to drop frequency to bi-weekly if signal stays low.",
139-
"outcome": "success",
140-
"links": [
141-
{
142-
"label": "Issue #11",
143-
"url": "https://github.com/AgentWorkforce/proactive-agents/issues/11"
144-
}
145-
]
14636
}
14737
]

lib/agent-log.ts

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,39 +44,46 @@ export async function getAgentLog(): Promise<AgentEntry[]> {
4444
}
4545
}
4646

47+
export type AgentStatus = "live" | "scaffolded";
48+
4749
export const AGENT_META: Record<
4850
AgentName,
49-
{ title: string; trigger: Trigger; blurb: string; accent: string }
51+
{ title: string; trigger: Trigger; blurb: string; accent: string; status: AgentStatus }
5052
> = {
51-
"notion-to-blog": {
52-
title: "Notion → blog",
53-
trigger: "change",
54-
blurb: "Watches the Drafts database; publishes finished pages as MDX.",
55-
accent: "sage",
56-
},
5753
"weekly-digest": {
5854
title: "Weekly digest",
5955
trigger: "time",
6056
blurb: "Searches the web + Reddit for proactive-agent mentions; files one rolling issue.",
6157
accent: "butter",
58+
status: "live",
59+
},
60+
"notion-to-blog": {
61+
title: "Notion → blog",
62+
trigger: "change",
63+
blurb: "Watches the Drafts database; publishes finished pages as MDX.",
64+
accent: "sage",
65+
status: "scaffolded",
6266
},
6367
"sunday-ping": {
6468
title: "Sunday ping",
6569
trigger: "time",
6670
blurb: "Reads this week's digest; drafts a post outline and pings me on Slack.",
6771
accent: "peach",
72+
status: "scaffolded",
6873
},
6974
"pr-reviewer": {
7075
title: "PR reviewer",
7176
trigger: "change",
7277
blurb: "Comments on PRs with deploy preview, dead-link check, copy-edit notes.",
7378
accent: "lavender",
79+
status: "scaffolded",
7480
},
7581
"manual-chatbot": {
7682
title: "@manual",
7783
trigger: "message",
7884
blurb: "Answers questions in Slack/email grounded in the published essays.",
7985
accent: "rose",
86+
status: "scaffolded",
8087
},
8188
};
8289

0 commit comments

Comments
 (0)