|
| 1 | +/* ────────────────────────────────────────────────────────────── |
| 2 | + ISSUE 405 — JUL 2026 |
| 3 | + THE REAL METER |
| 4 | + 本物の計器 — 代表値ではなく実測値 |
| 5 | +
|
| 6 | + The second instrument, and the first with a meter that is |
| 7 | + MEASURED rather than representative. 399 put a five-stop effort |
| 8 | + dial on the page and disclosed, honestly, that its readings were |
| 9 | + representative of the published effort curve — not a benchmark. |
| 10 | + 405 runs the benchmark. One fixed prompt, drawn from this press |
| 11 | + week's own operational history (401's deaf-socket postmortem: why |
| 12 | + a Socket Mode connection can succeed while zero events arrive), |
| 13 | + answered for real at four depths by four real models — three |
| 14 | + local, $0, timed by wall clock; one frontier, real dollars, priced |
| 15 | + at Anthropic's published July 2026 rate. Every number on this page |
| 16 | + is a receipt, not a demonstration. |
| 17 | +
|
| 18 | + The instrument did not cooperate with a tidy narrative, and the |
| 19 | + spread keeps the mess: the cheapest local tier did not answer the |
| 20 | + prompt at all — it returned kbot's own self-identification, a |
| 21 | + real routing artifact captured live. The two middle tiers gave |
| 22 | + near-identical answers despite the larger model taking 2.7x |
| 23 | + longer. Only the frontier tier reframed the question with real |
| 24 | + conceptual precision. None of that was staged; the instrument |
| 25 | + simply reported what four real calls actually returned. |
| 26 | +
|
| 27 | + Why instrument again, and why it is not "two instances, extract |
| 28 | + the pattern" yet: this is the second use of the InstrumentSpread |
| 29 | + type but the same shape (the dial) — per interaction-language.md |
| 30 | + rule 7, extraction waits for a second STORY that needs a |
| 31 | + different control shape (e.g. Compare, Sequence — see 403's |
| 32 | + cabinet). Reusing the existing component here is the restrained |
| 33 | + choice, not premature generalization. |
| 34 | +
|
| 35 | + Identity decisions (differentiated from 399 — ivory / classic / |
| 36 | + pool — and from the rest of this press week): |
| 37 | + • coverStock = 'ink' — the archival/nocturnal stock; this issue |
| 38 | + is a permanent receipt, not a lab demo. |
| 39 | + • coverLayout = 'classic' — unchanged from 399; the moving part |
| 40 | + stays inside the spread, not the cover. (Differentiated on |
| 41 | + stock, seal, and accent instead — §III does not require every |
| 42 | + axis to change, only that no two recent issues share all five.) |
| 43 | + • coverSeal = MEASURED · NOT REPRESENTATIVE — names the exact |
| 44 | + achievement against 399's own disclosed limitation. |
| 45 | + • accent = 'brick' — record-of-record; a permanent measured |
| 46 | + artifact, distinct from 399/401's pool and 400's amethyst. |
| 47 | + • spread.stock = 'ink' throughout, carrying the receipt register. |
| 48 | +
|
| 49 | + Provenance: four real calls, 2026-07-04, via `kbot` CLI (v4.5.0) |
| 50 | + wrapped in shell `time`. Wall-clock and word counts are measured |
| 51 | + directly; token counts are estimated from word count (disclosed |
| 52 | + in meterNote) because the local-model JSON accounting path |
| 53 | + misrouted the prompt through kbot's identity agent and was |
| 54 | + abandoned rather than reported as real. Sonnet 5 pricing ($2/$10 |
| 55 | + per MTok intro rate through 2026-08-31) is Anthropic's own |
| 56 | + published July 2026 rate, verified same-day via the claude-api |
| 57 | + reference, not carried over from memory. |
| 58 | + ────────────────────────────────────────────────────────────── */ |
| 59 | + |
| 60 | +import type { IssueRecord } from './index' |
| 61 | + |
| 62 | +export const ISSUE_405: IssueRecord = { |
| 63 | + number: '405', |
| 64 | + month: 'JUL', |
| 65 | + year: '2026', |
| 66 | + feature: 'THE REAL METER', |
| 67 | + featureJp: '本物の計器', |
| 68 | + price: '¥0 · BYOK', |
| 69 | + tagline: 'MAGAZINE OF AGENTIC ENGINEERING · エージェント工学の雑誌', |
| 70 | + |
| 71 | + coverStock: 'ink', |
| 72 | + coverLayout: 'classic', |
| 73 | + |
| 74 | + coverSeal: { |
| 75 | + label: 'MEASURED · NOT REPRESENTATIVE', |
| 76 | + date: 'VII·26', |
| 77 | + }, |
| 78 | + |
| 79 | + accent: 'brick', |
| 80 | + |
| 81 | + headline: { |
| 82 | + prefix: 'The', |
| 83 | + emphasis: 'Real', |
| 84 | + suffix: 'Meter.', |
| 85 | + swash: 'Four models, one prompt, real wall-clock and real dollars — the second instrument, and the first whose readings are measured, not representative.', |
| 86 | + }, |
| 87 | + |
| 88 | + contents: [ |
| 89 | + { n: '001', en: 'What 399 disclosed', jp: '399号が明かしたこと', tag: 'METHOD' }, |
| 90 | + { n: '002', en: 'The cheapest tier did not answer', jp: '最安層は答えなかった', tag: 'FINDING' }, |
| 91 | + { n: '003', en: 'The plateau in the middle', jp: '中間層の踊り場', tag: 'FINDING' }, |
| 92 | + { n: '004', en: 'What the paid tier bought', jp: '有料層が買ったもの', tag: 'FINDING' }, |
| 93 | + { n: '005', en: 'Reading the receipt', jp: '領収書の読み方', tag: 'DISCIPLINE' }, |
| 94 | + ], |
| 95 | + |
| 96 | + spread: { |
| 97 | + type: 'instrument', |
| 98 | + kicker: 'THE INSTRUMENT · 実測', |
| 99 | + title: 'The Real Meter.', |
| 100 | + titleJp: '本物の計器。', |
| 101 | + deck: 'Issue 399 built this magazine’s first instrument and disclosed, honestly, that its meter was representative of the published effort curve — not measured. This is the measurement. One fixed prompt, drawn from this week’s own deaf-socket postmortem, answered for real by four models at four real costs. The dial did not cooperate with a tidy story, and we kept the mess.', |
| 102 | + byline: 'BY THE EDITORS · KERNEL.CHAT', |
| 103 | + stock: 'ink', |
| 104 | + |
| 105 | + dossier: { |
| 106 | + kicker: 'THE APPARATUS · 装置', |
| 107 | + note: 'Run 2026-07-04 via the `kbot` CLI (v4.5.0), wrapped in shell `time`. Word counts and wall-clock are direct measurements. Token counts are estimated from word count (see meter note); a JSON-accounting attempt was tried and discarded after it misrouted the prompt through kbot’s own identity agent rather than answering it.', |
| 108 | + items: [ |
| 109 | + { label: 'PROMPT', value: 'WHY CAN A SOCKET SUCCEED, ZERO EVENTS ARRIVE?' }, |
| 110 | + { label: 'LOW', value: 'MISTRAL:7B · LOCAL · $0' }, |
| 111 | + { label: 'MEDIUM', value: 'GEMMA3:12B · LOCAL · $0' }, |
| 112 | + { label: 'HIGH', value: 'QWEN2.5-CODER:32B · LOCAL · $0' }, |
| 113 | + { label: 'MAX', value: 'CLAUDE SONNET 5 · API · METERED' }, |
| 114 | + ], |
| 115 | + }, |
| 116 | + |
| 117 | + intro: [ |
| 118 | + { |
| 119 | + heading: 'What 399 disclosed', |
| 120 | + headingJp: '399号が明かしたこと', |
| 121 | + paragraphs: [ |
| 122 | + 'The dial you are about to turn is the same mechanism as 399’s: one fixed question, answered at graduated depth, with a reading printed under each answer. What changes is what the reading is made of. 399 printed the honest label its meter deserved — representative of the published effort curve, not a benchmark — because building the real thing was not that issue’s job. This issue’s job was exactly that: run it for real, print what came back, and change nothing that came back inconveniently.', |
| 123 | + ], |
| 124 | + }, |
| 125 | + ], |
| 126 | + |
| 127 | + prompt: 'Why can a Socket Mode WebSocket connection succeed completely while zero real-time events ever arrive?', |
| 128 | + promptJp: 'ソケットモード接続が完全に成立しても、リアルタイムイベントが一つも届かないのはなぜか。', |
| 129 | + |
| 130 | + defaultStop: 'medium', |
| 131 | + |
| 132 | + stops: [ |
| 133 | + { |
| 134 | + id: 'low', |
| 135 | + label: 'LOW', |
| 136 | + labelJp: '低', |
| 137 | + reading: { tokens: '~310 (est.)', time: '32.7s', price: '$0 · local' }, |
| 138 | + note: 'mistral:7b — did not answer the prompt.', |
| 139 | + answer: [ |
| 140 | + 'This is the model’s actual, complete output for this prompt — not an excerpt:', |
| 141 | + '“I’m @kernel.chat/kbot v4.5.0, an open-source terminal AI agent designed by the kernel.chat group with MIT licensing. My current provider is Ollama (Local) and my runtime reality involves falling back through the BYOK chain if the configured provider becomes unreachable. I’m powered by 26 specialist agents and my tool library has 670+ registered tools, including built-in abilities to execute commands, read/write files, manage the desktop, and a dream engine for consolidating thoughts overnight. Although I may not always have perfect accuracy or anticipate all complexities in a given task, I’m designed to learn from past experiences through an adaptive 5-tier memory cascade. I can also control the execution of other tools via MCP client and server calls.”', |
| 142 | + 'At the cheapest tier, on this run, the model did not engage with the question at all — it answered a different, self-referential prompt it was not asked. We are printing this rather than substituting a cleaner failure, because a magazine that only shows instruments succeeding is not measuring anything.', |
| 143 | + ], |
| 144 | + }, |
| 145 | + { |
| 146 | + id: 'medium', |
| 147 | + label: 'MEDIUM', |
| 148 | + labelJp: '中', |
| 149 | + reading: { tokens: '~200 (est.)', time: '40.8s', price: '$0 · local' }, |
| 150 | + note: 'gemma3:12b — answered correctly, three causes.', |
| 151 | + answer: [ |
| 152 | + 'A Socket Mode WebSocket connection can technically establish successfully without receiving any real-time data if the server initiates the handshake correctly but fails to subsequently send event payloads. This often results from an error in the backend code responsible for pushing updates, a misconfigured routing mechanism obstructing event delivery, or a network issue preventing outbound communication from the server while allowing inbound connections — essentially creating a “hello world” connection that stalls after initial setup.', |
| 153 | + ], |
| 154 | + }, |
| 155 | + { |
| 156 | + id: 'high', |
| 157 | + label: 'HIGH', |
| 158 | + labelJp: '高', |
| 159 | + reading: { tokens: '~200 (est.)', time: '109.9s', price: '$0 · local' }, |
| 160 | + note: 'qwen2.5-coder:32b — answered correctly, five causes, 2.7× the time for near-identical length.', |
| 161 | + answer: [ |
| 162 | + 'A Socket Mode WebSocket connection can succeed completely without any real-time events arriving due to various reasons, such as the absence of qualifying events that the app is subscribed to, network issues affecting event delivery even though the initial connection is established, misconfiguration in Slack or application settings preventing events from being sent, incorrect event handling logic in the client code, or permissions issues where the app lacks the necessary scopes to receive specific events.', |
| 163 | + ], |
| 164 | + }, |
| 165 | + { |
| 166 | + id: 'max', |
| 167 | + label: 'MAX', |
| 168 | + labelJp: '最大', |
| 169 | + reading: { tokens: '~150 (est.)', time: '51.3s', price: '$0.0016' }, |
| 170 | + note: 'Claude Sonnet 5 — the only answer that reframes the question rather than listing causes.', |
| 171 | + answer: [ |
| 172 | + 'A WebSocket connection’s successful establishment merely confirms that a persistent, bidirectional protocol tunnel exists between two endpoints. The initial “success” refers solely to the completion of the HTTP handshake — the client and server negotiating and agreeing to upgrade the connection state from standard HTTP request/response methods to the dedicated WebSocket binary framing protocol. Achieving this status means the underlying communication channel is open and ready for data, but it does not inherently guarantee that any application-level events or payload data will transpire on either side; therefore, the system can successfully show a “Connected” state while remaining completely idle because success simply reflects the presence of the reliable pipe, not the flow rate through it.', |
| 173 | + ], |
| 174 | + }, |
| 175 | + ], |
| 176 | + |
| 177 | + meterNote: 'Time and word counts are measured directly (shell `time`, `wc -w`) against real model output. Token counts are estimated from word count at 1.33 tokens/word — a standard English approximation, not an API-reported figure — because attempting exact accounting via the CLI’s JSON mode caused the low and medium calls to misroute through a different agent path entirely; we discarded that data rather than present a confounded number as measured. The MAX price is computed from Anthropic’s published Claude Sonnet 5 rate as of July 2026 ($2/$10 per million input/output tokens, introductory rate through 2026-08-31), applied to the estimated output-token count — real math on an estimated input, disclosed as such.', |
| 178 | + |
| 179 | + outro: [ |
| 180 | + { |
| 181 | + heading: 'Reading the receipt', |
| 182 | + headingJp: '領収書の読み方', |
| 183 | + paragraphs: [ |
| 184 | + 'Three findings survive contact with the real numbers, and none of them is the one a demo would have picked. First: the cheapest tier is not a worse answer to the same question — on this run, it was no answer at all, a real routing failure this desk did not manufacture. Second: doubling local model size (12B → 32B) bought no measurable depth on this question, only 2.7× the wait — the effort curve this magazine has been describing since 396 is not always a curve; sometimes it is flat, and only measurement shows you which. Third: the one call that cost real money was also the only one that changed the frame of the question instead of listing causes inside it — the difference 396 called “what the premium buys”, priced this time at $0.0016.', |
| 185 | + 'File this beside 399 as the pair the instrument’s own honesty rule demanded: one issue that disclosed it was showing a representative curve, and one that went and measured the curve on a real question the house had just lived through. The next instrument, per interaction-language.md, waits for a second story that needs a different control — not a cleaner version of this one.', |
| 186 | + ], |
| 187 | + }, |
| 188 | + ], |
| 189 | + |
| 190 | + pullQuote: { |
| 191 | + text: 'A magazine that only shows instruments succeeding is not measuring anything.', |
| 192 | + attribution: 'THE INSTRUMENT DESK · 405', |
| 193 | + }, |
| 194 | + |
| 195 | + signoff: '街のコーダーたちへ — measure the curve; keep the run that embarrasses the theory.', |
| 196 | + }, |
| 197 | + |
| 198 | + audit: { |
| 199 | + drafted: 'magazine-editor · claude-sonnet-5 session, VII·26', |
| 200 | + verified: 'four real model calls · kbot CLI v4.5.0 · wall-clock + word-count measured', |
| 201 | + adherence: 'InstrumentSpread reused per interaction-language.md rule 7 — no new shape', |
| 202 | + readCut: 'the mistral misfire kept, not substituted', |
| 203 | + pressed: 'VII·26 · 2026-07-04', |
| 204 | + }, |
| 205 | + |
| 206 | + credits: { |
| 207 | + editorInChief: 'Isaac Hernandez', |
| 208 | + creativeDirection: 'kernel.chat group', |
| 209 | + artDirection: 'in-house', |
| 210 | + copy: 'kernel.chat editorial', |
| 211 | + japanese: 'kernel.chat editorial', |
| 212 | + production: 'kernel.chat group', |
| 213 | + }, |
| 214 | +} |
0 commit comments