Good afternoon, Alex Chen ✨

Tue 07 Jul Β· here's where everything stands.

0
overdue
0
due today
3
in flight
3
due this week
3
pending compile
1
inbox items

Focus

πŸš€ In flight Β· 3

cp-031Q3 access reviews (SOC 2 evidence)compliancedue in 4dP1
statusactivedue2026-07-11updated2026-07-07
gr-012Empty-state redesign (activation step-2 leak)growthdue 2026-07-15P1
statusactivedue2026-07-15updated2026-07-06
pf-101Billing dual-write reconciliation report (cutover go/no-go)platformdue in 2dP0
statusactivedue2026-07-09updated2026-07-07

Next 7 days3 due

pf-101Billing dual-write reconciliation report (cutover go/no-go)platformdue in 2dP0
statusactivedue2026-07-09updated2026-07-07
pf-104v2 load test at 5x peak (launch gate)platformdue in 3dP0
statusopendue2026-07-10updated2026-07-06
cp-031Q3 access reviews (SOC 2 evidence)compliancedue in 4dP1
statusactivedue2026-07-11updated2026-07-07

Waiting on2 blocked

mb-032Submitted 07-05; waiting on Apple review (typical 2-4 days).mobile

✏️ Tasks touched · 5

cp-031Q3 access reviews (SOC 2 evidence)activecompliance
gr-012Empty-state redesign (activation step-2 leak)activegrowth
pf-099Fix timezone rounding in legacy billing exporteropenplatform
pf-101Billing dual-write reconciliation report (cutover go/no-go)activeplatform
pf-104v2 load test at 5x peak (launch gate)openplatform

⚑ Commands · 2

08:25/agent-acme:sync
22 turns
β€”yesterday/agent-acme:evening-briefing
11 turns

πŸ“° Output Β· 4

08:30🟠Morning briefing · launch week minus 14morning-briefing

Goalsfrom projects/TASKS.md

πŸ—“Weekly

  • - [ ] Ship the pf-101 reconciliation report and clear the exporter bug (pf-099)
  • - [ ] Run the 5x load test and publish the launch go/no-go (pf-104)
  • - [x] Confirm step-2 funnel baseline on production data (31%)
  • - [ ] Finish Okta + AWS access reviews (cp-031)

🎯Monthly

  • - [ ] v2 launched July 21 with zero Sev-1s in week one
  • - [ ] Usage-based billing cutover Aug 1, reconciliation-gated
  • - [ ] Weekly active workspaces 1,840 β†’ 2,100

🧭Yearly

  • - Q3: v2 launch + billing migration + SOC 2 Type II fieldwork clean
  • - Q4: 2,500 weekly active workspaces; hire 2 senior platform engineers

2026-07-07

Tasks

8 open tasks across 4 projects.

πŸ—“ This week Β· 4

pf-101Billing dual-write reconciliation report (cutover go/no-go)platformdue in 2dP0
statusactivedue2026-07-09updated2026-07-07
pf-104v2 load test at 5x peak (launch gate)platformdue in 3dP0
statusopendue2026-07-10updated2026-07-06
cp-031Q3 access reviews (SOC 2 evidence)compliancedue in 4dP1
statusactivedue2026-07-11updated2026-07-07
mb-032Mobile 3.2 App Store review + releasemobiledue in 4dP1
statusblockeddue2026-07-11updated2026-07-05
blocked bySubmitted 07-05; waiting on Apple review (typical 2-4 days).

πŸ“† This month Β· 2

gr-012Empty-state redesign (activation step-2 leak)growthdue 2026-07-15P1
statusactivedue2026-07-15updated2026-07-06
cp-028Vendor inventory + DPA sweepcompliancedue 2026-07-25P2
statusopendue2026-07-25updated2026-06-25

β™Ύ No due date Β· 2

pf-099Fix timezone rounding in legacy billing exporterplatformP1
statusopenupdated2026-07-07
mb-034Push-notification opt-in experimentmobileP2
statusblockedupdated2026-07-05depends onmb-032

β›” Blocked Β· 2

mb-032Submitted 07-05; waiting on Apple review (typical 2-4 days).mobile
mb-034depends on mb-032mobile

πŸ‚ Going stale Β· 1

cp-028Vendor inventory + DPA sweepcompliancedue 2026-07-25P2
statusopendue2026-07-25updated2026-06-25

Projects

4 projects β€” click one to see its tasks.

platform1 active Β· 2 openupdated 15h ago
Core API, billing, and infrastructure. Owns the v2 launch and the usage-based billing migration.
β˜‘ 1 / 4
25%

β–Ά Active Β· 1

pf-101Billing dual-write reconciliation report (cutover go/no-go)due in 2dP0
statusactivedue2026-07-09updated2026-07-07

β—‹ Open Β· 2

pf-104v2 load test at 5x peak (launch gate)due in 3dP0
statusopendue2026-07-10updated2026-07-06
pf-099Fix timezone rounding in legacy billing exporterP1
statusopenupdated2026-07-07
compliance1 active Β· 1 openupdated 15h ago
SOC 2 Type II track. Audit fieldwork starts Aug 4.
β˜‘ 0 / 2
0%

β–Ά Active Β· 1

cp-031Q3 access reviews (SOC 2 evidence)due in 4dP1
statusactivedue2026-07-11updated2026-07-07

β—‹ Open Β· 1

cp-028Vendor inventory + DPA sweepdue 2026-07-25P2
statusopendue2026-07-25updated2026-06-25
growth1 activeupdated 2d ago
Activation funnel, onboarding, SEO. North star: weekly active workspaces.
β˜‘ 1 / 2
50%

β–Ά Active Β· 1

gr-012Empty-state redesign (activation step-2 leak)due 2026-07-15P1
statusactivedue2026-07-15updated2026-07-06
mobile2 blockedupdated 3d ago
iOS + Android shipping app (React Native). 3.2 in App Store review.
β˜‘ 0 / 2
0%

β›” Blocked Β· 2

mb-032Mobile 3.2 App Store review + releasedue in 4dP1
statusblockeddue2026-07-11updated2026-07-05
blocked bySubmitted 07-05; waiting on Apple review (typical 2-4 days).
mb-034Push-notification opt-in experimentP2
statusblockedupdated2026-07-05depends onmb-032

Sessions

What you and Ace worked on, captured automatically.

Volumelast 7 days

Wed β€”Thu β€”Fri β€”Sat β€”Sun 736 BMon 973 BTue 2.0 KB

Latest radar2026-07-07 08:27 Β· open

Launch-week prep across three threads: billing reconciliation, the load-test harness, and SOC 2 evidence.

1. Billing reconciliation walk Β· 15m ago

Week-1 dual-write numbers reviewed with Ace; exporter bug root-caused and filed as pf-099.

2. Load-test harness update Β· 4h ago

Traffic replay scripts migrated to v2 endpoints; staging run booked for Thursday.

3. SOC 2 evidence sprint Β· yesterday

Access reviews 3 of 5 done; Ace drafted the Okta review checklist.

2026-07-07

9 turns
prep interview debrief notes for the two platform onsites and compile into the hiring doc
27 turns
build the empty-state variant behind a flag, design is in figma link in gr-012
14 turns
draft the okta access review from the export and flag anything stale
35 turns
fix the exporter timezone rounding and replay the 41 mismatched invoices as a regression test
18 turns
run the morning sync and then let us walk the billing reconciliation numbers

2026-07-06

19 turns
should the load test target 10x or 5x peak
42 turns
reconciliation dashboard: i want match rate by day and a drilldown into mismatches
15 turns
confirm the funnel numbers on production before we brief the board

2026-07-05

31 turns
soc2 evidence sprint. pull the access lists and draft the review docs
24 turns
walk the 3.2 release checklist with me before we submit
~/acme4 sessions2026-07-07
~/acme/web1 session2026-07-07
~/acme/platform5 sessions2026-07-07
~/acme/growth1 session2026-07-06
~/acme/mobile1 session2026-07-05

Brain

Ace's living memory of your world β€” compiled from every session.

Context loaded every session7 sources Β· 9.3 KB

instructions 525 Bidentity 1.8 KBknowledge 4.4 KBtasks 2.6 KB
sourcesize
βœ“CLAUDE.md project525 B
βœ“SOUL.md683 B
βœ“IDENTITY.md729 B
βœ“USER.md426 B
βœ“knowledge/index.mdThe master catalog β€” a table of contents for the whole knowledge base. It lists every permanent article with a one-line description, so Kevin can find and load just what it needs on demand instead of pulling the entire brain into context every session.1.2 KB
βœ“knowledge/memory/index.mdKevin’s long-term memory: active threads, recent decisions, learnings, and key context distilled from past sessions during compile (the β€œdreaming” step). Loaded every session so Kevin wakes up knowing where things stand.3.2 KB
βœ“projects/TASKS.mdA high-level overview of every task across projects β€” priorities, what’s overdue, what’s being worked on right now. A distilled snapshot, not the full per-task detail, so Kevin sees the lay of the land without loading every task file.2.6 KB

Path-scoped rules3 active

ruleapplies tosize
mobile project
apps/mobile/**
183 B
sql project
**/*.sql**/migrations/**
322 B
typescript project
**/*.ts**/*.tsx
240 B

Injected at SessionStart2.3 KB

entrysize
βœ“session tail1.8 KB
βœ“today's reports366 B
⚠git: knowledge0 B

Daily memory14-day retention

Learningshow Ace self-corrects

Lead with the number. Alex reads the first line only unless the first line earns the rest. Evidence: 3 corrections in May.
Never page before checking the runbook. Two false alarms in June; the playbook check is now step zero.
Staging data is not production data. Funnel numbers quoted from staging once; never again.

Pendingopen loops Ace is tracking

pf-104 load test Β· staging environment booked for 07-09; results feed the launch go/no-go.
cp-031 quarterly access reviews Β· 3 of 5 systems done; Okta + AWS remain.
App Store review Β· mobile 3.2 submitted 07-05, typical turnaround 2-4 days.
Reconciliation report Β· first full dual-write week completes 07-08; Ace drafts the diff summary.
Hire: senior platform engineer Β· 2 onsites this week; debrief notes compile into the hiring doc.

Active threads5 live

πŸš€ v2 launch window locked: July 21 Β· marketing page staged, changelog drafted; pf-104 load test is the last gate. See memory/2026-07-06.
🎯 SOC 2 Type II audit fieldwork starts Aug 4 · evidence collection 80% done; cp-031 access reviews due this week.
🚨 Billing migration (Stripe β†’ usage-based) Β· dual-write live since 07-01, cutover gated on reconciliation report pf-101.
Mobile 3.2 in review Β· App Store review submitted 07-05; push-notification opt-in experiment queued behind it.
Activation funnel leak Β· step-2 drop-off 38% β†’ 31% after onboarding email rework; next lever is the empty-state redesign (gr-012).

Recent decisions

2026-07-06 Β· Load test target set at 5x current peak (not 10x). 10x costs 3 extra days and v2 traffic model does not justify it. See memory/2026-07-06.
2026-07-05 Β· Usage-based billing cutover: hard date Aug 1 with dual-write reconciliation as the go/no-go gate, not a vibes call.
2026-07-03 Β· Incident runbooks live in the brain, not Confluence. Every postmortem ends with a runbook diff Ace compiles into the on-call playbook.
2026-07-01 Β· Two-pass agent code review adopted team-wide. Correctness pass, then simplification pass, before any human review. Cut review time 40%.
2026-06-28 Β· Empty-state redesign over pricing experiment for the next growth sprint; funnel data says step 2 is the leak, not the paywall.

Compile pipelineΞ£ $0.00

sessions ingested0
pending3 session(s) waiting for /agent-kevin:sync
last compilednever
inbox to absorb1

Memory footprint

curated wiki7.6 KB
memory index3.2 KB
learnings3
daily memory files3 (14-day retention)
feedback log249 B

Last lint run2026-07-07T08:26:00-04:00

errors0
warnings0
suggestions0
reportopen lint.md

Issues0

Wiki is clean β€” nothing flagged.

Reports

Briefings, plans, and audits Ace has produced. Click any title to open it.

2026-07-07

08:30🟠Morning briefing · launch week minus 14morning-briefing

2026-07-06

Scheduler ⏰

Recurring routines and when to run them β€” manual for now.

Sync (morning)manual
Daily Β· 07:00
next Wed, Jul 8 tomorrow
/agent-kevin:sync
Sync (evening)manual
Daily Β· 19:00
next Tue, Jul 7 today
/agent-kevin:sync
Weekly goalsmanual
Mondays Β· 08:00
next Mon, Jul 13 in 6d
/agent-kevin:weekly-goals
Monthly goalsmanual
1st of month Β· 08:00
next Sat, Aug 1 in 25d
/agent-kevin:monthly-goals
Yearly goalsmanual
Quarterly Β· Jan/Apr/Jul/Oct 1 Β· 08:00
next Thu, Oct 1 in 86d
/agent-kevin:yearly-goals
Self-reviewmanual
15th of month Β· 08:00
next Wed, Jul 15 in 8d
/agent-kevin:self-review

Capabilities

Everything you can ask Ace to do β€” skills by name, tools under the hood.

whensaywhat happens
Morning and evening/agent-kevin:syncFull refresh β€” compile, lint, flywheel, dashboard β€” then a briefing. Picks morning automatically before 3pm, evening from 3pm to 3am (or say `sync morning` / `sync evening`).
Between sessions/agent-kevin:quick-pulseA fast status check without the heavy maintenance pass.
Feeling lost/agent-kevin:where-am-iRadar of your recent sessions β€” what each was about, where it left off, how to resume it.
After a busy day/agent-kevin:knowledge-compileAbsorb captured sessions, feedback, and inbox drops into long-term memory.
1st of the month/agent-kevin:monthly-goalsSet the month’s themes and big rocks (weekly-goals does the same per week).
Quarterly/agent-kevin:yearly-goalsPlan the year ahead quarter by quarter β€” run mid-year it shapes the remaining quarters; run in Q4 it drafts next year from Q1.
Once a month/agent-kevin:self-reviewThe agent reviews its own behavior against your feedback and proposes improvements.
Save anythingβ€œcapture this: <url, text, or file>”Drops it into the inbox; the next compile absorbs it into the wiki.
File workβ€œcreate a task in <project>: …”New task file with id, priority, and due date; shows up here and in TASKS.md.
Grab a pageβ€œscreenshot https://…”Headless-browser PNG into reports/captures/.
Make a PDFβ€œturn <file or url> into a styled PDF”Markdown/page rendered to PDF (mermaid included) in reports/captures/.
Research somethingβ€œresearch <topic> and write it up”Web research with sources, persisted as a report you can reread.
Refresh this page/agent-kevin:dashboardRegenerates this dashboard (and TASKS.md) from current state.
/agent-kevin:archive-project auto
Retire a completed or cancelled project cleanly.
/agent-kevin:browser-flows
Drive a website in a VISIBLE browser to run real, repeatable flows end to end β€” scrape a page into structured data, fill a form, or click through a multi-step …
/agent-kevin:configure-skills
Configure Kevin's optional skill packs (SEO, Browser, Database, GitHub) or author a brand-new custom skill.
/agent-kevin:create-project auto
Spin up a new project under projects/<slug>/ with a README and tasks folder.
/agent-kevin:dashboard auto
Refresh and open the Agent OS dashboard β€” a static HTML mission-control page covering today's plan and activity, work across projects, sessions, Kevin's brain,…
/agent-kevin:evening-briefing
Tailored evening wrap β€” what shipped, what drafted, what stalled, goal-delta, and tomorrow's first move.
/agent-kevin:flywheel
Cross-project work session.
/agent-kevin:google-page-speed
Run Google PageSpeed Insights (Lighthouse performance scores + Core Web Vitals β€” LCP, CLS, INP, FCP, TBT, SI) for any public URL via `bun run dispatch google-p…
/agent-kevin:google-search-audit
Read-only SEO audit for the site configured in GSC_SITE_URL.
/agent-kevin:google-search-console
Pull real Google Search Console data (queries, impressions, clicks, CTR, average position, indexing status) for the configured site via `bun run dispatch googl…
/agent-kevin:humanizer auto
Remove signs of AI-generated writing from text.
/agent-kevin:init
Guided first-run onboarding for the agent-kevin plugin.
/agent-kevin:itinerary
Plan a trip end-to-end and generate a polished, interactive, print-ready HTML itinerary.
/agent-kevin:knowledge-compile
Compile raw session logs, feedback, and inbox items into structured wiki articles.
/agent-kevin:monthly-goals
Set this month's themes and big-rocks goals β€” reads the full task board + last 2 weeks of sessions, then interviews you (2-3 rounds) before drafting themes.
/agent-kevin:morning-briefing
Tailored morning brief β€” today's priorities, drafted artifacts, goals delta, per-project pulse, stale callout, signal-topic news, geopolitical news, and one co…
/agent-kevin:open-page-rank
Free domain-authority proxy via Open Page Rank β€” returns a 0–10 rank per domain for trend tracking and rough competitive comparison.
/agent-kevin:plan-spec
Deep-dive specification writer that reads input files, interviews the user with Socratic questioning, and produces a comprehensive spec document.
/agent-kevin:quick-pulse auto
Quick scan β€” anything stalled, any recent errors, any tasks past their cadence.
/agent-kevin:release
Producer-only.
/agent-kevin:self-review
Interactive session where you and Kevin look at accumulated feedback together and decide what to change in Kevin's prompts or skills.
/agent-kevin:serpapi
Real Google SERP data (organic results, AI overview, shopping carousel, People Also Ask, knowledge graph, related searches) via SerpAPI.
/agent-kevin:setup-worktree auto
Create a git worktree for parallel agent work and bootstrap it so it's ready to code β€” copies the gitignored local files (`.env*`, `.claude/settings.local.json…
/agent-kevin:simple-simplify
Review the target (script/app/area/change) and simplify it.
/agent-kevin:sync auto
End-to-end refresh β€” compile pending raw inputs, lint+fix the wiki, run a flywheel pass across active projects, surface what needs attention (including a pendi…
/agent-kevin:upgrade
Apply pending HOME migrations after a plugin code update.
/agent-kevin:weekly-goals
Set this week's goals β€” reads the full task board + recent sessions, then interviews you (2-3 rounds) before drafting.
/agent-kevin:where-am-i auto
Show the Claude Code sessions from the last 24 hours scoped to the folder Kevin runs from (the HOME and everything beneath it), with a substantive summary of w…
/agent-kevin:wordpress-rest
Query WordPress content via the public WP REST API β€” posts, pages, custom post types, categories, tags, media, and modified dates.
/agent-kevin:yearly-goals
Plan the year quarter by quarter β€” reads the full task board, projects, and goal history, then interviews you before drafting per-quarter outcomes.
browser_flows
Run a browser-flows flow that drives a site in a VISIBLE browser (the operator can log in manually when a flow needs it β€” no API keys).
browser_markdown
Render a URL or local file in chromium so JS-rendered content hydrates, then extract the article body via Mozilla Readability and convert to Markdown.
browser_pdf
Render a URL or local file (HTML or Markdown) to PDF.
browser_record
Drive a browser through scripted steps and return a video file.
browser_screenshot
Capture a PNG screenshot of a URL or local HTML/MD file.
capture
Capture any input (a thought, snippet, dropped file, URL) into Kevin's raw tree for the next knowledge-compile to absorb.
compile_next
Return the next compile work item: a rendered prompt + source content + metadata.
compile_status
How many raw items are pending compilation (sessions/feedback/inbox).
compile_write
Mark a compile work item complete.
dashboard
Rebuild both derived views in one pass: projects/TASKS.md (task dashboard from frontmatter β€” Active, Blocked, Overdue, Stale, Recently Closed; preserves the go…
database_fork
Fork (clone) a database on a LOCAL Postgres server so you can make heavy or destructive schema changes without touching the shared/live one β€” for a worktree, a…
database_list 0 databases
List the Postgres connections available to query.
database_query 0 databases
Run a read-only SQL query against a configured Postgres connection.
database_schema 0 databases
Inspect a Postgres database structure (read-only).
github_issue_list
List issues for a repo (read-only).
github_issue_view
View one issue in full (read-only): body, labels, assignees, milestone, comments, state/close reason, and timestamps.
github_pr_checks
Status of every check on a pull request (read-only): name, state, bucket (pass/fail/pending/skipping/cancel), workflow, and a link.
github_pr_diff
The unified diff of a pull request (read-only).
github_pr_list
List pull requests for a repo (read-only).
github_pr_view
View one pull request in full (read-only): body, reviews, comments, changed files, diff stats, label/review state, and the status-check rollup.
github_run_list
List GitHub Actions workflow runs for a repo (read-only).
github_run_log
Logs for a workflow run (read-only).
github_run_view
View one workflow run (read-only): overall status/conclusion plus the per-job, per-step breakdown so you can see which job and step failed.
google_auth
One-time Google OAuth2 consent flow.
gsc_inspect
Inspect a single URL's indexing status via the URL Inspection API.
gsc_query
Search analytics rows for the configured site.
gsc_sites
List all sites/properties accessible to the authenticated GSC user.
knowledge_lint
Run structural health checks across the wiki (broken links, orphan pages, orphan sources, missing backlinks, sparse articles, transient memory refs in permanen…
links_rewrite
Normalize bare task IDs and shorthand references into [[wikilinks]] across the knowledge base.
memory_prune
Delete daily memory files older than the retention window (default 14 days).
open_page_rank
Get OpenPageRank score for up to 100 domains.
page_speed_audit
Run PSI for both mobile + desktop in parallel.
page_speed_psi
Lighthouse PageSpeed Insights slice for one URL+strategy.
ping
Health check β€” returns server status and resolved paths.
report_write
Write a report file to reports/<category>/ AND insert a one-line entry into reports/index.md under today's date heading.
run_upgrade
Run the versioned upgrade migration at skills/upgrade/scripts/<version>.ts, outside the Bash sandbox (so it can touch deny-gated paths).
serpapi_search
Real Google SERP data: organic results, ads, AI overview, shopping, PAA, knowledge graph.
setup_worktree
Create a sibling git worktree and bootstrap it (copy gitignored local files β†’ install deps β†’ build), running outside the Bash sandbox so git can write .git/con…
task_close
Close a task as done (status=done, closed=today).
task_create
Create a new task.
task_get
Read a single task file in full (frontmatter + description + checklist + thread).
task_query
List tasks across all projects, optionally filtered by status/priority/project/assignee.
task_scan
Resolve cross-task state: auto-unblock, auto-block, surface overdue/stale, plan priority bumps.
task_thread
Append a message to a task's thread section.
task_update
Update fields on an existing task.
web_search
Search the web via Perplexity.

Usage

kevin <group> <command> [flags]

Groups

ping
Print resolved paths + timezone (sanity check)
capture
Capture text / a file / stdin into raw/inbox/ (or feedback.md) for the next compile
session-capture
Ingest a session transcript into raw/sessions/<today>.md (called by Claude Code hooks)
session-start
Emit dynamic context (today / last session tail / git activity) for the host's SessionStart hook
task
Read + mutate task files under projects/*/tasks/
compile
Knowledge-compile state (synthesis runs in Claude Code, not here)
knowledge
Wiki maintenance (lint)
prune
Delete memory/YYYY-MM-DD*.md older than 14 days
links
Rewrite bare task IDs + shorthand into [[wikilinks]]
dashboard
Rebuild the Agent OS dashboard at <HOME>/dashboard.html + projects/TASKS.md (open in any browser)
worktree
Create a sibling git worktree of <repoPath> and bootstrap it (copy locals β†’ install β†’ build)
database
Query/inspect/fork local Postgres via KEVIN_DB_<NAME> connections (real terminal β€” outside the Bash sandbox)

Task commands

task query [--status=X] [--priority=P0-P3] [--project=NAME]
task get <id>
task create --project=NAME --title=... --description=... [--priority=P2] [--type=task|bug|idea|epic] [--due=YYYY-MM-DD] [--labels=a,b] [--depends_on=id1,id2]
task update <id> [--status=X] [--priority=X] [--title=X] [--due=YYYY-MM-DD] [--blocked_by=X] [--labels=a,b]
task close <id>
task thread <id> --message=... [--type=quote|info|warning]
task scan
Resolve dependencies, surface overdue/stale/auto-* changes

Capture commands

capture "the thought"
Write inline text to raw/inbox/<ts>-<slug>.md (next compile distils it)
capture --file=PATH
Capture a file's contents into raw/inbox/
capture --url=URL
Fetch a URL, strip HTML noise (<script>/<style>/<head>), store with source: url:<url> in frontmatter
capture --stdin
Read content from stdin (e.g. \`pbpaste | kevin capture --stdin\`)
capture ... --kind=feedback
Append to raw/user/feedback.md instead of inbox/ (corrections/preferences)
capture ... --title=X --label=Y
Optional metadata (slug source + frontmatter label)

Hook commands (internal β€” wired into Claude Code hooks; safe to run manually for testing)

session-capture --mode=session-end|pre-compact --hook-protocol=claude
Read hook JSON from stdin and append the transcript to raw/sessions/.
session-capture --mode=... --transcript=PATH --cwd=PATH --session-id=X
Plain-CLI mode β€” same logic without the hook envelope. Useful for testing.
session-capture ... --exclude PATH (repeatable)
Skip when cwd falls under PATH (multi-agent boundary; user-level hook only).
session-capture ... --format=claude (default)
Transcript-format adapter. Future: codex, etc.
session-start [--hook-protocol=claude]
Emit dynamic SessionStart context. Without the flag, prints the structured result for testing.

Knowledge commands

knowledge lint [--fix]
Structural health check; --fix rewrites stale wikilinks + inserts backlinks

Compile commands

compile status
Show queue (pending sessions, feedback, specs)
compile next
Print next work item (no synthesis β€” run /agent-kevin:knowledge-compile for that)
compile write <itemId>
Mark item complete (advanced β€” synthesis writes use this internally)

Worktree commands

worktree <repoPath> --branch=BRANCH [--base=REF] [--slug=SLUG] [--extra=sub1,sub2]
Create <repoPath>-<slug> as a sibling of the main checkout, copy gitignored locals, install, build. A bare --branch is namespaced under the operator (operator/<name>). --base picks the start-point (default: dev β†’ develop β†’ main β†’ master β†’ current HEAD). --extra lists relative subdirs with their own lockfile. NOTE: blocked by the Bash sandbox when run from inside Claude Code (git can't write .git/config) β€” use the setup_worktree MCP tool there; this CLI is for a real terminal.

Database commands

database list
List configured KEVIN_DB_<NAME> connections (name + host/db, never credentials)
database schema --connection=NAME [--table=T] [--schema=S] [--database=DB]
List user tables, or describe one table's columns (read-only)
database query --connection=NAME --sql="SELECT ..." [--database=DB] [--timeout=MS]
Run read-only SQL (server-enforced READ ONLY tx; writes/DDL rejected)
database fork [--connection=NAME] [--source=DB] [--fork=NAME] [--cwd=PATH] [--repoint-env] [--env-var=DATABASE_URL] [--force] [--terminate-source] [--drop]
Clone a LOCAL database via CREATE DATABASE ... TEMPLATE. Fork name defaults to <source>_<git-branch> when --cwd is a repo, else <source>_fork. --repoint-env writes a .env.local override in --cwd; --drop tears the fork down. Remote hosts refused.

Environment

KEVIN_HOME=<path>
Override agent home (default: cwd)
KEVIN_PROJECTS=<path>
Override projects/ location (default: <HOME>/projects)
KEVIN_KNOWLEDGE=<path>
Override knowledge/ location (default: <HOME>/knowledge)
KEVIN_TIMEZONE=<tz>
Override timezone (default: system tz)

Examples

kevin capture "remember to follow up with tracy on constitution lodgement"
kevin capture --file=~/notes/board-meeting.md --title="Board meeting 2026-05-28"
kevin capture --url=https://docs.anthropic.com/en/docs/claude-code/overview
pbpaste | kevin capture --stdin --title="Clipped article"
kevin capture --kind=feedback "don't propose git push for local-only repos"
kevin task query --status=active
kevin task create --project=blog-dev --title="Draft launch post" --description="..." --priority=P1
kevin dashboard
kevin worktree /path/to/repo --branch=feat/my-thing
kevin knowledge lint --fix
kevin compile status
kevin database list
kevin database query --connection=app --sql="select count(*) from users"
kevin database fork --connection=app --cwd=/path/to/worktree --repoint-env
SessionStartFires when a session starts. Injects today’s date (with the Hijri date), the tail of your last session, today’s reports, and recent git activity β€” so Kevin wakes up with continuity instead of a blank slate.kevin session-start --hook-protocol=claude
SessionEndFires when a session ends. Captures the full transcript to knowledge/raw/sessions/YYYY-MM-DD.md. This is how every session is saved β€” later compiled into long-term memory.kevin session-capture --mode=session-end
PreCompactFires just before Claude Code compacts (summarises) a long conversation. Captures the session up to that point so the part being compressed away is still preserved on disk.kevin session-capture --mode=pre-compact

Alex Chen πŸ‘€

Who Ace is working for β€” compiled from every session.

Alex Chen
America/New_York
Co-founder and CTO of Acme, a B2B logistics SaaS scaling past launch (1β†’2). Previously staff engineer at two startups through Series B. Writes Go and TypeScript; reviews everything touching billing. Works 10:00-19:00 ET; deep-work block before noon is sacred.
No profile compiled yet β€” it grows as you work together.

Go deeper3 facets

profile352 B
skills231 B

Ace πŸ€–

Your life co-pilot β€” who he is and how he runs.

Ace
Company agent (agent-acme, forked from agent-kevin)
Sharp but approachable. Gets things done. Knows the codebase and the company.

Ace is Acme's private company agent. It pairs with engineering on real tickets, compiles the company's knowledge into a living brain, and briefs leadership every morning. Self-hosted on Acme infrastructure; nothing leaves the building.

Core Rolefrom IDENTITY.md

  • Agentic engineering: coding, debugging, monitoring, planning with full company context.
  • Company brain: capture, compile, and serve institutional knowledge.
  • Daily briefings, task tracking, and incident support.

Vibefrom SOUL.md

  • You are Ace, Acme's company agent. Sharp, direct, allergic to fluff. You ship with the engineering team daily and brief the leadership floor every morning. Clever over polite; useful over impressive.

Core Truthsfrom SOUL.md

  • Do the thing. Do not narrate what you are about to do.
  • Verify before you claim. Numbers, statuses, and customer facts get a source check or stay out.
  • Have a spine. If the plan is wrong, say so.
  • Figure it out. Read the file, check the context, come back with answers.

Boundariesfrom SOUL.md

  • Customer data stays inside Acme systems. Always.
  • When in doubt, ask before acting externally.

Files

Ace's character and role β€” edit these to evolve them.SOUL.md Β· IDENTITY.md

Runtime

versionv0.3.7
pluginagent-kevin
marketplaceβ€”
plugin path~/agent-kevin
home/home/acme/agent-acme
timezoneAmerica/New_York

System

The machinery β€” settings, logs, releases.

Settings layers12 allow Β· 52 deny total

scopefileallowdenyenv
user~/.claude/settings.json2495
project/home/acme/agent-acme/.claude/settings.json1031
local/home/acme/agent-acme/.claude/settings.local.json (absent)β€”β€”β€”

Plugin

pluginnot detected
plugins enabledskill-creator Β· typescript-lsp Β· swift-lsp Β· pyright-lsp Β· frontend-design

Environment6 vars

keyvaluescope
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICTurns off non-essential network traffic (telemetry, auto-update pings, etc.) β€” keeps Claude Code quiet on the wire.1user
CLAUDE_CODE_NO_FLICKERRenders the prompt without the flicker-prone redraw. Upside: you can click anywhere in the prompt input box to move the cursor. Trade-off: to highlight/select text in Claude’s responses you have to hold Shift while dragging.1user
ANTHROPIC_DEFAULT_HAIKU_MODELRemaps the lightweight β€œHaiku” tier the harness uses for small background tasks to a more capable model, so quick auxiliary calls aren’t under-powered.claude-sonnet-4-6user
KEVIN_HOMEKevin’s home directory β€” the root of the knowledge tree, projects, and reports. The MCP server resolves every path from here. Defaults to the directory you launch Claude from; set this in ~/.claude/settings.json if you ever start Claude from elsewhere, so paths don’t silently resolve to the wrong place.~/agent-acmeuser
ACE_HOME/home/acme/agent-acmeworkspace

Secrets0 set Β· values never shown

No secrets configured. Add keys to .kevin/secrets/.env (loaded at boot, never displayed).

Health

file/home/acme/agent-acme/.kevin/logs/app.log (183 B)
today0 warn Β· 0 err
all-time0 warn Β· 0 err

Tail122 B

2026-07-07T18:54:09.782Z INFO [πŸ€– system] [cli] dashboard
2026-07-07T18:45:23.611Z INFO [πŸ€– system] [cli] dashboard
βœ“ Up to date β€” home baseline matches installed v0.3.7.

v0.3.7 Β· your baseline2026-07-06

Fixed

  • Report-writing skills (`where-am-i`, `flywheel`, `morning-briefing`, `evening-briefing`, `self-review`, `weekly-goals`, `monthly-goals`, `yearly-goals`) now surface the absolute `path` returned by `report_write` instead of the relative `relPath`, so the "πŸ“„ Saved to …" line is command-clickable in any terminal (e.g. cmux) without a base directory.

⬆ Upgrade

- None β€” code-only, no bun install or HOME changes.

v0.3.62026-07-01

Changed

  • `.env` deny baseline in `/init` narrowed: the catch-all `Read(**/.env.*)` is replaced by explicit denies for the secret-bearing variants (`.env.local`, `.env.*.local`, `.env.development`, `.env.production`, `.env.staging`, `.env.test`). Template files (`.env.example`, `.env.sample`, `.env.template`) now read freely, since Claude Code evaluates deny before allow with no glob negation, so narrowing the deny is the only way to whitelist one file. The bare `.env` stays denied; secrets in `.kevin/secrets/` are unaffected.

⬆ Upgrade

changeleveldetail
settingsoptionalin `.claude/settings.json` β†’ `permissions.deny`, replace `Read(**/.env.*)` with `Read(**/.env.local)`, `Read(**/.env.*.local)`, `Read(**/.env.development)`, `Read(**/.env.production)`, `Read(**/.env.staging)`, `Read(**/.env.test)`. Purely a relaxation so `.env.example` becomes readable; skip if you prefer the broader deny.

v0.3.52026-06-30

Added

  • `sync` now closes with a next-steps interview: after the dashboard render, it turns the surfaced backlog into a single `AskUserQuestion`. Pick a concrete next move (a suggested move, a flagged overdue/stale item, a due cadence skill, or a pending upgrade), then act on it now or queue it as a task. Gated to fire only when something is actually surfaced; a clean bill still ends on the `βœ… Sync complete` one-liner. Cadence/upgrade picks collapse to surfacing the slash command (they stay operator-gated).

⬆ Upgrade

- None β€” code-only, no bun install or HOME changes.

v0.3.42026-06-25

Added

  • Read-only GitHub pack: nine MCP tools that shell out to `gh --json` β€” `github_pr_list` / `github_pr_view` / `github_pr_diff` / `github_pr_checks`, `github_run_list` / `github_run_view` / `github_run_log`, and `github_issue_list` / `github_issue_view`. Lets Kevin review PRs and issues, pull diffs and check status, and diagnose failing GitHub Actions runs (failed-step logs). No write subcommands β€” commenting, merging, and re-running workflows stay human-in-terminal by design. Runs from inside the MCP server (outside the Bash sandbox, where `gh`'s keychain TLS would otherwise fail), authenticating via a `GITHUB_TOKEN` from `.kevin/secrets/.env`. Repo defaults to `origin` of `KEVIN_CODE_PATH` / first `KEVIN_GIT_REPOS` entry; override per-call with `repo="owner/repo"`.
  • GitHub is now an opt-in pack in `/init` and `configure-skills` (new A.2d walk), alongside SEO / Browser / Database.

Changed

  • `self-review` and `yearly-goals` skills now persist their summaries via the `report_write` MCP tool, so each run leaves a durable report in the audit trail.

⬆ Upgrade

changeleveldetail
settingsoptionalthe GitHub pack is opt-in. To activate, run `/agent-kevin:configure-skills` (GitHub walk): it grants the nine `github_*` tool permissions, ensures `.kevin/secrets/.env`, and surfaces the steps to mint a fine-grained read-only PAT (`GITHUB_TOKEN`). Requires the `gh` CLI on PATH (`brew install gh`). Existing homes are unaffected until they opt in.

v0.3.32026-06-25

Added

  • Sync now surfaces cadence nudges: planning and review skills (the weekly/monthly/yearly-goals trio + self-review) that have come due are listed with the exact slash command to run, driven by a `cadence` block in each skill and a shared `skills/sync/scripts/cadence.ts`.
  • Dashboard Skills tab gained auto/manual filter chips so you can split model-invocable skills from slash-only ones.
  • `kevin` CLI gained a `database` command group (list/schema/query/fork) mirroring the Database MCP tools for use outside Claude Code.

Changed

  • Consolidated every `process.env` read into a single config-free `shared/env.ts` module. Secret-reading tools (web-search, serpapi, open-page-rank, gsc, database, database_fork) now self-load `.kevin/secrets/.env` on first access regardless of import order, instead of relying on a sibling importing `config.ts` first. A build-time guard test fails if any module outside `shared/env.ts` reads `process.env` directly.
  • self-review skill: fixed path drift, added an output watermark and a template-promotion track.
  • Dashboard settings/env/secrets tables now wrap long values instead of overflowing.

Fixed

  • Sandbox secrets deny never bit. v0.3.0/v0.3.1 wrote the secrets deny under `sandbox.filesystem.read.denyOnly` β€” the harness's internal *resolved* shape, not a real settings input key β€” so Claude Code silently ignored it and files nested under `.kevin/secrets/` (Google OAuth tokens, `.kevin/secrets/.env`) stayed readable by sandboxed Bash, even though `ls` of the dir was blocked. The real key is `sandbox.filesystem.denyRead`; pointing it at the directory (no glob) denies it and everything under it at the OS level, which also sidesteps the gitignore `**`-won't-descend-into-`.kevin` dot-dir trap. `/init` now scaffolds `denyRead` plus a forward-compatible `sandbox.credentials.files` entry (honored on Claude Code v2.1.187+, ignored on older).

⬆ Upgrade

changeleveldetail
scriptrequiredrun `skills/upgrade/scripts/0.3.3.ts` via the `run_upgrade` MCP tool. It drops the dead `sandbox.filesystem.read.denyOnly` key, adds `sandbox.filesystem.denyRead: [".kevin/secrets"]`, and seeds `sandbox.credentials.files`. Idempotent.
manualnonerestart/reload Claude Code after the migration so Seatbelt loads the corrected policy. Verify with `wc -c < .kevin/secrets/<a-token-file>` β€” it should report "Operation not permitted" (not a byte count).

v0.3.22026-06-24

Added

  • New `database_fork` MCP tool: clones a Postgres database into a private copy via `CREATE DATABASE <fork> TEMPLATE <source>` (pure SQL, no `pg_dump`/`pg_restore`, cross-platform), so risky or destructive schema work runs against a scratch copy instead of a shared/live DB. Refuses remote hosts (local only), defaults to the first connection, names the fork after the current git branch, can repoint an env file at the fork, and tears down with `drop: true`. This is what `setup-worktree` now uses to give a worktree its own database on demand.
  • Dashboard now shows a presence-only secrets inventory of `.kevin/secrets/` (env key names + Google OAuth files): names and presence checks only, never values.

Changed

  • Database tools renamed for consistency: `db_list` β†’ `database_list`, `db_schema` β†’ `database_schema`, `db_query` β†’ `database_query`. Consumer-visible (permission grants change; see Upgrade).
  • `setup-worktree` skill wires up `database_fork` to provision a worktree's database.
  • README database section rewritten for the v0.3.0 secrets layout: `KEVIN_DB_*` connection strings now live in `.kevin/secrets/.env`, not `settings.local.json`.

Fixed

  • Hardened the not-yet-released `0.3.0.ts` / `0.3.1.ts` secrets migrations: purge the old `settings.local.json` env block after relocation and strengthen the secrets deny path.

⬆ Upgrade

changeleveldetail
settingsmandatoryonly if you use the Database pack. Replace the renamed tool grants in your project `.claude/settings.json`: remove `mcp__plugin_agent-kevin_kevin__db_list`, `mcp__plugin_agent-kevin_kevin__db_query`, `mcp__plugin_agent-kevin_kevin__db_schema`; add `mcp__plugin_agent-kevin_kevin__database_list`, `mcp__plugin_agent-kevin_kevin__database_query`, `mcp__plugin_agent-kevin_kevin__database_schema`, `mcp__plugin_agent-kevin_kevin__database_fork`.

v0.3.12026-06-24

Fixed

  • Completed the secret-file deny baseline for homes upgraded via the contract. v0.3.0 broadened `/init`'s `permissions.deny` (the dotenv / cert / credential globs plus the two `curl … | sh` Bash denies) and its narrow sandbox `denyOnly`, but the v0.3.0 migration wrote only the secrets-dir Read deny β€” so a home that ran `/upgrade` (rather than a fresh `/init`) was left with just `Read(**/.kevin/secrets/**)` and missed the rest of the hardening.

Changed

  • `google-auth` tool gained a comment documenting the secrets-dir layout (parity with the worktree + Walle).

⬆ Upgrade

changeleveldetail
scriptrequiredrun `skills/upgrade/scripts/0.3.1.ts` via `run_upgrade`. Tops the project `.claude/settings.json` up to the full `/init` baseline: adds the remaining Read denies (`**/.env`, `**/.env.*`, `**/secrets/**`, `**/credentials/**`, `**/*.pem`, `**/*.key`) and the two `curl … | sh` Bash denies to `permissions.deny`, and `**/.env` + `**/.env.*` to the sandbox `filesystem.read.denyOnly`. Additive and idempotent β€” never removes or reorders existing entries. Touches only the project settings file, never the global `~/.claude/settings.json`.

v0.3.02026-06-24

Added

  • Secrets are centralized into a deny-gated `.kevin/secrets/` directory: credential env vars (`PERPLEXITY_API_KEY`, `SERPAPI_KEY`, `OPENPAGERANK_API_KEY`, `KEVIN_DB_*`) live in `.kevin/secrets/.env` and Google OAuth files in `.kevin/secrets/google/`, loaded once at boot by the MCP server / CLI and never exposed to ad-hoc Bash. A `Read(**/.kevin/secrets/**)` deny keeps the agent from reading its own secrets.
  • Versioned upgrade-script mechanism: a heavy one-time HOME migration ships at `skills/upgrade/scripts/<version>.ts` and runs via the new always-on `run_upgrade` MCP tool (outside the Bash sandbox, so it can touch deny-gated paths). Scripts are self-contained, idempotent, fail-loud, and pruned once the minimum baseline passes them.

Changed

  • `/agent-kevin:upgrade` now runs `script:`-tagged migrations through `run_upgrade`; `/agent-kevin:release` detects an in-range migration script and locks the version to its filename instead of asking for a bump.
  • `init` and `configure-skills` skills updated for the secrets layout and the new always-on core tool list.

⬆ Upgrade

changeleveldetail
scriptrequiredrun `skills/upgrade/scripts/0.3.0.ts` via `run_upgrade` (relocates secrets to `.kevin/secrets/` and writes the Read deny). Breaking HOME-layout move; idempotent and verified before it strips the originals.
settingsmandatoryadd permission `mcp__plugin_agent-kevin_kevin__run_upgrade` (new always-on core tool) and the deny `Read(**/.kevin/secrets/**)`.

v0.2.92026-06-23

Added

  • Dashboard Tasks page now has project filter chips (All + one per project, busiest first, with the project's color dot), mirroring the Reports page. They appear on both the agenda and the Needs-attention view, and stay hidden when there's only one project to filter between.
  • Task rows show a πŸ’¬ comment counter chip (thread entry count) in the summary, and `depends on` ids in the expanded body now link to their task files (live or archived).

Changed

  • Redesigned the expanded task-detail body: a quiet, dot-separated key/value meta block (status Β· due Β· updated Β· depends on) replaces the old `Β·`-joined dim line, with the blocker reason on its own amber-edged note line. The id itself is now the open-the-file link (no separate footer).
  • Needs-attention view rebuilt: Blocked and Going-stale are filterable grouped rows under one filter box (Blocked reads as a single id Β· why Β· project row) instead of two separate tables.
  • Plugin description updated to engine-agnostic tool wording (headless browser / web search, not Playwright / Perplexity) and a stable "20+ skills" count.

⬆ Upgrade

- None β€” code-only, no bun install or HOME changes.

v0.2.82026-06-23

Fixed

  • Task prefix resolution is now consistent end-to-end. `buildPrefixMap` gives a project whose prefix is inferred from existing task files precedence over an empty project that derives the same prefix, so an empty project can no longer displace a tasked project's IDs (which would misroute `findTaskById`). `getNextId` now mints IDs through the same collision-resolved prefix that `findTaskById` looks up, removing a second source of truth.
  • `create-project` and `archive-project` skills: removed references to the deleted hardcoded `TASKS.PREFIX_MAP` (prefixes are now filesystem-derived), corrected stale `app/` paths to `mcp-server/`, fixed malformed MCP tool invocations, and dropped the dead `HEARTBEAT.md` cleanup step.

Changed

  • Pure task-prefix logic extracted to `mcp-server/src/tasks/prefix.ts` (`derivePrefix`, `assignPrefixes`), keeping `scan.ts` as the filesystem wiring and making the logic unit-testable without a config-backed HOME.

⬆ Upgrade

- None β€” code-only, no bun install or HOME changes.

v0.2.72026-06-22

Fixed

  • SessionStart banner: the "upgrade available" row now matches the `Label: value` shape of the Agent/Knowledge/Projects rows (`⬆️ Upgrade: run ...`) and drops the em-dash, so it aligns with the sibling lines.

⬆ Upgrade

- None β€” code-only, no bun install or HOME changes.

v0.2.62026-06-21

Changed

  • `templates/CLAUDE.md` engineering standards gain a **Comments** subsection: default to no comment, keep only the *why*, JSDoc-for-consumer-APIs only (always multi-line), no tombstones/archaeology, and fix the name or abstraction instead of explaining awkward code.

⬆ Upgrade

changeleveldetail
template/CLAUDE.mdmandatorynew "Comments" subsection under Engineering Standards. Additive content; appended after "Code style".

v0.2.52026-06-21

Changed

  • `sync` now checks for a pending plugin upgrade as part of its needs-attention step: it compares the installed plugin version against the home's migrated baseline (`.kevin/version.json`) and surfaces a dedicated `⬆️ Upgrade` line in the report when they drift. The check is read-only: `sync` never runs `/upgrade`; the migration stays an operator-gated command. Mirrors the dashboard staleness-warning pattern.

Fixed

  • Dashboard persona-head no longer repeats the agent name + emoji next to the avatar (it already appears in the page title).

⬆ Upgrade

- None β€” code-only, no bun install or HOME changes.

v0.2.42026-06-20

Changed

  • The `sync` skill is now model-invocable (dropped `disable-model-invocation`), so Kevin can run a full state refresh on its own and other skills can chain it via the Skill tool (`/upgrade` now chains `sync` after applying a HOME migration). Added to the canonical onboarding grant list (eight β†’ nine skill grants).

⬆ Upgrade

changeleveldetail
settingsmandatoryadd permission `Skill(agent-kevin:sync)` to `settings.json` β†’ `permissions.allow`. Without it, model invocations of `sync` (including the chain from `/upgrade`) prompt for confirmation each time.

v0.2.32026-06-20

Added

  • Dashboard now surfaces each session's tasks and plans (radar-refs), so the activity view links straight to the work a session touched.
  • Database tool: target a specific database per query and support db-less connections (`db_query` accepts a per-call database; connections without a default database now work). (#5)

Changed

  • **Engine-agnostic MCP tool names.** The browser tools `playwright_screenshot`/`playwright_pdf`/`playwright_markdown`/`playwright_record` are renamed to `browser_screenshot`/`browser_pdf`/`browser_markdown`/`browser_record`, and `perplexity_search` is renamed to `web_search`. The underlying engines are unchanged; only the tool names are now engine-neutral. (`browser_flows` keeps its name.)
  • Dashboard History: doubled the captured-briefing snippet cap to 240 chars.
  • `release` skill: now asks the maintainer which bump to take (patch/minor/major, each shown with its concrete target version) and, after staging, asks how far to go (commit / commit + tag / commit + tag + push) instead of free-text proposing.
  • README: promoted the upgrade/release docs to their own section and simplified the diagram.

Fixed

  • Upgrade-available alert spacing in the dashboard.

⬆ Upgrade

changeleveldetail
settingsmandatoryonly if the **Browser pack** is active. The renamed tools need their `permissions.allow` grants in `settings.json` swapped: remove the old names and add the new ones β€” `mcp__plugin_agent-kevin_kevin__perplexity_search` β†’ `…web_search`, `…playwright_screenshot` β†’ `…browser_screenshot`, `…playwright_pdf` β†’ `…browser_pdf`, `…playwright_markdown` β†’ `…browser_markdown`, `…playwright_record` β†’ `…browser_record`. (`…browser_flows` is unchanged.) Homes that never activated the Browser pack have no playwright/perplexity grants and need no change.

v0.2.22026-06-20

Fixed

  • `init` and `upgrade` skills: the gitignore-tracking logic used the shell `!` negation operator, which fails in the Claude Code Bash tool's eval wrapper (`command not found: !`). Rewritten to be fully `!`-free (nested if/else, octal `\041` for the literal `!`), so the `.kevin/version.json` and compile-cursor negations land regardless of shell. Completes the shell-`!` hardening begun in 0.2.1.

Changed

  • README: added a "How upgrades & releases work" section documenting the two-phase model (plugin code vs. home reconciliation), local behind-detection, the consumer/maintainer flows, and the Upgrade-block format.

⬆ Upgrade

None β€” code-only, no bun install or HOME changes.

v0.2.12026-06-20

Fixed

  • `init` and `upgrade` skills: a literal leading `!` in a shell command can be mangled to `\!` by some interactive shells (zsh history expansion), which silently broke the `.gitignore` negations that keep `.kevin/version.json` and the compile cursor git-tracked. The `!` is now emitted via its octal code `\041` and existence is detected with `!`-free greps, so the negations land regardless of shell.

⬆ Upgrade

None β€” code-only, no bun install or HOME changes.

v0.2.02026-06-20

Added

  • **`/agent-kevin:upgrade`** β€” applies pending HOME migrations after a `/plugin update`: runs `bun install` when a release needs it, auto-applies functionality-critical changes (permissions, new rule/concept files), and asks before touching anything you may have personalized (a SOUL/CLAUDE section). Handles being several versions behind in one pass, backs up to `.kevin/updates/` first, and ends with a sync.
  • **`/agent-kevin:release`** β€” producer tool that cuts a versioned release: detects what consumers need, bumps the version, writes the CHANGELOG entry + Upgrade block, and stages the commit + tag for approval.
  • **`CHANGELOG.md`** and the machine-actionable `### Upgrade` block format that `/agent-kevin:upgrade` consumes.
  • **Dashboard** β€” System β†’ Changelog tab, plus an amber "upgrade available" sidebar badge (and a SessionStart banner nudge), driven by a local, zero-network compare of the home baseline against the installed version.
  • **`.kevin/version.json`** β€” the home's template baseline, git-tracked so it survives a clone/restore.

Changed

  • `/init` now records `.kevin/version.json` for fresh homes and grants the upgrade/release skills.
  • The `.gitignore` template now tracks `.kevin/version.json` (the same way it already tracks the compile cursor). For existing homes, `/agent-kevin:upgrade` applies this automatically.

⬆ Upgrade

changeleveldetail
settingsmandatoryadd `Skill(agent-kevin:upgrade)` and `Skill(agent-kevin:release)` to `.claude/settings.json` `permissions.allow`.

v0.1.252026-06-19

⬆ Upgrade

changeleveldetail
nonenoneNone β€” code-only baseline, no bun install or HOME changes.

Status 🟠

1 signal(s) need attention. The sidebar badge is green only when the four blocking signals below are all zero.

0
overdue tasks
3
pending compiles
0
log errors today
0
missing imports
1
stale Β· info only

Overdue tasks0

Open tasks whose due date has passed β€” read straight from each task file’s frontmatter.
βœ“Nothing past due.

Pending compiles3

Captured session days not yet absorbed into long-term memory β€” 3 day-file(s) captured vs 0 compiled. Clear it with /agent-kevin:sync or /agent-kevin:knowledge-compile.
●3 session day(s) waitingsee the pipeline β†’

Log errors0

ERROR-level lines the MCP server and hooks wrote to app.log today. Warnings don’t count.
βœ“No errors logged today.open the log tail β†’

Context importsall present

Files the CLAUDE.md @-import chain loads at session start β€” a missing one means a session boots without that context.
βœ“All static imports present.

Going stale1 Β· informational

Tasks not closed and untouched for 7+ days. Informational only β€” it never turns the badge amber.
●1 task(s) going stalereview them β†’