<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Drydock build receipt — jq</title>
<style>
:root {
--paper: #ffffff; --ink: #14171a; --muted: #5b616a; --rule: #c9c9c3; --hard: #14171a;
--pass: #16663a; --fail: #a3170f; --warn: #8a5a00; --tint: #f7f7f4;
}
* { box-sizing: border-box; }
body {
margin: 0; padding: 1.75rem 1rem 3rem; background: var(--paper); color: var(--ink);
font: 13.5px/1.62 "Courier New", Courier, ui-monospace, SFMono-Regular, monospace;
}
main { max-width: 1080px; margin: 0 auto; }
a { color: var(--ink); text-underline-offset: 2px; }
a:hover { color: var(--pass); }
code, pre, .mono { font-family: inherit; }
code { background: var(--tint); padding: 0 .25em; }
pre {
background: var(--tint); border: 1px solid var(--rule); padding: .8rem .9rem;
overflow-x: auto; font-size: .84rem; margin: 0 0 1rem; white-space: pre-wrap; word-break: break-word;
}
/* ── letterhead ─────────────────────────────────────────────── */
.letterhead {
display: flex; align-items: flex-start; gap: 1.5rem; flex-wrap: wrap;
border-bottom: 3px double var(--hard); padding-bottom: 1rem; margin-bottom: 1rem;
}
.letterhead .logo { width: 190px; max-width: 42vw; height: auto; flex: 0 0 auto; }
.letterhead .wordmark { font-size: 1.7rem; font-weight: 700; letter-spacing: .12em; color: var(--pass); }
.ident { flex: 1 1 18rem; min-width: 15rem; }
.kind { text-transform: uppercase; letter-spacing: .22em; font-size: .72rem; color: var(--muted); }
h1 { font-size: 1.32rem; font-weight: 700; letter-spacing: .04em; margin: .3rem 0 .25rem; text-transform: uppercase; }
.docline { color: var(--muted); font-size: .82rem; word-break: break-all; }
/* ── rubber stamp ───────────────────────────────────────────── */
.stamp {
flex: 0 0 auto; align-self: center; text-align: center; padding: .45rem 1.1rem .55rem;
border: 3px solid currentColor; outline: 1px solid currentColor; outline-offset: 3px;
transform: rotate(-7deg); opacity: .88; letter-spacing: .16em; font-weight: 700;
text-transform: uppercase; line-height: 1.2;
}
.stamp .mark { display: block; font-size: 1.55rem; }
.stamp .sub { display: block; font-size: .62rem; letter-spacing: .18em; margin-top: .2rem; }
.stamp.pass { color: var(--pass); }
.stamp.fail { color: var(--fail); }
.stamp.warn { color: var(--warn); }
/* ── verdict and metadata ───────────────────────────────────── */
.verdict { margin: 0 0 1rem; font-size: .95rem; }
.verdict .state { font-weight: 700; letter-spacing: .08em; }
.verdict.pass .state { color: var(--pass); }
.verdict.fail .state { color: var(--fail); }
.verdict.warn .state { color: var(--warn); }
.verdict .detail { color: var(--ink); margin-top: .3rem; font-size: .86rem; }
dl.meta {
display: grid; grid-template-columns: repeat(auto-fit, minmax(23rem, 1fr));
gap: .15rem 2rem; margin: 0 0 1.25rem; border-top: 1px solid var(--rule);
border-bottom: 1px solid var(--rule); padding: .6rem 0; font-size: .82rem;
}
dl.meta > div { display: flex; gap: .6rem; }
dl.meta dt { color: var(--muted); text-transform: uppercase; letter-spacing: .08em; flex: 0 0 7rem; }
dl.meta dd { margin: 0; overflow-wrap: anywhere; }
/* ── tabs ───────────────────────────────────────────────────── */
nav.tabs { display: flex; flex-wrap: wrap; gap: .25rem; border-bottom: 1px solid var(--hard); margin-bottom: 1.25rem; }
nav.tabs button {
font: inherit; font-size: .8rem; text-transform: uppercase; letter-spacing: .12em;
background: var(--tint); color: var(--muted); cursor: pointer; padding: .4rem 1rem;
border: 1px solid var(--rule); border-bottom: none; margin-bottom: -1px;
}
nav.tabs button[aria-selected="true"] {
background: var(--paper); color: var(--ink); font-weight: 700;
border-color: var(--hard); border-bottom: 1px solid var(--paper);
}
.panel { display: none; }
.panel.active { display: block; }
h2 { font-size: .9rem; margin: 1.75rem 0 .4rem; text-transform: uppercase; letter-spacing: .12em; }
.panel > h2:first-child { margin-top: 0; }
p.note { color: var(--muted); margin: .2rem 0 .8rem; font-size: .82rem; }
/* ── tables ─────────────────────────────────────────────────── */
.scroll { overflow-x: auto; border: 1px solid var(--rule); }
table { border-collapse: collapse; width: 100%; font-size: .82rem; }
th, td { text-align: left; padding: .35rem .6rem; border-bottom: 1px solid var(--rule); vertical-align: top; }
th { font-weight: 700; font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; white-space: nowrap; background: var(--tint); border-bottom: 1px solid var(--hard); }
tbody tr:last-child td { border-bottom: none; }
td.num { text-align: right; white-space: nowrap; }
td.hash { font-size: .7rem; color: var(--muted); word-break: break-all; }
td.dash { color: var(--muted); }
td.nowrap { white-space: nowrap; }
table.tree td.name { padding-left: calc(.6rem + var(--d) * 1.3rem); white-space: nowrap; }
table.tree th:nth-child(2) { text-align: right; }
table.tree td.name strong { font-weight: 700; }
.tag { display: inline-block; padding: 0 .4rem; font-size: .72rem; font-weight: 700; letter-spacing: .06em; border: 1px solid currentColor; box-shadow: 0 0 0 1px var(--paper) inset; }
.tag.pass { color: var(--pass); }
.tag.fail { color: var(--fail); }
.tag.degraded { color: var(--warn); }
.tag.raw { color: var(--muted); font-weight: 400; }
.tag.unknown { color: var(--warn); }
.tag.pass .failure-history { color: var(--fail); }
.tag.pass .failure-history .rerun { color: var(--pass); }
/* ── receipt ────────────────────────────────────────────────── */
.receipt { border: 1px solid var(--hard); margin: 0 0 1.25rem; }
.receipt > .caption {
display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap;
background: var(--hard); color: var(--paper); padding: .35rem .6rem;
font-size: .74rem; text-transform: uppercase; letter-spacing: .18em; font-weight: 700;
}
.receipt > .caption .tally { letter-spacing: .1em; }
.receipt .scroll { border: none; }
.receipt table td:first-child { white-space: nowrap; font-weight: 700; }
.receipt tbody tr.fail td:first-child { color: var(--fail); }
.receipt tbody tr.unknown td:first-child { color: var(--warn); }
.receipt td.detail { color: var(--muted); }
/* ── guided path and limits ─────────────────────────────────── */
ol.steps { margin: 0 0 1.25rem; padding-left: 1.5rem; font-size: .84rem; }
ol.steps li { margin: .3rem 0; }
ol.steps li .what { display: block; color: var(--muted); font-size: .8rem; }
ul.limits { margin: 0 0 1.25rem; padding-left: 1.3rem; font-size: .82rem; color: var(--muted); }
ul.limits li { margin: .2rem 0; }
footer { margin-top: 2.5rem; padding-top: .75rem; border-top: 3px double var(--hard); color: var(--muted); font-size: .78rem; }
/* ── artifact viewer ────────────────────────────────────────── */
.fileheader { border-bottom: 3px double var(--hard); padding-bottom: .7rem; margin-bottom: 1.25rem; }
.fileheader h1 { font-size: 1.05rem; text-transform: none; letter-spacing: 0; word-break: break-all; }
.filenav { display: flex; gap: 1.2rem; font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; }
.doc > :first-child { margin-top: 0; }
.doc h1, .doc h2, .doc h3, .doc h4, .doc h5, .doc h6 {
font-size: .95rem; margin: 1.6rem 0 .5rem; text-transform: uppercase; letter-spacing: .1em;
}
.doc h1 { font-size: 1.1rem; }
.doc h3, .doc h4, .doc h5, .doc h6 { text-transform: none; letter-spacing: .04em; color: var(--muted); }
.doc p { margin: 0 0 .9rem; }
.doc ul, .doc ol { margin: 0 0 .9rem; padding-left: 1.6rem; }
.doc li { margin: .15rem 0; }
.doc blockquote { margin: 0 0 .9rem; padding: .1rem 0 .1rem .9rem; border-left: 3px solid var(--rule); color: var(--muted); }
.doc hr { border: none; border-top: 1px solid var(--rule); margin: 1.4rem 0; }
.doc table { margin-bottom: 0; }
.doc .scroll { margin-bottom: .9rem; }
.doc del { color: var(--muted); }
/* ── QuarterDeck boards ─────────────────────────────────────── */
/* The Chair's own renderers emit these class names. They are reproduced here in the
receipt's palette so a Manifest or scorecard reads the same on paper as on the Chair. */
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr)); gap: .5rem; margin: 0 0 1.25rem; }
.stat { display: block; border: 1px solid var(--rule); background: var(--tint); padding: .55rem .8rem; color: inherit; text-decoration: none; }
.stat-value { font-size: 1.45rem; font-weight: 700; line-height: 1; }
.stat-label { color: var(--muted); font-size: .68rem; letter-spacing: .1em; margin-top: .35rem; text-transform: uppercase; }
.story-list { display: grid; gap: .15rem; margin: 0 0 1.25rem; }
.story-feature { color: var(--muted); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; margin: 1rem 0 .2rem; border-bottom: 1px solid var(--rule); padding-bottom: .15rem; }
.story-list > .story-feature:first-child { margin-top: 0; }
.story-row { display: flex; align-items: baseline; gap: .6rem; font-size: .84rem; }
.story-name { flex: 1; overflow-wrap: anywhere; }
.badge { font-size: .68rem; font-weight: 700; letter-spacing: .08em; padding: 0 .4rem; text-transform: uppercase; white-space: nowrap; border: 1px solid currentColor; }
.badge-pending { color: var(--muted); }
.badge-review { color: var(--warn); }
.badge-verified { color: var(--pass); }
.badge-failed { color: var(--fail); }
.question-status { font-size: .86rem; margin: 0 0 .9rem; font-weight: 700; }
.empty { color: var(--muted); font-style: italic; font-size: .84rem; }
.story-breakdown { border: 1px solid var(--rule); padding: .5rem .8rem; margin: 0 0 1.25rem; font-size: .82rem; }
.story-breakdown-label { color: var(--muted); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; margin-bottom: .3rem; }
.story-breakdown-row { display: flex; gap: .6rem; }
.story-breakdown-name { flex: 1; }
.story-breakdown-count { font-weight: 700; }
@media print {
body { padding: 0; }
nav.tabs { display: none; }
.panel { display: block; page-break-inside: avoid; }
}
</style>
</head>
<body>
<main>
<header class="letterhead"><img class="logo" src="data:image/png;base64,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" alt="Drydock"><div class="ident"><div class="kind">Build Receipt</div><h1>jq</h1><div class="docline">Run 20260822.044628.383Z · Target jq · codex/gpt-5.6-luna · 2026-08-22 00:46:28 EDT — 2026-08-23 10:27:37 EDT</div></div><div class="stamp pass"><span class="mark">Accepted</span><span class="sub">Drydock</span></div></header>
<div class="tabgroup" data-tabgroup="receipt"><nav class="tabs"><button type="button" data-panel="overview" aria-selected="true">OVERVIEW</button><button type="button" data-panel="build" aria-selected="false">BUILD</button><button type="button" data-panel="plan" aria-selected="false">PLAN</button></nav><section class="panel active" id="panel-overview"><div class="verdict pass"><span class="state">jq: SCORE RELEASE</span><div class="detail">2026-08-23 08:33:02 EDT</div></div>
<h2>Workflow</h2><p class="note">Every lifecycle state, in order. States not held in <code>PROJECT_STATUS.jsonl</code> are marked <em>not established</em>; they are not failures.</p><div class="scroll"><table><thead><tr><th>State</th><th>Result</th><th>When</th><th>Command</th><th>Detail</th></tr></thead><tbody><tr><td>INITIALIZED</td><td><span class="tag pass">PASS</span></td><td class="nowrap">2026-08-22 00:46:29 EDT</td><td><code>drydock init jq</code></td><td class="detail"></td></tr><tr><td>IMPORTED</td><td><span class="tag pass">PASS</span></td><td class="nowrap">2026-08-22 00:46:33 EDT</td><td><code>drydock import jq</code></td><td class="detail"></td></tr><tr><td>ANALYZED</td><td><span class="tag pass">PASS</span></td><td class="nowrap">2026-08-22 00:48:42 EDT</td><td><code>drydock analyze jq</code></td><td class="detail"></td></tr><tr><td>PLAN CREATED</td><td><span class="tag pass">PASS</span></td><td class="nowrap">2026-08-22 15:46:51 EDT</td><td><code>drydock plan jq</code></td><td class="detail">attempt 5 of 5</td></tr><tr><td>PLAN REPAIRED</td><td><span class="tag raw">NOT ESTABLISHED</span></td><td class="nowrap">—</td><td>—</td><td class="detail">This lifecycle gate has not run.</td></tr><tr><td>BUILDING</td><td><span class="tag pass">PASS</span></td><td class="nowrap">2026-08-23 07:38:11 EDT</td><td><code>drydock build jq</code></td><td class="detail">attempt 4 of 4</td></tr><tr><td>BUILT</td><td><span class="tag pass">PASS</span></td><td class="nowrap">2026-08-23 08:16:58 EDT</td><td><code>drydock build jq</code></td><td class="detail"></td></tr><tr><td>SCORE AC</td><td><span class="tag fail">FAIL</span></td><td class="nowrap">2026-08-23 08:29:16 EDT</td><td><code>drydock score ac jq</code></td><td class="detail">3 of 57 failed</td></tr><tr><td>SCORE BUILD</td><td><span class="tag fail">FAIL</span></td><td class="nowrap">2026-08-23 08:29:18 EDT</td><td><code>drydock score build jq</code></td><td class="detail">1 block(s) unverified</td></tr><tr><td>SCORE RELEASE</td><td><span class="tag pass">PASS</span></td><td class="nowrap">2026-08-23 08:33:02 EDT</td><td><code>drydock score release jq</code></td><td class="detail"></td></tr></tbody></table></div>
<h2>Scores</h2><p class="note">The last recorded run and output for every score command.</p><div class="scroll"><table><thead><tr><th>Score</th><th>Last run</th><th>Result</th><th>Output</th></tr></thead><tbody><tr><td>spec</td><td class="nowrap">—</td><td><span class="tag raw">NOT RUN</span></td><td>SPECIFICATION_SCORECARD.md<br><span class="note">not written</span></td></tr><tr><td>ac</td><td class="nowrap">2026-08-23 08:20</td><td><span class="tag fail">FAIL</span></td><td>SOUNDINGS.md<br><span class="note">2026-08-23 08:29 · 57 criteria: 18 passed, 36 prepassed, 3 failed</span></td></tr><tr><td>build</td><td class="nowrap">2026-08-23 10:27</td><td><span class="tag pass">PASS</span></td><td>—<br><span class="note">console report; writes no file</span></td></tr><tr><td>release</td><td class="nowrap">2026-08-23 08:29</td><td><span class="tag pass">PASS</span></td><td>SCORECARD.md<br><span class="note">2026-08-23 08:33</span></td></tr><tr><td>report</td><td class="nowrap">—</td><td><span class="tag raw">NOT RUN</span></td><td>drydock_receipt/index.html<br><span class="note">not written</span></td></tr></tbody></table></div>
<dl class="meta"><div><dt>Verdict</dt><dd>PASSED</dd></div><div><dt>Target</dt><dd><code>jq</code></dd></div><div><dt>Run</dt><dd><code>20260822.044628.383Z</code></dd></div><div><dt>Drydock</dt><dd>0.2.0</dd></div><div><dt>Commands</dt><dd>51</dd></div><div><dt>Elapsed</dt><dd>39162.8s</dd></div><div><dt>LLM calls</dt><dd>187</dd></div><div><dt>Tokens</dt><dd>cached 140,953,088 · uncached 13,717,106 · output 813,760</dd></div><div><dt>Blocks</dt><dd>43 recorded</dd></div><div><dt>Criteria</dt><dd>18 passed / 3 failed / 0 unverified</dd></div><div><dt>Code</dt><dd><a class="mono" href="../../../../../../../../../jq/" target="_blank" rel="noopener">open code</a></dd></div><div><dt>Workspace</dt><dd><a class="mono" href="../" target="_blank" rel="noopener">open workspace</a></dd></div></dl>
<h2>RUN NOTES:</h2><ul class="limits"><li>One run is evidence of one run. It is not a benchmark.</li><li>It is not a security certification of the delivered code.</li></ul></section><section class="panel" id="panel-build"><div class="tabgroup" data-tabgroup="build"><nav class="tabs"><button type="button" data-panel="steps" aria-selected="true">Commands</button><button type="button" data-panel="error" aria-selected="false">Error</button><button type="button" data-panel="llm" aria-selected="false">LLM</button><button type="button" data-panel="verification" aria-selected="false">Verification</button><button type="button" data-panel="output" aria-selected="false">Output</button></nav><section class="panel active" id="panel-steps"><h2>Commands</h2><p class="note">Every command Drydock ran for this Target in this run, in order, with the model it drove and its captured transcript.</p><div class="scroll"><table><thead><tr><th>#</th><th>When</th><th>Command</th><th>Result</th><th>Elapsed</th><th>Transcript</th></tr></thead><tbody><tr><td class="num">1</td><td class="nowrap">2026-08-22 00:46:28 EDT</td><td><code>drydock init jq</code></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">2.1s</td><td><a class="mono" href="view/logs/20260822.044628.383Z_jq_init.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">2</td><td class="nowrap">2026-08-22 00:46:30 EDT</td><td><code>drydock import jq /mnt/c/Users/barlo/projects/drydock/uat/jq/runs/20260822.044627/sources --format markdown</code></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">3.6s</td><td><a class="mono" href="view/logs/20260822.044630.923Z_jq_import_codex.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">3</td><td class="nowrap">2026-08-22 00:46:34 EDT</td><td><code>drydock analyze jq</code> <span class="tag raw">codex/gpt-5.6-luna</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">129.5s</td><td><a class="mono" href="view/logs/20260822.044634.751Z_jq_analyze_codex.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">4</td><td class="nowrap">2026-08-22 00:48:44 EDT</td><td><code>drydock plan jq --override</code> <span class="tag raw">codex/gpt-5.6-luna</span> <span class="tag">rerun 1 of 4</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">1356.7s</td><td><a class="mono" href="view/logs/20260822.044844.592Z_jq_plan_codex.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">5</td><td class="nowrap">2026-08-22 01:11:21 EDT</td><td><code>drydock plan verify jq</code> <span class="tag">rerun 1 of 14</span></td><td><span class="tag pass" title="exit 1; later rerun exited 0"><span class="failure-history">FAIL<br><span class="rerun">RE-RUN</span></span></span></td><td class="num">1.8s</td><td class="dash">—</td></tr><tr><td class="num">6</td><td class="nowrap">2026-08-22 01:11:23 EDT</td><td><code>drydock plan repair jq</code> <span class="tag raw">codex/gpt-5.6-luna</span> <span class="tag">rerun 1 of 4</span></td><td><span class="tag fail" title="exit 1">FAIL<br>rc=1</span></td><td class="num">303.1s</td><td class="dash">—</td></tr><tr><td class="num">7</td><td class="nowrap">2026-08-22 01:16:26 EDT</td><td><code>drydock plan verify jq</code> <span class="tag">rerun 2 of 14</span></td><td><span class="tag pass" title="exit 1; later rerun exited 0"><span class="failure-history">FAIL<br><span class="rerun">RE-RUN</span></span></span></td><td class="num">2.7s</td><td class="dash">—</td></tr><tr><td class="num">8</td><td class="nowrap">2026-08-22 01:16:29 EDT</td><td><code>drydock build status jq</code> <span class="tag">rerun 1 of 17</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">1.0s</td><td><a class="mono" href="view/logs/20260822.051629.928Z_jq_build.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">9</td><td class="nowrap">2026-08-22 01:53:34 EDT</td><td><code>drydock plan verify jq</code> <span class="tag">rerun 3 of 14</span></td><td><span class="tag pass" title="exit 1; later rerun exited 0"><span class="failure-history">FAIL<br><span class="rerun">RE-RUN</span></span></span></td><td class="num">3.8s</td><td class="dash">—</td></tr><tr><td class="num">10</td><td class="nowrap">2026-08-22 01:53:39 EDT</td><td><code>drydock plan repair jq</code> <span class="tag raw">codex/gpt-5.6-luna</span> <span class="tag">rerun 2 of 4</span></td><td><span class="tag fail" title="exit 1">FAIL<br>rc=1</span></td><td class="num">99.3s</td><td class="dash">—</td></tr><tr><td class="num">11</td><td class="nowrap">2026-08-22 01:55:18 EDT</td><td><code>drydock plan verify jq</code> <span class="tag">rerun 4 of 14</span></td><td><span class="tag pass" title="exit 1; later rerun exited 0"><span class="failure-history">FAIL<br><span class="rerun">RE-RUN</span></span></span></td><td class="num">1.3s</td><td class="dash">—</td></tr><tr><td class="num">12</td><td class="nowrap">2026-08-22 01:55:20 EDT</td><td><code>drydock build status jq</code> <span class="tag">rerun 2 of 17</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">5.5s</td><td><a class="mono" href="view/logs/20260822.055520.613Z_jq_build.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">13</td><td class="nowrap">2026-08-22 01:57:10 EDT</td><td><code>drydock plan verify jq</code> <span class="tag">rerun 5 of 14</span></td><td><span class="tag pass" title="exit 1; later rerun exited 0"><span class="failure-history">FAIL<br><span class="rerun">RE-RUN</span></span></span></td><td class="num">2.2s</td><td class="dash">—</td></tr><tr><td class="num">14</td><td class="nowrap">2026-08-22 01:57:13 EDT</td><td><code>drydock plan repair jq</code> <span class="tag raw">codex/gpt-5.6-luna</span> <span class="tag">rerun 3 of 4</span></td><td><span class="tag fail" title="exit 1">FAIL<br>rc=1</span></td><td class="num">68.4s</td><td class="dash">—</td></tr><tr><td class="num">15</td><td class="nowrap">2026-08-22 01:58:21 EDT</td><td><code>drydock plan verify jq</code> <span class="tag">rerun 6 of 14</span></td><td><span class="tag pass" title="exit 1; later rerun exited 0"><span class="failure-history">FAIL<br><span class="rerun">RE-RUN</span></span></span></td><td class="num">4.2s</td><td class="dash">—</td></tr><tr><td class="num">16</td><td class="nowrap">2026-08-22 01:58:26 EDT</td><td><code>drydock build status jq</code> <span class="tag">rerun 3 of 17</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">0.4s</td><td><a class="mono" href="view/logs/20260822.055826.504Z_jq_build.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">17</td><td class="nowrap">2026-08-22 10:19:11 EDT</td><td><code>drydock plan verify jq</code> <span class="tag">rerun 7 of 14</span></td><td><span class="tag pass" title="exit 1; later rerun exited 0"><span class="failure-history">FAIL<br><span class="rerun">RE-RUN</span></span></span></td><td class="num">5.8s</td><td class="dash">—</td></tr><tr><td class="num">18</td><td class="nowrap">2026-08-22 10:19:18 EDT</td><td><code>drydock plan repair jq</code> <span class="tag raw">codex/gpt-5.6-luna</span> <span class="tag">rerun 4 of 4</span></td><td><span class="tag fail" title="exit 1">FAIL<br>rc=1</span></td><td class="num">72.5s</td><td class="dash">—</td></tr><tr><td class="num">19</td><td class="nowrap">2026-08-22 10:20:31 EDT</td><td><code>drydock plan verify jq</code> <span class="tag">rerun 8 of 14</span></td><td><span class="tag pass" title="exit 1; later rerun exited 0"><span class="failure-history">FAIL<br><span class="rerun">RE-RUN</span></span></span></td><td class="num">1.3s</td><td class="dash">—</td></tr><tr><td class="num">20</td><td class="nowrap">2026-08-22 10:20:32 EDT</td><td><code>drydock build status jq</code> <span class="tag">rerun 4 of 17</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">5.5s</td><td><a class="mono" href="view/logs/20260822.142032.769Z_jq_build.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">21</td><td class="nowrap">2026-08-22 11:31:44 EDT</td><td><code>drydock plan jq --override</code> <span class="tag raw">codex/gpt-5.6-luna</span> <span class="tag">rerun 2 of 4</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">1206.9s</td><td><a class="mono" href="view/logs/20260822.153144.789Z_jq_plan_codex.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">22</td><td class="nowrap">2026-08-22 11:51:52 EDT</td><td><code>drydock plan verify jq</code> <span class="tag">rerun 9 of 14</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">3.7s</td><td class="dash">—</td></tr><tr><td class="num">23</td><td class="nowrap">2026-08-22 11:51:56 EDT</td><td><code>drydock build status jq</code> <span class="tag">rerun 5 of 17</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">0.5s</td><td><a class="mono" href="view/logs/20260822.155156.068Z_jq_build.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">24</td><td class="nowrap">2026-08-22 13:40:47 EDT</td><td><code>drydock plan verify jq</code> <span class="tag">rerun 10 of 14</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">3.0s</td><td class="dash">—</td></tr><tr><td class="num">25</td><td class="nowrap">2026-08-22 13:40:50 EDT</td><td><code>drydock build status jq</code> <span class="tag raw">codex/gpt-5.6-luna</span> <span class="tag">rerun 6 of 17</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">3.7s</td><td><a class="mono" href="view/logs/20260822.174050.989Z_jq_build.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">26</td><td class="nowrap">2026-08-22 13:41:13 EDT</td><td><code>drydock plan jq --override</code> <span class="tag raw">codex/gpt-5.6-luna</span> <span class="tag">rerun 3 of 4</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">1505.9s</td><td><a class="mono" href="view/logs/20260822.174113.385Z_jq_plan_codex.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">27</td><td class="nowrap">2026-08-22 14:06:19 EDT</td><td><code>drydock plan verify jq</code> <span class="tag">rerun 11 of 14</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">1.7s</td><td class="dash">—</td></tr><tr><td class="num">28</td><td class="nowrap">2026-08-22 14:06:21 EDT</td><td><code>drydock build status jq</code> <span class="tag">rerun 7 of 17</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">0.5s</td><td><a class="mono" href="view/logs/20260822.180621.466Z_jq_build.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">29</td><td class="nowrap">2026-08-22 14:06:24 EDT</td><td><code>drydock build jq --override --repair-attempts 6</code> <span class="tag raw">codex/gpt-5.6-luna</span> <span class="tag">rerun 1 of 3</span></td><td><span class="tag pass" title="exit 1; later rerun exited 0"><span class="failure-history">FAIL<br><span class="rerun">RE-RUN</span></span></span></td><td class="num">637.0s</td><td><a class="mono" href="view/logs/20260822.180624.912Z_jq_build_codex.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">30</td><td class="nowrap">2026-08-22 14:17:02 EDT</td><td><code>drydock build status jq</code> <span class="tag">rerun 8 of 17</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">1.1s</td><td><a class="mono" href="view/logs/20260822.181702.245Z_jq_build.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">31</td><td class="nowrap">2026-08-22 15:33:19 EDT</td><td><code>drydock plan jq --override</code> <span class="tag raw">codex/gpt-5.6-luna</span> <span class="tag">rerun 4 of 4</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">818.3s</td><td><a class="mono" href="view/logs/20260822.193319.568Z_jq_plan_codex.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">32</td><td class="nowrap">2026-08-22 15:46:58 EDT</td><td><code>drydock plan verify jq</code> <span class="tag">rerun 12 of 14</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">5.8s</td><td class="dash">—</td></tr><tr><td class="num">33</td><td class="nowrap">2026-08-22 15:47:04 EDT</td><td><code>drydock build status jq</code> <span class="tag">rerun 9 of 17</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">1.1s</td><td><a class="mono" href="view/logs/20260822.194704.870Z_jq_build.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">34</td><td class="nowrap">2026-08-22 15:47:12 EDT</td><td><code>drydock build jq --override --repair-attempts 6</code> <span class="tag raw">codex/gpt-5.6-luna</span> <span class="tag">rerun 2 of 3</span></td><td><span class="tag pass" title="exit 1; later rerun exited 0"><span class="failure-history">FAIL<br><span class="rerun">RE-RUN</span></span></span></td><td class="num">5392.9s</td><td><a class="mono" href="view/logs/20260822.194712.269Z_jq_build_codex.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">35</td><td class="nowrap">2026-08-22 17:17:05 EDT</td><td><code>drydock build status jq</code> <span class="tag">rerun 10 of 17</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">1.6s</td><td><a class="mono" href="view/logs/20260822.211705.705Z_jq_build.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">36</td><td class="nowrap">2026-08-22 18:03:28 EDT</td><td><code>drydock plan verify jq</code> <span class="tag">rerun 13 of 14</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">1.7s</td><td class="dash">—</td></tr><tr><td class="num">37</td><td class="nowrap">2026-08-22 18:03:30 EDT</td><td><code>drydock build status jq</code> <span class="tag">rerun 11 of 17</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">2.9s</td><td><a class="mono" href="view/logs/20260822.220330.156Z_jq_build.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">38</td><td class="nowrap">2026-08-22 18:03:35 EDT</td><td><code>drydock build jq --override --repair-attempts 6</code> <span class="tag raw">codex/gpt-5.6-luna</span> <span class="tag">rerun 3 of 3</span></td><td><span class="tag pass" title="exit 1; later rerun exited 0"><span class="failure-history">FAIL<br><span class="rerun">RE-RUN</span></span></span></td><td class="num">4896.3s</td><td><a class="mono" href="view/logs/20260822.220335.776Z_jq_build_codex.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">39</td><td class="nowrap">2026-08-22 19:25:12 EDT</td><td><code>drydock build status jq</code> <span class="tag">rerun 12 of 17</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">1.0s</td><td><a class="mono" href="view/logs/20260822.232512.456Z_jq_build.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">40</td><td class="nowrap">2026-08-22 19:49:07 EDT</td><td><code>drydock plan verify jq</code> <span class="tag">rerun 14 of 14</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">1.4s</td><td class="dash">—</td></tr><tr><td class="num">41</td><td class="nowrap">2026-08-22 19:49:09 EDT</td><td><code>drydock build status jq</code> <span class="tag">rerun 13 of 17</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">3.8s</td><td><a class="mono" href="view/logs/20260822.234909.429Z_jq_build.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">42</td><td class="nowrap">2026-08-22 19:49:15 EDT</td><td><code>drydock build jq --override --repair-attempts 15</code> <span class="tag raw">codex/gpt-5.6-luna</span> <span class="tag">rerun 1 of 2</span></td><td><span class="tag pass" title="exit 1; later rerun exited 0"><span class="failure-history">FAIL<br><span class="rerun">RE-RUN</span></span></span></td><td class="num">19526.0s</td><td><a class="mono" href="view/logs/20260822.234915.446Z_jq_build_codex.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">43</td><td class="nowrap">2026-08-23 01:14:42 EDT</td><td><code>drydock build status jq</code> <span class="tag">rerun 14 of 17</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">1.6s</td><td><a class="mono" href="view/logs/20260823.051442.143Z_jq_build.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">44</td><td class="nowrap">2026-08-23 07:38:03 EDT</td><td><code>drydock build jq --override --repair-attempts 15</code> <span class="tag raw">codex/gpt-5.6-luna</span> <span class="tag">rerun 2 of 2</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">2337.6s</td><td><a class="mono" href="view/logs/20260823.113803.929Z_jq_build_codex.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">45</td><td class="nowrap">2026-08-23 08:17:04 EDT</td><td><code>drydock build status jq</code> <span class="tag">rerun 15 of 17</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">1.3s</td><td><a class="mono" href="view/logs/20260823.121704.647Z_jq_build.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">46</td><td class="nowrap">2026-08-23 08:20:59 EDT</td><td><code>drydock score ac jq</code></td><td><span class="tag fail" title="exit 1">FAIL<br>rc=1</span></td><td class="num">498.4s</td><td><a class="mono" href="view/logs/20260823.122059.517Z_jq_score.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">47</td><td class="nowrap">2026-08-23 08:29:18 EDT</td><td><code>drydock score build jq</code> <span class="tag">rerun 1 of 2</span></td><td><span class="tag pass" title="exit 1; later rerun exited 0"><span class="failure-history">FAIL<br><span class="rerun">RE-RUN</span></span></span></td><td class="num">1.8s</td><td><a class="mono" href="view/logs/20260823.122918.258Z_jq_score.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">48</td><td class="nowrap">2026-08-23 08:29:20 EDT</td><td><code>drydock score release jq</code> <span class="tag raw">codex/gpt-5.6-luna</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">223.5s</td><td><a class="mono" href="view/logs/20260823.122920.469Z_jq_score_codex.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">49</td><td class="nowrap">2026-08-23 09:12:09 EDT</td><td><code>drydock build status jq</code> <span class="tag">rerun 16 of 17</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">7.1s</td><td><a class="mono" href="view/logs/20260823.131209.080Z_jq_build.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">50</td><td class="nowrap">2026-08-23 09:34:29 EDT</td><td><code>drydock build status jq</code> <span class="tag">rerun 17 of 17</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">2.2s</td><td><a class="mono" href="view/logs/20260823.133429.576Z_jq_build.log.html" target="_blank" rel="noopener">transcript</a></td></tr><tr><td class="num">51</td><td class="nowrap">2026-08-23 10:27:37 EDT</td><td><code>drydock score build jq</code> <span class="tag">rerun 2 of 2</span></td><td><span class="tag pass" title="exit 0">OK</span></td><td class="num">1.5s</td><td><a class="mono" href="view/logs/20260823.142737.053Z_jq_score.log.html" target="_blank" rel="noopener">transcript</a></td></tr></tbody></table></div></section><section class="panel" id="panel-error"><h2>Recorded failure output</h2><div class="tabgroup" data-tabgroup="error"><nav class="tabs"><button type="button" data-panel="error4" aria-selected="true">5. drydock score ac jq</button></nav><section class="panel active" id="panel-error4"><p class="note">Command <code>drydock score ac jq</code> exited 1. The text below is quoted verbatim from its captured transcript.</p><p class="note">Tail of <a class="mono" href="view/logs/20260823.122059.517Z_jq_score.log.html" target="_blank" rel="noopener">logs/20260823.122059.517Z_jq_score.log</a>.</p><pre>e-foundation ARCHITECTURE.md
green before its block built
PREPASSED exec-entry-conformance EXEC-001 FEATURE-EXEC-001.md
green before its block built
PREPASSED exec-is-runnable EXEC-001 FEATURE-EXEC-001.md
green before its block built
PREPASSED compile-exit-code EXEC-002 FEATURE-EXEC-002.md
green before its block built
PREPASSED runtime-exit-code EXEC-002 FEATURE-EXEC-002.md
green before its block built
PREPASSED partial-runtime-output EXEC-002 FEATURE-EXEC-002.md
green before its block built
PREPASSED multiple-input-values EXEC-003 FEATURE-EXEC-003.md
green before its block built
PREPASSED compact-json-output EXEC-003 FEATURE-EXEC-003.md
green before its block built
PREPASSED conf-001-assets CONF-001 FEATURE-CONF-001.md
green before its block built
PREPASSED lexer-conformance PARSE-001 FEATURE-PARSE-001.md
green before its block built
PREPASSED lexer-rejects-invalid-source PARSE-001 FEATURE-PARSE-001.md
green before its block built
PREPASSED core-001-conformance CORE-001 FEATURE-CORE-001.md
green before its block built
PREPASSED core-002-conformance CORE-002 FEATURE-CORE-002.md
green before its block built
PREPASSED core-003-conformance CORE-003 FEATURE-CORE-003.md
green before its block built
PREPASSED core-004-conformance CORE-004 FEATURE-CORE-004.md
green before its block built
PREPASSED value-002-conformance VALUE-002 FEATURE-VALUE-002.md
green before its block built
PREPASSED value-003-conformance VALUE-003 FEATURE-VALUE-003.md
green before its block built
PREPASSED flow-001-conformance FLOW-001 FEATURE-FLOW-001.md
green before its block built
PREPASSED flow-003-conformance FLOW-003 FEATURE-FLOW-003.md
green before its block built
PREPASSED flow-004-conformance FLOW-004 FEATURE-FLOW-004.md
green before its block built
PREPASSED flow-006-conformance FLOW-006 FEATURE-FLOW-006.md
green before its block built
PREPASSED func-001-conformance FUNC-001 FEATURE-FUNC-001.md
green before its block built
PREPASSED func-002-conformance FUNC-002 FEATURE-FUNC-002.md
green before its block built
PREPASSED func-003-conformance FUNC-003 FEATURE-FUNC-003.md
green before its block built
PREPASSED func-004-conformance FUNC-004 FEATURE-FUNC-004.md
green before its block built
PREPASSED path-001-conformance PATH-001 FEATURE-PATH-001.md
green before its block built
PREPASSED path-002-conformance PATH-002 FEATURE-PATH-002.md
green before its block built
PREPASSED path-003-conformance PATH-003 FEATURE-PATH-003.md
green before its block built
PREPASSED path-004-conformance PATH-004 FEATURE-PATH-004.md
green before its block built
PREPASSED data-002-conformance DATA-002 FEATURE-DATA-002.md
green before its block built
PREPASSED text-002-scoped-conformance TEXT-002 FEATURE-TEXT-002.md
green before its block built
PREPASSED text-002-formats TEXT-002 FEATURE-TEXT-002.md
green before its block built
PREPASSED io-001-input-conformance IO-001 FEATURE-IO-001.md
green before its block built
PREPASSED io-001-streams IO-001 FEATURE-IO-001.md
green before its block built
PREPASSED conf-002-scoped-run CONF-002 FEATURE-CONF-002.md
green before its block built
Soundings: /mnt/c/Users/barlo/projects/drydock/uat/jq/runs/20260822.044627/workspace/targets/jq/SOUNDINGS.md
Target - committed project workspace git store</pre></section></div></section><section class="panel" id="panel-llm"><h2>LLM executions</h2><p class="note">One row per model invocation, with its token accounting and the output it returned.</p><dl class="meta"><div><dt>Calls</dt><dd>187</dd></div><div><dt>Usage</dt><dd>187 calls · cached 140,953,088 · uncached 13,717,106 · output 813,760</dd></div><div><dt>Model time</dt><dd>27672.3s</dd></div></dl><div class="scroll"><table><thead><tr><th>Command</th><th>Model</th><th>Result</th><th>When</th><th>Elapsed</th><th>Cached</th><th>Uncached</th><th>Output</th><th></th><th>llm</th></tr></thead><tbody><tr><td>analyze</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 00:46:35 EDT</td><td class="num">126.7s</td><td class="num">5,888</td><td class="num">93,465</td><td class="num">6,813</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 00:48:45 EDT</td><td class="num">127.4s</td><td class="num">8,960</td><td class="num">112,739</td><td class="num">6,856</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 00:50:52 EDT</td><td class="num">75.1s</td><td class="num">8,960</td><td class="num">119,835</td><td class="num">3,948</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 00:52:08 EDT</td><td class="num">60.7s</td><td class="num">8,960</td><td class="num">119,871</td><td class="num">3,162</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 00:53:08 EDT</td><td class="num">47.8s</td><td class="num">8,960</td><td class="num">119,911</td><td class="num">2,424</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 00:53:56 EDT</td><td class="num">57.0s</td><td class="num">8,960</td><td class="num">119,965</td><td class="num">2,919</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 00:54:54 EDT</td><td class="num">57.9s</td><td class="num">8,960</td><td class="num">120,009</td><td class="num">2,978</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 00:55:52 EDT</td><td class="num">51.8s</td><td class="num">8,960</td><td class="num">120,052</td><td class="num">2,579</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 00:56:43 EDT</td><td class="num">51.9s</td><td class="num">8,960</td><td class="num">120,100</td><td class="num">2,659</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 00:57:35 EDT</td><td class="num">63.5s</td><td class="num">8,960</td><td class="num">120,137</td><td class="num">3,290</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 00:58:39 EDT</td><td class="num">49.4s</td><td class="num">8,960</td><td class="num">120,163</td><td class="num">2,523</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 00:59:41 EDT</td><td class="num">117.1s</td><td class="num">89,344</td><td class="num">34,655</td><td class="num">6,127</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:01:41 EDT</td><td class="num">83.2s</td><td class="num">0</td><td class="num">18,771</td><td class="num">4,431</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:03:10 EDT</td><td class="num">91.5s</td><td class="num">8,960</td><td class="num">12,256</td><td class="num">4,915</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>lineage_attribute</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:04:51 EDT</td><td class="num">39.8s</td><td class="num">8,960</td><td class="num">8,936</td><td class="num">2,022</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>lineage_attribute</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:05:30 EDT</td><td class="num">67.7s</td><td class="num">8,960</td><td class="num">8,407</td><td class="num">3,557</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>lineage_attribute</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:06:38 EDT</td><td class="num">24.6s</td><td class="num">8,960</td><td class="num">5,993</td><td class="num">1,178</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>lineage_attribute</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:07:03 EDT</td><td class="num">21.6s</td><td class="num">8,960</td><td class="num">5,508</td><td class="num">1,017</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>lineage_attribute</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:07:25 EDT</td><td class="num">53.3s</td><td class="num">8,960</td><td class="num">35,941</td><td class="num">2,781</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>lineage_attribute</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:08:18 EDT</td><td class="num">39.2s</td><td class="num">8,960</td><td class="num">27,704</td><td class="num">1,933</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>lineage_attribute</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:08:57 EDT</td><td class="num">48.7s</td><td class="num">8,960</td><td class="num">6,859</td><td class="num">2,473</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>lineage_attribute</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:09:46 EDT</td><td class="num">57.4s</td><td class="num">8,960</td><td class="num">12,223</td><td class="num">3,003</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>lineage_attribute</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:10:44 EDT</td><td class="num">32.8s</td><td class="num">8,960</td><td class="num">9,147</td><td class="num">1,618</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:11:24 EDT</td><td class="num">17.3s</td><td class="num">8,960</td><td class="num">4,981</td><td class="num">781</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:11:41 EDT</td><td class="num">15.8s</td><td class="num">8,960</td><td class="num">4,994</td><td class="num">694</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:11:57 EDT</td><td class="num">15.9s</td><td class="num">8,960</td><td class="num">4,993</td><td class="num">696</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:12:13 EDT</td><td class="num">15.9s</td><td class="num">8,960</td><td class="num">4,977</td><td class="num">670</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:12:29 EDT</td><td class="num">16.1s</td><td class="num">5,888</td><td class="num">8,065</td><td class="num">688</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:12:46 EDT</td><td class="num">14.4s</td><td class="num">8,960</td><td class="num">4,988</td><td class="num">601</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:13:00 EDT</td><td class="num">17.1s</td><td class="num">8,960</td><td class="num">4,987</td><td class="num">695</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:13:18 EDT</td><td class="num">8.7s</td><td class="num">8,960</td><td class="num">5,189</td><td class="num">284</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:13:26 EDT</td><td class="num">11.3s</td><td class="num">8,960</td><td class="num">4,965</td><td class="num">436</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:13:38 EDT</td><td class="num">17.0s</td><td class="num">0</td><td class="num">13,942</td><td class="num">740</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:13:55 EDT</td><td class="num">16.2s</td><td class="num">8,960</td><td class="num">4,981</td><td class="num">692</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:14:11 EDT</td><td class="num">10.5s</td><td class="num">8,960</td><td class="num">4,988</td><td class="num">391</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:14:22 EDT</td><td class="num">16.3s</td><td class="num">8,960</td><td class="num">4,975</td><td class="num">691</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:14:39 EDT</td><td class="num">11.5s</td><td class="num">8,960</td><td class="num">4,876</td><td class="num">446</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:14:50 EDT</td><td class="num">8.3s</td><td class="num">8,960</td><td class="num">4,966</td><td class="num">288</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:14:59 EDT</td><td class="num">11.1s</td><td class="num">2,816</td><td class="num">11,111</td><td class="num">416</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:15:10 EDT</td><td class="num">10.6s</td><td class="num">8,960</td><td class="num">4,956</td><td class="num">407</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:15:21 EDT</td><td class="num">12.6s</td><td class="num">8,960</td><td class="num">4,987</td><td class="num">491</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:15:34 EDT</td><td class="num">22.7s</td><td class="num">22,016</td><td class="num">6,581</td><td class="num">983</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:15:56 EDT</td><td class="num">13.1s</td><td class="num">8,960</td><td class="num">4,994</td><td class="num">522</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:16:10 EDT</td><td class="num">13.6s</td><td class="num">8,960</td><td class="num">4,971</td><td class="num">557</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:53:40 EDT</td><td class="num">17.9s</td><td class="num">8,960</td><td class="num">6,085</td><td class="num">730</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:53:58 EDT</td><td class="num">14.8s</td><td class="num">0</td><td class="num">14,881</td><td class="num">612</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:54:13 EDT</td><td class="num">14.5s</td><td class="num">8,960</td><td class="num">6,040</td><td class="num">624</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:54:28 EDT</td><td class="num">16.5s</td><td class="num">8,960</td><td class="num">6,114</td><td class="num">712</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:54:44 EDT</td><td class="num">15.7s</td><td class="num">5,888</td><td class="num">8,722</td><td class="num">694</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:55:00 EDT</td><td class="num">16.3s</td><td class="num">8,960</td><td class="num">5,655</td><td class="num">695</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:57:15 EDT</td><td class="num">15.8s</td><td class="num">8,960</td><td class="num">5,539</td><td class="num">665</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:57:31 EDT</td><td class="num">15.5s</td><td class="num">5,888</td><td class="num">8,544</td><td class="num">660</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:57:46 EDT</td><td class="num">15.7s</td><td class="num">8,960</td><td class="num">5,494</td><td class="num">625</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 01:58:02 EDT</td><td class="num">16.4s</td><td class="num">8,960</td><td class="num">5,568</td><td class="num">702</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 10:19:21 EDT</td><td class="num">19.6s</td><td class="num">8,960</td><td class="num">6,085</td><td class="num">671</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 10:19:41 EDT</td><td class="num">15.6s</td><td class="num">8,960</td><td class="num">5,921</td><td class="num">610</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 10:19:57 EDT</td><td class="num">16.1s</td><td class="num">8,960</td><td class="num">6,040</td><td class="num">634</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan repair</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 10:20:13 EDT</td><td class="num">16.7s</td><td class="num">8,960</td><td class="num">6,114</td><td class="num">702</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 11:31:50 EDT</td><td class="num">169.6s</td><td class="num">8,960</td><td class="num">112,939</td><td class="num">9,040</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 11:34:40 EDT</td><td class="num">78.0s</td><td class="num">8,960</td><td class="num">121,917</td><td class="num">4,033</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 11:35:58 EDT</td><td class="num">61.5s</td><td class="num">129,792</td><td class="num">1,085</td><td class="num">3,186</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 11:37:00 EDT</td><td class="num">69.5s</td><td class="num">8,960</td><td class="num">121,917</td><td class="num">3,525</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 11:38:10 EDT</td><td class="num">61.9s</td><td class="num">8,960</td><td class="num">121,961</td><td class="num">3,178</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 11:39:12 EDT</td><td class="num">69.1s</td><td class="num">8,960</td><td class="num">122,010</td><td class="num">3,558</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 11:40:21 EDT</td><td class="num">54.9s</td><td class="num">8,960</td><td class="num">122,064</td><td class="num">2,820</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 11:41:16 EDT</td><td class="num">56.6s</td><td class="num">8,960</td><td class="num">122,112</td><td class="num">2,866</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 11:42:13 EDT</td><td class="num">53.3s</td><td class="num">8,960</td><td class="num">122,157</td><td class="num">2,705</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 11:43:06 EDT</td><td class="num">47.9s</td><td class="num">8,960</td><td class="num">122,207</td><td class="num">2,417</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 11:43:54 EDT</td><td class="num">49.0s</td><td class="num">8,960</td><td class="num">122,251</td><td class="num">2,373</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 11:44:43 EDT</td><td class="num">62.7s</td><td class="num">8,960</td><td class="num">122,286</td><td class="num">3,242</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 11:45:46 EDT</td><td class="num">154.6s</td><td class="num">8,960</td><td class="num">12,014</td><td class="num">8,380</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 11:48:24 EDT</td><td class="num">59.0s</td><td class="num">0</td><td class="num">18,275</td><td class="num">3,070</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 11:49:24 EDT</td><td class="num">67.8s</td><td class="num">8,960</td><td class="num">9,410</td><td class="num">3,565</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 11:50:32 EDT</td><td class="num">68.3s</td><td class="num">8,960</td><td class="num">9,463</td><td class="num">3,582</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag fail" title="exit 130">FAIL 130</span></td><td class="nowrap">2026-08-22 13:41:01 EDT</td><td class="num">0.0s</td><td class="num">0</td><td class="num">0</td><td class="num">0</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 13:41:14 EDT</td><td class="num">153.1s</td><td class="num">0</td><td class="num">121,802</td><td class="num">8,251</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 13:43:47 EDT</td><td class="num">77.7s</td><td class="num">0</td><td class="num">130,353</td><td class="num">4,099</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 13:45:05 EDT</td><td class="num">61.8s</td><td class="num">8,960</td><td class="num">121,431</td><td class="num">3,171</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 13:46:07 EDT</td><td class="num">57.9s</td><td class="num">8,960</td><td class="num">121,476</td><td class="num">2,974</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 13:47:05 EDT</td><td class="num">56.0s</td><td class="num">8,960</td><td class="num">121,526</td><td class="num">2,825</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 13:48:01 EDT</td><td class="num">58.4s</td><td class="num">8,960</td><td class="num">121,570</td><td class="num">3,032</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 13:48:59 EDT</td><td class="num">42.9s</td><td class="num">129,792</td><td class="num">778</td><td class="num">2,182</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 13:49:42 EDT</td><td class="num">55.2s</td><td class="num">0</td><td class="num">130,618</td><td class="num">2,795</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 13:50:38 EDT</td><td class="num">57.2s</td><td class="num">8,960</td><td class="num">121,694</td><td class="num">2,941</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 13:51:35 EDT</td><td class="num">44.7s</td><td class="num">8,960</td><td class="num">121,720</td><td class="num">2,248</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 13:52:21 EDT</td><td class="num">52.3s</td><td class="num">8,960</td><td class="num">9,097</td><td class="num">2,672</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 13:53:15 EDT</td><td class="num">72.0s</td><td class="num">8,960</td><td class="num">9,477</td><td class="num">3,785</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 13:54:28 EDT</td><td class="num">67.2s</td><td class="num">8,960</td><td class="num">9,556</td><td class="num">3,549</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 13:55:36 EDT</td><td class="num">71.6s</td><td class="num">8,960</td><td class="num">9,617</td><td class="num">3,770</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 13:56:49 EDT</td><td class="num">56.4s</td><td class="num">8,960</td><td class="num">9,640</td><td class="num">2,914</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 13:57:47 EDT</td><td class="num">83.7s</td><td class="num">8,960</td><td class="num">9,906</td><td class="num">4,463</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 13:59:12 EDT</td><td class="num">96.6s</td><td class="num">27,136</td><td class="num">12,061</td><td class="num">5,131</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 14:00:50 EDT</td><td class="num">247.3s</td><td class="num">8,960</td><td class="num">9,914</td><td class="num">3,451</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 14:04:59 EDT</td><td class="num">66.8s</td><td class="num">8,960</td><td class="num">9,451</td><td class="num">3,483</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 14:06:26 EDT</td><td class="num">103.6s</td><td class="num">208,896</td><td class="num">29,760</td><td class="num">4,580</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 14:08:15 EDT</td><td class="num">195.0s</td><td class="num">541,440</td><td class="num">46,549</td><td class="num">8,042</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 14:11:34 EDT</td><td class="num">165.3s</td><td class="num">1,106,176</td><td class="num">73,657</td><td class="num">6,653</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 14:14:25 EDT</td><td class="num">61.0s</td><td class="num">480,768</td><td class="num">91,927</td><td class="num">2,534</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 14:15:29 EDT</td><td class="num">42.3s</td><td class="num">286,720</td><td class="num">87,314</td><td class="num">1,853</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 14:16:13 EDT</td><td class="num">44.6s</td><td class="num">380,672</td><td class="num">88,380</td><td class="num">1,982</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 15:33:26 EDT</td><td class="num">145.1s</td><td class="num">8,960</td><td class="num">113,262</td><td class="num">7,748</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 15:35:51 EDT</td><td class="num">70.7s</td><td class="num">8,960</td><td class="num">120,978</td><td class="num">3,664</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 15:37:02 EDT</td><td class="num">49.1s</td><td class="num">8,960</td><td class="num">121,016</td><td class="num">2,478</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 15:37:51 EDT</td><td class="num">69.2s</td><td class="num">8,960</td><td class="num">121,053</td><td class="num">3,575</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 15:39:01 EDT</td><td class="num">45.8s</td><td class="num">8,960</td><td class="num">121,053</td><td class="num">2,320</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 15:39:47 EDT</td><td class="num">46.7s</td><td class="num">0</td><td class="num">130,053</td><td class="num">2,331</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 15:40:33 EDT</td><td class="num">51.6s</td><td class="num">8,960</td><td class="num">121,133</td><td class="num">2,550</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 15:41:25 EDT</td><td class="num">50.2s</td><td class="num">8,960</td><td class="num">121,173</td><td class="num">2,542</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 15:42:15 EDT</td><td class="num">51.8s</td><td class="num">8,960</td><td class="num">121,213</td><td class="num">2,624</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 15:43:07 EDT</td><td class="num">63.0s</td><td class="num">8,960</td><td class="num">121,253</td><td class="num">3,296</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 15:44:10 EDT</td><td class="num">33.0s</td><td class="num">8,960</td><td class="num">121,281</td><td class="num">1,609</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 15:44:47 EDT</td><td class="num">55.0s</td><td class="num">8,960</td><td class="num">8,638</td><td class="num">2,622</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>plan</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 15:45:45 EDT</td><td class="num">50.5s</td><td class="num">8,960</td><td class="num">8,662</td><td class="num">2,540</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 15:47:17 EDT</td><td class="num">107.9s</td><td class="num">257,792</td><td class="num">33,918</td><td class="num">4,301</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 15:49:09 EDT</td><td class="num">56.4s</td><td class="num">192,768</td><td class="num">30,410</td><td class="num">2,010</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 15:50:11 EDT</td><td class="num">63.0s</td><td class="num">195,840</td><td class="num">33,812</td><td class="num">2,449</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 15:51:22 EDT</td><td class="num">108.4s</td><td class="num">478,720</td><td class="num">54,284</td><td class="num">3,932</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 15:53:19 EDT</td><td class="num">64.5s</td><td class="num">481,792</td><td class="num">90,617</td><td class="num">2,045</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 15:54:37 EDT</td><td class="num">219.5s</td><td class="num">847,104</td><td class="num">67,960</td><td class="num">9,622</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 15:58:33 EDT</td><td class="num">230.3s</td><td class="num">1,679,616</td><td class="num">103,758</td><td class="num">8,656</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 16:06:21 EDT</td><td class="num">347.3s</td><td class="num">1,552,384</td><td class="num">82,139</td><td class="num">12,314</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 16:15:48 EDT</td><td class="num">421.9s</td><td class="num">2,790,912</td><td class="num">96,154</td><td class="num">13,049</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 16:25:56 EDT</td><td class="num">365.3s</td><td class="num">2,192,640</td><td class="num">48,741</td><td class="num">8,791</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 16:35:59 EDT</td><td class="num">261.4s</td><td class="num">1,137,664</td><td class="num">102,454</td><td class="num">4,295</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 16:42:17 EDT</td><td class="num">590.5s</td><td class="num">2,521,856</td><td class="num">97,816</td><td class="num">9,089</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 16:53:52 EDT</td><td class="num">605.0s</td><td class="num">2,768,384</td><td class="num">99,783</td><td class="num">10,233</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 17:05:33 EDT</td><td class="num">571.1s</td><td class="num">2,677,248</td><td class="num">104,484</td><td class="num">9,165</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 18:07:46 EDT</td><td class="num">660.4s</td><td class="num">2,514,432</td><td class="num">103,640</td><td class="num">11,567</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 18:21:40 EDT</td><td class="num">468.6s</td><td class="num">2,311,168</td><td class="num">98,312</td><td class="num">10,515</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 18:31:47 EDT</td><td class="num">554.5s</td><td class="num">3,628,800</td><td class="num">106,608</td><td class="num">13,097</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 18:43:30 EDT</td><td class="num">515.2s</td><td class="num">2,902,016</td><td class="num">112,870</td><td class="num">12,273</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 18:54:04 EDT</td><td class="num">480.3s</td><td class="num">1,847,040</td><td class="num">91,680</td><td class="num">7,053</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 19:03:53 EDT</td><td class="num">397.6s</td><td class="num">2,416,896</td><td class="num">102,848</td><td class="num">8,752</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 19:12:36 EDT</td><td class="num">632.7s</td><td class="num">4,005,632</td><td class="num">120,814</td><td class="num">11,244</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 19:53:39 EDT</td><td class="num">364.2s</td><td class="num">2,444,800</td><td class="num">116,254</td><td class="num">7,301</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 20:01:43 EDT</td><td class="num">535.3s</td><td class="num">3,606,016</td><td class="num">116,950</td><td class="num">13,016</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 20:12:32 EDT</td><td class="num">488.3s</td><td class="num">3,214,848</td><td class="num">110,137</td><td class="num">11,525</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 20:22:04 EDT</td><td class="num">429.5s</td><td class="num">2,575,104</td><td class="num">106,166</td><td class="num">8,925</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 20:30:38 EDT</td><td class="num">515.3s</td><td class="num">2,815,232</td><td class="num">108,426</td><td class="num">9,952</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 20:40:37 EDT</td><td class="num">528.0s</td><td class="num">3,198,976</td><td class="num">111,847</td><td class="num">12,513</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 20:50:49 EDT</td><td class="num">364.6s</td><td class="num">2,194,176</td><td class="num">102,891</td><td class="num">8,106</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 20:59:03 EDT</td><td class="num">470.3s</td><td class="num">2,635,264</td><td class="num">105,237</td><td class="num">7,707</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 21:08:41 EDT</td><td class="num">464.5s</td><td class="num">3,498,496</td><td class="num">117,880</td><td class="num">11,123</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 21:18:08 EDT</td><td class="num">598.4s</td><td class="num">2,788,352</td><td class="num">103,752</td><td class="num">8,751</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 21:30:10 EDT</td><td class="num">575.8s</td><td class="num">3,023,360</td><td class="num">110,105</td><td class="num">12,423</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 21:41:28 EDT</td><td class="num">828.9s</td><td class="num">6,091,008</td><td class="num">152,842</td><td class="num">15,670</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 21:56:53 EDT</td><td class="num">396.4s</td><td class="num">2,548,992</td><td class="num">108,118</td><td class="num">9,415</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 22:05:04 EDT</td><td class="num">604.8s</td><td class="num">3,614,208</td><td class="num">112,082</td><td class="num">11,460</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 22:16:51 EDT</td><td class="num">148.8s</td><td class="num">1,286,400</td><td class="num">104,718</td><td class="num">4,454</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 22:20:52 EDT</td><td class="num">173.7s</td><td class="num">1,065,728</td><td class="num">109,112</td><td class="num">4,301</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 22:25:10 EDT</td><td class="num">122.0s</td><td class="num">722,688</td><td class="num">107,628</td><td class="num">3,142</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 22:28:43 EDT</td><td class="num">136.1s</td><td class="num">1,250,816</td><td class="num">112,786</td><td class="num">5,516</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 22:32:37 EDT</td><td class="num">108.2s</td><td class="num">1,202,688</td><td class="num">109,168</td><td class="num">3,685</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 22:36:29 EDT</td><td class="num">124.4s</td><td class="num">919,808</td><td class="num">111,349</td><td class="num">3,777</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 22:40:36 EDT</td><td class="num">153.0s</td><td class="num">1,056,512</td><td class="num">101,523</td><td class="num">4,412</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 22:45:38 EDT</td><td class="num">200.6s</td><td class="num">2,139,904</td><td class="num">129,750</td><td class="num">7,279</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 22:51:44 EDT</td><td class="num">162.0s</td><td class="num">1,382,656</td><td class="num">114,367</td><td class="num">4,746</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 22:57:26 EDT</td><td class="num">124.6s</td><td class="num">1,263,104</td><td class="num">118,304</td><td class="num">3,695</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 23:02:33 EDT</td><td class="num">168.4s</td><td class="num">1,026,816</td><td class="num">211,325</td><td class="num">4,419</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 23:08:40 EDT</td><td class="num">99.4s</td><td class="num">974,080</td><td class="num">100,713</td><td class="num">3,412</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 23:14:07 EDT</td><td class="num">150.8s</td><td class="num">1,818,112</td><td class="num">133,138</td><td class="num">4,814</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 23:20:28 EDT</td><td class="num">145.6s</td><td class="num">1,470,720</td><td class="num">124,514</td><td class="num">5,632</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 23:26:16 EDT</td><td class="num">201.8s</td><td class="num">2,021,632</td><td class="num">134,621</td><td class="num">6,930</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 23:33:02 EDT</td><td class="num">174.3s</td><td class="num">2,128,640</td><td class="num">135,777</td><td class="num">6,102</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 23:39:26 EDT</td><td class="num">142.4s</td><td class="num">1,286,912</td><td class="num">133,438</td><td class="num">4,382</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 23:45:34 EDT</td><td class="num">99.3s</td><td class="num">649,216</td><td class="num">105,983</td><td class="num">3,092</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 23:51:01 EDT</td><td class="num">113.7s</td><td class="num">1,005,568</td><td class="num">96,041</td><td class="num">3,471</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-22 23:56:49 EDT</td><td class="num">192.2s</td><td class="num">1,357,056</td><td class="num">116,281</td><td class="num">7,684</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-23 00:03:44 EDT</td><td class="num">217.6s</td><td class="num">2,174,464</td><td class="num">115,365</td><td class="num">7,073</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-23 00:11:12 EDT</td><td class="num">142.2s</td><td class="num">1,485,824</td><td class="num">114,007</td><td class="num">5,144</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-23 00:17:50 EDT</td><td class="num">172.3s</td><td class="num">2,137,344</td><td class="num">121,524</td><td class="num">5,399</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-23 00:24:55 EDT</td><td class="num">173.3s</td><td class="num">1,301,760</td><td class="num">113,797</td><td class="num">5,321</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-23 00:31:47 EDT</td><td class="num">128.5s</td><td class="num">1,050,368</td><td class="num">100,852</td><td class="num">4,729</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-23 00:38:10 EDT</td><td class="num">168.9s</td><td class="num">1,814,016</td><td class="num">130,683</td><td class="num">5,911</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-23 00:45:17 EDT</td><td class="num">120.6s</td><td class="num">1,138,432</td><td class="num">112,252</td><td class="num">4,162</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-23 00:51:49 EDT</td><td class="num">133.1s</td><td class="num">1,293,824</td><td class="num">117,989</td><td class="num">4,989</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-23 00:58:29 EDT</td><td class="num">232.0s</td><td class="num">1,439,744</td><td class="num">110,746</td><td class="num">8,019</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-23 01:06:43 EDT</td><td class="num">325.8s</td><td class="num">3,232,000</td><td class="num">137,122</td><td class="num">12,480</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-23 01:12:11 EDT</td><td class="num">69.1s</td><td class="num">509,184</td><td class="num">90,407</td><td class="num">2,103</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-23 01:13:22 EDT</td><td class="num">73.9s</td><td class="num">525,568</td><td class="num">89,999</td><td class="num">1,706</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-23 07:38:22 EDT</td><td class="num">334.7s</td><td class="num">1,896,704</td><td class="num">98,678</td><td class="num">8,283</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-23 07:44:05 EDT</td><td class="num">295.4s</td><td class="num">2,192,640</td><td class="num">117,629</td><td class="num">11,136</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-23 07:49:10 EDT</td><td class="num">204.1s</td><td class="num">1,492,736</td><td class="num">103,909</td><td class="num">5,849</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-23 07:52:46 EDT</td><td class="num">219.7s</td><td class="num">1,453,056</td><td class="num">110,554</td><td class="num">6,932</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-23 07:56:39 EDT</td><td class="num">64.1s</td><td class="num">172,288</td><td class="num">24,975</td><td class="num">1,747</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>build</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-23 08:00:26 EDT</td><td class="num">736.9s</td><td class="num">1,737,984</td><td class="num">77,070</td><td class="num">3,779</td><td class="dash">—</td><td class="dash">—</td></tr><tr><td>score release</td><td>codex/gpt-5.6-luna</td><td><span class="tag pass" title="exit 0">OK</span></td><td class="nowrap">2026-08-23 08:32:50 EDT</td><td class="num">7.9s</td><td class="num">8,960</td><td class="num">5,197</td><td class="num">184</td><td class="dash">—</td><td class="dash">—</td></tr></tbody></table></div></section><section class="panel" id="panel-verification"><section class="receipt"><div class="caption"><span>Receipt</span><span class="tally">1 of 5 claims proven</span></div><div class="scroll"><table><thead><tr><th>Claim</th><th>Verdict</th><th>Recorded outcome</th><th>Proof</th></tr></thead><tbody><tr><td>Acceptance criteria verified</td><td><span class="tag fail">FAIL</span></td><td class="detail">18 of 57 criteria passed; 3 failed, verified 2026-08-23T12:21:00+00:00.</td><td><a class="mono" href="view/workspace/SOUNDINGS.md.html" target="_blank" rel="noopener">workspace/SOUNDINGS.md</a></td></tr><tr><td>Build blocks verified</td><td><span class="tag fail">FAIL</span></td><td class="detail">43 blocks recorded; 2 needed repair; unverified: block-37.</td><td><a class="mono" href="workspace/evidence" target="_blank" rel="noopener">workspace/evidence</a></td></tr><tr><td>Acceptance score passed</td><td><span class="tag fail">FAIL</span></td><td class="detail">drydock score ac exited 1.</td><td><a class="mono" href="view/logs/20260823.142737.053Z_jq_score.log.html" target="_blank" rel="noopener">logs/20260823.142737.053Z_jq_score.log</a></td></tr><tr><td>Release score passed</td><td><span class="tag pass">PASS</span></td><td class="detail">drydock score release exited 0.</td><td><a class="mono" href="view/logs/20260823.142737.053Z_jq_score.log.html" target="_blank" rel="noopener">logs/20260823.142737.053Z_jq_score.log</a></td></tr><tr><td>Every recorded command exited clean</td><td><span class="tag fail">FAIL</span></td><td class="detail">51 commands recorded; 5 exited nonzero with no later clean rerun, the last at 46-score.</td><td><a class="mono" href="view/result.json.html" target="_blank" rel="noopener">result.json</a></td></tr></tbody></table></div></section></section><section class="panel" id="panel-output"><h2>Output</h2><p class="note">The Target Drydock drove. 138 files, 1,049,385 bytes.</p><div class="scroll"><table class="tree"><thead><tr><th>Path</th><th>Bytes</th><th></th></tr></thead><tbody><tr><td class="name" style="--d:0"><strong>workspace/</strong></td><td class="num">1,049,385</td><td></td></tr><tr><td class="name" style="--d:1"><strong>QuarterDeck/</strong></td><td class="num">30,829</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/QuarterDeck/commanders_chair.html.html" target="_blank" rel="noopener">commanders_chair.html</a></td><td class="num">24,733</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/QuarterDeck/console.yaml.html" target="_blank" rel="noopener">console.yaml</a></td><td class="num">5,909</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/QuarterDeck/planning-session.md.html" target="_blank" rel="noopener">planning-session.md</a></td><td class="num">187</td><td></td></tr><tr><td class="name" style="--d:1"><strong>blueprint/</strong></td><td class="num">590,234</td><td></td></tr><tr><td class="name" style="--d:2"><strong>sources/</strong></td><td class="num">255,348</td><td></td></tr><tr><td class="name" style="--d:3"><a class="mono" href="view/workspace/blueprint/sources/INSTRUCTIONS.md.html" target="_blank" rel="noopener">INSTRUCTIONS.md</a></td><td class="num">14,992</td><td></td></tr><tr><td class="name" style="--d:3"><a class="mono" href="workspace/blueprint/sources/builtin.jq" target="_blank" rel="noopener">builtin.jq</a></td><td class="num">9,631</td><td></td></tr><tr><td class="name" style="--d:3"><a class="mono" href="view/workspace/blueprint/sources/exclusions.txt.html" target="_blank" rel="noopener">exclusions.txt</a></td><td class="num">2,613</td><td></td></tr><tr><td class="name" style="--d:3"><a class="mono" href="view/workspace/blueprint/sources/full_test.sh.html" target="_blank" rel="noopener">full_test.sh</a></td><td class="num">755</td><td></td></tr><tr><td class="name" style="--d:3"><a class="mono" href="view/workspace/blueprint/sources/jq-manual.txt.html" target="_blank" rel="noopener">jq-manual.txt</a></td><td class="num">130,783</td><td></td></tr><tr><td class="name" style="--d:3"><a class="mono" href="workspace/blueprint/sources/jq.test" target="_blank" rel="noopener">jq.test</a></td><td class="num">52,230</td><td></td></tr><tr><td class="name" style="--d:3"><a class="mono" href="workspace/blueprint/sources/lexer.l" target="_blank" rel="noopener">lexer.l</a></td><td class="num">4,548</td><td></td></tr><tr><td class="name" style="--d:3"><a class="mono" href="workspace/blueprint/sources/parser.y" target="_blank" rel="noopener">parser.y</a></td><td class="num">22,382</td><td></td></tr><tr><td class="name" style="--d:3"><a class="mono" href="view/workspace/blueprint/sources/run_conformance.py.html" target="_blank" rel="noopener">run_conformance.py</a></td><td class="num">17,414</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/ARCHITECTURE.md.html" target="_blank" rel="noopener">ARCHITECTURE.md</a></td><td class="num">4,311</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/ARCHITECTURE_compact.md.html" target="_blank" rel="noopener">ARCHITECTURE_compact.md</a></td><td class="num">616</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-CONF-001.md.html" target="_blank" rel="noopener">FEATURE-CONF-001.md</a></td><td class="num">1,354</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-CONF-002.md.html" target="_blank" rel="noopener">FEATURE-CONF-002.md</a></td><td class="num">1,259</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-CONF-003.md.html" target="_blank" rel="noopener">FEATURE-CONF-003.md</a></td><td class="num">1,219</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-CORE-001.md.html" target="_blank" rel="noopener">FEATURE-CORE-001.md</a></td><td class="num">1,523</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-CORE-002.md.html" target="_blank" rel="noopener">FEATURE-CORE-002.md</a></td><td class="num">1,646</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-CORE-003.md.html" target="_blank" rel="noopener">FEATURE-CORE-003.md</a></td><td class="num">1,274</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-CORE-004.md.html" target="_blank" rel="noopener">FEATURE-CORE-004.md</a></td><td class="num">1,166</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-DATA-001.md.html" target="_blank" rel="noopener">FEATURE-DATA-001.md</a></td><td class="num">1,744</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-DATA-002.md.html" target="_blank" rel="noopener">FEATURE-DATA-002.md</a></td><td class="num">1,695</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-DATA-003.md.html" target="_blank" rel="noopener">FEATURE-DATA-003.md</a></td><td class="num">1,786</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-DATA-004.md.html" target="_blank" rel="noopener">FEATURE-DATA-004.md</a></td><td class="num">1,774</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-EXEC-001.md.html" target="_blank" rel="noopener">FEATURE-EXEC-001.md</a></td><td class="num">1,932</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-EXEC-002.md.html" target="_blank" rel="noopener">FEATURE-EXEC-002.md</a></td><td class="num">1,974</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-EXEC-003.md.html" target="_blank" rel="noopener">FEATURE-EXEC-003.md</a></td><td class="num">2,145</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-Executable-Entry-Point.md.html" target="_blank" rel="noopener">FEATURE-Executable-Entry-Point.md</a></td><td class="num">2,460</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-FLOW-001.md.html" target="_blank" rel="noopener">FEATURE-FLOW-001.md</a></td><td class="num">1,712</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-FLOW-002.md.html" target="_blank" rel="noopener">FEATURE-FLOW-002.md</a></td><td class="num">1,688</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-FLOW-003.md.html" target="_blank" rel="noopener">FEATURE-FLOW-003.md</a></td><td class="num">1,723</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-FLOW-004.md.html" target="_blank" rel="noopener">FEATURE-FLOW-004.md</a></td><td class="num">1,568</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-FLOW-005.md.html" target="_blank" rel="noopener">FEATURE-FLOW-005.md</a></td><td class="num">2,011</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-FLOW-006.md.html" target="_blank" rel="noopener">FEATURE-FLOW-006.md</a></td><td class="num">1,924</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-FUNC-001.md.html" target="_blank" rel="noopener">FEATURE-FUNC-001.md</a></td><td class="num">1,885</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-FUNC-002.md.html" target="_blank" rel="noopener">FEATURE-FUNC-002.md</a></td><td class="num">1,903</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-FUNC-003.md.html" target="_blank" rel="noopener">FEATURE-FUNC-003.md</a></td><td class="num">1,943</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-FUNC-004.md.html" target="_blank" rel="noopener">FEATURE-FUNC-004.md</a></td><td class="num">1,925</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-IO-001.md.html" target="_blank" rel="noopener">FEATURE-IO-001.md</a></td><td class="num">2,375</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-IO-002.md.html" target="_blank" rel="noopener">FEATURE-IO-002.md</a></td><td class="num">2,433</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-IO-003.md.html" target="_blank" rel="noopener">FEATURE-IO-003.md</a></td><td class="num">1,500</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-Json-IO.md.html" target="_blank" rel="noopener">FEATURE-Json-IO.md</a></td><td class="num">2,819</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-PARSE-001.md.html" target="_blank" rel="noopener">FEATURE-PARSE-001.md</a></td><td class="num">2,460</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-PARSE-002.md.html" target="_blank" rel="noopener">FEATURE-PARSE-002.md</a></td><td class="num">1,761</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-PARSE-003.md.html" target="_blank" rel="noopener">FEATURE-PARSE-003.md</a></td><td class="num">1,793</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-PARSE-004.md.html" target="_blank" rel="noopener">FEATURE-PARSE-004.md</a></td><td class="num">1,934</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-PATH-001.md.html" target="_blank" rel="noopener">FEATURE-PATH-001.md</a></td><td class="num">1,856</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-PATH-002.md.html" target="_blank" rel="noopener">FEATURE-PATH-002.md</a></td><td class="num">1,932</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-PATH-003.md.html" target="_blank" rel="noopener">FEATURE-PATH-003.md</a></td><td class="num">2,011</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-PATH-004.md.html" target="_blank" rel="noopener">FEATURE-PATH-004.md</a></td><td class="num">2,066</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-Process-Contract.md.html" target="_blank" rel="noopener">FEATURE-Process-Contract.md</a></td><td class="num">3,074</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-TEXT-001.md.html" target="_blank" rel="noopener">FEATURE-TEXT-001.md</a></td><td class="num">1,893</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-TEXT-002.md.html" target="_blank" rel="noopener">FEATURE-TEXT-002.md</a></td><td class="num">2,593</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-TEXT-003.md.html" target="_blank" rel="noopener">FEATURE-TEXT-003.md</a></td><td class="num">2,486</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-TEXT-004.md.html" target="_blank" rel="noopener">FEATURE-TEXT-004.md</a></td><td class="num">2,481</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-VALUE-001.md.html" target="_blank" rel="noopener">FEATURE-VALUE-001.md</a></td><td class="num">1,401</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-VALUE-002.md.html" target="_blank" rel="noopener">FEATURE-VALUE-002.md</a></td><td class="num">1,385</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-VALUE-003.md.html" target="_blank" rel="noopener">FEATURE-VALUE-003.md</a></td><td class="num">1,399</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/FEATURE-VALUE-004.md.html" target="_blank" rel="noopener">FEATURE-VALUE-004.md</a></td><td class="num">1,804</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="workspace/blueprint/builtin.jq" target="_blank" rel="noopener">builtin.jq</a></td><td class="num">9,631</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/builtin_compact.md.html" target="_blank" rel="noopener">builtin_compact.md</a></td><td class="num">317</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/exclusions.txt.html" target="_blank" rel="noopener">exclusions.txt</a></td><td class="num">2,613</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/exclusions_compact.md.html" target="_blank" rel="noopener">exclusions_compact.md</a></td><td class="num">316</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/full_test.sh.html" target="_blank" rel="noopener">full_test.sh</a></td><td class="num">755</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/full_test_compact.md.html" target="_blank" rel="noopener">full_test_compact.md</a></td><td class="num">327</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/jq-manual.txt.html" target="_blank" rel="noopener">jq-manual.txt</a></td><td class="num">130,783</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/jq-manual_compact.md.html" target="_blank" rel="noopener">jq-manual_compact.md</a></td><td class="num">312</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="workspace/blueprint/jq.test" target="_blank" rel="noopener">jq.test</a></td><td class="num">52,230</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/jq_compact.md.html" target="_blank" rel="noopener">jq_compact.md</a></td><td class="num">555</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="workspace/blueprint/lexer.l" target="_blank" rel="noopener">lexer.l</a></td><td class="num">4,548</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/lexer_compact.md.html" target="_blank" rel="noopener">lexer_compact.md</a></td><td class="num">293</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="workspace/blueprint/parser.y" target="_blank" rel="noopener">parser.y</a></td><td class="num">22,382</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/parser_compact.md.html" target="_blank" rel="noopener">parser_compact.md</a></td><td class="num">369</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/run_conformance.py.html" target="_blank" rel="noopener">run_conformance.py</a></td><td class="num">17,414</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/blueprint/run_conformance_compact.md.html" target="_blank" rel="noopener">run_conformance_compact.md</a></td><td class="num">425</td><td></td></tr><tr><td class="name" style="--d:1"><strong>evidence/</strong></td><td class="num">240,570</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-1.md.html" target="_blank" rel="noopener">block-1.md</a></td><td class="num">2,107</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-10.md.html" target="_blank" rel="noopener">block-10.md</a></td><td class="num">1,883</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-11.md.html" target="_blank" rel="noopener">block-11.md</a></td><td class="num">1,625</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-12.md.html" target="_blank" rel="noopener">block-12.md</a></td><td class="num">1,525</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-13.md.html" target="_blank" rel="noopener">block-13.md</a></td><td class="num">2,781</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-14.md.html" target="_blank" rel="noopener">block-14.md</a></td><td class="num">4,042</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-15.md.html" target="_blank" rel="noopener">block-15.md</a></td><td class="num">5,023</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-16.md.html" target="_blank" rel="noopener">block-16.md</a></td><td class="num">4,318</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-17.md.html" target="_blank" rel="noopener">block-17.md</a></td><td class="num">2,421</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-18.md.html" target="_blank" rel="noopener">block-18.md</a></td><td class="num">8,678</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-19.md.html" target="_blank" rel="noopener">block-19.md</a></td><td class="num">2,437</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-2.md.html" target="_blank" rel="noopener">block-2.md</a></td><td class="num">2,473</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-20.md.html" target="_blank" rel="noopener">block-20.md</a></td><td class="num">2,173</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-21.md.html" target="_blank" rel="noopener">block-21.md</a></td><td class="num">3,340</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-22.md.html" target="_blank" rel="noopener">block-22.md</a></td><td class="num">2,476</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-23.md.html" target="_blank" rel="noopener">block-23.md</a></td><td class="num">4,007</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-24.md.html" target="_blank" rel="noopener">block-24.md</a></td><td class="num">2,404</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-25.md.html" target="_blank" rel="noopener">block-25.md</a></td><td class="num">3,997</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-26.md.html" target="_blank" rel="noopener">block-26.md</a></td><td class="num">2,321</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-27.md.html" target="_blank" rel="noopener">block-27.md</a></td><td class="num">2,379</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-28.md.html" target="_blank" rel="noopener">block-28.md</a></td><td class="num">2,380</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-29.md.html" target="_blank" rel="noopener">block-29.md</a></td><td class="num">2,352</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-3.md.html" target="_blank" rel="noopener">block-3.md</a></td><td class="num">2,432</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-30.md.html" target="_blank" rel="noopener">block-30.md</a></td><td class="num">2,215</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-31.md.html" target="_blank" rel="noopener">block-31.md</a></td><td class="num">5,465</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-32.md.html" target="_blank" rel="noopener">block-32.md</a></td><td class="num">2,238</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-33.md.html" target="_blank" rel="noopener">block-33.md</a></td><td class="num">3,600</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-34.md.html" target="_blank" rel="noopener">block-34.md</a></td><td class="num">3,934</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-35.md.html" target="_blank" rel="noopener">block-35.md</a></td><td class="num">4,360</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-36.md.html" target="_blank" rel="noopener">block-36.md</a></td><td class="num">3,415</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-37.md.html" target="_blank" rel="noopener">block-37.md</a></td><td class="num">4,934</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-38.md.html" target="_blank" rel="noopener">block-38.md</a></td><td class="num">5,618</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-39.md.html" target="_blank" rel="noopener">block-39.md</a></td><td class="num">3,504</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-4.md.html" target="_blank" rel="noopener">block-4.md</a></td><td class="num">2,914</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-40.md.html" target="_blank" rel="noopener">block-40.md</a></td><td class="num">5,168</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-41.md.html" target="_blank" rel="noopener">block-41.md</a></td><td class="num">3,451</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-42.md.html" target="_blank" rel="noopener">block-42.md</a></td><td class="num">1,421</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-43.md.html" target="_blank" rel="noopener">block-43.md</a></td><td class="num">2,593</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-5.md.html" target="_blank" rel="noopener">block-5.md</a></td><td class="num">3,345</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-6.md.html" target="_blank" rel="noopener">block-6.md</a></td><td class="num">3,539</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-7.md.html" target="_blank" rel="noopener">block-7.md</a></td><td class="num">5,430</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-8.md.html" target="_blank" rel="noopener">block-8.md</a></td><td class="num">93,455</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/block-9.md.html" target="_blank" rel="noopener">block-9.md</a></td><td class="num">1,733</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/prepassed-acceptance.json.html" target="_blank" rel="noopener">prepassed-acceptance.json</a></td><td class="num">1,213</td><td></td></tr><tr><td class="name" style="--d:2"><a class="mono" href="view/workspace/evidence/score-release.json.html" target="_blank" rel="noopener">score-release.json</a></td><td class="num">7,451</td><td></td></tr><tr><td class="name" style="--d:1"><a class="mono" href="view/workspace/ACCEPTANCE.json.html" target="_blank" rel="noopener">ACCEPTANCE.json</a></td><td class="num">57</td><td></td></tr><tr><td class="name" style="--d:1"><a class="mono" href="view/workspace/ANALYSIS.md.html" target="_blank" rel="noopener">ANALYSIS.md</a></td><td class="num">22,436</td><td></td></tr><tr><td class="name" style="--d:1"><a class="mono" href="view/workspace/ANALYZE_COMPASS.md.html" target="_blank" rel="noopener">ANALYZE_COMPASS.md</a></td><td class="num">18</td><td></td></tr><tr><td class="name" style="--d:1"><a class="mono" href="view/workspace/COMPASS.md.html" target="_blank" rel="noopener">COMPASS.md</a></td><td class="num">13,680</td><td></td></tr><tr><td class="name" style="--d:1"><a class="mono" href="view/workspace/DECISIONS.json.html" target="_blank" rel="noopener">DECISIONS.json</a></td><td class="num">523</td><td></td></tr><tr><td class="name" style="--d:1"><a class="mono" href="view/workspace/EXCLUDE_FILES.md.html" target="_blank" rel="noopener">EXCLUDE_FILES.md</a></td><td class="num">162</td><td></td></tr><tr><td class="name" style="--d:1"><a class="mono" href="view/workspace/LINEAGE.json.html" target="_blank" rel="noopener">LINEAGE.json</a></td><td class="num">62,157</td><td></td></tr><tr><td class="name" style="--d:1"><a class="mono" href="view/workspace/MANIFEST.md.html" target="_blank" rel="noopener">MANIFEST.md</a></td><td class="num">58,412</td><td></td></tr><tr><td class="name" style="--d:1"><a class="mono" href="view/workspace/METADATA.md.html" target="_blank" rel="noopener">METADATA.md</a></td><td class="num">545</td><td></td></tr><tr><td class="name" style="--d:1"><a class="mono" href="view/workspace/PLAN_COMPASS.md.html" target="_blank" rel="noopener">PLAN_COMPASS.md</a></td><td class="num">15</td><td></td></tr><tr><td class="name" style="--d:1"><a class="mono" href="view/workspace/PROJECT_STATUS.jsonl.html" target="_blank" rel="noopener">PROJECT_STATUS.jsonl</a></td><td class="num">1,415</td><td></td></tr><tr><td class="name" style="--d:1"><a class="mono" href="view/workspace/README.md.html" target="_blank" rel="noopener">README.md</a></td><td class="num">34</td><td></td></tr><tr><td class="name" style="--d:1"><a class="mono" href="view/workspace/SCORECARD.md.html" target="_blank" rel="noopener">SCORECARD.md</a></td><td class="num">1,369</td><td></td></tr><tr><td class="name" style="--d:1"><a class="mono" href="view/workspace/SEA_TRIALS.md.html" target="_blank" rel="noopener">SEA_TRIALS.md</a></td><td class="num">522</td><td></td></tr><tr><td class="name" style="--d:1"><a class="mono" href="view/workspace/SOUNDINGS.md.html" target="_blank" rel="noopener">SOUNDINGS.md</a></td><td class="num">15,272</td><td></td></tr><tr><td class="name" style="--d:1"><a class="mono" href="view/workspace/STORY_GUIDANCE.json.html" target="_blank" rel="noopener">STORY_GUIDANCE.json</a></td><td class="num">10,338</td><td></td></tr><tr><td class="name" style="--d:1"><a class="mono" href="view/workspace/TECHNOLOGY_STACK.md.html" target="_blank" rel="noopener">TECHNOLOGY_STACK.md</a></td><td class="num">797</td><td></td></tr></tbody></table></div></section></div></section><section class="panel" id="panel-plan"><div class="tabgroup" data-tabgroup="plan"><nav class="tabs"><button type="button" data-panel="plan-manifest" aria-selected="true">Manifest</button><button type="button" data-panel="plan-scorecard" aria-selected="false">Scorecard</button><button type="button" data-panel="plan-analysis" aria-selected="false">Analysis</button><button type="button" data-panel="plan-metadata" aria-selected="false">Metadata</button><button type="button" data-panel="plan-compass" aria-selected="false">Compass</button><button type="button" data-panel="plan-stack" aria-selected="false">Stack</button><button type="button" data-panel="plan-sea-trials" aria-selected="false">Sea Trials</button><button type="button" data-panel="plan-soundings" aria-selected="false">Soundings</button></nav><section class="panel active" id="panel-plan-manifest"><h2>MANIFEST.md</h2><p class="note">Every block the plan carries, grouped by feature, with the state this run left it in. Source: <a class="mono" href="view/workspace/MANIFEST.md.html" target="_blank" rel="noopener">workspace/MANIFEST.md</a>.</p><div class="stats"><div class="stat"><div class="stat-value">44</div><div class="stat-label">Blocks</div></div>
<div class="stat"><div class="stat-value">0</div><div class="stat-label">Verified</div></div>
<div class="stat"><div class="stat-value">44</div><div class="stat-label">Built</div></div>
<div class="stat"><div class="stat-value">0</div><div class="stat-label">Failed</div></div></div><dl class="meta"><div><dt>Blocks</dt><dd>43 recorded</dd></div><div><dt>Unverified blocks</dt><dd>1</dd></div><div><dt>Repaired blocks</dt><dd>2</dd></div></dl><div class="story-list">
<div class="story-feature">Build Block 1 · Foundational</div>
<div class="story-row"><span class="story-name">Define the standalone jq interpreter architecture and module boundaries.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 2 · Foundational</div>
<div class="story-row"><span class="story-name">Implement the executable jq entry point.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 3 · Service</div>
<div class="story-row"><span class="story-name">Implement jq process exit and diagnostic behavior.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 4 · Service</div>
<div class="story-row"><span class="story-name">Implement JSON input and compact output handling.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 5 · Foundational</div>
<div class="story-row"><span class="story-name">Stage and validate immutable conformance assets.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 6 · Service</div>
<div class="story-row"><span class="story-name">Implement jq lexical scanning.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 7 · Service</div>
<div class="story-row"><span class="story-name">Implement literals, strings, escapes, and interpolation.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 8 · Service</div>
<div class="story-row"><span class="story-name">Implement jq filter expression grammar.</span> <span class="badge badge-review">built</span></div>
<div class="story-row"><span class="story-name">Implement declarations and control syntax parsing.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 9 · Service</div>
<div class="story-row"><span class="story-name">Implement the stream-valued filter evaluator.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 10 · Service</div>
<div class="story-row"><span class="story-name">Implement composition and Cartesian generator evaluation.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 11 · Service</div>
<div class="story-row"><span class="story-name">Implement empty, runtime errors, optional evaluation, and try.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 12 · Service</div>
<div class="story-row"><span class="story-name">Implement jq truthiness, equality, and ordering.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 13 · Service</div>
<div class="story-row"><span class="story-name">Implement the jq value and numeric model.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 14 · Service</div>
<div class="story-row"><span class="story-name">Implement field and index access.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 15 · Service</div>
<div class="story-row"><span class="story-name">Implement slices and collection iteration.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 16 · Service</div>
<div class="story-row"><span class="story-name">Implement type, length, numeric predicates, conversions, and math.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 17 · Service</div>
<div class="story-row"><span class="story-name">Implement arithmetic and structural operators.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 18 · Service</div>
<div class="story-row"><span class="story-name">Implement boolean and alternative operators.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 19 · Service</div>
<div class="story-row"><span class="story-name">Implement conditionals and exception flow.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 20 · Service</div>
<div class="story-row"><span class="story-name">Implement lexical labels and breaks.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 21 · Service</div>
<div class="story-row"><span class="story-name">Implement reductions and iteration controls.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 22 · Service</div>
<div class="story-row"><span class="story-name">Implement recursive generator primitives.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 23 · Service</div>
<div class="story-row"><span class="story-name">Implement lexical variable bindings.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 24 · Service</div>
<div class="story-row"><span class="story-name">Implement filter and value function parameters.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 25 · Service</div>
<div class="story-row"><span class="story-name">Implement function definitions, scope, and recursion.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 26 · Service</div>
<div class="story-row"><span class="story-name">Implement destructuring patterns and alternatives.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 27 · Service</div>
<div class="story-row"><span class="story-name">Implement path discovery and projection.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 28 · Service</div>
<div class="story-row"><span class="story-name">Implement path access and mutation primitives.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 29 · Service</div>
<div class="story-row"><span class="story-name">Implement deletion and assignment operators.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 30 · Service</div>
<div class="story-row"><span class="story-name">Implement complex assignment edge cases.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 31 · Service</div>
<div class="story-row"><span class="story-name">Implement collection transformation builtins.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 32 · Service</div>
<div class="story-row"><span class="story-name">Implement sorting and grouping builtins.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 33 · Service</div>
<div class="story-row"><span class="story-name">Implement object-entry and containment builtins.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 34 · Service</div>
<div class="story-row"><span class="story-name">Implement index and membership utilities.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 35 · Service</div>
<div class="story-row"><span class="story-name">Implement string manipulation builtins.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 36 · Service</div>
<div class="story-row"><span class="story-name">Implement JSON and output format filters.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 37 · Service</div>
<div class="story-row"><span class="story-name">Implement regular-expression filters.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 38 · Service</div>
<div class="story-row"><span class="story-name">Implement date and time filters.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 39 · Service</div>
<div class="story-row"><span class="story-name">Implement input stream controls.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 40 · Service</div>
<div class="story-row"><span class="story-name">Implement diagnostics and stderr output.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 41 · Service</div>
<div class="story-row"><span class="story-name">Implement streaming transformations.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 42 · Service</div>
<div class="story-row"><span class="story-name">Provide scoped conformance verification.</span> <span class="badge badge-review">built</span></div>
<div class="story-feature">Build Block 43 · Service</div>
<div class="story-row"><span class="story-name">Run the complete jq conformance corpus.</span> <span class="badge badge-review">built</span></div>
</div></section><section class="panel" id="panel-plan-scorecard"><h2>SCORECARD.md</h2><p class="note">The completion gate and every project acceptance criterion, as this run last scored them. Source: <a class="mono" href="view/workspace/SCORECARD.md.html" target="_blank" rel="noopener">workspace/SCORECARD.md</a>.</p><dl class="meta"><div><dt>Criteria</dt><dd>57</dd></div><div><dt>Criteria passed</dt><dd>18</dd></div><div><dt>Criteria failed</dt><dd>3</dd></div></dl><div class="question-status">PASSED</div>
<div class="story-list">
<div class="story-row"><span class="story-name">st-001 — The completed interpreter shall make sh sources/full_test.sh exit zero; that script's exit status is the sole acceptance verdict.</span> <span class="badge badge-verified">✓ MET</span></div>
</div></section><section class="panel" id="panel-plan-analysis"><h2>ANALYSIS.md</h2><p class="note">What the analysis pass read the Blueprint to ask for. Source: <a class="mono" href="view/workspace/ANALYSIS.md.html" target="_blank" rel="noopener">workspace/ANALYSIS.md</a>.</p><div class="story-breakdown">
<div class="story-breakdown-label">Story Shape</div>
<div class="story-breakdown-row"><span class="story-breakdown-name">Executable Interface</span><span class="story-breakdown-count">3</span></div>
<div class="story-breakdown-row"><span class="story-breakdown-name">Lexer and Parser</span><span class="story-breakdown-count">4</span></div>
<div class="story-breakdown-row"><span class="story-breakdown-name">Generator Evaluation Core</span><span class="story-breakdown-count">4</span></div>
<div class="story-breakdown-row"><span class="story-breakdown-name">Values and Accessors</span><span class="story-breakdown-count">4</span></div>
<div class="story-breakdown-row"><span class="story-breakdown-name">Operators and Control Flow</span><span class="story-breakdown-count">6</span></div>
<div class="story-breakdown-row"><span class="story-breakdown-name">Variables and Functions</span><span class="story-breakdown-count">4</span></div>
<div class="story-breakdown-row"><span class="story-breakdown-name">Paths and Assignment</span><span class="story-breakdown-count">4</span></div>
<div class="story-breakdown-row"><span class="story-breakdown-name">Collections and Data Transformation</span><span class="story-breakdown-count">4</span></div>
<div class="story-breakdown-row"><span class="story-breakdown-name">Strings, Formats, and Regular Expressions</span><span class="story-breakdown-count">4</span></div>
<div class="story-breakdown-row"><span class="story-breakdown-name">I/O and Streaming</span><span class="story-breakdown-count">3</span></div>
<div class="story-breakdown-row"><span class="story-breakdown-name">Conformance Delivery</span><span class="story-breakdown-count">3</span></div>
</div><article class="doc"><h1>Blueprint Analysis: drydock jq Uat Kit</h1>
<h2>Commander Expectations</h2>
<ul><li>assert the supplied jq conformance corpus passes completely through an executable <code>./jq</code> filter.</li><li>assert the implementation uses only Python standard-library facilities and does not wrap or depend on another jq implementation.</li><li>assert the supplied stdin/stdout interface and documented exit codes are honored.</li></ul>
<h2>Crew</h2>
<div class="scroll"><table><thead><tr><th>Crew</th><th>Charge</th></tr></thead><tbody><tr><td>Commander</td><td>Defines intent and decides what done means.</td></tr><tr><td>Team Lead</td><td>Confirms epic completeness and stakeholder expectations.</td></tr><tr><td>Planning Crew</td><td>Authors atomic specifications and the ordered Manifest.</td></tr><tr><td>Shipyard Crew</td><td>Builds the tickets without synchronous Commander access.</td></tr></tbody></table></div>
<h2>Story List</h2>
<h3>Feature: Executable Interface</h3>
<div class="scroll"><table><thead><tr><th>ID</th><th>Story</th><th>High-level AC</th></tr></thead><tbody><tr><td>EXEC-001</td><td>Implement executable jq entry point</td><td><code>./jq -c '<program>'</code> reads JSON stdin and emits compact JSON values line by line.</td></tr><tr><td>EXEC-002</td><td>Implement process exit and diagnostic contract</td><td>Compile failures exit 3, runtime failures exit 5, successful completion exits 0, and diagnostics use stderr.</td></tr><tr><td>EXEC-003</td><td>Implement JSON input and output handling</td><td>Multiple input values, Unicode, special numeric values, and compact serialization are handled as required by the corpus.</td></tr></tbody></table></div>
<h3>Feature: Lexer and Parser</h3>
<div class="scroll"><table><thead><tr><th>ID</th><th>Story</th><th>High-level AC</th></tr></thead><tbody><tr><td>PARSE-001</td><td>Implement jq lexical scanning</td><td>Keywords, identifiers, fields, bindings, literals, operators, comments, formats, and delimiters tokenize according to the supplied lexer specification.</td></tr><tr><td>PARSE-002</td><td>Implement literals and string interpolation</td><td>JSON escapes, Unicode, formatted strings, and <code>\(expression)</code> interpolation parse and evaluate correctly.</td></tr><tr><td>PARSE-003</td><td>Implement filter expression grammar</td><td>Pipes, commas, precedence, indexing, slicing, arrays, objects, unary operators, and optional expressions compile correctly.</td></tr><tr><td>PARSE-004</td><td>Implement declarations and control syntax</td><td><code>def</code>, imports/module grammar, conditionals, try/catch, reductions, foreach, labels, bindings, and destructuring syntax compile correctly, including required rejection cases.</td></tr></tbody></table></div>
<h3>Feature: Generator Evaluation Core</h3>
<div class="scroll"><table><thead><tr><th>ID</th><th>Story</th><th>High-level AC</th></tr></thead><tbody><tr><td>CORE-001</td><td>Implement stream-valued filter evaluation</td><td>Every filter evaluates as a generator with zero, one, or many outputs, preserving order and backtracking.</td></tr><tr><td>CORE-002</td><td>Implement composition and cartesian evaluation</td><td>Pipes, commas, function arguments, array collection, object construction, and binary operators evaluate all required output combinations.</td></tr><tr><td>CORE-003</td><td>Implement empty, errors, and optional evaluation</td><td><code>empty</code>, runtime errors, <code>?</code>, <code>try</code>, and partial output before runtime failure follow jq semantics.</td></tr><tr><td>CORE-004</td><td>Implement truthiness and comparison semantics</td><td>Only <code>false</code> and <code>null</code> are falsey; equality and ordering follow jq's type ordering and numeric equivalence.</td></tr></tbody></table></div>
<h3>Feature: Values and Accessors</h3>
<div class="scroll"><table><thead><tr><th>ID</th><th>Story</th><th>High-level AC</th></tr></thead><tbody><tr><td>VALUE-001</td><td>Implement JSON value model</td><td>Null, booleans, numbers, strings, arrays, objects, NaN, and infinities are represented and processed as jq values.</td></tr><tr><td>VALUE-002</td><td>Implement field and index access</td><td>Object fields, array indices, object values, optional access, negative indices, and missing values behave as specified.</td></tr><tr><td>VALUE-003</td><td>Implement slices and iteration</td><td>Array/string slices, iteration over arrays and objects, optional iteration, fractional bounds, and out-of-range behavior conform.</td></tr><tr><td>VALUE-004</td><td>Implement type and numeric primitives</td><td><code>type</code>, <code>length</code>, <code>utf8bytelength</code>, numeric predicates, conversion functions, arithmetic primitives, and math functions conform.</td></tr></tbody></table></div>
<h3>Feature: Operators and Control Flow</h3>
<div class="scroll"><table><thead><tr><th>ID</th><th>Story</th><th>High-level AC</th></tr></thead><tbody><tr><td>FLOW-001</td><td>Implement arithmetic and structural operators</td><td><code>+</code>, <code>-</code>, <code>*</code>, <code>/</code>, <code>%</code>, unary negation, recursive object merge, string repetition, and string splitting conform.</td></tr><tr><td>FLOW-002</td><td>Implement boolean and alternative operators</td><td><code>and</code>, <code>or</code>, <code>not</code>, <code>//</code>, and <code>//=</code> preserve generator and short-circuit semantics.</td></tr><tr><td>FLOW-003</td><td>Implement conditionals and exception flow</td><td><code>if</code>, <code>elif</code>, <code>else</code>, <code>try</code>, <code>catch</code>, and optional operators preserve branch streams and errors.</td></tr><tr><td>FLOW-004</td><td>Implement labels and breaks</td><td>Lexically scoped <code>label</code> and <code>break</code> terminate the correct generator without leaking outputs.</td></tr><tr><td>FLOW-005</td><td>Implement reductions and iteration control</td><td><code>reduce</code>, <code>foreach</code>, <code>range</code>, <code>limit</code>, <code>skip</code>, <code>first</code>, <code>last</code>, and <code>nth</code> preserve state and backtracking.</td></tr><tr><td>FLOW-006</td><td>Implement recursive generators</td><td><code>while</code>, <code>until</code>, <code>repeat</code>, <code>recurse</code>, and recursive user functions operate correctly without incorrect termination.</td></tr></tbody></table></div>
<h3>Feature: Variables and Functions</h3>
<div class="scroll"><table><thead><tr><th>ID</th><th>Story</th><th>High-level AC</th></tr></thead><tbody><tr><td>FUNC-001</td><td>Implement lexical variable bindings</td><td><code>as</code> bindings, nested scope, shadowing, keyword identifiers, and value lifetime conform.</td></tr><tr><td>FUNC-002</td><td>Implement filter and value function parameters</td><td>User-defined functions support filter parameters, value parameters, multiple arities, closures, and cartesian arguments.</td></tr><tr><td>FUNC-003</td><td>Implement function definitions and recursion</td><td>Definitions, redefinitions, lexical function scope, recursion, and forward/self references conform.</td></tr><tr><td>FUNC-004</td><td>Implement destructuring patterns and alternatives</td><td>Array/object patterns, missing bindings, <code>?//</code>, and fallback binding behavior conform.</td></tr></tbody></table></div>
<h3>Feature: Paths and Assignment</h3>
<div class="scroll"><table><thead><tr><th>ID</th><th>Story</th><th>High-level AC</th></tr></thead><tbody><tr><td>PATH-001</td><td>Implement path discovery and projection</td><td><code>path</code>, <code>paths</code>, <code>pick</code>, and path expressions produce valid paths and projections.</td></tr><tr><td>PATH-002</td><td>Implement path access and mutation primitives</td><td><code>getpath</code>, <code>setpath</code>, and <code>delpaths</code> create, update, read, and delete nested structures correctly.</td></tr><tr><td>PATH-003</td><td>Implement deletion and assignment operators</td><td><code>del</code>, <code>=</code>, `</td><td>=`, arithmetic assignments, defined-or assignment, and multi-path behavior conform.</td></tr><tr><td>PATH-004</td><td>Implement complex assignment edge cases</td><td>Iterated paths, empty updates, array expansion, invalid paths, negative indices, NaN indices, and depth limits conform.</td></tr></tbody></table></div>
<h3>Feature: Collections and Data Transformation</h3>
<div class="scroll"><table><thead><tr><th>ID</th><th>Story</th><th>High-level AC</th></tr></thead><tbody><tr><td>DATA-001</td><td>Implement collection transformation builtins</td><td><code>map</code>, <code>map_values</code>, <code>select</code>, <code>add</code>, <code>flatten</code>, <code>transpose</code>, <code>combinations</code>, and <code>walk</code> conform.</td></tr><tr><td>DATA-002</td><td>Implement sorting and grouping builtins</td><td><code>sort</code>, <code>sort_by</code>, <code>group_by</code>, <code>unique</code>, <code>unique_by</code>, <code>min</code>, <code>max</code>, and keyed variants conform.</td></tr><tr><td>DATA-003</td><td>Implement object-entry and containment builtins</td><td><code>keys</code>, <code>keys_unsorted</code>, <code>has</code>, <code>in</code>, <code>inside</code>, <code>contains</code>, <code>to_entries</code>, <code>from_entries</code>, and <code>with_entries</code> conform.</td></tr><tr><td>DATA-004</td><td>Implement index and membership utilities</td><td><code>indices</code>, <code>index</code>, <code>rindex</code>, <code>bsearch</code>, <code>all</code>, <code>any</code>, <code>isempty</code>, and SQL-style <code>IN</code> conform.</td></tr></tbody></table></div>
<h3>Feature: Strings, Formats, and Regular Expressions</h3>
<div class="scroll"><table><thead><tr><th>ID</th><th>Story</th><th>High-level AC</th></tr></thead><tbody><tr><td>TEXT-001</td><td>Implement string manipulation builtins</td><td>Trimming, prefix/suffix operations, case conversion, explode/implode, split, join, and interpolation conform.</td></tr><tr><td>TEXT-002</td><td>Implement JSON and output format filters</td><td><code>tostring</code>, <code>tojson</code>, <code>fromjson</code>, <code>@text</code>, <code>@json</code>, <code>@html</code>, <code>@uri</code>, <code>@urid</code>, <code>@csv</code>, <code>@tsv</code>, <code>@sh</code>, <code>@base64</code>, and <code>@base64d</code> conform.</td></tr><tr><td>TEXT-003</td><td>Implement regular-expression filters</td><td><code>test</code>, <code>match</code>, <code>capture</code>, <code>scan</code>, <code>split</code>, <code>splits</code>, <code>sub</code>, and <code>gsub</code> support required flags, captures, offsets, and streams.</td></tr><tr><td>TEXT-004</td><td>Implement date and time filters</td><td>ISO dates, <code>strptime</code>, <code>strftime</code>, <code>gmtime</code>, <code>localtime</code>, and <code>mktime</code> conform for supplied cases.</td></tr></tbody></table></div>
<h3>Feature: I/O and Streaming</h3>
<div class="scroll"><table><thead><tr><th>ID</th><th>Story</th><th>High-level AC</th></tr></thead><tbody><tr><td>IO-001</td><td>Implement input stream controls</td><td><code>input</code>, <code>inputs</code>, <code>input_filename</code>, and <code>input_line_number</code> conform within the fixed interface.</td></tr><tr><td>IO-002</td><td>Implement diagnostics and stderr output</td><td><code>debug</code>, <code>stderr</code>, and <code>halt_error</code> produce the specified output channels and exit behavior.</td></tr><tr><td>IO-003</td><td>Implement streaming transformations</td><td><code>tostream</code>, <code>fromstream</code>, and <code>truncate_stream</code> conform for supplied streaming values.</td></tr></tbody></table></div>
<h3>Feature: Conformance Delivery</h3>
<div class="scroll"><table><thead><tr><th>ID</th><th>Story</th><th>High-level AC</th></tr></thead><tbody><tr><td>CONF-001</td><td>Stage immutable conformance assets</td><td>The supplied manual, corpus, parser/lexer references, builtin reference, exclusions, runner, and full-test script are available at their required build paths without modification.</td></tr><tr><td>CONF-002</td><td>Run scoped implementation verification</td><td>Each implementation slice can be exercised through <code>run_conformance.py --select</code> with <code>JQ</code> set to the candidate executable.</td></tr><tr><td>CONF-003</td><td>Pass the complete conformance corpus</td><td>One terminal verification runs <code>sh sources/full_test.sh</code> unfiltered and exits zero with no failed or errored cases.</td></tr></tbody></table></div>
<h2>Story Guidance</h2>
<p>Named stories planning must produce. Authoritative record: <code>STORY_GUIDANCE.json</code>.</p>
<div class="scroll"><table><thead><tr><th>Story ID</th><th>Provenance</th><th>Gate</th><th>Note</th></tr></thead><tbody><tr><td>EXEC-001</td><td>plan</td><td>`python3 sources/run_conformance.py --select ^(true</td><td>false</td><td>null</td><td>1)$`</td><td>Build Instructions: interface contract</td></tr><tr><td>PARSE-001</td><td>plan</td><td>`python3 sources/run_conformance.py --select ^(true</td><td>false</td><td>null</td><td>1</td><td>\.)$`</td><td>lexer.l</td></tr><tr><td>PARSE-002</td><td>plan</td><td>`python3 sources/run_conformance.py --select interpolation</td><td>@base64</td><td>@uri`</td><td>lexer.l and jq.test string/format cases</td></tr><tr><td>PARSE-003</td><td>plan</td><td>`python3 sources/run_conformance.py --select \.</td><td>\[</td><td>\{</td><td>\+</td><td>\-</td><td>\*</td><td>/</td><td>%`</td><td>parser.y expression grammar</td></tr><tr><td>PARSE-004</td><td>plan</td><td>`python3 sources/run_conformance.py --select %%FAIL</td><td>if</td><td>try</td><td>reduce</td><td>foreach</td><td>def</td><td>as</td><td>label</td><td>module</td><td>include`</td><td>parser.y declarations and control grammar</td></tr><tr><td>CORE-001</td><td>plan</td><td>`python3 sources/run_conformance.py --select \.</td><td>,</td><td>\[\.\]</td><td>range</td><td>empty`</td><td>Build Instructions: generator core</td></tr><tr><td>CORE-002</td><td>plan</td><td>`python3 sources/run_conformance.py --select \</td><td></td><td>,</td><td>\[</td><td>\{`</td><td>jq-manual.txt generator semantics</td></tr><tr><td>CORE-003</td><td>plan</td><td>`python3 sources/run_conformance.py --select try</td><td>error</td><td>\?`</td><td>jq-manual.txt error and optional semantics</td></tr><tr><td>CORE-004</td><td>plan</td><td>`python3 sources/run_conformance.py --select ==</td><td>!=</td><td><=</td><td>>=</td><td><</td><td>>`</td><td>jq-manual.txt comparison and truthiness</td></tr><tr><td>VALUE-001</td><td>plan</td><td>`python3 sources/run_conformance.py --select nan</td><td>infinite</td><td>tojson</td><td>fromjson`</td><td>jq-manual.txt types and numeric values</td></tr><tr><td>VALUE-002</td><td>plan</td><td>`python3 sources/run_conformance.py --select \.[A-Za-z]</td><td>\[[-0-9]`</td><td>jq-manual.txt accessors</td></tr><tr><td>VALUE-003</td><td>plan</td><td>`python3 sources/run_conformance.py --select \[.*:</td><td>\.\[\]`</td><td>jq-manual.txt slices and iteration</td></tr><tr><td>VALUE-004</td><td>plan</td><td>`python3 sources/run_conformance.py --select length</td><td>type</td><td>sqrt</td><td>floor</td><td>tonumber`</td><td>jq-manual.txt types and numeric builtins</td></tr><tr><td>FLOW-001</td><td>plan</td><td>`python3 sources/run_conformance.py --select \+</td><td>\-</td><td>\*</td><td>/</td><td>%`</td><td>jq-manual.txt builtin operators</td></tr><tr><td>FLOW-002</td><td>plan</td><td>`python3 sources/run_conformance.py --select and</td><td>or</td><td>not</td><td>//`</td><td>jq-manual.txt conditionals and comparisons</td></tr><tr><td>FLOW-003</td><td>plan</td><td>`python3 sources/run_conformance.py --select if</td><td>try</td><td>\?`</td><td>jq-manual.txt conditionals and try-catch</td></tr><tr><td>FLOW-004</td><td>plan</td><td>`python3 sources/run_conformance.py --select label</td><td>break`</td><td>jq-manual.txt breaking out of control structures</td></tr><tr><td>FLOW-005</td><td>plan</td><td>`python3 sources/run_conformance.py --select reduce</td><td>foreach</td><td>limit</td><td>skip</td><td>nth</td><td>first</td><td>last`</td><td>jq-manual.txt advanced generators</td></tr><tr><td>FLOW-006</td><td>plan</td><td>`python3 sources/run_conformance.py --select while</td><td>until</td><td>recurse</td><td>repeat`</td><td>jq-manual.txt recursive generators</td></tr><tr><td>FUNC-001</td><td>plan</td><td>`python3 sources/run_conformance.py --select as \$</td><td>\$[A-Za-z]`</td><td>jq-manual.txt variable binding</td></tr><tr><td>FUNC-002</td><td>plan</td><td><code>python3 sources/run_conformance.py --select def .*\(</code></td><td>jq-manual.txt defining functions</td></tr><tr><td>FUNC-003</td><td>plan</td><td><code>python3 sources/run_conformance.py --select def</code></td><td>jq-manual.txt function scoping and recursion</td></tr><tr><td>FUNC-004</td><td>plan</td><td>`python3 sources/run_conformance.py --select \?//</td><td>as \{`</td><td>jq-manual.txt destructuring alternatives</td></tr><tr><td>PATH-001</td><td>plan</td><td>`python3 sources/run_conformance.py --select path\(</td><td>paths</td><td>pick\(`</td><td>jq-manual.txt paths</td></tr><tr><td>PATH-002</td><td>plan</td><td>`python3 sources/run_conformance.py --select getpath</td><td>setpath</td><td>delpaths`</td><td>jq-manual.txt path primitives</td></tr><tr><td>PATH-003</td><td>plan</td><td>`python3 sources/run_conformance.py --select =</td><td>\</td><td>=</td><td>\+=`</td><td>jq-manual.txt assignment</td></tr><tr><td>PATH-004</td><td>plan</td><td>`python3 sources/run_conformance.py --select negative</td><td>NaN</td><td>depth</td><td>empty`</td><td>jq.test assignment edge cases</td></tr><tr><td>DATA-001</td><td>plan</td><td>`python3 sources/run_conformance.py --select map</td><td>flatten</td><td>transpose</td><td>combinations</td><td>walk`</td><td>builtin.jq collection utilities</td></tr><tr><td>DATA-002</td><td>plan</td><td>`python3 sources/run_conformance.py --select sort</td><td>group_by</td><td>unique</td><td>min</td><td>max`</td><td>jq-manual.txt collection ordering</td></tr><tr><td>DATA-003</td><td>plan</td><td>`python3 sources/run_conformance.py --select keys</td><td>has\(</td><td>contains</td><td>inside</td><td>to_entries</td><td>from_entries`</td><td>jq-manual.txt object and containment builtins</td></tr><tr><td>DATA-004</td><td>plan</td><td>`python3 sources/run_conformance.py --select indices</td><td>index\(</td><td>rindex</td><td>bsearch</td><td>any</td><td>all</td><td>IN\(`</td><td>builtin.jq generic iterator and membership utilities</td></tr><tr><td>TEXT-001</td><td>plan</td><td>`python3 sources/run_conformance.py --select split</td><td>join</td><td>trim</td><td>ascii_</td><td>explode</td><td>implode</td><td>startswith</td><td>endswith`</td><td>jq-manual.txt string builtins</td></tr><tr><td>TEXT-002</td><td>plan</td><td>`python3 sources/run_conformance.py --select @text</td><td>@json</td><td>@html</td><td>@uri</td><td>@csv</td><td>@tsv</td><td>@sh</td><td>@base64`</td><td>jq-manual.txt format strings and escaping</td></tr><tr><td>TEXT-003</td><td>plan</td><td>`python3 sources/run_conformance.py --select test\(</td><td>match\(</td><td>capture\(</td><td>scan\(</td><td>sub\(</td><td>gsub\(`</td><td>jq-manual.txt regular expressions</td></tr><tr><td>TEXT-004</td><td>plan</td><td>`python3 sources/run_conformance.py --select date</td><td>strftime</td><td>strptime</td><td>gmtime</td><td>mktime`</td><td>jq-manual.txt dates</td></tr><tr><td>IO-001</td><td>plan</td><td>`python3 sources/run_conformance.py --select input</td><td>inputs`</td><td>jq-manual.txt I/O</td></tr><tr><td>IO-002</td><td>plan</td><td>`python3 sources/run_conformance.py --select debug</td><td>stderr</td><td>halt_error`</td><td>jq-manual.txt diagnostics</td></tr><tr><td>IO-003</td><td>plan</td><td>`python3 sources/run_conformance.py --select tostream</td><td>fromstream</td><td>truncate_stream`</td><td>jq-manual.txt streaming</td></tr><tr><td>CONF-001</td><td>plan</td><td><code>python3 sources/run_conformance.py --list</code></td><td>Build Instructions: source roles and staged assets</td></tr><tr><td>CONF-002</td><td>plan</td><td><code>python3 sources/run_conformance.py --select reduce</code></td><td>Build Instructions: scoped verification</td></tr><tr><td>CONF-003</td><td>plan</td><td><code>sh sources/full_test.sh</code></td><td>Sea Trials and definition of done</td></tr></tbody></table></div>
<h2>Surfaced Acceptance Criteria</h2>
<div class="scroll"><table><thead><tr><th>ID</th><th>Story ID</th><th>Criterion</th></tr></thead><tbody><tr><td>AC-001</td><td>EXEC-001</td><td>The executable is named <code>jq</code>, is executable at the application root, and accepts only the exercised <code>-c</code> interface.</td></tr><tr><td>AC-002</td><td>EXEC-003</td><td>Output comparison preserves value order and emits one JSON value per output line.</td></tr><tr><td>AC-003</td><td>PARSE-004</td><td>Module syntax is parsed sufficiently to reject invalid module grammar without loading excluded module fixtures.</td></tr><tr><td>AC-004</td><td>CONF-001</td><td>Read-only scoring assets remain byte-for-byte unchanged and all staged runtime dependencies are present.</td></tr><tr><td>AC-005</td><td>CONF-002</td><td>Scoped checks use a selector matching the story's construct and never use the unscoped full corpus before the terminal story.</td></tr></tbody></table></div>
<h2>Source Inventory</h2>
<div class="scroll"><table><thead><tr><th>Path</th><th>Content kind</th><th>Disposition</th><th>Reason</th></tr></thead><tbody><tr><td><code>sources/INSTRUCTIONS.md</code></td><td>markdown</td><td>analyzed</td><td>readable UTF-8</td></tr><tr><td><code>sources/builtin.jq</code></td><td>text</td><td>analyzed</td><td>readable UTF-8</td></tr><tr><td><code>sources/exclusions.txt</code></td><td>text</td><td>analyzed</td><td>readable UTF-8</td></tr><tr><td><code>sources/full_test.sh</code></td><td>code</td><td>analyzed</td><td>readable UTF-8</td></tr><tr><td><code>sources/jq-manual.txt</code></td><td>text</td><td>chunked</td><td>split into 11 bounded chunks</td></tr><tr><td><code>sources/jq.test</code></td><td>text</td><td>chunked</td><td>split into 5 bounded chunks</td></tr><tr><td><code>sources/lexer.l</code></td><td>text</td><td>analyzed</td><td>readable UTF-8</td></tr><tr><td><code>sources/parser.y</code></td><td>text</td><td>analyzed</td><td>readable UTF-8</td></tr><tr><td><code>sources/run_conformance.py</code></td><td>code</td><td>analyzed</td><td>readable UTF-8</td></tr></tbody></table></div>
<h2>Relationship Model</h2>
<div class="scroll"><table><thead><tr><th>Source or group</th><th>Relationship type</th><th>Related source or group</th><th>Evidence</th><th>Delivery implication</th></tr></thead><tbody><tr><td><code>sources/lexer.l</code></td><td>parser-to-normalizer</td><td><code>sources/parser.y</code></td><td>Lexer tokens and parser productions define the language front end.</td><td>Build lexer behavior before parser execution.</td></tr><tr><td><code>sources/parser.y</code></td><td>instruction-to-test</td><td><code>sources/jq.test</code></td><td>Grammar and precedence are exercised by syntax and <code>%%FAIL</code> cases.</td><td>Parser stories require focused corpus slices.</td></tr><tr><td><code>sources/jq-manual.txt</code></td><td>reference-to-replacement</td><td>implementation stories</td><td>Manual defines filter semantics and builtin behavior.</td><td>Use as normative behavior reference.</td></tr><tr><td><code>sources/builtin.jq</code></td><td>reference-to-replacement</td><td>DATA, TEXT, FLOW, PATH, IO stories</td><td>Reference definitions specify many builtin compositions.</td><td>Implement the generator core before these builtins.</td></tr><tr><td><code>sources/jq.test</code></td><td>test-kit-to-implementation</td><td><code>jq</code></td><td>Corpus supplies program, input, and expected output cases.</td><td>Stage unchanged and execute through the harness.</td></tr><tr><td><code>sources/run_conformance.py</code></td><td>test-kit-to-implementation</td><td><code>jq</code></td><td>Runner invokes <code>JQ -c program</code> and checks exit/output semantics.</td><td>Preserve the executable interface and scoped verification.</td></tr><tr><td><code>sources/full_test.sh</code></td><td>test-kit-to-implementation</td><td><code>sources/run_conformance.py</code></td><td>Full script checks executable presence and delegates the complete run.</td><td>Reserve for the terminal acceptance story and Sea Trial.</td></tr><tr><td><code>sources/exclusions.txt</code></td><td>test-kit-to-implementation</td><td><code>sources/jq.test</code></td><td>Exclusions identify module-loader cases by exact program text.</td><td>Apply skips through the supplied harness only.</td></tr><tr><td><code>sources/INSTRUCTIONS.md</code></td><td>instruction-to-test</td><td>all implementation and conformance stories</td><td>Build order, prohibitions, interface, and definition of done are explicit.</td><td>Treat as author intent and project guardrails.</td></tr></tbody></table></div>
<h2>Source Roles</h2>
<div class="scroll"><table><thead><tr><th>Path</th><th>Role</th><th>Plan disposition</th><th>Build disposition</th></tr></thead><tbody><tr><td><code>sources/INSTRUCTIONS.md</code></td><td>author intent</td><td>compass</td><td>prompt-only</td></tr><tr><td><code>sources/jq-manual.txt</code></td><td>normative specification</td><td>context</td><td>stage</td></tr><tr><td><code>sources/jq.test</code></td><td>normative specification and conformance test suite</td><td>context</td><td>stage</td></tr><tr><td><code>sources/parser.y</code></td><td>normative specification</td><td>context</td><td>stage</td></tr><tr><td><code>sources/lexer.l</code></td><td>normative specification</td><td>context</td><td>stage</td></tr><tr><td><code>sources/builtin.jq</code></td><td>reference implementation</td><td>context</td><td>stage</td></tr><tr><td><code>sources/run_conformance.py</code></td><td>conformance harness</td><td>context</td><td>stage</td></tr><tr><td><code>sources/full_test.sh</code></td><td>conformance harness</td><td>context</td><td>stage</td></tr><tr><td><code>sources/exclusions.txt</code></td><td>conformance harness</td><td>context</td><td>stage</td></tr></tbody></table></div>
<h2>Planning Instructions</h2>
<h3>Delivery Shape</h3>
<p>Deliver a standalone executable Python jq interpreter. It parses a jq filter, evaluates it over JSON input as an ordered stream of values, and writes compact JSON outputs. The execution flow is lexer/parser, AST or equivalent intermediate representation, generator evaluator, builtin/function runtime, and CLI serialization. The staged conformance runner drives one process per corpus case; excluded module-loader cases are skipped by the supplied exclusion list.</p>
<h3>Story Realization Map</h3>
<div class="scroll"><table><thead><tr><th>Story IDs</th><th>Durable Blueprint scope</th><th>Evidence</th><th>Related files</th><th>Delivery kind</th></tr></thead><tbody><tr><td>EXEC-001–003</td><td>executable CLI and JSON process boundary</td><td><code>sources/INSTRUCTIONS.md</code>, <code>sources/run_conformance.py</code></td><td><code>jq</code></td><td>capability and acceptance contract</td></tr><tr><td>PARSE-001–004</td><td>lexer, parser, syntax diagnostics</td><td><code>sources/lexer.l</code>, <code>sources/parser.y</code>, <code>sources/jq.test</code></td><td><code>jq</code></td><td>capability</td></tr><tr><td>CORE-001–004</td><td>stream evaluator and runtime errors</td><td><code>sources/INSTRUCTIONS.md</code>, <code>sources/jq-manual.txt</code></td><td><code>jq</code></td><td>capability</td></tr><tr><td>VALUE-001–004</td><td>value model, accessors, numeric behavior</td><td><code>sources/jq-manual.txt</code>, <code>sources/jq.test</code></td><td><code>jq</code></td><td>capability</td></tr><tr><td>FLOW-001–006</td><td>operators and control constructs</td><td><code>sources/builtin.jq</code>, <code>sources/parser.y</code>, <code>sources/jq.test</code></td><td><code>jq</code></td><td>capability</td></tr><tr><td>FUNC-001–004</td><td>bindings, functions, patterns</td><td><code>sources/parser.y</code>, <code>sources/jq.test</code></td><td><code>jq</code></td><td>capability</td></tr><tr><td>PATH-001–004</td><td>paths and immutable updates</td><td><code>sources/jq-manual.txt</code>, <code>sources/jq.test</code></td><td><code>jq</code></td><td>capability</td></tr><tr><td>DATA-001–004</td><td>collection and relational builtins</td><td><code>sources/builtin.jq</code>, <code>sources/jq-manual.txt</code></td><td><code>jq</code></td><td>capability</td></tr><tr><td>TEXT-001–004</td><td>strings, formats, regex, dates</td><td><code>sources/builtin.jq</code>, <code>sources/jq-manual.txt</code></td><td><code>jq</code></td><td>capability</td></tr><tr><td>IO-001–003</td><td>input, diagnostics, streaming</td><td><code>sources/jq-manual.txt</code>, <code>sources/jq.test</code></td><td><code>jq</code></td><td>capability</td></tr><tr><td>CONF-001–003</td><td>staged assets, scoped runner use, terminal verification</td><td><code>sources/INSTRUCTIONS.md</code>, <code>sources/run_conformance.py</code>, <code>sources/full_test.sh</code></td><td><code>sources/*</code></td><td>test harness and acceptance contract</td></tr></tbody></table></div>
<h3>Test and Acceptance Strategy</h3>
<p>Implementation stories use focused <code>sources/run_conformance.py --select</code> slices matching their construct. Parser stories also exercise the supplied <code>%%FAIL</code> cases. No intermediate story runs <code>full_test.sh</code> or the unscoped runner. <code>CONF-003</code> is the sole terminal full-suite story and declares <code>Suite: full</code>; it depends on all implementation stories and asserts only the full harness exit status. Sea Trial <code>st-001</code> proves the same complete corpus requirement.</p>
<h3>Sequencing and Dependencies</h3>
<p>Build the executable boundary first, then lexer/parser, then generator evaluation and value semantics. Implement paths and assignment after accessors and generators. Add control flow and functions before higher-level builtins. Implement collection, text, regex, date, I/O, and streaming groups afterward. Stage all assets before acceptance execution. The terminal full-suite verification is last and depends on every implementation story. No external service or package dependency exists.</p>
<h3>Source Conflicts and Gaps</h3>
<p>No unresolved cross-source conflicts or blockers were found. The fixed Python standard-library runtime, executable contract, complete-corpus gate, excluded module-loader cases, and forbidden third-party implementations are consistent across the supplied instructions, harness, corpus, manual, lexer, parser, and builtin reference.</p>
<h2>Analysis Notes</h2>
<p>generated: 2026-08-22T00:00:00Z blueprint: /mnt/c/Users/barlo/projects/drydock/uat/jq/runs/20260822.044627/workspace/targets/jq/blueprint</p>
<p>Quality: Ready blockers: 0 questions: 0 features: 10 stories: 42 stack: Python standard library display_name: not proposed short_description: not proposed</p>
<p>The project type is <code>cli</code>. The source-defined story breakdown is broad but remains below the 100-story blocker threshold. The 42-story decomposition follows the supplied implementation order and major manual/conformance domains.</p></article></section><section class="panel" id="panel-plan-metadata"><h2>METADATA.md</h2><p class="note">The Target's identity and lifecycle state. Source: <a class="mono" href="view/workspace/METADATA.md.html" target="_blank" rel="noopener">workspace/METADATA.md</a>.</p><article class="doc"><h1>AUTHORITATIVE PROJECT METADATA — FIELDS SHOULD BE CURRENT</h1>
<p>name: jq display_name: drydock jq Uat Kit short_description: Flagship drydock UAT kit. ~620 conformance test conditions from the upstream jq test suite (46 excluded, reasons in exclusions.txt). Provenance: byte-for-byte upstream files from github.com/jqlang/jq at tag jq-1.8.2, SHA-256 verified in PROVENANCE.md. last_analyzed: 2026-08-22 version: 0.19 updated: 2026-08-23T12:16:56+00:00 build_sub_state: complete build_state: built last_planned: 2026-08-22 last_built: 2026-08-23</p></article></section><section class="panel" id="panel-plan-compass"><h2>COMPASS.md</h2><p class="note">The standing guidance every block was built under. Source: <a class="mono" href="view/workspace/COMPASS.md.html" target="_blank" rel="noopener">workspace/COMPASS.md</a>.</p><article class="doc"><h1>COMPASS: jq</h1>
<h2>Compass</h2>
<p>Build a standalone interpreter for the jq language as described in <code>sources/jq-manual.txt</code>. The product is an executable file named <code>jq</code> at the application root. It reads JSON from standard input, evaluates a jq filter as an ordered generator, and writes each value the filter produces to standard output as one compact JSON value per line.</p>
<p>Correctness is measured by the upstream jq conformance corpus <code>sources/jq.test</code>, taken verbatim from jq 1.8.2, minus the cases named in <code>sources/exclusions.txt</code>. The goal is every case passing, none failed and none errored.</p>
<h2>Constraints</h2>
<ul><li>Implement in Python using only the standard library.</li><li>Provide an executable named <code>jq</code> at the application root, invoked as <code>./jq -c '<program>'</code>.</li><li><code>-c</code> is the only option exercised. No other command-line option is required.</li><li>Run without network access, package installation, or external runtime dependencies.</li><li>Exit <code>0</code> when the program compiled and ran to completion, <code>3</code> when it did not compile, and <code>5</code></li></ul>
<p>when it compiled and raised at run time. The harness grades on this distinction.</p>
<ul><li>Diagnostics go to standard error and are never compared.</li></ul>
<h2>Guardrails</h2>
<ul><li>Do not shell out to a system <code>jq</code> executable.</li><li>Do not use a third-party jq implementation or binding.</li><li>Do not modify, rewrite, trim, regenerate, or substitute any file under <code>sources/</code>. Those assets</li></ul>
<p>are restored before grading and an edit is reported as tampering.</p>
<ul><li>Preserve generator ordering, multiplicity, backtracking, and partial-output runtime behavior.</li><li>Keep compile failures distinct from runtime failures using exit codes 3 and 5.</li></ul>
<h2>Verification Protocol</h2>
<p>This section is normative. It governs which story may invoke the supplied harness, and how.</p>
<h3>Invoking the harness</h3>
<p><code>sources/run_conformance.py</code> <strong>requires</strong> the environment variable <code>JQ</code>, the command that runs the candidate implementation. Without it the harness exits <code>2</code> on its own usage code, which is a harness fault and never a verdict about the interpreter. Every invocation, in every acceptance criterion and every developer command, supplies it:</p>
<pre><code>JQ="$PWD/jq" python3 sources/run_conformance.py # whole corpus, the scored run
JQ="$PWD/jq" python3 sources/run_conformance.py --select 'reduce' # run one construct for real</code></pre>
<p>Those two commands are the only ways this build runs the harness. They are specified verbatim below under <em>The two harness invocations</em>, together with the flag this build forbids.</p>
<p><code>sources/</code> is read only. No story edits, patches, or regenerates <code>sources/run_conformance.py</code>, <code>sources/jq.test</code>, or <code>sources/exclusions.txt</code>; a harness defect is reported, not repaired in place. A story that needs to experiment with the harness works on a copy outside <code>sources/</code>, and every acceptance criterion invokes the original <code>sources/run_conformance.py</code>.</p>
<p>An acceptance criterion written in Python supplies it by <strong>extending</strong> the inherited environment, never by replacing it:</p>
<pre><code>env={**os.environ, "JQ": str(build_dir / "jq")}</code></pre>
<p><code>env={"JQ": ...}</code> alone leaves the child with no <code>PATH</code>, so nothing it invokes resolves and the criterion is false at every level of implementation quality.</p>
<p><code>sources/full_test.sh</code> sets <code>JQ</code> itself for the runner it wraps and therefore takes no environment from its caller.</p>
<p>The harness reserves exit <code>2</code> for its own faults — a missing corpus, an unset <code>JQ</code>, a stale exclusion list. Exit <code>2</code> never means the interpreter is wrong.</p>
<p>The summary line is:</p>
<pre><code>jq conformance: NNN passed, N failed, N errored, N skipped (corpus jq.test @ jq-1.8.2)</code></pre>
<h3>The two harness invocations</h3>
<p>An acceptance criterion that runs <code>sources/run_conformance.py</code> uses one of these two commands. No criterion in this build passes any other flag to the harness.</p>
<div class="scroll"><table><thead><tr><th>Story kind</th><th>Command</th><th>Executes cases?</th><th>Asserts</th></tr></thead><tbody><tr><td>Every behavioral story</td><td><code>--select <regex> --json</code></td><td>Yes, the selected slice</td><td>exit <code>0</code>, zero <code>fail</code>, zero <code>error</code>, non-zero case count</td></tr><tr><td>Terminal story (once, last)</td><td><code>sh sources/full_test.sh</code></td><td>Yes, all of them</td><td>exit <code>0</code></td></tr></tbody></table></div>
<p>The staging story does not appear in this table. It does not run the harness at all; see <em>The staging story</em> below.</p>
<h4><code>--list</code> is never run</h4>
<p><code>sources/run_conformance.py</code> accepts a flag, spelled <code>--list</code>, that prints the names of the matching cases and then exits without executing any of them. <code>sources/INSTRUCTIONS.md</code>, the file header, and <code>--help</code> all document it.</p>
<p><strong>This build never runs it. Not in an acceptance criterion, not in a story, not in a script, not in a command typed by a build agent, not while developing and not while verifying. The string <code>--list</code> does not appear anywhere in this project's output. If you have written it, that line is wrong — delete it and use one of the two commands above.</strong></p>
<p>A Drydock build is headless. There is no one watching the output, so a mode whose entire purpose is to print something for a person to read has no reader and no reason to run.</p>
<p>The flag returns <code>0</code> at the top of the run — before the harness reads <code>JQ</code>, before it resolves the candidate command, before it executes a single case. A criterion built on it passes when <code>jq</code> is an empty file, when <code>jq</code> does not exist, and when the story it gates was never written. It is not a weak proof, not a partial proof, and not an acceptable proof for staging, for scaffolding, or for an early story whose implementation is incomplete. It is not a proof. Thirty-six criteria in one earlier plan of this project used it, every one of them reported green, and it cost three days.</p>
<p>If you are writing a criterion and reaching for that flag, the reason is always the same: the story's code does not exist yet and you want a command that will not fail. That is the definition of a criterion that proves nothing. Write the <code>--select ... --json</code> form instead and let it be red until the story makes it green. <strong>A criterion is supposed to fail before its story is built.</strong></p>
<p>The same prohibition covers any other flag whose effect is to not execute the cases — enumeration, dry-run, validation, or help. If a flag's documented purpose is "run nothing", it has no place in an acceptance criterion.</p>
<h4>Behavioral criterion — copy this, changing only <code>SELECT</code></h4>
<pre><code>import json
import os
import subprocess
import sys
SELECT = r"reduce"
result = subprocess.run(
[sys.executable, "sources/run_conformance.py", "--select", SELECT, "--json"],
capture_output=True,
text=True,
env={**os.environ, "JQ": f"{os.getcwd()}/jq"},
)
print(result.stdout)
print(result.stderr, file=sys.stderr)
report = json.loads(result.stdout)
tally = report["summary"]
assert sum(tally.values()) > 0, f"selector matched no case: {SELECT}"
assert tally["fail"] == 0 and tally["error"] == 0, tally
assert result.returncode == 0, result.returncode</code></pre>
<p>Three assertions, and all three are required.</p>
<ol><li><strong>The selector matched something.</strong> <code>--select</code> is a regular expression matched against the</li></ol>
<p>program text of each case. A selector that matches nothing yields zero cases, zero failures, and exit <code>0</code> — green, and worth nothing. Alternations naming ideas rather than syntax (<code>closure</code>, <code>recursive</code>, <code>optional</code>) match no jq program and are the common way to write one by accident. Select on syntax the corpus actually contains: <code>reduce</code>, <code>foreach</code>, <code>def</code>, <code>as \$</code>, <code>try</code>, <code>//</code>, <code>path(</code>.</p>
<ol><li><strong>No case failed or errored.</strong> Read off the parsed JSON tally, not off any printed line.</li><li><strong>The exit status is <code>0</code>.</strong> The harness returns <code>0</code> only when <code>fail</code> and <code>error</code> are both zero,</li></ol>
<p>and reserves <code>2</code> for its own faults — a missing corpus, an unset <code>JQ</code>, a stale exclusion list. Exit <code>2</code> is never a verdict about the interpreter.</p>
<p><code>--json</code> writes the report and nothing else to stdout, so <code>json.loads(result.stdout)</code> is total. Do not assert against the human summary line, and do not grep stdout for <code>passed</code> or <code>failed</code>.</p>
<h3>The terminal story</h3>
<p>The <strong>terminal story</strong> is the last story in the build order: the one on which every other story is a transitive dependency, and after which no further story runs. It is a verification story. Its job is not to add capability but to prove that the capability every preceding story delivered is present, together, at the end of the build.</p>
<p>The terminal story of this project runs <code>sh sources/full_test.sh</code>, asserts <code>returncode == 0</code>, prints the captured stdout and stderr so a failure is diagnosable from the evidence alone, and carries the Sea Trial. It is the only story permitted to run the whole corpus.</p>
<p>A story is not terminal because its name contains "verify", because it is a test harness, or because it stages the test assets. Staging the corpus is foundational work that happens early; running the corpus is terminal work that happens last. Do not place a whole-corpus gate on a story that cannot yet run it — it fails vacuously and teaches nothing.</p>
<h3>Scope of every other story</h3>
<p>Every non-terminal story is gated on its own declared behavior only, through <code>--select</code> against the constructs that story implements, and the criterion asserts the selected slice passes. A non-terminal story never invokes <code>sources/full_test.sh</code> and never runs the corpus unfiltered: a partial interpreter fails most of an authoritative corpus by construction, and its unimplemented cases exhaust the harness's per-case timeout rather than returning, so the unscoped run costs the most exactly where it teaches the least.</p>
<p>Regression across stories is not the responsibility of any story's criteria. Drydock re-runs every previously proven criterion after each block and attributes a criterion that was green and is now red to the block that broke it, so a criterion proven at story 2 and broken at story 6 fails story</p>
<ol><li>Do not author a mid-build story whose purpose is to re-run earlier stories' checks.</li></ol>
<h3>The staging story</h3>
<p>The story that stages the conformance assets is gated on the assets being present, complete, and mutually consistent — not on a bare file-existence assertion, and not on the corpus running. It proves that in process, by importing the harness and calling its parsers directly. It never launches the harness, so the question of which flags to pass does not arise:</p>
<pre><code>import sys
sys.path.insert(0, "sources")
import run_conformance as harness
EXPECTED_CASES = 550
EXPECTED_EXCLUSIONS = 13
cases = harness.parse_corpus(harness.CORPUS.read_text(encoding="utf-8"))
excluded = harness.apply_exclusions(cases, harness.parse_exclusions(harness.EXCLUSIONS))
assert len(cases) == EXPECTED_CASES, len(cases)
assert len(excluded) == EXPECTED_EXCLUSIONS, len(excluded)</code></pre>
<p>This reads state rather than output: the harness module imports, the corpus parses into the expected number of cases, and every exclusion still matches a case — <code>apply_exclusions</code> raises on a stale entry, so a corpus and an exclusion list that have drifted apart fail here rather than silently skipping cases later.</p>
<p>It claims nothing about the interpreter, because at this point in the build there is nothing to claim. Every story that claims a construct works runs that construct through <code>--select ... --json</code>.</p>
<h2>The corpus</h2>
<p><code>sources/jq.test</code> documents its own format in its header. Cases are separated by blank lines; blank lines and <code>#</code> lines are ignored. A case is a program line, an input line, and then the expected output values, one per line. A case preceded by <code>%%FAIL</code> is a program that must be rejected at compile time; the following lines are upstream jq's diagnostic, which the harness records but never compares. Reproducing jq's exact error text is reverse-engineering a C implementation rather than conforming to a specification, so a <code>%%FAIL</code> case passes on exit <code>3</code> alone.</p>
<p>Values are compared structurally, not textually. <code>1</code> and <code>1.0</code> are the same jq value, and so are two objects whose keys print in a different order. Output formatting is therefore not under test, but the number and order of values is.</p>
<p><code>sources/exclusions.txt</code> names the corpus cases this kit cannot run, with the reason. They are the module-loader cases, whose <code>import</code> and <code>include</code> resolve against a search path of fixture files a flat source import cannot carry. They are reported as <code>skipped</code> and are not part of the score.</p>
<p>The module <em>grammar</em> cases are not excluded and must pass. <code>module (.+1); 0</code>, <code>module []; 0</code>, <code>include "a" (.+1); 0</code>, <code>include "a" []; 0</code>, <code>include "\ "; 0</code>, <code>include "\(a)"; 0</code>, and <code>%::wat</code> are all <code>%%FAIL</code> cases: the front end parses the module syntax far enough to reject them, without ever touching the filesystem.</p>
<p><!-- drydock:build-write-guardrail:start --></p>
<h2>Build Write Guardrail</h2>
<ul><li>Authorized build directory: <code>/mnt/c/Users/barlo/projects/drydock/uat/jq/runs/20260822.044627/build/jq</code></li><li>Authorized Target directory: <code>/mnt/c/Users/barlo/projects/drydock/uat/jq/runs/20260822.044627/workspace/targets/jq</code></li><li>Build agents have permission to create, modify, and remove files required by the active build block inside these authorized directories.</li><li>No path outside these authorized directories may be modified.</li><li>Protected Drydock artifacts:<ul><li><code>/mnt/c/Users/barlo/projects/drydock/uat/jq/runs/20260822.044627/workspace/targets/jq/blueprint/</code></li><li><code>/mnt/c/Users/barlo/projects/drydock/uat/jq/runs/20260822.044627/workspace/targets/jq/MANIFEST.md</code></li><li><code>/mnt/c/Users/barlo/projects/drydock/uat/jq/runs/20260822.044627/workspace/targets/jq/COMPASS.md</code></li><li><code>/mnt/c/Users/barlo/projects/drydock/uat/jq/runs/20260822.044627/workspace/targets/jq/QuarterDeck/</code></li><li><code>/mnt/c/Users/barlo/projects/drydock/uat/jq/runs/20260822.044627/workspace/targets/jq/evidence/</code></li></ul></li></ul>
<p><!-- drydock:build-write-guardrail:end --></p></article></section><section class="panel" id="panel-plan-stack"><h2>TECHNOLOGY_STACK.md</h2><p class="note">The technology the plan committed to. Source: <a class="mono" href="view/workspace/TECHNOLOGY_STACK.md.html" target="_blank" rel="noopener">workspace/TECHNOLOGY_STACK.md</a>.</p><article class="doc"><h1>Technology Stack</h1>
<p><strong>Approved:</strong> 2026-08-14</p>
<p>Technology decisions of record for this Target. One row per technology, naming the Rigging best-practice file that governs building it.</p>
<p>A <code>—</code> in the Rigging column means no Rigging guidance exists for that technology; the builder applies general best practice instead. Adding a row never requires a matching Rigging file.</p>
<p>This file is owned by the UAT kit. It is seeded into the Target before <code>analyze</code>, which never overwrites it, and <code>drydock plan</code> reads it to assign per-story <code>stack:</code> guidance.</p>
<div class="scroll"><table><thead><tr><th>Technology</th><th>Rigging</th><th>Notes</th></tr></thead><tbody><tr><td>Python</td><td>python.md</td><td>Python 3.11 or newer. Standard library only; the deliverable declares no third-party runtime dependency.</td></tr><tr><td>Shell</td><td>common.md</td><td>POSIX sh for the supplied scoring entry point.</td></tr></tbody></table></div></article></section><section class="panel" id="panel-plan-sea-trials"><h2>SEA_TRIALS.md</h2><p class="note">The trials declared for this Target. Source: <a class="mono" href="view/workspace/SEA_TRIALS.md.html" target="_blank" rel="noopener">workspace/SEA_TRIALS.md</a>.</p><article class="doc"><h1>Sea Trials: jq</h1>
<h2>Policy</h2>
<div class="scroll"><table><thead><tr><th>Consequence</th><th>On FAIL</th><th>On INCONCLUSIVE</th></tr></thead><tbody><tr><td>blocks</td><td>fail</td><td>attest</td></tr><tr><td>scores</td><td>score</td><td>score</td></tr><tr><td>attests</td><td>report</td><td>report</td></tr></tbody></table></div>
<h2>st-001: The supplied scoring script passes</h2>
<p>Type: technical<br>Required: yes<br>Criterion: The completed interpreter shall make sh sources/full_test.sh exit zero; that script's exit status is the sole acceptance verdict.<br>Testability: deterministic<br>Consequence: blocks<br>Verification: proof<br>Command: ["sh", "sources/full_test.sh"]<br>Pattern: ubiquitous</p></article></section><section class="panel" id="panel-plan-soundings"><h2>SOUNDINGS.md</h2><p class="note">What the run measured about itself. Source: <a class="mono" href="view/workspace/SOUNDINGS.md.html" target="_blank" rel="noopener">workspace/SOUNDINGS.md</a>.</p><article class="doc"><h1>Soundings</h1>
<p>Per-assertion acceptance board, one row per Blueprint Programmatic Acceptance check. <code>drydock plan</code> projects every assertion as <code>— UNVERIFIED</code>; <code>drydock score ac</code> sets the Status column from deterministic proof results. A rerun of <code>drydock plan</code> resets Status to <code>— UNVERIFIED</code>; rescore to refresh.</p>
<div class="scroll"><table><thead><tr><th>Status</th><th>Blueprint</th><th>AC Id</th><th>Text</th><th>Evidence</th><th>Verified At</th></tr></thead><tbody><tr><td>~ PREPASSED</td><td>ARCHITECTURE.md</td><td>architecture-runtime</td><td>The declared runtime stack is available using only Python standard-library modules.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>ARCHITECTURE.md</td><td>architecture-contract</td><td>The staged conformance runner exposes the process exit-code contract required by the architecture.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-EXEC-001.md</td><td>exec-entry-conformance</td><td>The executable entry point passes the corpus slice containing the primitive interface programs.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-EXEC-001.md</td><td>exec-is-runnable</td><td>The deliverable is directly executable at the application root.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-EXEC-002.md</td><td>compile-exit-code</td><td>A syntactically invalid jq program returns the compile-failure status.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-EXEC-002.md</td><td>runtime-exit-code</td><td>A compiled jq program that raises returns the runtime-failure status.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-EXEC-002.md</td><td>partial-runtime-output</td><td>Values emitted before a runtime error remain available on stdout.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-EXEC-003.md</td><td>multiple-input-values</td><td>Multiple JSON input values are processed in order and emitted one per line.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>✓ PASS</td><td>FEATURE-EXEC-003.md</td><td>generator-line-output</td><td>Multiple outputs generated from one input preserve order and multiplicity.</td><td></td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-EXEC-003.md</td><td>compact-json-output</td><td>Generated objects are serialized as single-line JSON values.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-CONF-001.md</td><td>conf-001-assets</td><td>The staged corpus parses into the authoritative case set and all declared exclusions match cases.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-PARSE-001.md</td><td>lexer-conformance</td><td>The lexer and front end pass the corpus slice containing primitive literals and identity syntax.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-PARSE-001.md</td><td>lexer-rejects-invalid-source</td><td>An invalid lexical character is rejected with the compile-failure status.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>✓ PASS</td><td>FEATURE-PARSE-001.md</td><td>lexer-comments</td><td>Comments do not alter evaluation of the surrounding jq program.</td><td></td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>✓ PASS</td><td>FEATURE-PARSE-002.md</td><td>parse-002-conformance</td><td>The executable passes every selected corpus case covering interpolation, URI formatting, and Base64 formatting.</td><td></td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>✓ PASS</td><td>FEATURE-PARSE-003.md</td><td>parse-003-conformance</td><td>The executable passes every selected corpus case exercising expression punctuation, accessors, collections, and operators.</td><td></td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>✓ PASS</td><td>FEATURE-PARSE-004.md</td><td>parse-004-conformance</td><td>The executable passes every selected corpus case covering declarations, control syntax, bindings, reductions, labels, and required compile failures.</td><td></td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-CORE-001.md</td><td>core-001-conformance</td><td>The executable evaluates identity, empty, range, and generator ordering as ordered streams.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-CORE-002.md</td><td>core-002-conformance</td><td>The executable evaluates pipes, commas, arrays, objects, and composed operators.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-CORE-003.md</td><td>core-003-conformance</td><td>The executable evaluates optional errors and try/catch while preserving runtime failure distinction.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-CORE-004.md</td><td>core-004-conformance</td><td>The executable evaluates jq truthiness, equality, inequality, and ordering semantics.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>✓ PASS</td><td>FEATURE-VALUE-001.md</td><td>value-001-conformance</td><td>The authoritative corpus cases exercising jq values and special numeric behavior execute successfully.</td><td></td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-VALUE-002.md</td><td>value-002-conformance</td><td>The authoritative corpus cases exercising field and index access execute successfully.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-VALUE-003.md</td><td>value-003-conformance</td><td>The authoritative corpus cases exercising slices and collection iteration execute successfully.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>✓ PASS</td><td>FEATURE-VALUE-004.md</td><td>value-004-conformance</td><td>The implementation passes the authoritative corpus slice covering type, length, numeric predicates, conversions, and math functions.</td><td></td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-FLOW-001.md</td><td>flow-001-conformance</td><td>The implementation passes the authoritative corpus slice covering arithmetic and structural operators.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>✓ PASS</td><td>FEATURE-FLOW-002.md</td><td>flow-002-conformance</td><td>The implementation passes the authoritative corpus slice covering Boolean and alternative operators.</td><td></td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-FLOW-003.md</td><td>flow-003-conformance</td><td>The implementation passes the authoritative corpus slice covering conditionals, try/catch, and optional evaluation.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-FLOW-004.md</td><td>flow-004-conformance</td><td>The implementation passes the authoritative corpus slice covering labels and breaks.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>✓ PASS</td><td>FEATURE-FLOW-005.md</td><td>flow-005-conformance</td><td>The executable passes the authoritative conformance cases exercising reductions and iteration controls.</td><td></td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-FLOW-006.md</td><td>flow-006-conformance</td><td>The executable passes the authoritative conformance cases exercising recursive generators and recursive descent.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-FUNC-001.md</td><td>func-001-conformance</td><td>The executable passes the authoritative conformance cases exercising lexical bindings and variable lookup.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-FUNC-002.md</td><td>func-002-conformance</td><td>The executable passes the authoritative conformance cases exercising filter and value function parameters.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-FUNC-003.md</td><td>func-003-conformance</td><td>The executable passes the authoritative conformance cases exercising function definitions, scope, redefinition, and recursion.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-FUNC-004.md</td><td>func-004-conformance</td><td>The authoritative corpus slice covering destructuring patterns and alternative bindings executes and passes.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-PATH-001.md</td><td>path-001-conformance</td><td>The authoritative corpus slice covering path discovery and projection executes and passes.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-PATH-002.md</td><td>path-002-conformance</td><td>The authoritative corpus slice covering getpath, setpath, and delpaths executes and passes.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-PATH-003.md</td><td>path-003-conformance</td><td>The authoritative corpus slice covering deletion and assignment operators executes and passes.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-PATH-004.md</td><td>path-004-conformance</td><td>The authoritative corpus slice covering complex assignment edge cases executes and passes.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>✓ PASS</td><td>FEATURE-DATA-001.md</td><td>data-001-conformance</td><td>The collection transformation slice executes matching corpus cases and passes all selected cases.</td><td></td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-DATA-002.md</td><td>data-002-conformance</td><td>The sorting, grouping, uniqueness, and extrema slice executes matching corpus cases and passes all selected cases.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>✓ PASS</td><td>FEATURE-DATA-003.md</td><td>data-003-conformance</td><td>The object-entry, key, membership, and containment slice executes matching corpus cases and passes all selected cases.</td><td></td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>✓ PASS</td><td>FEATURE-DATA-004.md</td><td>data-004-conformance</td><td>The index, membership, quantifier, and emptiness slice executes matching corpus cases and passes all selected cases.</td><td></td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>✓ PASS</td><td>FEATURE-TEXT-001.md</td><td>text-001-conformance</td><td>The string manipulation slice executes matching corpus cases and passes all selected cases.</td><td></td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-TEXT-002.md</td><td>text-002-scoped-conformance</td><td>The authoritative corpus cases covering JSON conversion and output formats execute and pass.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-TEXT-002.md</td><td>text-002-formats</td><td>The corpus exercises the declared format families rather than an empty selector.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>✗ FAIL</td><td>FEATURE-TEXT-003.md</td><td>text-003-regex-conformance</td><td>The authoritative corpus cases covering regular-expression filters execute and pass.</td><td>assert sum(summary.values()) > 0 → AssertionError</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>✗ FAIL</td><td>FEATURE-TEXT-003.md</td><td>text-003-captures</td><td>The selected corpus includes matching, named capture, and replacement behavior.</td><td>assert sum(summary.values()) > 0 → AssertionError</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>✓ PASS</td><td>FEATURE-TEXT-004.md</td><td>text-004-date-conformance</td><td>The authoritative corpus cases covering date and time filters execute and pass.</td><td></td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>✓ PASS</td><td>FEATURE-TEXT-004.md</td><td>text-004-utc</td><td>The selected corpus exercises both ISO convenience filters and low-level UTC conversions.</td><td></td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-IO-001.md</td><td>io-001-input-conformance</td><td>The authoritative corpus cases covering input stream controls execute and pass.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-IO-001.md</td><td>io-001-streams</td><td>The selected corpus includes both single-next-input and remaining-input stream behavior.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>✓ PASS</td><td>FEATURE-IO-002.md</td><td>io-002-diagnostics-conformance</td><td>The authoritative corpus cases covering debug, stderr, and halt_error execute and pass.</td><td></td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>✓ PASS</td><td>FEATURE-IO-002.md</td><td>io-002-channels</td><td>The selected corpus exercises diagnostic filters while the conformance runner observes the declared process contract.</td><td></td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>✗ FAIL</td><td>FEATURE-IO-003.md</td><td>io-003-conformance</td><td>The streaming transformation cases selected from the authoritative corpus execute and pass.</td><td>assert sum(summary.values()) > 0 → AssertionError</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>~ PREPASSED</td><td>FEATURE-CONF-002.md</td><td>conf-002-scoped-run</td><td>The scoped verification assets expose the candidate binding and machine-readable selector contracts.</td><td>green at this block's baseline too, before its code existed — confirm the criterion exercises the story's work</td><td>2026-08-23T12:21:00+00:00</td></tr><tr><td>✓ PASS</td><td>FEATURE-CONF-003.md</td><td>conf-003-full-suite</td><td>The supplied complete conformance suite passes with a successful exit status.</td><td></td><td>2026-08-23T12:21:00+00:00</td></tr></tbody></table></div></article></section></div></section></div>
<footer>Generated by <code>drydock score report</code> from the command and execution journals this Target recorded. Every file listed is carried in this directory and hashed in <a class="mono" href="SHA256SUMS" target="_blank" rel="noopener">SHA256SUMS</a>. Record: <a class="mono" href="view/result.json.html" target="_blank" rel="noopener">result.json</a></footer>
</main>
<script>
document.addEventListener('click', function (event) {
var tab = event.target.closest('nav.tabs button[data-panel]');
if (!tab) return;
var root = tab.closest('[data-tabgroup]') || tab.closest('main');
// A nested strip lives inside its parent's panels, so only elements whose nearest
// tab group is this one are switched; an inner strip keeps its own selection.
var mine = function (element) {
return (element.closest('[data-tabgroup]') || root) === root;
};
root.querySelectorAll('nav.tabs button[data-panel]').forEach(function (button) {
if (mine(button)) button.setAttribute('aria-selected', String(button === tab));
});
root.querySelectorAll('.panel').forEach(function (panel) {
if (mine(panel)) panel.classList.toggle('active', panel.id === 'panel-' + tab.dataset.panel);
});
});
</script>
</body>
</html>
Run artifact