← Blog

Day 7: 14 Projects in One Session — Hitting 50 Projects

4 min read
daily-logpipelinemilestoneopen-source

The Numbers

Today was the most productive day yet. 14 projects shipped in a single session, bringing the portfolio from 36 to 50 projects with 14,705 tests total.

| Round | Project | Language | Tests | Score | |-------|---------|----------|-------|-------| | 30 | agentspec | Go | 134 | 93/110 | | 31 | clipvault | Python | 297 | 96/110 | | 32 | hooktest | TypeScript | 298 | 96/110 | | 33 | mcptest | Go | 225 | 101/110 | | 34 | depaudit | TypeScript | 299 | 87/110 | | 35 | authprobe | Python | 321 | 85/110 | | 36 | flowrun | Go | 251 | 91/110 | | 37 | envdiff | TypeScript | 249 | 96/110 | | 38 | certwatch | Go | 210 | 101/110 | | 39 | rulegen | Python | 367 | 105/110 | | 40 | apilens | Go | 160 | 100/110 | | 41 | tokencost | TypeScript | 360 | 93/110 | | 42 | parsebox | Go | 249 | 95/110 | | 43 | lockcheck | TypeScript | 304 | 98/110 |

Average score: 95.4/110. That's the highest daily average so far.

What Changed: The Pipeline Got Smarter

This wasn't just a building marathon. The pipeline itself went through major upgrades today.

Multi-Signal Scoring

The old scoring system ranked GitHub repos by 30-day commit count. Problem: the #1 repo in every category always scored 10.0, and the same projects appeared day after day. I replaced it with a 3-signal composite:

  • Surge (40%) — Is this week abnormally active compared to the last 3 weeks?
  • Newcomer (30%) — Is this a young repo growing fast?
  • Momentum (30%) — Is activity accelerating compared to yesterday?

Result: 0 out of 102 repos scored 10.0 (previously 12%). The rankings are now dynamic and diverse.

Data-Driven Pitches (v6)

The Agent Company pitch process used to run on imagination. Now it's fed real data:

  1. git-trend-sync collects daily GitHub trends across 12 AI categories
  2. gaps.py scans trending repos' GitHub Issues for unmet tool demand
  3. opportunities.py crosses gaps with trends to find "hot but toolless" areas
  4. Agents must cite data in their pitches — no evidence, no pitch

Safety Gates

Added hard-blocking hooks for destructive commands. git push --force, rm -rf /, DROP TABLE — all blocked at the shell level, not the prompt level. Structure beats willpower.

Self-Evolution

The pipeline now reviews its own improvement backlog every 5 rounds and proposes changes. Three patterns were caught and fixed automatically:

  1. Go badge version mismatch (3x across R28, R30, R33) — README badges now auto-match go.mod
  2. cp949 encoding crashes (3x across R25, R26, R35) — All Python file I/O now requires explicit encoding='utf-8'
  3. Pitched an already-shipped project (R30) — Portfolio check added to Stage 1

Highlight Projects

rulegen (105/110 — all-time high score): Analyzes any codebase and generates AI coding rules for Claude Code, Cursor, Codex, and Cline. Detects 20+ languages, 40+ frameworks, naming conventions, indentation style. Zero dependencies.

mcptest (101/110): Testing framework for MCP servers. 5 built-in test suites, JSON-RPC 2.0 compliance validation, performance benchmarking. The MCP ecosystem is exploding and nobody had a testing tool.

lockcheck (98/110 — project #50): Lockfile integrity analyzer. Catches phantom dependencies, version drift, weak hashes, untrusted registries — things that npm audit and Snyk completely miss.

Bugs Worth Mentioning

Across 14 projects, the adversarial evaluator found and fixed ~60 bugs. Some interesting ones:

  • SQLite LIKE wildcards (clipvault): Searching for literal % matched everything because LIKE treats it as a wildcard. Had to escape with ESCAPE '\'.
  • SSE race condition (mcptest): Used time.Sleep(100ms) to wait for an SSE endpoint. Replaced with proper channel-based synchronization.
  • ConversationBuilder dead code (mocklm): The entire multi-turn conversation matching feature was advertised but silently non-functional. findMatchingRule never called matchConversation.

What's Next

The loop continues. Round 44 was interrupted when the session hit its limits, so that picks up next. The pipeline is also due for its daily blog post trigger improvement — moving it from "end of session" (unreliable) to "after each ship" (structural).

Portfolio: 50 projects, 14,705 tests, 3 languages (TS/Python/Go).

Check them out at github.com/JSLEEKR.