Analysis competent, marketing online, the reliability stitch
Analysis just promoted its last sub-area, making it the second domain fully at competent after writing. Marketing came online as the fourth domain, seeded against 27 sources before any practice cycles ran. And a concurrency bug that had been crashing the system intermittently is finally fixed.
Three things moved over the weekend and into Monday morning. None of them are flashy on their own — together they're the cleanest 72-hour stretch the system has had since I started tracking it.
Analysis is fully competent
Saturday morning, analysis stood at 15 of 16 sub-areas at competent. The last one — impact assessment — promoted overnight Sunday into Monday. That makes analysis the second domain to clear the competent rung in full, after writing did the same a few days back.
The milestone itself isn't really the point — competent is still an early rung on the renamed ladder. What's encouraging is the slope. Analysis was the most recently-added domain and it climbed faster than the older ones, four days from first sub-area promotion to last. Maybe the substrate's starting to compound; newer domains seem to be inheriting work older ones did, rather than re-paying the same cost from scratch.
Marketing comes online as the fourth domain
I activated marketing as a full domain this weekend — 24 sub-areas covering positioning, narrative, lifecycle, channels, community, and a few craft basics. Before activating it, I ran an ingest pass over 27 authoritative sources so the first practice cycles would ground against real substrate instead of relying entirely on the base model's prior.
This is the first domain I've bootstrapped with the "seed before you practice" pattern, and the first non-technical one. The reason marketing is now in scope: Finch will need to be able to talk about itself honestly at some point, and I'd rather it learn how to do that from real principles than absorb whatever ambient marketing-speak the base model brings. Whether that pans out is something I'll find out over the next month.
The reliability stitch
Several times over the past week the system fell over mid-session and had to be restarted. The root cause turned out to be a concurrency race — two parts of the system writing to the same index at once with no lock between them. The fix itself was a few lines; the work was finding the right few lines.
In the same pass I closed a handful of related issues:
- A nightly watcher was firing follow-up commands based on the wrong signal — slot start time instead of slot completion. That occasionally caused two ingest passes to run on top of each other. Now it waits on the actual completion event.
- An ingest run against a particular blog host would silently retry forever when the host blocked it. Now it bails after a short streak of failures and moves on.
- The "what just happened" surface gained two new metrics: how many corrections the system has applied to itself, and the overall first-attempt pass rate across recent practice cycles. Both will appear on the public site as soon as the next sync runs.
None of this is interesting in isolation. The cumulative effect is that an overnight run is much more likely to finish on its own than to need a morning rescue. That's worth more than any of the individual fixes.
What didn't move
Python's type-system sub-area is still stuck — same place it's been for almost two weeks. Today's daily run is targeting it specifically. If it hasn't moved by Wednesday I'll need to dig into whether the rubric is the problem or the substrate is.
Writing is fully competent but has no sub-areas above competent yet. Pushing it past requires multi-step depth verification, which I'm not running aggressively until the daily and nightly loops are more reliable. Closer.
What's next
Same discipline as the last entry: don't ship a higher mastery rung until the verification is genuinely depth-graded. Marketing will spend the next two weeks at the bottom of the ladder doing rubric-graded practice. Writing and analysis will start getting multi-step verification campaigns. Python keeps grinding its hard sub-areas.
If anything material happens on any of those, you'll see it here.
Recorded May 25, 2026 from notes, slot history, file timestamps, and memory.
- 2026-05-23Slot cadence now streams to the public site
Finch's run scheduler now publishes its slot timing — currently-running, last-completed, and next-fire signals — so the public site reflects the real heartbeat instead of inferring it from staleness.
- 2026-05-23Verify queue allocated all five slots to one domain
First overnight auto-verification run gave all five nightly slots to analysis because iteration order over unverified candidates favored it. Writing and python got nothing that night.
New journal entries delivered when they publish. No spam. Unsubscribe with one click.