Skip to content

Content sprint 2026-08-20: YJIT/ZJIT de-fabrication refresh + RubyLLM x Rails cluster (R1, R4, R5) - #488

Merged
pftg merged 13 commits into
masterfrom
refresh-yjit-zjit-guide
Aug 20, 2026
Merged

Content sprint 2026-08-20: YJIT/ZJIT de-fabrication refresh + RubyLLM x Rails cluster (R1, R4, R5)#488
pftg merged 13 commits into
masterfrom
refresh-yjit-zjit-guide

Conversation

@pftg

@pftg pftg commented Aug 20, 2026

Copy link
Copy Markdown
Member

What shipped (4 posts, one day)

# Post Type Verdict chain
1 /blog/ruby-3-4-yjit-performance-guide/ In-place refresh + de-fabrication tech NEEDS-FIXES→fixed · slop PASS 8/10 · editor minor · cold-eyes PUBLISH-READY
2 /blog/rubyllm-rails-getting-started/ New (20.09 §12 R1) tech NEEDS-FIXES→fixed · slop PASS 8/10 · editor minor · cold-eyes PUBLISH-READY
3 /blog/fibers-async-ruby-llm-streaming-rails/ New (§12 R4) tech NEEDS-FIXES→fixed · slop PASS 8/10 · editor minor ("strongest") · cold-eyes PUBLISH-READY
4 /blog/multi-agent-llm-rails-rubyllm/ New (§12 R5, production war story) tech NEEDS-FIXES→fixed · slop PASS 8.5/10 · editor minor · cold-eyes PUBLISH-READY

Per-commit

  • test: macos baseline catch-up - careers/_overview, nav/use_cases, mobile/about_us still showed pre-purge copy (incl. the banned "32 clients" line) from before PRs Sprint C1 + C2.1 + C0.1: kill criterion, de-fabricated claims, idea-first drafts, blog exhibits #477/Rescue page: stack-agnostic intake + restore the founder's actual words #479/C3.1 table overflow + purge of fabricated testimonials on four live pages #481; diffs inspected image-by-image; Linux legs were updated by those PRs' CI.
  • YJIT refresh - premise audit redirected the 20.09 refresh slot: the plan's named candidate (Kamal/Traefik) had decayed to 4 impressions/pos 20, while the YJIT post holds 6,310 impressions at pos 9.5 AND carried fabricated Shopify metrics ($2.4M), fake GitHub results, two invented JT client case studies, and a fictional Ruby roadmap. Rewritten as the Ruby 4.0 YJIT vs ZJIT guide; every claim cites a primary source. Flat file bundle-ized (URL unchanged).
  • R1 + R4 - RubyLLM basics (API verified against rubyllm.com + gem source, v1.16.0) and the fibers-vs-threads arithmetic for LLM streaming. Notable catches fixed: an author-stance fabrication; ActionController::Live spawns its pool thread under Falcon too (post now says so honestly).
  • R5 + cluster polish - our production multi-agent pipeline (8 agents / 21-line base class / 16-line loop) with the commit-documented Aug 16 pool-starvation outage. Reviewer caught that temperature {} blocks are a silent no-op in ruby_llm 1.16 (only model takes a block) - sketch corrected. Cluster-wide tell sweep (shared intensifier, metaphor family, verbatim phrases).
  • Plan/OKF - 20.09 updated (refresh executed + new §12 RubyLLM queue R1-R6 from Paul's directive); OKF synced (fabrication-reservoir lesson, cluster-tell sweep, visuals FLOOR 78→72).

Gates

  • bin/hugo-build green on every commit (all validators + banned-strings ratchet)
  • bin/qtest --changed green after the baseline catch-up
  • ruby bin/check-post-visuals at floor (72), tightened from 78
  • Mermaid pre-rendered per post (zero runtime mermaid); all labels clear the 9px/390px mobile floor
  • Chrome DevTools: zero console errors, zero 404s per post; desktop + mobile scroll gate walked
  • Covers: 6-slot template, 2400x1260, visually reviewed

Notes for Paul

  • Side-finding for elital: app/agents/agent_base.rb uses temperature { ... } - per ruby_llm 1.16 source that block is silently ignored, so CandidateScorer's 0.0 likely never reaches the provider. Worth a 5-minute check + fix in that repo.
  • Research notebook "JT blog topic trends 2026-08" now holds 51 imported sources for future posts.

🤖 Generated with Claude Code

pftg and others added 5 commits August 20, 2026 15:49
careers/_overview, nav/use_cases, and mobile/about_us baselines still
showed pre-purge copy (World-Class Training, the 32-clients ratings
line, old mission text) from before the de-cliche/testimonial PRs
(#477/#479/#481). Current renders match master's intentional content;
diffs inspected image-by-image before accepting. Linux legs were
updated by those PRs' CI runs - only the host-only macos set was stale.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ications purged

August refresh slot (20.09 §5). Premise audit redirected the slot: the
plan's named candidate (Kamal/Traefik SSL post) had decayed to 4
impressions/pos 20, while ruby-3-4-yjit-performance-guide holds 6,310
impressions at pos 9.5 AND carried fabricated claims - invented Shopify
internal metrics ($2.4M savings), fabricated GitHub results, two fake
JetThoughts client case studies, and a fictional Ruby 3.5/3.6/4.0
roadmap. Full in-place rewrite: every claim now cites a primary source
(ruby-lang 4.0 notes, railsatscale ZJIT launch, speed.ruby-lang.org,
Rails 7.2 announcement, official YJIT docs).

Review loop: 3-critic panel + cold-eyes gate. critic-tech verdict
NEEDS-FIXES -> fixed: the initializer claim was mechanically false
(initializers run for rake tasks too - rewritten as the explicit trap),
ISEQs not methods, 4.1 goal is surpass-not-parity, hedged the prebuilt-
binary claim. critic-slop: PASS 8/10, SEO clean (title 40, desc 152,
5 internal links verified, 6 citations). critic-editor: minor edits,
all applied; diagram redrawn around the CPU-vs-I/O decision. cold-eyes:
PUBLISH-READY after fixing desc flag-count and a fabricated reader
quote. Moved flat file content/blog/2025/*.md into a page bundle (slug
unchanged, URL stable) for local cover + pre-rendered mermaid (18px
labels = 12.7px at 390w, clears the 9px floor). New stitch cover.
check-post-visuals FLOOR ratcheted 78->72 per the script's own report.
Gates: hugo-build green, qtest green, zero console errors/404s.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… posts (20.09 §12 R1, R4)

Two new Rails-technical posts from the RubyLLM x Rails queue Paul
directed today. R1 owns 'rubyllm rails' (chat/persistence/tools/
streaming with the real 1.16.0 API, every claim verified against
rubyllm.com + gem source). R4 owns the fibers-vs-threads arithmetic for
LLM streaming (Puma 3-thread default vs 30-60s SSE streams, Falcon/
async, semaphore rate limiting, honest ActionController::Live thread
caveat) and bridges the falcon cluster.

Review loop per post: 3-critic panel + cold-eyes. critic-tech caught 2
majors, both fixed: an unsourced author-stance attribution in R1
(contradicted by the project's own README tagline) and R4's overreach
that Live streams cost only a fiber under Falcon (Live spawns its pool
thread unconditionally - now stated honestly). critic-slop: PASS 8/10
both; cross-post exhibit dedup applied (job snippet lives in R1, R4
links it). critic-editor: minor edits, applied. cold-eyes: PUBLISH-
READY both (one universal-claim fix in R1). Covers from the 6-slot
template; mermaid pre-rendered (R1 272px, R4 675px wide - labels clear
the 9px mobile floor); scroll gate walked desktop+mobile; hugo-build
green; check-post-visuals at floor.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… cluster polish

R5 is the practitioner centerpiece of today's cluster: our production
talent-matching pipeline - eight agents on a 21-line RubyLLM::Agent
base class, a 16-line reduce Workflow, reflector-driven stop loop,
bounded-integer scoring summed in Ruby, and the commit-documented
Aug 16 outage (with_connection held across multi-second LLM calls under
fiber fan-out starved a pool of 10 against 15 fibers). All architecture
facts sourced from the real codebase; gem API cross-checked against
ruby_llm 1.16.

Review loop: critic-tech caught a real BLOCKER - temperature {} blocks
are a silent no-op in ruby_llm 1.16 (only model accepts a block); the
published sketch now declares temperature statically. (Side finding:
the production app's own temperature block is likely a no-op too -
flagged to Paul.) Also fixed: the 'gem rejects out-of-range integers'
claim (no client-side validation exists; the fetch/clamp is the real
enforcement). critic-slop: PASS 8.5/10, the strongest of the four.
critic-editor: minor edits, applied. cold-eyes: PUBLISH-READY after one
universal-claim trim. Cluster-wide polish across all four of today's
posts: 'genuinely' intensifier sweep, 'earns' metaphor thinned,
verbatim phrase dedup, cover alt fixed to describe the actual cover.
Gates: hugo-build green, visuals ratchet at floor, scroll gate walked.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ck gotcha

Four posts in one batch exposed cluster-level fingerprints per-post
review can't see (shared intensifier, shared metaphor family, verbatim
phrase reuse, meta-narration templates, cloned CTA tails) - added the
cross-batch sweep to voice-rules. Logged the ruby_llm 1.16 finding that
only model accepts a block (temperature {} is a silent no-op).
Validated: okf:validate --strict conformant.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: fc0cfcba-d5cb-49d3-b4d3-5ed9aa3fe221


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

pftg and others added 8 commits August 20, 2026 16:51
… verdict, R2 caution

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… from Paul's directive

Both grounded in first-hand production material surfaced today
(agent_logs audit trail, VCR matching trap, invariant-test pattern).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…refresh

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… append conflict, both entries kept)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…Rails 7)

YJIT post now opens its default-check section with 'Every Rails 8 app
has YJIT on out of the box' (7.2 kept only as the cited change-point);
fibers post opens the thread arithmetic with the Rails 8.1 default
('3 threads per worker'), verified against the current rails/rails puma
template (threads ENV.fetch RAILS_MAX_THREADS, 3). R1/R5 were already
version-neutral.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…s kept)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Encodes the three practices the 2026-08-20 4-post batch validated on top
of the per-post pipeline: live-GSC premise audit before topic pick,
real-code mining for first-hand material (with sanitization rule),
and the same-day-cluster sweep after the last post. Paste-ready prompt
so future sprints don't reconstruct the orchestration from memory.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Outer loop (orchestrator): groomed-queue picks with live-GSC premise
audit, WIP=1 dispatch of one coordinator per post, cluster sweep with
its own 4-eyes pass, plan/OKF sync, one PR, CI watch with flake-rerun.
Inner loop (coordinator): writer packet -> resumable 3-critic panel ->
cold-eyes 9-check gate -> ship gates -> commit, bounded at 2 fix rounds
per gate with SHIPPED/RESCOPE/BLOCKED reporting. blog-pipeline.md batch
section now names the agent form ('Spawn blog-batch-orchestrator, N=4')
with the paste prompt as the registry-free fallback.

4-eyes: agent-def reviewer verdict FIX-FIRST -> all 5 findings applied
(worktree-or-nothing for any second committing coordinator, critic pass
on the sweep diff before the polish commit, dev-server port added to
the dispatch contract, founder-persona note, bounded-iteration cap).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@pftg

pftg commented Aug 20, 2026

Copy link
Copy Markdown
Member Author

Merging on Paul's authorization ("you merge and make decision", 2026-08-20). Decision disposition on the two flagged items:

  1. R5 disclosure (pool-of-10 / 15-fibers numbers + 'talent-matching product' framing): KEEP AS PUBLISHED. Rationale: the concurrency-vs-pool ratio is the lesson and the numbers are generic infrastructure config, not scoring IP; everything the recon marked hard-sensitive (prompt text, model IDs, subscore calibration, internal ticket IDs) is already absent. Reversible with a 2-line edit if reconsidered.
  2. elital temperature-block no-op bug: handed off, not fixed here - belongs to the elital repo. Action item: replace temperature { ... } in AgentBase with static declarations (ruby_llm 1.16 ignores the block silently).

Unit Tests 'failure' on the final head was the known actions/checkout timeout flake (job cancelled in checkout, never reached tests); re-run green across all five checks.

@pftg
pftg merged commit f05c301 into master Aug 20, 2026
9 of 10 checks passed
@pftg
pftg deleted the refresh-yjit-zjit-guide branch August 20, 2026 16:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant