Files
2026-06-16 17:02:16 -05:00

16 KiB
Raw Permalink Blame History

Roundup — 2026-06-16

Repos scanned: keysat, matrix-bridge, premier-gunner, proof-of-work, recap-relay, recap, spark-control, standards, ten31-database, ten31-signal-engine, ten31-transcripts (11 git repos under ~/Projects). Skipped/failed: none. (Non-git folders under ~/Projects not enumerated — a ~13-folder sweep is itself a standards ROADMAP item.)

This is an inventory, not a ranking. Per-repo priority markers are quoted as found; projects are not ranked against each other.


Per-project snapshot

keysat — Bitcoin-native software-licensing service, StartOS 0.4.x package + 4 SDKs + public landing/docs site. Live at 0.2.0:56 on registry and immense-voyage.local; multi-profile write path shipped this session; tests green. In progress: 3 remaining multi-profile UIs (rail picker, per-profile SMTP, rail-pref editor) + operator data action (grant unlimited_merchant_profiles to Pro/Patron). Next: those UIs, then split audit:read out of :read. Discovered P2 (unfixed): set_product_entitlements_catalog has no rows_affected guard.

matrix-bridge — Single-user Matrix bot turning a room message into a live Claude Code session per repo, surfaced to phone. Phases 03 + ask mode all done; capture mode (D13) LIVE 2026-06-16 on 1 room, N=3 pending. Keyword-type parsing pushed (0786286) but running bot pending one Update — still logs every capture as idea. Next (triggered, not urgent): Docker HEALTHCHECK, ask-script trust flag, capture priority keyword.

premier-gunner — Kid-friendly soccer-training tracker PWA, StartOS .s9pk. All requested features built and live at v0.1.7:0. No work in progress. Known issue: in-app password change reverts on restart (workaround: "Set Login Password" action). Next: confirm speed unit (mph vs km/h); optional eval backlog.

proof-of-work — Self-hosted multi-user workout logger (Next.js), StartOS 0.4 s9pk. Latest v1.2.0:5 (Gear replaces RPE for cardio); 231 tests pass, verified on-box. Known open bug: Mobile Safari first-login tap fails (gated on capturing error code). Pending: StartOS proxy real-client-IP forwarding check. Next: finish P3 hardening batch (CSP unsafe-eval, /api/health info disclosure, rate-limit map leak, etc.), then tiered AI prompt formatting.

recap-relay — Operator-side credit-metered transcription/analysis router (Gemini + Spark Control); ships to operator's box only, never public. Aligned at v0.2.126, 79 tests green. Recent: Users dashboard tab, persistent webhook dedup, CORS scoped to /relay/*. Next: split 2225-line routes/internal-meetings.js (deferred as likely overkill); P3+ deferred tail.

recap — YouTube + podcast summarizer + library; StartOS self-host package and cloud SaaS (recaps.cc). Live: app 0.2.159 + relay 0.2.126, 144 tests pass. Loose end: Daily Digest's relay-synthesis + SMTP path not yet smoke-tested off-box. 5 pending operator actions (incl. iPad scroll-fix verify, digest smoke-test). Next: persist provider preference server-side, Export menu on clip panel, CI lint+type-check.

spark-control — Browser StartOS package controlling a dual NVIDIA DGX Spark cluster (vLLM swaps, STT/diarization/TTS, embeddings, redaction). Working at v0.21.0:1; matrix-bridge bot tile done; 70 offline tests pass. Signal Engine transient unresponsiveness diagnosed as GPU concurrency (client-side remedy forwarded). Next: audio concurrency sweep (only if Signal Engine dev wants it; needs owner OK), else pull from ROADMAP.

standards (meta/tooling layer) — Global agent-operating standards + the live fleet (8 commands, subagents) symlinked into ~/.claude. Fleet operational; design system shipped (ROADMAP item 8); keysat design pilot ran end-to-end (import path tested, extract path not). Next: backfill design into recaps.cc/recap (extract→reconcile Case B), build cross-repo quality-gate standard + /harden (ROADMAP item 1), non-git-folder sweep (~13).

ten31-database — Self-hosted venture-fund CRM (Ten31, ~$200M AUM) with agentic fundraising/thesis/outreach layer; replaced Airtable. Box+repo at v0.1.0:82 (2026-06-16), verified live; 22/22 backend tests green; vendored React+SRI+render-smoke gate added. Decision: fundraising grid + email capture is canonical, classic-CRM surfaces retiring. Next: auth regression test for 3 v79-gated endpoints, digest Phase B verify, reports soft-delete sweep, pipeline adoption, ?limit=abc crash.

ten31-signal-engine — Pipeline ingesting audio + text (SEC filings, calls, research) into structured propositions → falsifiable investment signals scored through Ten31's thesis. Strike adversarial test CONDITIONAL PASS (2026-06-16); pipeline complete end-to-end (56,008 claims in Qdrant); engine correctly refuses the false positive. Reflexivity demo unexercised (RHR/CD audio transcription deferred — no GPU spend). No automated test suite yet. Next: Frontier-fan-out test H6, complete Strike reflexivity demo when GPU budget allows, Job A discovery scorers.

ten31-transcripts — Active Xcode/Swift app. Reader returned a macOS menu-bar call-recorder summary (dual-track audio capture → Spark Control backend for transcription/diarization/naming); main branch clean, 73 tests pass, backend connected end-to-end 2026-06-16. Caveat: the inbox describes ten31-transcripts as a Swift app with no .claude/ dir and a queued P1 mini-retrofit — so either this repo is that recorder app (and the AGENTS.md was read despite no .claude/) or the reader picked up an adjacent app's docs. See Gaps; confirm the repo's own AGENTS.md before acting.


Priority queue (all projects + untriaged inbox)

Explicit-priority and concrete next-action items, each once. Sprawling P3 tech-debt tails are rolled to a single per-repo line pointing at that repo's ROADMAP rather than enumerated.

P1

  • [P1] ten31-transcripts: mini-retrofit — add inbox-check line, create .claude/settings.json, canonical .gitignore block, optional docs reorg — source: inbox(untriaged) — INBOX.md L34
  • [P1] matrix-bridge: push the pending Update so the running bot picks up keyword-type capture parsing (commit 0786286) — currently logs every capture as idea — source: matrix-bridge — AGENTS Current state

P2

  • [P2] keysat: ship 3 remaining multi-profile UIs (rail picker, per-profile SMTP, rail-pref editor) — source: keysat — next steps
  • [P2] keysat: operator data action — grant unlimited_merchant_profiles to Pro/Patron on master — source: keysat — next steps
  • [P2] keysat: add rows_affected guard to set_product_entitlements_catalog (silent 200 on bad product-id) — source: keysat — Discovered
  • [P2] keysat: design-contract cleanup from 2026-06-16 design-checker audit — 3 blockers (gold-as-fill ×2, buy-CTA pill radius), CSS-variable consolidation, token gaps; re-run design-checker after — source: inbox(untriaged) + keysat ROADMAP — INBOX.md L44
  • [P2] keysat: run spec-checker agent for Start9 community-registry listing — source: inbox(untriaged) — INBOX.md L52
  • [P2] keysat: adversarial review — vulnerabilities, complaints, feature gaps a new user might find — source: inbox(untriaged) — INBOX.md L51
  • [P2] keysat: doc-auditor website drift review + GitHub history sensitive-info review + add "license existing software" example — source: inbox(untriaged) — INBOX.md L53
  • [P2] keysat: research whether the registry must retain every prior keysat version on upgrade — source: inbox(untriaged) — INBOX.md L49
  • [P2] recap: smoke-test Daily Digest relay-synthesis + SMTP path (operator action #5, can't run off-box) — source: recap — pending operator actions
  • [P2] recap: SMTP daily-digest delivery (feature) — source: inbox(untriaged) — INBOX.md L37
  • [P2] recap: mobile can't-scroll-to-top on recaps.cc transcript view — fix attempted in 0.2.157, UNVERIFIED, needs iPad check — source: inbox(untriaged) — INBOX.md L40
  • [P2] recap: add Gemini 3.5 to model selection (research agent to confirm available stable model names) — source: inbox(untriaged) — INBOX.md L54
  • [P2] recap: persist provider preference server-side; Export ▾ on clip panel; CI lint+type-check (near-term backlog) — source: recap — ROADMAP
  • [P2] recap-relay: add Gemini 3.5 to model selection (confirm stable model names) — source: inbox(untriaged) — INBOX.md L55
  • [P2] ten31-database: Matrix-bridge intake for fundraising grid (room listener → local-LLM parse → entity/contact creation, approval gate) — source: inbox(untriaged) — INBOX.md L45
  • [P2] ten31-database: oversized/zoomed StartOS package icon — research spec, source base logo, produce correctly sized icon before next s9pk — source: inbox(untriaged) — INBOX.md L43
  • [P2] ten31-database: explorer agent to report admin-only vs all-user web UI functionality — source: inbox(untriaged) — INBOX.md L46
  • [P2] ten31-database: auth regression test for 3 v79-gated endpoints; digest Phase B verify on box; reports soft-delete sweep; pipeline adoption; ?limit=abc crash — source: ten31-database — next steps
  • [P2] ten31-signal-engine: run full-eval (evaluator, security-auditor, exerciser, doc-auditor, spec-checker) on the folder — source: inbox(untriaged) — INBOX.md L47
  • [P2] ten31-signal-engine: Frontier-fan-out test H6 (untested §1.1 half) — source: ten31-signal-engine — next steps
  • [P2] proof-of-work: finish P3 hardening batch + tiered AI prompt formatting; @fastify/static 8.3.0→≥9.1.3 (path-traversal CVEs); input-validation fixes — source: proof-of-work — ROADMAP/next steps
  • [P2] spark-control: audio concurrency sweep (only if Signal Engine dev wants the measured knee; needs owner OK) — source: spark-control — next steps
  • [P2] standards: backfill design into recaps.cc/recap (extract→reconcile Case B, on-ramp untested) — source: standards — next steps
  • [P2] standards: API automation for Gitea in /new-project (automate manual create/publish gate via Gitea API) — source: inbox(untriaged) — INBOX.md L35
  • [P2] standards: build keysat docs-reader subagent (can a fresh user install+run from docs alone) — source: inbox(untriaged) — INBOX.md L50
  • [P2] ten31-transcripts: add Jitsi support — source: inbox(untriaged) — INBOX.md L36
  • [P2] (target repo unclear) run janitor agent on all projects — source: inbox(untriaged) — INBOX.md L48
  • [P2] premier-gunner: confirm speed unit (mph vs km/h); optional security/test eval backlog — source: premier-gunner — next steps

P3

  • [P3] recap-relay: fix AGENTS.md endpoint doc — POST /relay/analyze takes { prompt } and returns { result: { text } }, not "{ transcript } → topic sections JSON" — source: inbox(untriaged) — INBOX.md L42
  • [P3] standards: build cross-repo quality-gate standard + /harden (linters / pre-commit / CI) — ROADMAP item 1 — source: standards — ROADMAP
  • [P3] standards: non-git-folder sweep under ~/Projects (~13 folders) — source: standards — next steps
  • [P3] Per-repo deferred P3 tech-debt tails (rolled up — full lists in each ROADMAP): recap (request-size caps, invoice-ID hijack, container-as-root, repo hygiene), recap-relay (no rate limiting, container-as-root, dashboard XSS, version-file prune), spark-control (Qdrant auth, observability, README staleness, packaging placeholders), proof-of-work (CSP, CSRF, registry blockers), premier-gunner (CSRF, delete 404s), ten31-database (TLS verify off, 5.4k-line monolith, stale ABOUT.md)

Unprioritized — needs triage (no explicit priority signal in source)

  • matrix-bridge ROADMAP (Phase 4+): intent-routing brain (D8, local model), thread-based session continuity, Nextcloud/CalDAV output, E2EE (D9)
  • spark-control ROADMAP: echo cancellation, LLM referee for label-merge, second audio worker, dashboard local-path/fine-tuned model support, per-model vLLM flags, Qdrant auth + snapshots
  • ten31-signal-engine ROADMAP: Estimator rework H4, real resolver, claim-type weighting for §7.1, corpus expansion (BTC Sessions, River OCR), Start9 s9pk packaging
  • keysat ROADMAP: Zaprite dedup cache + declined-card hardening, registry-landing repurpose decision, Elastic License v2 vs LicenseRef-Keysat-1.0, KEYSAT_INTEGRATION re-test
  • recap ROADMAP larger plans: architecture-simplification, core-decoupling, per-tenant-subscriptions, self-serve-purchase (docs/ drafts)
  • standards ROADMAP: deterministic inbox surfacing via SessionStart hook (item 3, optional); thread inbox-check line into bootstrapping (item 4)

Not yet pushed down (inbox) — grouped by target

These exist nowhere but the inbox; /triage inside each repo routes them.

  • ten31-transcripts: [P1] mini-retrofit (L34); [P2] add Jitsi (L36)
  • keysat: [P2] design-contract cleanup (L44); [P2] spec-checker for registry listing (L52); [P2] adversarial new-user review (L51); [P2] website drift + GitHub-history + licensing-example review (L53); [P2] research version-retention question (L49)
  • ten31-database: [P2] reconcile AGENTS networking facts — ClearNet/StartTunnel, not LAN/Tailscale (L41); [P2] oversized package icon (L43); [P2] matrix-bridge fundraising-grid intake (L45); [P2] explorer admin-vs-all UI report (L46)
  • recap: [P2] SMTP daily digest (L37); [P2] mobile scroll-to-top bug (L40); [P2] Gemini 3.5 model selection (L54)
  • recap-relay: [P3] endpoint-doc wording fix (L42); [P2] Gemini 3.5 model selection (L55)
  • ten31-signal-engine: [P2] run full-eval on the folder (L47)
  • standards: [P2] Gitea API automation in /new-project (L35); [P2] keysat docs-reader subagent (L50)
  • unclear target (?): [P2] run janitor agent on all projects (L48)

Proposed new projects

The (new:…) inbox items — ideas awaiting the new-repo bootstrap (/new-project), not tasks in an existing repo.

  • new:embedded-links-reader [P2] — give the app an article/blog URL; it scrapes the author's embedded links, reads them, and summarizes them (L38)
  • new:portfolio-scraper [P2] — tracks portfolio companies (podcasts, tweets, founder appearances, news) and delivers a digest via email/another interface (L39)
  • new:personal-website [P2] — personal website on Start9 Pages, served on clearnet via StartTunnel; HTML site, Claude Design for styling, gather inspiration (L56)

Gaps

  • ten31-transcripts reader ambiguity. The Explore reader returned a macOS menu-bar call-recorder summary (dual-track capture → Spark Control). The inbox (L34) describes ten31-transcripts as a Swift app with no .claude/ dir and a queued P1 mini-retrofit. These may be the same app, or the reader may have surfaced an adjacent app's docs. The repo's authoritative state isn't fully confirmed from this run — re-read its own AGENTS.md before acting, and treat the mini-retrofit as the known truth.
  • ten31-transcripts has no .claude/ dir (per inbox L34) — so it does not yet carry the portable inbox-check line; its items only surface via this roundup and the inbox, not at its own session start.
  • No automated test suite: ten31-signal-engine explicitly flags this; spark-control has tests but several subsystems remain untested.
  • Inbox item with ? target (run janitor on all projects, L48) has no owning repo — needs a triage decision on where it lives.
  • Non-git folders under ~/Projects were not enumerated (the ~13-folder sweep is itself a standards ROADMAP item, deliberately out of scope here).
  • Stale-state / unverified risk: several "live" states depend on pending operator on-device checks — recap Daily Digest path (off-box, not smoke-tested), recap mobile-scroll fix (UNVERIFIED), proof-of-work mobile-Safari first-login (gated on error code), premier-gunner in-app password change (reverts on restart).