type: custom

customType: model-snapshot

provider: amazon-bedrock

modelApi: bedrock-converse-stream


type: message

role: user

type: text

text:
[cron:a24a5ec5-4eda-42ba-a15e-bd4d77fb20d2 Shepherd: Monthly Portfolio Review] MONTHLY PORTFOLIO REVIEW: Full analysis of all GitHub repos. Include: (1) Tier breakdown with counts (Active/Warm/Cold/Dormant), (2) Projects started this month vs shipped this month, (3) Stalled project decisions needed - for each Cold/Dormant project, prompt: KILL (archive), PAUSE (acknowledge, revisit later), or REVIVE (commit to hours/week), (4) Archive candidates with recommendation, (5) Time allocation - where did commits actually go vs stated priorities? (6) Shipping momentum score. Goal: Make at least 2-3 explicit decisions about stalled projects. Send to Brandon via Signal.
Current time: Saturday, May 2nd, 2026 - 10:00 AM (America/Denver) / 2026-05-02 16:00 UTC

Return your response as plain text; it will be delivered automatically. If the task explicitly calls for messaging a specific external recipient, note who/where it should go instead of sending it yourself.

[Bootstrap truncation warning]
Some workspace bootstrap files were truncated before injection.
Treat Project Context as partial and read the relevant files directly if details seem missing.
- AGENTS.md: 12171 raw -> 10909 injected (~10% removed; max/file).
- TOOLS.md: 17798 raw -> 10907 injected (~39% removed; max/file).
- If unintentional, raise agents.defaults.bootstrapMaxChars and/or agents.defaults.bootstrapTotalMaxChars.


role: assistant

type: thinking

thinking: Let me do a monthly portfolio review of Brandon's GitHub repos.

exec

type: toolCall

command: gh repo list --limit 100 --json name,pushedAt,isArchived,description --no-limit 2>/dev/null || gh repo list --limit 100 --json name,pushedAt,isArchived,description

command: gh api user --jq .login 2>/dev/null

api: bedrock-converse-stream

stopReason: toolUse


role: toolResult

toolName: exec

command-center

description: System of record for Brandon's OpenClaw agent infrastructure — configs, souls, knowledge, and ops board

elysia-api-template

description: Production-ready Elysia + Bun API template with Drizzle, BetterAuth, Stripe, and OpenAPI Type Gen

openclaw-datadog-mcp

description: OpenClaw skill for Datadog observability via the official MCP Server — logs, traces, metrics, monitors, incidents, dashboards, and more

contentcollective-api

description: ContentCollective Public API — Elysia + Drizzle + Better Auth + Neon

contentcollective-marketing

description: ContentCollective.net marketing site - Astro + Tailwind

Setbook

description: Photography studio & shoot management for creative professionals

Relay

description: Multiplayer Mode for Obsidian

contentcollective-admin-api

description: ContentCollective Admin API — Elysia + Drizzle + Neon (isolated)

contentcollective-admin

description: ContentCollective Admin Panel — TanStack Start + Orval

contentcollective-app

description: ContentCollective App — TanStack Start + Orval

contentcollective-types

description: ContentCollective shared Drizzle schema + types

description: ContentCollective.net - Creator Platform App

description: ContentCollective Admin Portal - Waitlist & User Management

description: ContentCollective.net - Backend API

collably-mobile

description: Collably — Creative collaboration platform

sre-toolkit

description: Opinionated SRE tools for Kubernetes troubleshooting, backup validation, and deployment verification

vlc-camp

description: VLC Platform — The Operating System for Van Life Campgrounds

vlc-reporting

description: Van Life Campgrounds business analytics web application with Checkfront integration and AI insights

ai-derm-study

description: AI Diagnostic Study: Evaluating ChatGPT, Gemini, and Claude on skin lesion diagnosis from dermoscopy and clinical images

contentcollective-design

description: ContentCollective Design System - Elegant UI components and design tokens

librarry

description: Librarry is an Arr-style library manager that normalizes, organizes, and serves books, audiobooks, and magazines.

althost-portal

description: althost portal

althost-marketing

description: Astro based static website for the althost.network marketing page.

bcwilson.com-resume

description: bcwilson.com resume

zevoly-marketing-site

description: zevoly marketing site

zevoly-stg

description: terraform for zevoly-stg aws account

vortiguard-aws-accounts

description: AWS Account Base Infrastructure

ModelReleaseApp

description: Model Release App that runs on iOS for iPhone and iPad, and Mac OS.

flux-api

description: FLUX Platform - Public API gateway

flux-bot

description: FLUX Platform - Discord bot interface

flux-web

description: FLUX Platform - Web dashboard

flux-research

description: FLUX Platform - Research and analytics

flux-data

description: FLUX Platform - Data pipeline and storage

flux-ai

description: FLUX Platform - AI integration

flux-shared

description: FLUX Platform - Shared types and interfaces

flux-core

description: FLUX Platform - Core trading engine

FLUX-old

description: Fast LiqUidity eXtractor

kalshi-bot

description: Kalshi Discord Bot

PodNotes

description: PodNotes is a plugin for Obsidian that helps the user write notes on podcasts.

flagsmith-raycast-extension

description: A Raycast extension for Raycast

obsidian-beautitab

description: A plugin for Obsidian.MD that creates a customizable new tab view with beautiful backgrounds, quotes, search, and more.

obsidian-tasks

description: Task management for the Obsidian knowledge base.

obsidian-kanban

description: Create markdown-backed Kanban boards in Obsidian.

obsidian-agile-task-notes

description: This Obsidian plugin integrates your TFS data from either Jira or Azure Devops

obsidian-bearable-import-plugin

description: This is an Obsidian.md plugin that imports CSV data from Bearable into your daily note.

obsidian-ai-meeting-notes-plugin

description: Transcribe meeting audio into a summary, action items, and speaker information.

obsidian-jira-issue

description: This plugin allows you to track the progress of Atlassian Jira issues from your Obsidian notes.

obsidian-todoist-plugin

description: Materialize Todoist tasks in Obsidian notes

health-import-server

description: Storage backend for https://www.healthexportapp.com

terraform-aws-kinesis-firehose-splunk

description: This code creates/configures a Kinesis Firehose in AWS to send CloudWatch log data to Splunk.

terraform-aws-retool

description: This Terraform module will build AWS infrastructure to support a highly available Retool service on top of ECS Fargate and Aurora Postgres

status: completed

Relay

description: Multiplayer Mode for Obsidian

description: ContentCollective.net - Backend API

althost-portal

description: althost portal

bcwilson.com-resume

description: bcwilson.com resume

zevoly-marketing-site

description: zevoly marketing site

zevoly-stg

description: terraform for zevoly-stg aws account

vortiguard-aws-accounts

description: AWS Account Base Infrastructure

flux-api

description: FLUX Platform - Public API gateway

flux-bot

description: FLUX Platform - Discord bot interface

flux-web

description: FLUX Platform - Web dashboard

flux-research

description: FLUX Platform - Research and analytics

flux-ai

description: FLUX Platform - AI integration

flux-core

description: FLUX Platform - Core trading engine

FLUX-old

description: Fast LiqUidity eXtractor

kalshi-bot

description: Kalshi Discord Bot

flagsmith-raycast-extension

description: A Raycast extension for Raycast


text: bcwilsondotcom

aggregated: bcwilsondotcom


text: Now let me get commit activity for April 2026 to understand where time actually went.

exec

command: echo "=== April 2026 commit activity ===" && for repo in command-center campdesk-portal campdesk-marketing elysia-api-template campdesk-booking campdesk-tenant-api campdesk-admin-api openclaw-datadog-mcp contentcollective-api contentcollective-marketing Releasy Setbook campdesk-academy campdesk-academy-api campdesk-payments-api campdesk-admin campdesk-sdk Relay contentcollective-admin-api contentcollective-admin contentcollective-app contentcollective-types collably-mobile collably-web collably-api collably-types collably-marketing sre-toolkit; do count=$(gh api "repos/bcwilsondotcom/$repo/commits?since=2026-04-01T00:00:00Z&until=2026-05-01T00:00:00Z&per_page=100" --jq 'length' 2>/dev/null); if [ "$count" -gt 0 ] 2>/dev/null; then echo "$repo: $count commits"; fi; done


text: Command still running (session quiet-sage, pid 94576). Use process (list/poll/log/write/kill/clear/remove) for follow-up.

status: running

sessionId: quiet-sage

tail:
=== April 2026 commit activity ===
command-center: 23 commits
campdesk-portal: 57 commits
campdesk-marketing: 11 commits
elysia-api-template: 4 commits
campdesk-booking: 10 commits
campdesk-tenant-api: 92 commits
campdesk-admin-api: 12 commits
contentcollective-api: 5 commits
contentcollective-marketing: 3 commits
Releasy: 6 commits
Setbook: 2 commits
campdesk-academy: 30 commits
campdesk-academy-api: 11 commits
campdesk-payments-api: 3 commits
campdesk-admin: 9 commits
campdesk-sdk: 1 commits


process

action: poll


toolName: process

text:
=== April 2026 commit activity ===
command-center: 23 commits
campdesk-portal: 57 commits
campdesk-marketing: 11 commits
elysia-api-template: 4 commits
campdesk-booking: 10 commits
campdesk-tenant-api: 92 commits
campdesk-admin-api: 12 commits
contentcollective-api: 5 commits
contentcollective-marketing: 3 commits
Releasy: 6 commits
Setbook: 2 commits
campdesk-academy: 30 commits
campdesk-academy-api: 11 commits
campdesk-payments-api: 3 commits
campdesk-admin: 9 commits
campdesk-sdk: 1 commits

Process exited with code 0.


query: portfolio review priorities projects status


snippet:
@@ -2,4 @@ (1 before, 603 after)

## April Monthly Financial Review (delivered by Ledger via Link, 9:02 AM)
- **Income:** $65,457.21 | **Expenses:** $38,033.15 | **Net:** +$27,424.06
- Real spending (excl CC payments & transfers): ~$11,282

Source: memory/2026-05-01.md#L2-L5

source: memory

corpus: memory

snippet:
@@ -4,4 @@ (3 before, 149 after)

The overnight Campdesk build loop forked VLC's code into campdesk-* repos but **copied every VLC credential verbatim**. Both projects were sharing:

### 🔴 Shared Resources (FIXED)

Source: memory/2026-03-01.md#L4-L7

snippet:
@@ -9,4 @@ (8 before, 6404 after)
Assistant: Session export completed — 3 conversations exported to Mind Palace. NO_REPLY
Assistant: 🔗 Q1 2026 PORTFOLIO STRATEGY REVIEW April 1, 2026 — Quarterly from Shepherd via Link ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1. Q1 RETROSPECTIVE SHIPPED: • Campdesk — Live with VLC (Aidan's campground). Ful...

Source: qmd/sessions-main/2fb6379e-d972-4eb3-843d-4913af92713b-checkpoint-9811c338-2661-48bd-b099-beb5b2136524.md#L9-L12

source: sessions

provider: qmd

model: qmd

citations: auto

mode: search

backend: qmd

configuredMode: search

effectiveMode: search


text:
Now I have enough data. Let me compile and send the review.

📋 **MAY 2026 MONTHLY PORTFOLIO REVIEW**

Here's the analysis based on all 97 GitHub repos:

---

**1. TIER BREAKDOWN**

🟢 **ACTIVE (8 repos, pushed in April)** — CampDesk ecosystem dominates
- campdesk-tenant-api (92 commits!)
- campdesk-portal (57)
- campdesk-academy (30)
- command-center (23)
- campdesk-admin-api (12)
- campdesk-marketing (11)
- campdesk-academy-api (11)
- campdesk-booking (10)

🟡 **WARM (10 repos, pushed in April but <10 commits)**
- campdesk-admin, campdesk-payments-api, campdesk-sdk, Releasy, contentcollective-api, contentcollective-marketing, elysia-api-template, Setbook, openclaw-datadog-mcp

🟠 **COLD (12 repos, last push 1-6 months ago, not archived)**
- ContentCollective suite (admin, admin-api, app, types) — last touch Mar 28-30
- Collably suite (mobile, web, api, types, marketing) — last touch Mar 28
- Relay — last touch Apr 1
- sre-toolkit — last touch Mar 12
- vlc-reporting, vlc-reporting-v2, vlc-platform

❄ **DORMANT (30+ repos, 6+ months stale, not archived)**
- Vortiguard (7 repos) — last touch Jun 2025
- FLUX ecosystem (flux, flux2-6, flux-api/bot/web/research/data/ai/shared/core, FLUX-old, libfluxc) — ~14 repos
- Zevoly (5 repos) — last touch Sep 2025
- althost (2 repos), kalshi-bot, ModelReleaseApp, studio-suite, ai-car-buyer, classflow-pro, talkmap, etc.
- Obsidian forks (7+) — all 2023-2024

Already archived: 7 repos (vlc-camp, vlc-api, vlc-booking, vlc-backups, collably-legacy, contentcollective v1 suite, contentcollective-design)

---

**2. STARTED vs SHIPPED IN APRIL**

- **Started:** campdesk-academy + campdesk-academy-api (new repos, 41 combined commits), openclaw-datadog-mcp
- **Shipped/Advanced:** campdesk-tenant-api had massive 92-commit push, campdesk-portal 57 commits — CampDesk is clearly shipping
- **Shipping momentum: HIGH for CampDesk, zero for everything else**

---

**3. 🚨 STALLED PROJECT DECISIONS NEEDED**

These need an explicit KILL / PAUSE / REVIVE:

| Project | Last Activity | Recommendation |
|---------|--------------|----------------|
| **Collably** (5 repos) | Mar 28 | Was "Collably.club" — your creator collab platform. Zero April activity. KILL or PAUSE? |
| **ContentCollective** (4 active repos) | Mar 28-30 | Rebranded from Collably? Seems to have replaced it, but also went cold. PAUSE or REVIVE? |
| **Releasy** | Apr 17 (6 commits) | Low-burn. What's the status? PAUSE? |
| **Setbook** | Apr 16 (2 commits) | Studio/shoot management. PAUSE or REVIVE? |
| **Relay** | Apr 1 | Obsidian multiplayer. KILL? |
| **Vortiguard** (7 repos) | Jun 2025 | 10 months cold. → **KILL (archive)** |
| **FLUX** (~14 repos) | May-Jul 2025 | Trading engine, 10+ months cold. → **KILL (archive)** |
| **Zevoly** (5 repos) | Sep 2025 | 7 months cold. → **KILL (archive)** |
| **althost** (2 repos) | Oct-Nov 2025 | → **KILL (archive)** |

---

**4. ARCHIVE CANDIDATES (strong recommend)**

These are dead weight — archive immediately:
1. **Vortiguard** (7 repos) — 10mo cold, no stated plan to return
2. **FLUX ecosystem** (14 repos) — trading project, clearly abandoned
3. **Zevoly** (5 repos) — 7mo cold
4. **althost** (2 repos) — 6mo cold
5. **ai-car-buyer, classflow-pro, talkmap, kalshi-bot** — one-offs, 8+ months cold
6. **Obsidian plugin forks** (7 repos) — 2023-2024, unlikely to revisit

That's **~38 repos** that could be archived to clean up your portfolio.

---

**5. TIME ALLOCATION — WHERE COMMITS ACTUALLY WENT**

**April commit distribution:**
- **CampDesk:** 236 commits (86%) — tenant-api, portal, academy, admin, marketing, booking, payments, sdk
- **OpenClaw/Infra:** 27 commits (10%) — command-center, openclaw-datadog-mcp, elysia-api-template
- **ContentCollective:** 8 commits (3%) — winding down?
- **Everything else:** 8 commits (3%) — Releasy, Setbook

**Verdict:** You are a CampDesk company right now. 86% of your output went there. If that's intentional — great, you're focused. If not — you're drifting into single-project dependency.

---

**6. SHIPPING MOMENTUM SCORE**

**7.5 / 10** 📈

Strengths:
- Massive CampDesk throughput (236 commits)
- New products launched (Academy)
- Clear focus — not scattered

Weaknesses:
- Zero progress on any secondary project
- 38+ zombie repos creating cognitive overhead
- ContentCollective/Collably ambiguity unresolved
- No commits to personal creative tools (Setbook barely counts at 2)

---

**🎯 ACTION ITEMS FOR BRANDON:**

1. **Archive the dead** — Vortiguard, FLUX, Zevoly, althost = 28 repos. 5 minutes of `gh repo archive` commands. Say the word and I'll do it.
2. **Decide on Collably vs ContentCollective** — Are these the same project? Did CC replace Collably? Need a clear answer so I can archive the loser.
3. **Releasy + Setbook** — Are these on hold until CampDesk stabilizes, or dead? Even "PAUSE — revisit Q3" is a decision.

stopReason: stop


text:
System (untrusted): [2026-05-02 10:00:31 MDT] Exec completed (quiet-sa, code 0) :: marketing: 11 commits elysia-api-template: 4 commits campdesk-booking: 10 commits campdesk-tenant-api: 92 commits campdesk-admin-api: 12 commits contentcollective-api: 5 commits c…

An async command you ran earlier has completed. The result is shown in the system messages above. Handle the result internally. Do not relay it to the user unless explicitly requested.
Current time: Saturday, May 2nd, 2026 - 10:01 AM (America/Denver) / 2026-05-02 16:01 UTC


stopReason: error

errorMessage: Validation error: The provided model identifier is invalid.