438 lines
42 KiB
HTML
438 lines
42 KiB
HTML
<!DOCTYPE html>
|
||||
|
|
<html>
|
|||
|
|
<head>
|
|||
|
|
<meta charset="utf-8">
|
|||
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|||
|
|
<script src="./support.js"></script>
|
|||
|
|
</head>
|
|||
|
|
<body>
|
|||
|
|
<x-dc>
|
|||
|
|
<helmet>
|
|||
|
|
<meta name="design_doc_mode" content="canvas" />
|
|||
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|||
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|||
|
|
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,400;0,500;0,600;1,400&family=IBM+Plex+Mono:ital,wght@0,400;0,500;1,400&family=Zilla+Slab:wght@500;600;700&display=swap" rel="stylesheet" />
|
|||
|
|
<style>
|
|||
|
|
html,body{margin:0;padding:0;background:#c9dde1;color:#12323b;font-family:'IBM Plex Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
|
|||
|
|
*{box-sizing:border-box}
|
|||
|
|
a{color:#0d6e8c;text-decoration:none}
|
|||
|
|
a:hover{color:#12323b;text-decoration:underline}
|
|||
|
|
button{font-family:inherit;font-size:inherit;color:inherit;cursor:pointer}
|
|||
|
|
pre{margin:0}
|
|||
|
|
::selection{background:#0d6e8c;color:#fff}
|
|||
|
|
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:0}}
|
|||
|
|
@keyframes breathe{0%,100%{opacity:.35;transform:scale(.82)}50%{opacity:1;transform:scale(1)}}
|
|||
|
|
</style>
|
|||
|
|
</helmet>
|
|||
|
|
|
|||
|
|
<section style="display:flex;flex-direction:column;gap:22px;padding:40px">
|
|||
|
|
|
|||
|
|
<div style="display:flex;align-items:baseline;gap:14px">
|
|||
|
|
<span style="font-family:'Zilla Slab',Georgia,serif;font-weight:600;letter-spacing:-.015em;font-size:26px">bench docs</span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:#4d6e77">turn 2 — the same three page types, re-cut on what bench actually is</span>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div style="display:flex;flex-wrap:wrap;gap:28px;align-items:flex-start">
|
|||
|
|
|
|||
|
|
<!-- ============================== 1a HARBOUR ============================== -->
|
|||
|
|
<div id="1a" style="display:flex;flex-direction:column;gap:10px">
|
|||
|
|
<div style="display:flex;align-items:center;gap:10px">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:500;letter-spacing:.08em;padding:3px 8px;background:#12323b;color:#eaf3f4;border-radius:5px">1a</span>
|
|||
|
|
<span style="font-size:14px;font-weight:600">Harbour — the article page</span>
|
|||
|
|
<span style="font-size:13px;color:#4d6e77">three columns, dark ink code, marginalia in the gutter</span>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div style="width:1180px;background:#eaf3f4;border:1px solid #c5d7db;border-radius:14px;overflow:hidden;box-shadow:0 20px 50px -34px rgba(18,50,59,.55)">
|
|||
|
|
|
|||
|
|
<div style="display:flex;align-items:center;gap:10px;padding:0 18px;height:30px;background:#12323b;color:#a9c4c9;font-family:'IBM Plex Mono',monospace;font-size:11px">
|
|||
|
|
<span style="color:#eaf3f4;font-weight:500">12vectors</span>
|
|||
|
|
<span style="color:#4d6e77">/</span>
|
|||
|
|
<span style="color:#56c2d8">bench</span>
|
|||
|
|
<span style="color:#4d6e77">▾</span>
|
|||
|
|
<span style="flex:1"></span>
|
|||
|
|
<span>docs for 0.2-alpha</span>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<header style="display:flex;align-items:center;gap:20px;padding:14px 22px;background:#fff;border-bottom:1px solid #c5d7db">
|
|||
|
|
<div style="display:flex;align-items:baseline;gap:9px">
|
|||
|
|
<span style="font-family:'Zilla Slab',Georgia,serif;font-weight:600;letter-spacing:-.015em;font-size:21px;line-height:1">bench</span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12px;color:#87a1a8">docs</span>
|
|||
|
|
</div>
|
|||
|
|
<nav style="display:flex;gap:18px;font-size:13.5px;margin-left:8px">
|
|||
|
|
<span style="color:#4d6e77">Guides</span>
|
|||
|
|
<span style="color:#12323b;font-weight:600;padding-bottom:2px;border-bottom:2px solid #0d6e8c">Concepts</span>
|
|||
|
|
</nav>
|
|||
|
|
<span style="flex:1"></span>
|
|||
|
|
<div style="display:flex;align-items:center;gap:8px;width:240px;padding:6px 10px;background:#eaf3f4;border:1px solid #c5d7db;border-radius:8px">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12px;color:#87a1a8">/</span>
|
|||
|
|
<span style="font-size:13px;color:#87a1a8">Search the docs…</span>
|
|||
|
|
<span style="flex:1"></span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:10.5px;padding:1px 5px;background:#fff;border:1px solid #c5d7db;border-radius:4px;color:#87a1a8">⌘K</span>
|
|||
|
|
</div>
|
|||
|
|
<button style="padding:7px 13px;background:#0d6e8c;color:#fff;border:0;border-radius:8px;font-size:13px;font-weight:500">GitHub ↗</button>
|
|||
|
|
</header>
|
|||
|
|
|
|||
|
|
<div style="display:grid;grid-template-columns:236px 1fr 208px">
|
|||
|
|
|
|||
|
|
<aside style="border-right:1px solid #d9e6e9;padding:22px 16px 40px;display:flex;flex-direction:column;gap:22px">
|
|||
|
|
<div style="display:flex;flex-direction:column;gap:7px">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#87a1a8;padding-left:9px">Get going</span>
|
|||
|
|
<span style="font-size:13.5px;color:#4d6e77;padding:4px 9px">Install into a repo</span>
|
|||
|
|
<span style="font-size:13.5px;color:#4d6e77;padding:4px 9px">Your first card</span>
|
|||
|
|
<span style="font-size:13.5px;color:#4d6e77;padding:4px 9px">Choosing an adapter</span>
|
|||
|
|
</div>
|
|||
|
|
<div style="display:flex;flex-direction:column;gap:7px">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#87a1a8;padding-left:9px">Concepts</span>
|
|||
|
|
<span style="font-size:13.5px;color:#4d6e77;padding:4px 9px">Stages</span>
|
|||
|
|
<span style="font-size:13.5px;color:#4d6e77;padding:4px 9px">Task files</span>
|
|||
|
|
<span style="font-size:13.5px;font-weight:600;color:#12323b;padding:4px 9px;background:#e0eef1;border-left:2px solid #0d6e8c;border-radius:0 6px 6px 0">Claiming a card</span>
|
|||
|
|
<span style="font-size:13.5px;color:#4d6e77;padding:4px 9px">Agents on the board</span>
|
|||
|
|
<span style="font-size:13.5px;color:#4d6e77;padding:4px 9px">Pull requests & review</span>
|
|||
|
|
<span style="font-size:13.5px;color:#4d6e77;padding:4px 9px">Team mode</span>
|
|||
|
|
</div>
|
|||
|
|
<div style="display:flex;flex-direction:column;gap:7px">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#87a1a8;padding-left:9px">Guides</span>
|
|||
|
|
<span style="font-size:13.5px;color:#4d6e77;padding:4px 9px">Drives</span>
|
|||
|
|
<span style="font-size:13.5px;color:#4d6e77;padding:4px 9px">Local commands</span>
|
|||
|
|
<span style="font-size:13.5px;color:#4d6e77;padding:4px 9px">Updating</span>
|
|||
|
|
<span style="font-size:13.5px;color:#4d6e77;padding:4px 9px">Settings</span>
|
|||
|
|
</div>
|
|||
|
|
<div style="margin-top:6px;padding:11px 12px;background:#fff;border:1px solid #d9e6e9;border-radius:10px;display:flex;flex-direction:column;gap:5px">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:#87a1a8">0.2-alpha</span>
|
|||
|
|
<span style="font-size:12.5px;color:#4d6e77;line-height:1.45">The first run now asks three questions and writes <span style="font-family:'IBM Plex Mono',monospace;font-size:11.5px">local/.env</span>.</span>
|
|||
|
|
</div>
|
|||
|
|
</aside>
|
|||
|
|
|
|||
|
|
<article style="padding:30px 40px 44px;min-width:0;position:relative">
|
|||
|
|
<div style="display:flex;align-items:center;gap:8px;font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:#87a1a8;margin-bottom:16px">
|
|||
|
|
<span>Concepts</span><span>›</span><span style="color:#4d6e77">Claiming a card</span>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<h1 style="font-family:'Zilla Slab',Georgia,serif;font-weight:600;font-size:40px;line-height:1.1;letter-spacing:-.02em;margin:0 0 12px">Claiming a card</h1>
|
|||
|
|
<p style="font-size:17px;line-height:1.6;color:#4d6e77;margin:0 0 26px;max-width:60ch;text-wrap:pretty">Claiming is moving. Taking a card out of <span style="font-family:'IBM Plex Mono',monospace;font-size:15px">backlog/</span> towards work is the commitment, so that is where ownership gets written down — one line in the task file, taken from the identity git history already shows.</p>
|
|||
|
|
|
|||
|
|
<div style="display:flex;gap:12px;padding:14px 16px;background:#fff;border:1px solid #d9e6e9;border-left:3px solid #0d6e8c;border-radius:0 10px 10px 0;margin-bottom:28px">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12px;color:#0d6e8c;font-weight:500;flex:0 0 auto">TL;DR</span>
|
|||
|
|
<span style="font-size:14px;line-height:1.55;color:#12323b">A board-made move writes <span style="font-family:'IBM Plex Mono',monospace;font-size:13px;background:#eaf3f4;padding:1px 5px;border-radius:4px">**Assignee:** <git user.name></span> into the task file. It gates exactly one thing — <span style="font-family:'IBM Plex Mono',monospace;font-size:13px;background:#eaf3f4;padding:1px 5px;border-radius:4px">▸ start work</span>. Everything else is convention, and git history is the audit.</span>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<h2 style="font-family:'Zilla Slab',Georgia,serif;font-weight:600;font-size:23px;letter-spacing:-.01em;margin:0 0 10px">What a move writes</h2>
|
|||
|
|
<p style="font-size:15px;line-height:1.68;color:#4d6e77;margin:0 0 18px;max-width:64ch;text-wrap:pretty">The first claim sticks: a card that already names an assignee keeps it when someone else moves it on. Walking it all the way back to backlog clears the line, because nobody holds it again.</p>
|
|||
|
|
|
|||
|
|
<div style="border:1px solid #d9e6e9;border-radius:10px;overflow:hidden;margin-bottom:28px;background:#fff">
|
|||
|
|
<div style="display:grid;grid-template-columns:190px 1fr 96px;padding:9px 14px;background:#eaf3f4;border-bottom:1px solid #d9e6e9;font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#87a1a8">
|
|||
|
|
<span>Move</span><span>What the board does</span><span>Assignee</span>
|
|||
|
|
</div>
|
|||
|
|
<div style="display:grid;grid-template-columns:190px 1fr 96px;padding:11px 14px;border-bottom:1px solid #eaf3f4;font-size:13.5px;align-items:center">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:#0d6e8c">backlog → to-do</span><span style="color:#4d6e77">Writes the line from <span style="font-family:'IBM Plex Mono',monospace;font-size:12.5px">git config user.name</span></span><span style="font-family:'IBM Plex Mono',monospace;font-size:12px;color:#5f7f33">claimed</span>
|
|||
|
|
</div>
|
|||
|
|
<div style="display:grid;grid-template-columns:190px 1fr 96px;padding:11px 14px;border-bottom:1px solid #eaf3f4;font-size:13.5px;align-items:center">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:#0d6e8c">to-do → in-progress</span><span style="color:#4d6e77">Leaves whoever claimed it first alone</span><span style="font-family:'IBM Plex Mono',monospace;font-size:12px;color:#5f7f33">kept</span>
|
|||
|
|
</div>
|
|||
|
|
<div style="display:grid;grid-template-columns:190px 1fr 96px;padding:11px 14px;border-bottom:1px solid #eaf3f4;font-size:13.5px;align-items:center">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:#0d6e8c">anything → backlog</span><span style="color:#4d6e77">Removes the line — the card is free again</span><span style="font-family:'IBM Plex Mono',monospace;font-size:12px;color:#87a1a8">cleared</span>
|
|||
|
|
</div>
|
|||
|
|
<div style="display:grid;grid-template-columns:190px 1fr 96px;padding:11px 14px;font-size:13.5px;align-items:center">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:#0d6e8c">mv on disk</span><span style="color:#4d6e77">Narrates the move; writes no assignee</span><span style="font-family:'IBM Plex Mono',monospace;font-size:12px;color:#b1543a">yours to write</span>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<h2 style="font-family:'Zilla Slab',Georgia,serif;font-weight:600;font-size:23px;letter-spacing:-.01em;margin:0 0 10px">Turning it on</h2>
|
|||
|
|
<p style="font-size:15px;line-height:1.68;color:#4d6e77;margin:0 0 14px;max-width:64ch;text-wrap:pretty">Claiming is off by default. It lives in <span style="font-family:'IBM Plex Mono',monospace;font-size:13.5px;background:#fff;border:1px solid #d9e6e9;padding:1px 5px;border-radius:4px">manager/local/.env</span>, the copy of the documented example your first run wrote.</p>
|
|||
|
|
|
|||
|
|
<div style="border-radius:11px;overflow:hidden;margin-bottom:12px;box-shadow:0 12px 28px -24px rgba(12,26,32,.9)">
|
|||
|
|
<div style="display:flex;align-items:center;gap:9px;padding:8px 14px;background:#0a161b;border-bottom:1px solid #1c343a">
|
|||
|
|
<span style="width:8px;height:8px;border-radius:99px;background:#e08a63"></span>
|
|||
|
|
<span style="width:8px;height:8px;border-radius:99px;background:#a6c96f"></span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:11px;color:#62828a;margin-left:6px">manager/local/.env</span>
|
|||
|
|
<span style="flex:1"></span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:#62828a">copy</span>
|
|||
|
|
</div>
|
|||
|
|
<pre style="margin:0;padding:16px 18px;background:#0c1a20;color:#e9f3f3;font-family:'IBM Plex Mono',monospace;font-size:12.5px;line-height:1.75;overflow-x:auto"><div><span style="color:#62828a"># claim on move, and commit the move</span></div><div><span style="color:#a6c96f">BOARD_COMMIT_MOVES</span>=<span style="color:#56c2d8">1</span></div><div> </div><div><span style="color:#62828a"># the other half of team mode: origin/main is the truth</span></div><div><span style="color:#a6c96f">BOARD_SYNC</span>=<span style="color:#56c2d8">1</span></div><div><span style="color:#a6c96f">BOARD_SYNC_INTERVAL</span>=<span style="color:#56c2d8">30</span> <span style="color:#62828a"># seconds between pulls</span></div></pre>
|
|||
|
|
</div>
|
|||
|
|
<p style="font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:#87a1a8;margin:0 0 28px;font-style:italic">↑ the first run asks "solo or team?" and writes both keys for you.</p>
|
|||
|
|
|
|||
|
|
<div style="display:flex;gap:13px;padding:15px 17px;background:#fbf1ec;border:1px solid #ecc9b8;border-radius:11px;margin-bottom:30px">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:500;color:#b1543a;flex:0 0 auto">!! heads up</span>
|
|||
|
|
<span style="font-size:14px;line-height:1.6;color:#7a3c2a">Identity is git's, so it collides like git's. Two machines both configured <span style="font-family:'IBM Plex Mono',monospace;font-size:13px">user.name = ronald</span> are one person as far as the board is concerned. Teams that share a git history already share that assumption.</span>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<h2 style="font-family:'Zilla Slab',Georgia,serif;font-weight:600;font-size:23px;letter-spacing:-.01em;margin:0 0 14px">What you see when it fires</h2>
|
|||
|
|
<div style="display:flex;flex-direction:column;gap:12px;margin-bottom:32px">
|
|||
|
|
<div style="display:flex;gap:13px">
|
|||
|
|
<span style="flex:0 0 22px;height:22px;display:flex;align-items:center;justify-content:center;background:#12323b;color:#eaf3f4;border-radius:6px;font-family:'IBM Plex Mono',monospace;font-size:11px">1</span>
|
|||
|
|
<span style="font-size:14.5px;line-height:1.6;color:#4d6e77;padding-top:1px">The task file grows <b style="color:#12323b;font-weight:600">**Assignee:** ronald</b> beside its <b style="color:#12323b;font-weight:600">**Status:**</b> line, and the card shows the name.</span>
|
|||
|
|
</div>
|
|||
|
|
<div style="display:flex;gap:13px">
|
|||
|
|
<span style="flex:0 0 22px;height:22px;display:flex;align-items:center;justify-content:center;background:#12323b;color:#eaf3f4;border-radius:6px;font-family:'IBM Plex Mono',monospace;font-size:11px">2</span>
|
|||
|
|
<span style="font-size:14.5px;line-height:1.6;color:#4d6e77;padding-top:1px">The move commits itself — one commit touching only that file, messaged <span style="font-family:'IBM Plex Mono',monospace;font-size:13px;background:#eaf3f4;padding:1px 5px;border-radius:4px">board: 18 → in-progress (ronald)</span>.</span>
|
|||
|
|
</div>
|
|||
|
|
<div style="display:flex;gap:13px">
|
|||
|
|
<span style="flex:0 0 22px;height:22px;display:flex;align-items:center;justify-content:center;background:#12323b;color:#eaf3f4;border-radius:6px;font-family:'IBM Plex Mono',monospace;font-size:11px">3</span>
|
|||
|
|
<span style="font-size:14.5px;line-height:1.6;color:#4d6e77;padding-top:1px">Another board refuses <b style="color:#12323b;font-weight:600">▸ start work</b> on that card, names who holds it, and offers <b style="color:#12323b;font-weight:600">▸ take over</b> instead.</span>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div style="display:flex;align-items:center;gap:14px;padding:16px 18px;background:#fff;border:1px solid #d9e6e9;border-radius:11px">
|
|||
|
|
<span style="font-size:14px;color:#4d6e77">{{ feedbackAsk }}</span>
|
|||
|
|
<span style="flex:1"></span>
|
|||
|
|
<button style="padding:6px 13px;background:#eaf3f4;border:1px solid #c5d7db;border-radius:7px;font-size:13px;color:#12323b">{{ feedbackYes }}</button>
|
|||
|
|
<button style="padding:6px 13px;background:#eaf3f4;border:1px solid #c5d7db;border-radius:7px;font-size:13px;color:#12323b">{{ feedbackNo }}</button>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</article>
|
|||
|
|
|
|||
|
|
<aside style="border-left:1px solid #d9e6e9;padding:30px 18px;display:flex;flex-direction:column;gap:9px">
|
|||
|
|
<sc-if value="{{ showTOC }}" hint-placeholder-val="{{ true }}">
|
|||
|
|
<div style="display:flex;flex-direction:column;gap:9px">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#87a1a8;margin-bottom:2px">On this page</span>
|
|||
|
|
<span style="font-size:12.5px;color:#0d6e8c;border-left:2px solid #0d6e8c;padding-left:9px">What a move writes</span>
|
|||
|
|
<span style="font-size:12.5px;color:#87a1a8;border-left:2px solid #e0eef1;padding-left:9px">Turning it on</span>
|
|||
|
|
<span style="font-size:12.5px;color:#87a1a8;border-left:2px solid #e0eef1;padding-left:9px">What you see</span>
|
|||
|
|
<div style="height:1px;background:#d9e6e9;margin:12px 0"></div>
|
|||
|
|
<span style="font-size:12.5px;color:#4d6e77;line-height:1.5">Edit this page on GitHub ↗</span>
|
|||
|
|
<span style="font-size:12.5px;color:#4d6e77;line-height:1.5">Open an issue ↗</span>
|
|||
|
|
</div>
|
|||
|
|
</sc-if>
|
|||
|
|
<sc-if value="{{ showMarginalia }}" hint-placeholder-val="{{ true }}">
|
|||
|
|
<span style="margin-top:36px;font-family:'IBM Plex Mono',monospace;font-size:11px;line-height:1.55;color:#b1543a;font-style:italic;transform:rotate(-1.2deg);transform-origin:left top">← the whole of ownership: one line in a markdown file</span>
|
|||
|
|
</sc-if>
|
|||
|
|
</aside>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<footer style="display:flex;align-items:flex-end;gap:26px;padding:22px 26px;background:#12323b;color:#a9c4c9">
|
|||
|
|
<pre style="font-family:'IBM Plex Mono',monospace;font-size:9.5px;line-height:1.25;color:#4d6e77;margin:0"> ___________________
|
|||
|
|
|___________________|
|
|||
|
|
|| ||
|
|||
|
|
|| ||</pre>
|
|||
|
|
<div style="display:flex;flex-direction:column;gap:4px">
|
|||
|
|
<span style="font-family:'Zilla Slab',Georgia,serif;font-size:15px;color:#eaf3f4;font-weight:600">bench</span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:11px">a 12vectors product · built in the open</span>
|
|||
|
|
</div>
|
|||
|
|
<span style="flex:1"></span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:11px">github.com/12vectors/bench</span>
|
|||
|
|
</footer>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<!-- ============================== 1b DOCKSIDE ============================== -->
|
|||
|
|
<div id="1b" style="display:flex;flex-direction:column;gap:10px">
|
|||
|
|
<div style="display:flex;align-items:center;gap:10px">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:500;letter-spacing:.08em;padding:3px 8px;background:#12323b;color:#eaf3f4;border-radius:5px">1b</span>
|
|||
|
|
<span style="font-size:14px;font-weight:600">Dockside — the docs home</span>
|
|||
|
|
<span style="font-size:13px;color:#4d6e77">a landing that's mostly a terminal and a set of doors</span>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div style="width:1180px;background:#eaf3f4;border:1px solid #c5d7db;border-radius:14px;overflow:hidden;box-shadow:0 20px 50px -34px rgba(18,50,59,.55)">
|
|||
|
|
|
|||
|
|
<div style="display:flex;align-items:center;gap:10px;padding:0 18px;height:30px;background:#12323b;color:#a9c4c9;font-family:'IBM Plex Mono',monospace;font-size:11px">
|
|||
|
|
<span style="color:#eaf3f4;font-weight:500">12vectors</span>
|
|||
|
|
<span style="color:#4d6e77">/</span>
|
|||
|
|
<span style="color:#56c2d8">bench</span>
|
|||
|
|
<span style="color:#4d6e77">▾</span>
|
|||
|
|
<span style="flex:1"></span>
|
|||
|
|
<span>docs · guides · concepts · github</span>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<header style="display:flex;align-items:center;gap:20px;padding:14px 30px;background:#eaf3f4">
|
|||
|
|
<div style="display:flex;align-items:baseline;gap:9px">
|
|||
|
|
<span style="font-family:'Zilla Slab',Georgia,serif;font-weight:600;letter-spacing:-.015em;font-size:21px;line-height:1">bench</span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12px;color:#87a1a8">docs</span>
|
|||
|
|
</div>
|
|||
|
|
<span style="flex:1"></span>
|
|||
|
|
<nav style="display:flex;gap:20px;font-size:13.5px;color:#4d6e77">
|
|||
|
|
<span>Guides</span><span>Concepts</span>
|
|||
|
|
</nav>
|
|||
|
|
<button style="padding:7px 13px;background:transparent;border:1px solid #c5d7db;border-radius:8px;font-size:13px;color:#12323b">GitHub ↗</button>
|
|||
|
|
</header>
|
|||
|
|
|
|||
|
|
<div style="display:grid;grid-template-columns:1.05fr .95fr;gap:44px;padding:44px 44px 40px;align-items:center">
|
|||
|
|
<div style="display:flex;flex-direction:column;gap:20px">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#0d6e8c">Documentation</span>
|
|||
|
|
<h1 style="font-family:'Zilla Slab',Georgia,serif;font-weight:600;font-size:52px;line-height:1.05;letter-spacing:-.025em;margin:0;text-wrap:balance">Put the agents<br />on the bench.</h1>
|
|||
|
|
<p style="font-size:17px;line-height:1.62;color:#4d6e77;margin:0;max-width:44ch;text-wrap:pretty">Task files in stage directories are the only source of truth. A stdlib-only board narrates what happens to them — agents working in git worktrees, PRs opening on review, CI on the cards — and never merges anything itself.</p>
|
|||
|
|
<div style="display:flex;gap:10px;align-items:center">
|
|||
|
|
<button style="padding:11px 18px;background:#0d6e8c;color:#fff;border:0;border-radius:9px;font-size:14px;font-weight:500">Install into a repo</button>
|
|||
|
|
<button style="padding:11px 18px;background:#fff;border:1px solid #c5d7db;border-radius:9px;font-size:14px;color:#12323b">Read the concepts</button>
|
|||
|
|
</div>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:#87a1a8;font-style:italic">no account, no service, no database. it is python 3 on your own machine.</span>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div style="border-radius:12px;overflow:hidden;box-shadow:0 24px 46px -30px rgba(12,26,32,.85)">
|
|||
|
|
<div style="display:flex;align-items:center;gap:8px;padding:9px 14px;background:#0a161b">
|
|||
|
|
<span style="width:8px;height:8px;border-radius:99px;background:#e08a63"></span>
|
|||
|
|
<span style="width:8px;height:8px;border-radius:99px;background:#a6c96f"></span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:11px;color:#62828a;margin-left:6px">~/your-repo</span>
|
|||
|
|
</div>
|
|||
|
|
<pre style="margin:0;padding:18px;background:#0c1a20;color:#e9f3f3;font-family:'IBM Plex Mono',monospace;font-size:12.5px;line-height:1.85;white-space:pre-wrap;word-break:break-all"><div><span style="color:#a6c96f">$</span> mkdir .task-manager && curl -L \</div><div> <span style="color:#62828a">https://github.com/12vectors/bench/releases/latest/download/bench.tar.gz</span> \</div><div> | tar -xz -C .task-manager</div><div><span style="color:#a6c96f">$</span> ./.task-manager/start.sh</div><div> </div><div> <span style="color:#95afb4">No .task-manager/manager/local/.env yet — a few questions and bench writes one.</span></div><div> solo or team? <span style="color:#56c2d8">[solo]</span>:</div><div> which agent adapter? <span style="color:#56c2d8">[claude]</span>:</div><div> what command runs this project's tests? <span style="color:#56c2d8">[python3 -m unittest]</span>:</div><div> </div><div> Task board for ~/your-repo/.task-manager/tasks</div><div> <span style="color:#56c2d8">http://127.0.0.1:26071/</span></div><div> <span style="color:#62828a">Ctrl-C to stop</span><span style="color:#e9f3f3;animation:blink 1.1s step-end infinite">▊</span></div></pre>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div style="display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:0 44px 34px">
|
|||
|
|
<div style="display:flex;flex-direction:column;gap:8px;padding:20px;background:#fff;border:1px solid #d9e6e9;border-radius:12px">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:11px;color:#87a1a8">01</span>
|
|||
|
|
<span style="font-family:'Zilla Slab',Georgia,serif;font-size:19px;font-weight:600">Install</span>
|
|||
|
|
<span style="font-size:13.5px;line-height:1.6;color:#4d6e77">Untar it into <span style="font-family:'IBM Plex Mono',monospace;font-size:12.5px">.task-manager/</span>, run <span style="font-family:'IBM Plex Mono',monospace;font-size:12.5px">start.sh</span>, answer three questions. Port 26071, pinned.</span>
|
|||
|
|
</div>
|
|||
|
|
<div style="display:flex;flex-direction:column;gap:8px;padding:20px;background:#fff;border:1px solid #d9e6e9;border-radius:12px">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:11px;color:#87a1a8">02</span>
|
|||
|
|
<span style="font-family:'Zilla Slab',Georgia,serif;font-size:19px;font-weight:600">The five stages</span>
|
|||
|
|
<span style="font-size:13.5px;line-height:1.6;color:#4d6e77">backlog → to-do → in-progress → review → done. The directory a file sits in <i>is</i> its status.</span>
|
|||
|
|
</div>
|
|||
|
|
<div style="display:flex;flex-direction:column;gap:8px;padding:20px;background:#fff;border:1px solid #d9e6e9;border-radius:12px">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:11px;color:#87a1a8">03</span>
|
|||
|
|
<span style="font-family:'Zilla Slab',Georgia,serif;font-size:19px;font-weight:600">Agents on the board</span>
|
|||
|
|
<span style="font-size:13.5px;line-height:1.6;color:#4d6e77">▸ start work makes a worktree and a branch, runs the agent headless, and moves the card when it exits.</span>
|
|||
|
|
</div>
|
|||
|
|
<div style="display:flex;flex-direction:column;gap:8px;padding:20px;background:#fff;border:1px solid #d9e6e9;border-radius:12px">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:11px;color:#87a1a8">04</span>
|
|||
|
|
<span style="font-family:'Zilla Slab',Georgia,serif;font-size:19px;font-weight:600">PRs & review</span>
|
|||
|
|
<span style="font-size:13.5px;line-height:1.6;color:#4d6e77">A card entering review gets a PR opened for it. Then ◔ review PR, ⚑ copilot, ↻ act on PR — until it settles.</span>
|
|||
|
|
</div>
|
|||
|
|
<div style="display:flex;flex-direction:column;gap:8px;padding:20px;background:#fff;border:1px solid #d9e6e9;border-radius:12px">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:11px;color:#87a1a8">05</span>
|
|||
|
|
<span style="font-family:'Zilla Slab',Georgia,serif;font-size:19px;font-weight:600">Team mode</span>
|
|||
|
|
<span style="font-size:13.5px;line-height:1.6;color:#4d6e77"><span style="font-family:'IBM Plex Mono',monospace;font-size:12.5px">BOARD_SYNC=1</span> makes origin/main the truth. Moves commit and push themselves; boards pull on a beat.</span>
|
|||
|
|
</div>
|
|||
|
|
<div style="display:flex;flex-direction:column;gap:8px;padding:20px;background:#12323b;border-radius:12px;color:#eaf3f4">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:11px;color:#7fa0a8">06</span>
|
|||
|
|
<span style="font-family:'Zilla Slab',Georgia,serif;font-size:19px;font-weight:600">The three-layer law</span>
|
|||
|
|
<span style="font-size:13.5px;line-height:1.6;color:#a9c4c9">Core knows tasks, worktrees, PRs and events. Drivers know apps, adapters know vendors, local/ knows your project.</span>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div style="display:flex;align-items:center;gap:28px;padding:20px 44px;background:#e0eef1;border-top:1px solid #d9e6e9">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#87a1a8">Most opened this week</span>
|
|||
|
|
<div style="display:flex;gap:8px;flex-wrap:wrap">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12px;padding:4px 10px;background:#fff;border:1px solid #c5d7db;border-radius:99px;color:#0d6e8c">local/.env settings</span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12px;padding:4px 10px;background:#fff;border:1px solid #c5d7db;border-radius:99px;color:#0d6e8c">a run that died</span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12px;padding:4px 10px;background:#fff;border:1px solid #c5d7db;border-radius:99px;color:#0d6e8c">the adapter contract</span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12px;padding:4px 10px;background:#fff;border:1px solid #c5d7db;border-radius:99px;color:#0d6e8c">archive & undo</span>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<!-- ============================== 1c LOGBOOK ============================== -->
|
|||
|
|
<div id="1c" style="display:flex;flex-direction:column;gap:10px">
|
|||
|
|
<div style="display:flex;align-items:center;gap:10px">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:500;letter-spacing:.08em;padding:3px 8px;background:#12323b;color:#eaf3f4;border-radius:5px">1c</span>
|
|||
|
|
<span style="font-size:14px;font-weight:600">Logbook — the settings reference</span>
|
|||
|
|
<span style="font-size:13px;color:#4d6e77">prose left, the board's own activity pinned right</span>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div style="width:1180px;background:#eaf3f4;border:1px solid #c5d7db;border-radius:14px;overflow:hidden;box-shadow:0 20px 50px -34px rgba(18,50,59,.55)">
|
|||
|
|
|
|||
|
|
<div style="display:flex;align-items:center;gap:10px;padding:0 18px;height:30px;background:#12323b;color:#a9c4c9;font-family:'IBM Plex Mono',monospace;font-size:11px">
|
|||
|
|
<span style="color:#eaf3f4;font-weight:500">12vectors</span>
|
|||
|
|
<span style="color:#4d6e77">/</span>
|
|||
|
|
<span style="color:#56c2d8">bench</span>
|
|||
|
|
<span style="color:#4d6e77">▾</span>
|
|||
|
|
<span style="flex:1"></span>
|
|||
|
|
<span>0.2-alpha</span>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div style="display:grid;grid-template-columns:212px 1fr">
|
|||
|
|
<aside style="background:#e4eff1;border-right:1px solid #d9e6e9;padding:20px 14px 40px;display:flex;flex-direction:column;gap:18px">
|
|||
|
|
<div style="display:flex;align-items:baseline;gap:8px;padding:0 8px 6px">
|
|||
|
|
<span style="font-family:'Zilla Slab',Georgia,serif;font-weight:600;font-size:19px">bench</span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:#87a1a8">local/.env</span>
|
|||
|
|
</div>
|
|||
|
|
<div style="display:flex;flex-direction:column;gap:5px">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#87a1a8;padding-left:8px">Keys</span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:#4d6e77;padding:4px 8px">BOARD_PORT</span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:#4d6e77;padding:4px 8px">BOARD_TITLE</span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:#4d6e77;padding:4px 8px">BOARD_AGENT_ADAPTER</span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:#4d6e77;padding:4px 8px">BOARD_AGENT_COMMANDS</span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:#4d6e77;padding:4px 8px">BOARD_COMMIT_MOVES</span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:#12323b;font-weight:500;padding:4px 8px;background:#fff;border:1px solid #c5d7db;border-radius:6px">BOARD_SYNC</span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:#4d6e77;padding:4px 8px">BOARD_WORKTREES</span>
|
|||
|
|
</div>
|
|||
|
|
<div style="display:flex;flex-direction:column;gap:5px">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#87a1a8;padding-left:8px">Also</span>
|
|||
|
|
<span style="font-size:13px;color:#4d6e77;padding:4px 8px">Precedence</span>
|
|||
|
|
<span style="font-size:13px;color:#4d6e77;padding:4px 8px">Where the file lives</span>
|
|||
|
|
<span style="font-size:13px;color:#4d6e77;padding:4px 8px">What updates touch</span>
|
|||
|
|
</div>
|
|||
|
|
</aside>
|
|||
|
|
|
|||
|
|
<div style="display:grid;grid-template-columns:1fr 430px">
|
|||
|
|
<article style="padding:28px 32px 40px;min-width:0">
|
|||
|
|
<div style="display:flex;align-items:center;gap:9px;margin-bottom:14px">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.08em;padding:3px 7px;background:#e0eef1;border:1px solid #c5d7db;border-radius:5px;color:#0d6e8c">team mode</span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.08em;padding:3px 7px;background:#f2f7dc;border:1px solid #d6e2a8;border-radius:5px;color:#5f7f33">off by default</span>
|
|||
|
|
</div>
|
|||
|
|
<h1 style="font-family:'IBM Plex Mono',monospace;font-weight:500;font-size:29px;letter-spacing:-.01em;margin:0 0 10px">BOARD_SYNC</h1>
|
|||
|
|
<p style="font-size:15.5px;line-height:1.65;color:#4d6e77;margin:0 0 22px;max-width:52ch;text-wrap:pretty">Makes <span style="font-family:'IBM Plex Mono',monospace;font-size:14.5px">origin/main</span> the truth and every board a converging replica. Off, none of it runs — no fetch, no push, no thread, no behaviour change at all.</p>
|
|||
|
|
|
|||
|
|
<div style="font-family:'IBM Plex Mono',monospace;font-size:12.5px;line-height:1.7;padding:12px 14px;background:#fff;border:1px solid #d9e6e9;border-radius:9px;color:#12323b;margin-bottom:26px">BOARD_SYNC=<span style="color:#0d6e8c"><empty></span> · empty <span style="color:#87a1a8">/</span> 0 <span style="color:#87a1a8">/</span> false <span style="color:#87a1a8">/</span> no <span style="color:#87a1a8">/</span> off = off, anything else = on</div>
|
|||
|
|
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#87a1a8">Keys it pulls in</span>
|
|||
|
|
<div style="display:flex;flex-direction:column;gap:0;margin:10px 0 26px;border:1px solid #d9e6e9;border-radius:10px;overflow:hidden;background:#fff">
|
|||
|
|
<div style="display:flex;gap:14px;padding:12px 14px;border-bottom:1px solid #eaf3f4">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:#0d6e8c;flex:0 0 150px">BOARD_COMMIT_MOVES</span>
|
|||
|
|
<span style="font-size:13.5px;line-height:1.55;color:#4d6e77">Implied by this one. A move that never commits has nothing to publish.</span>
|
|||
|
|
</div>
|
|||
|
|
<div style="display:flex;gap:14px;padding:12px 14px;border-bottom:1px solid #eaf3f4">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:#0d6e8c;flex:0 0 150px">BOARD_SYNC_INTERVAL</span>
|
|||
|
|
<span style="font-size:13.5px;line-height:1.55;color:#4d6e77">Default <span style="font-family:'IBM Plex Mono',monospace;font-size:12.5px">30</span>. Seconds between fetch-and-fast-forward beats. Raise it on a metered remote.</span>
|
|||
|
|
</div>
|
|||
|
|
<div style="display:flex;gap:14px;padding:12px 14px">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:#0d6e8c;flex:0 0 150px">BOARD_WATCH_INTERVAL</span>
|
|||
|
|
<span style="font-size:13.5px;line-height:1.55;color:#4d6e77">Default <span style="font-family:'IBM Plex Mono',monospace;font-size:12.5px">2</span>. The disk poll that narrates what a pull just applied.</span>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div style="display:flex;gap:13px;padding:14px 16px;background:#f4f8e6;border:1px solid #d6e2a8;border-radius:11px">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:500;color:#5f7f33;flex:0 0 auto">~ tip</span>
|
|||
|
|
<span style="font-size:13.5px;line-height:1.6;color:#4a6329">Answering <b>team</b> at the first run writes this key and <span style="font-family:'IBM Plex Mono',monospace;font-size:12.5px">BOARD_COMMIT_MOVES</span> together. <span style="font-family:'IBM Plex Mono',monospace;font-size:12.5px">install.py --setup</span> is the way back to the question.</span>
|
|||
|
|
</div>
|
|||
|
|
</article>
|
|||
|
|
|
|||
|
|
<div style="padding:28px 28px 40px 0">
|
|||
|
|
<div style="position:sticky;top:20px;border-radius:12px;overflow:hidden;box-shadow:0 18px 40px -30px rgba(12,26,32,.9)">
|
|||
|
|
<div style="display:flex;align-items:center;gap:9px;padding:9px 14px;background:#0a161b">
|
|||
|
|
<span style="width:6px;height:6px;border-radius:99px;background:#56c2d8;animation:breathe 2.4s ease-in-out infinite"></span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:11px;color:#95afb4">activity · 12vectors/bench</span>
|
|||
|
|
<span style="flex:1"></span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:#62828a">live</span>
|
|||
|
|
</div>
|
|||
|
|
<pre style="margin:0;padding:16px;background:#0c1a20;font-family:'IBM Plex Mono',monospace;font-size:11.5px;line-height:1.95;color:#e9f3f3;overflow-x:auto"><div><span style="color:#62828a">09:14:02</span> <span style="color:#56c2d8">move</span> 26-forge-adapters.md moved</div><div> <span style="color:#95afb4">to-do → in-progress (you)</span></div><div><span style="color:#62828a">09:14:03</span> <span style="color:#62828a">sync</span> pushed 1 board commit to origin/main</div><div><span style="color:#62828a">09:14:33</span> <span style="color:#62828a">sync</span> pulled 2 commits from origin/main</div><div> <span style="color:#95afb4">(elena)</span></div><div><span style="color:#62828a">09:31:22</span> <span style="color:#62828a">agent</span> Wren finished 26-forge-adapters.md</div><div> <span style="color:#95afb4">— review branch task/26-forge-adapters</span></div><div><span style="color:#62828a">09:31:24</span> <span style="color:#56c2d8">move</span> 26-forge-adapters.md moved</div><div> <span style="color:#95afb4">in-progress → review (agent)</span></div><div><span style="color:#62828a">09:31:26</span> <span style="color:#62828a">agent</span> PR opened for 26-forge-adapters.md:</div><div> <span style="color:#95afb4">https://github.com/12vectors/bench/pull/31</span></div><div><span style="color:#62828a">09:32:31</span> <span style="color:#62828a">agent</span> CI on 26-forge-adapters.md's PR:</div><div> <span style="color:#a6c96f">all checks pass</span></div><div><span style="color:#e9f3f3;animation:blink 1.1s step-end infinite">▊</span></div></pre>
|
|||
|
|
<div style="display:flex;align-items:center;gap:10px;padding:10px 14px;background:#0a161b;border-top:1px solid #1c343a">
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:#62828a">the browser gets these over SSE · no refresh</span>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<footer style="display:flex;align-items:center;gap:20px;padding:18px 26px;background:#12323b;color:#a9c4c9">
|
|||
|
|
<span style="font-family:'Zilla Slab',Georgia,serif;font-size:15px;color:#eaf3f4;font-weight:600">bench</span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:11px">a 12vectors product</span>
|
|||
|
|
<span style="flex:1"></span>
|
|||
|
|
<span style="font-family:'IBM Plex Mono',monospace;font-size:11px">edit this page on GitHub ↗</span>
|
|||
|
|
</footer>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
</section>
|
|||
|
|
|
|||
|
|
</x-dc>
|
|||
|
|
<script type="text/x-dc" data-dc-script data-props="{"showMarginalia":{"editor":"boolean","default":true,"tsType":"boolean","section":"Tone"},"showTOC":{"editor":"boolean","default":true,"tsType":"boolean","section":"Layout"},"feedbackTone":{"editor":"enum","options":["playful","plain"],"default":"playful","tsType":"string","section":"Tone"}}">
|
|||
|
|
class Component extends DCLogic {
|
|||
|
|
renderVals() {
|
|||
|
|
const playful = (this.props.feedbackTone ?? "playful") === "playful";
|
|||
|
|
return {
|
|||
|
|
showMarginalia: this.props.showMarginalia ?? true,
|
|||
|
|
showTOC: this.props.showTOC ?? true,
|
|||
|
|
feedbackAsk: playful ? "Did this page save you a trip to AGENTS.md?" : "Was this page helpful?",
|
|||
|
|
feedbackYes: playful ? "it did" : "Yes",
|
|||
|
|
feedbackNo: playful ? "no, and I'm mildly annoyed" : "No"
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</script>
|
|||
|
|
</body>
|
|||
|
|
</html>
|