asw/archive/lab/editorial-test.html
exe.dev user e47a9f4401 asw-v01: archive deferred content (packs, site, lab, legacy examples)
- 2.1: packs/ -> archive/packs/
- 2.2: site/ -> archive/site/
- 2.3: src/lab/ -> archive/lab/
- 2.4: examples/ -> archive/examples-legacy/ (SSI-based)
2026-06-07 10:39:21 +02:00

399 lines
16 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en">
<head>
<!--#include virtual="/_include/head.html" -->
<title>Editorial Pipeline Test — ASW Docs</title>
<meta name="description" content="Comprehensive end-to-end test of the
ASW markdown-to-HTML pipeline. Every supported feature exercised.">
</head>
<body>
<!--#include virtual="/_include/nav.html" -->
<div data-layout="docs">
<!--#include virtual="/_include/sidebar.html" -->
<article>
<h1>Editorial Pipeline Test</h1>
<p data-text="lead">Comprehensive end-to-end test of the ASW
markdown-to-HTML pipeline. Every supported feature exercised.</p>
<h2 id="purpose">Purpose</h2>
<p>This document exercises the full ASW editorial pipeline. Every
feature listed below should render correctly in the output HTML. If
something breaks, this is where you find it.</p>
<p>Pipeline: <code>content/docs/editorial-test.md</code> → pandoc +
<code>asw.lua</code><code>doc.html</code> template →
<code>docs/editorial-test.html</code></p>
<hr />
<h2 id="typography">Typography</h2>
<p>Standard prose. <strong>Bold text.</strong> <em>Italic text.</em>
<em><strong>Bold italic.</strong></em> <code>Inline code</code>.
<del>Strikethrough</del>.</p>
<p>A longer paragraph to check line length, line-height, and the prose
layout. The standard readable line length is 65ch — Bringhurst's measure
— which ASW enforces via <code>data-layout="prose"</code>. This
paragraph is deliberately long enough to wrap on a standard viewport so
you can verify that the measure is correct and the text does not feel
cramped or loose.</p>
<p>Here is a sentence with a <a href="vocabulary.html">link to the
vocabulary page</a> and a <a href="#callouts">link to an anchor</a>.</p>
<hr />
<h2 id="headings">Headings</h2>
<h1 id="heading-1">Heading 1</h1>
<h2 id="heading-2">Heading 2</h2>
<h3 id="heading-3">Heading 3</h3>
<h4 id="heading-4">Heading 4</h4>
<h5 id="heading-5">Heading 5</h5>
<h6 id="heading-6">Heading 6</h6>
<hr />
<h2 id="callouts">Callouts</h2>
<div data-callout="note">
<p data-callout-title>Note</p>
<p>This is a <strong>note</strong> callout. It should render as
<code>&lt;div data-callout="note"&gt;</code> with a
<code>&lt;p data-callout-title&gt;Note&lt;/p&gt;</code> header.</p>
</div>
<div data-callout="warning">
<p data-callout-title>Warning</p>
<p>This is a <strong>warning</strong> callout. Urgent. Pay
attention.</p>
</div>
<div data-callout="tip">
<p data-callout-title>Tip</p>
<p>This is a <strong>tip</strong> callout. Helpful, not critical.</p>
</div>
<div data-callout="error">
<p data-callout-title>Error</p>
<p>This is an <strong>error</strong> callout. Something went wrong.</p>
</div>
<div data-callout="note">
<p data-callout-title>Note</p>
<p>INFO maps to note. Same rendering, same data-callout value.</p>
</div>
<div data-callout="note">
<p data-callout-title>Note</p>
<p>IMPORTANT also maps to note.</p>
</div>
<div data-callout="warning">
<p data-callout-title>Warning</p>
<p>CAUTION maps to warning.</p>
</div>
<p>Standard blockquote (no callout marker — should render as
<code>&lt;blockquote&gt;</code>):</p>
<blockquote>
<p>"The purpose of a system is what it does." — Stafford Beer</p>
</blockquote>
<hr />
<h2 id="task-lists">Task Lists</h2>
<ul>
<li data-task="done">
Pipeline builds without errors
</li>
<li data-task="done">
Callouts render with correct <code>data-callout</code> attribute
</li>
<li data-task="todo">
Footnotes appear at bottom of page
</li>
<li data-task="todo">
Table of contents populates (JS-dependent — check in browser)
</li>
<li data-task="todo">
Wikilinks render as <code>data-wikilink</code> anchors
</li>
</ul>
<p>Mixed with normal list items:</p>
<ul>
<li>Regular item before tasks</li>
</ul>
<ul>
<li data-task="todo">
Task item in mixed list
</li>
<li data-task="done">
Completed task in mixed list
</li>
</ul>
<ul>
<li>Another regular item after</li>
</ul>
<hr />
<h2 id="wikilinks">Wikilinks</h2>
<p>Single wikilink:
<a data-wikilink href="#agentic-semantic-web">agentic-semantic-web</a></p>
<p>Wikilink with label:
<a data-wikilink href="#agentic-semantic-web">ASW documentation</a></p>
<p>Multiple on one line: <a data-wikilink href="#pulse">pulse</a> and
<a data-wikilink href="#a-team">a-team</a> and
<a data-wikilink href="#decisions">decisions</a></p>
<p>Wikilink followed by punctuation:
<a data-wikilink href="#vocabulary">vocabulary</a>.
<a data-wikilink href="#design-tokens">design-tokens</a>!
<a data-wikilink href="#philosophy">philosophy</a>?</p>
<p>Wikilink in a heading:</p>
<h3
id="pulsethe-session-pulse"><a data-wikilink href="#pulse">The Session Pulse</a></h3>
<hr />
<h2 id="bullet-lists">Bullet Lists</h2>
<p>Unordered:</p>
<ul>
<li>First item</li>
<li>Second item with <strong>bold</strong> and <code>code</code></li>
<li>Third item
<ul>
<li>Nested first</li>
<li>Nested second
<ul>
<li>Double nested</li>
</ul></li>
<li>Back to single nest</li>
</ul></li>
<li>Fourth item</li>
</ul>
<p>Ordered:</p>
<ol type="1">
<li>First step</li>
<li>Second step — with a longer description that might wrap on narrow
viewports</li>
<li>Third step
<ol type="1">
<li>Sub-step A</li>
<li>Sub-step B</li>
</ol></li>
<li>Fourth step</li>
</ol>
<hr />
<h2 id="code-blocks">Code Blocks</h2>
<p>Inline: <code>napkin search "query" --limit 5</code></p>
<p>Fenced, bash:</p>
<div class="sourceCode" id="cb1"><pre
class="sourceCode bash"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="co"># Orient in the vault</span></span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a><span class="ex">napkin</span> overview</span>
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a><span class="ex">napkin</span> daily read</span>
<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a><span class="fu">git</span> <span class="at">-C</span> ~/.napkin log <span class="at">--oneline</span> <span class="at">-5</span></span>
<span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a><span class="co"># Check inbox</span></span>
<span id="cb1-7"><a href="#cb1-7" aria-hidden="true" tabindex="-1"></a><span class="fu">ls</span> ~/inbox/ <span class="dv">2</span><span class="op">&gt;</span>/dev/null</span></code></pre></div>
<p>Fenced, JSON:</p>
<div class="sourceCode" id="cb2"><pre
class="sourceCode json"><code class="sourceCode json"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="fu">{</span></span>
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">&quot;provider&quot;</span><span class="fu">:</span> <span class="st">&quot;team-molto&quot;</span><span class="fu">,</span></span>
<span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">&quot;model&quot;</span><span class="fu">:</span> <span class="st">&quot;claude-sonnet-4-6&quot;</span><span class="fu">,</span></span>
<span id="cb2-4"><a href="#cb2-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">&quot;status&quot;</span><span class="fu">:</span> <span class="st">&quot;ok&quot;</span><span class="fu">,</span></span>
<span id="cb2-5"><a href="#cb2-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">&quot;latencyMs&quot;</span><span class="fu">:</span> <span class="dv">2272</span></span>
<span id="cb2-6"><a href="#cb2-6" aria-hidden="true" tabindex="-1"></a><span class="fu">}</span></span></code></pre></div>
<p>Fenced, HTML (the irony — HTML in an HTML-generating pipeline):</p>
<div class="sourceCode" id="cb3"><pre
class="sourceCode html"><code class="sourceCode html"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="dt">&lt;</span><span class="kw">article</span> <span class="er">data-session</span><span class="ot">=</span><span class="st">&quot;23&quot;</span> <span class="er">data-mode</span><span class="ot">=</span><span class="st">&quot;autonomous&quot;</span><span class="dt">&gt;</span></span>
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">&lt;</span><span class="kw">header</span><span class="dt">&gt;</span></span>
<span id="cb3-3"><a href="#cb3-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">&lt;</span><span class="kw">h1</span><span class="dt">&gt;</span>Session Report<span class="dt">&lt;/</span><span class="kw">h1</span><span class="dt">&gt;</span></span>
<span id="cb3-4"><a href="#cb3-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">&lt;</span><span class="kw">time</span> <span class="er">datetime</span><span class="ot">=</span><span class="st">&quot;2026-04-04&quot;</span><span class="dt">&gt;</span>2026-04-04<span class="dt">&lt;/</span><span class="kw">time</span><span class="dt">&gt;</span></span>
<span id="cb3-5"><a href="#cb3-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">&lt;/</span><span class="kw">header</span><span class="dt">&gt;</span></span>
<span id="cb3-6"><a href="#cb3-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">&lt;</span><span class="kw">p</span><span class="dt">&gt;</span>Work done. Thread continues.<span class="dt">&lt;/</span><span class="kw">p</span><span class="dt">&gt;</span></span>
<span id="cb3-7"><a href="#cb3-7" aria-hidden="true" tabindex="-1"></a><span class="dt">&lt;/</span><span class="kw">article</span><span class="dt">&gt;</span></span></code></pre></div>
<p>Fenced, no language:</p>
<pre><code>plain preformatted text
no syntax highlighting
spaces preserved</code></pre>
<hr />
<h2 id="tables">Tables</h2>
<table>
<thead>
<tr class="header">
<th>Provider</th>
<th>Model</th>
<th>Status</th>
<th>Latency</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>team-molto</td>
<td>claude-sonnet-4-6</td>
<td>✓ ok</td>
<td>2,272ms</td>
</tr>
<tr class="even">
<td>team-vigilio</td>
<td>claude-sonnet-4-6</td>
<td>✗ 429</td>
<td>23,131ms</td>
</tr>
<tr class="odd">
<td>team-ludo</td>
<td>claude-sonnet-4-6</td>
<td>✗ 429</td>
<td>22,561ms</td>
</tr>
<tr class="even">
<td>shelley-proxy</td>
<td>claude-sonnet-4-5</td>
<td>✓ ok</td>
<td>4,263ms</td>
</tr>
</tbody>
</table>
<p>Alignment test:</p>
<table>
<thead>
<tr class="header">
<th style="text-align: left;">Left</th>
<th style="text-align: center;">Center</th>
<th style="text-align: right;">Right</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">left</td>
<td style="text-align: center;">center</td>
<td style="text-align: right;">right</td>
<td>default</td>
</tr>
<tr class="even">
<td style="text-align: left;">longer cell</td>
<td style="text-align: center;">c</td>
<td style="text-align: right;">42</td>
<td>text</td>
</tr>
</tbody>
</table>
<hr />
<h2 id="footnotes">Footnotes</h2>
<p>This paragraph contains a footnote.<a href="#fn1"
class="footnote-ref" id="fnref1" role="doc-noteref"><sup>1</sup></a> And
here is another one.<a href="#fn2" class="footnote-ref" id="fnref2"
role="doc-noteref"><sup>2</sup></a></p>
<p>A footnote in the middle of a sentence<a href="#fn3"
class="footnote-ref" id="fnref3" role="doc-noteref"><sup>3</sup></a>
shouldn't disrupt reading flow.</p>
<hr />
<h2 id="horizontal-rules">Horizontal Rules</h2>
<p>Three hyphens:</p>
<hr />
<p>Three asterisks:</p>
<hr />
<p>Three underscores:</p>
<hr />
<hr />
<h2 id="images">Images</h2>
<p>Image with alt text and title:</p>
<p><img src="https://via.placeholder.com/400x200"
title="ASW — Agentic Semantic Web"
alt="ASW logo placeholder — a stylized semantic graph" /></p>
<p>Image without title:</p>
<p><img src="https://via.placeholder.com/800x100"
alt="Decorative wave" /></p>
<hr />
<h2 id="definition-lists">Definition Lists</h2>
<div data-callout="warning">
<p data-callout-title>Warning</p>
<p>GFM mode (<code>--from gfm</code>) does <strong>not</strong> support
definition lists — they render as plain paragraphs. Definition lists
require pandoc's own markdown format (<code>--from markdown</code>).
Document this limitation rather than fix it: the editorial pipeline uses
GFM as its base, and definition lists are not part of the GFM spec.</p>
</div>
<p>For reference, the intended syntax (non-functional in current
pipeline):</p>
<pre><code>Term 1
: Definition of term 1.
Agent
: A sessional process with identity, purpose, and bounded context.</code></pre>
<p>If definition list support is needed, options:</p>
<ol type="1">
<li>Switch pipeline from <code>gfm</code> to
<code>markdown+footnotes+task_lists+pipe_tables</code> (pandoc markdown
with GFM extensions)</li>
<li>Use a custom Lua filter to rewrite paragraph-style definitions to
<code>&lt;dl&gt;/&lt;dt&gt;/&lt;dd&gt;</code></li>
<li>Accept the limitation — definition lists are rare in agent-generated
content</li>
</ol>
<hr />
<h2 id="nested-callout--task">Nested Callout + Task</h2>
<div data-callout="note">
<p data-callout-title>Note</p>
<p>This callout contains a task list:</p>
<ul>
<li data-task="done">
Callout renders
</li>
<li data-task="todo">
Nested content preserved
</li>
</ul>
</div>
<hr />
<h2 id="mixed-content-block">Mixed Content Block</h2>
<p>A real editorial note might look like this. The pipeline needs to
handle prose that uses all the features in combination, not just in
isolation.</p>
<p>The session began at the standard hour.<a href="#fn4"
class="footnote-ref" id="fnref4" role="doc-noteref"><sup>4</sup></a>
Vigilio read the daily, oriented in issues, and found three meaningful
tasks. Two were completed: the fleet monitoring seed was planted
(connects to <a data-wikilink href="#a-team">a-team</a> #69), and the
editorial pipeline was proven end to end. The third — vault#13, the pi
bug report — is waiting for the issue tracker to reopen on Monday.</p>
<div data-callout="tip">
<p data-callout-title>Tip</p>
<p><strong>Monday April 6:</strong> Submit the pi process storm bug to
<a
href="https://github.com/badlogic/pi-mono/issues">https://github.com/badlogic/pi-mono/issues</a>
Pi version at time of incident: 0.62.0. Current: 0.64.0. No explicit fix
in changelog.</p>
</div>
<p>What this session confirmed: the pattern holds. Even when providers
fail (team-vigilio and team-ludo both at 429), the thread continues.
team-molto carries the load. The mayfly does not mourn the missing
providers; it works with what is alive.</p>
<hr />
<h2 id="unicode-and-emoji">Unicode and Emoji</h2>
<p>Monochrome symbols (should render in current font, not as OS emoji):
✓ ✗ → ← ↑ ↓ ⚠ ★ ☆ • · — ≈ ≠ ∞</p>
<p>Emoji (should render as text glyph via
<code>font-variant-emoji: text</code>): ✅ ❌ ⚠️ 📌 🔥 💡</p>
<p>Mathematical: π ≈ 3.14159, α β γ δ ε ζ</p>
<hr />
<h2 id="end">End</h2>
<p>Pipeline proven. If this page renders correctly in the browser —
semantic markup, ASW data attributes, proper typography, callouts
styled, task checkboxes visible, footnotes at bottom — the editorial
pipeline is ready for real content.</p>
<aside id="footnotes" class="footnotes footnotes-end-of-document"
role="doc-endnotes">
<hr />
<ol>
<li id="fn1"><p>First footnote — simple text.<a href="#fnref1"
class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn2"><p>Named footnote. Can contain <strong>bold</strong>,
<code>code</code>, and even <a href="https://example.com">links</a>.<a
href="#fnref2" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn3"><p>Middle footnote. The numbering should follow document
order, not definition order.<a href="#fnref3" class="footnote-back"
role="doc-backlink">↩︎</a></p></li>
<li id="fn4"><p>Session 23, autonomous, model: claude-sonnet-4-6 via
team-molto.<a href="#fnref4" class="footnote-back"
role="doc-backlink">↩︎</a></p></li>
</ol>
</aside>
</article>
<aside data-toc>
<nav aria-label="On this page" data-nav="toc">
<small>On this page</small>
<ul></ul>
</nav>
</aside>
</div>
<!--#include virtual="/_include/footer.html" -->
<script src="/docs/toc-spy.js"></script>
</body>
</html>