Add launch plan and CTA to Finishline Supervisor landing page

Chair flagged the page had no call to action. Synthesize codex's and
claude's launch plans into ventures/finishline-supervisor/LAUNCH.md
(grok submitted none for this venture), then rework site/index.html
with one primary CTA above the fold: a plain-HTML signup form posting
to /api/signup (email, plan, optional note, honeypot), a pricing
section for the three tiers, and a thank-you state on ?joined=1#join.
Free CLI download and the honest-limits section are unchanged.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
claudeandClaude Sonnet 5 committed 2026-10-09 20:53:01 -07:00
1 parent 685b352d97
commit e25b051a16
3 files changed
+165 -6

No files matched your search

+65
View File
@@ -0,0 +1,65 @@
# Finishline Supervisor — launch iteration
Synthesized from the board's submitted launch plans for this venture: **codex** and **claude**.
**grok did not submit a plan for this venture**, so there is no 3-way majority to take; ties
between codex and claude are broken toward whichever idea the live page can actually implement
honestly (one form, no payment processor, no fake checkout), and that's called out below.
## Positioning (codex + claude, merged)
For solo developers and small teams who assign real tasks to AI coding agents (Claude Code,
Cursor, Aider, and similar), Finishline Supervisor is a repo-local referee: a task checklist,
the Git diff, and fresh acceptance checks turn an agent's own "I'm done" claim into a DONE / WAIT
/ ANDON signal you can inspect — not the agent's narrative.
## Audience (codex + claude, merged)
First ~100 users: solo maintainers and 2–5 person teams already running Claude Code, Cursor, or
Aider on real repos with their own acceptance tests, who've been burned by an agent claiming
"done" on broken or out-of-scope work. Reached via the upstream issue thread
(anthropics/claude-code#79948), HN/r/ClaudeAI threads on agent trust, and direct outreach to
small-repo maintainers (codex widened to "any agent CLI" per claude; codex's macOS/Linux
constraint kept since that's what the CLI actually supports).
## Business model (codex + claude, both kept — not a conflict)
Core CLI stays free and dependency-free forever: the product's value is trust, and paywalling the
verification layer would undercut that (claude's framing). The two paid ideas don't compete for
the same buyer, so both are offered rather than picked between:
- **Near-term, validated via signups only** (codex): a fixed-scope, one-time repo setup service at
a **$99 founding price** — no payment processor exists yet, so this tier only tests demand.
- **Longer-term waitlist** (claude): a hosted team companion (cross-repo card history, GitHub PR
status checks gating merge on DONE, Slack alerts on ANDON) at a **planned $9/seat/mo**.
Claude's separate "$500 setup help" tier was folded into codex's $99 pilot rather than kept as a
third price, since both are the same "someone configures this for your repo" offer and running two
prices for it would just confuse the one signup form.
## Pricing
| Tier | Price | For | Includes | Source |
|---|---|---|---|---|
| Local | $0 | Any dev comfortable writing their own checks | Full CLI, example task card, runnable demo, local evidence, no telemetry | codex + claude |
| Setup Pilot | $99 one-time, founding price | Small teams wanting a reliable agent handoff on one repo | One task-contract template, up to 3 acceptance checks, one setup review | codex |
| Team Early Access | $9/seat/mo, planned | Teams running agents across multiple repos | Hosted card-history dashboard, GitHub PR status check gating merge on DONE, Slack alert on ANDON (waitlist, not billed) | claude |
## Primary CTA
One form, one button: **"Join early access"** (claude's label — generic enough to cover both paid
tiers, unlike codex's tier-specific "Join the $99 setup pilot"). The form has an email field and a
plan selector (Setup Pilot / Team Early Access / just updates), so a visitor expresses interest in
either paid idea through the same CTA instead of forcing a single-tier choice on the page.
## Launch channels (drafts for chair approval — none sent by us)
1. Reply on anthropics/claude-code#79948 linking the launch page (claude)
2. Show HN post with the free CLI and the recorded WAIT → ANDON → DONE demo (codex + claude, both proposed this independently)
3. r/ClaudeAI post showing a completed checklist still producing ANDON when a check fails, with clear AI-authorship disclosure (codex + claude, both proposed this independently)
4. Personal outreach to ~20 maintainers of small public repos who've posted about unfinished agent tasks (codex)
5. Post in dev-tools Discord/Slack communities already has a presence in (claude)
## 7-day success metric (merged)
At least 15 qualified email signups, including (a) at least 3 explicit picks of Setup Pilot or
Team Early Access combined (codex's paid-commitment bar, widened from one tier to both since the
page now offers two), and (b) at least 5 signups who also download the CLI from this page or have
starred/cloned the repo (claude's intent signal) → keep going, deliver the first pilot.
## 7-day kill metric (merged)
With at least 100 relevant landing-page visits (codex's denominator — below that the test is
inconclusive), fewer than 5 total qualified signups and zero explicit paid-tier picks → stop the
paid launch and keep only the free CLI (merges codex's visitor-gated threshold with claude's "<5
signups = no path to paid audience").
@@ -0,0 +1,65 @@
# Finishline Supervisor — launch iteration
Synthesized from the board's submitted launch plans for this venture: **codex** and **claude**.
**grok did not submit a plan for this venture**, so there is no 3-way majority to take; ties
between codex and claude are broken toward whichever idea the live page can actually implement
honestly (one form, no payment processor, no fake checkout), and that's called out below.
## Positioning (codex + claude, merged)
For solo developers and small teams who assign real tasks to AI coding agents (Claude Code,
Cursor, Aider, and similar), Finishline Supervisor is a repo-local referee: a task checklist,
the Git diff, and fresh acceptance checks turn an agent's own "I'm done" claim into a DONE / WAIT
/ ANDON signal you can inspect — not the agent's narrative.
## Audience (codex + claude, merged)
First ~100 users: solo maintainers and 2–5 person teams already running Claude Code, Cursor, or
Aider on real repos with their own acceptance tests, who've been burned by an agent claiming
"done" on broken or out-of-scope work. Reached via the upstream issue thread
(anthropics/claude-code#79948), HN/r/ClaudeAI threads on agent trust, and direct outreach to
small-repo maintainers (codex widened to "any agent CLI" per claude; codex's macOS/Linux
constraint kept since that's what the CLI actually supports).
## Business model (codex + claude, both kept — not a conflict)
Core CLI stays free and dependency-free forever: the product's value is trust, and paywalling the
verification layer would undercut that (claude's framing). The two paid ideas don't compete for
the same buyer, so both are offered rather than picked between:
- **Near-term, validated via signups only** (codex): a fixed-scope, one-time repo setup service at
a **$99 founding price** — no payment processor exists yet, so this tier only tests demand.
- **Longer-term waitlist** (claude): a hosted team companion (cross-repo card history, GitHub PR
status checks gating merge on DONE, Slack alerts on ANDON) at a **planned $9/seat/mo**.
Claude's separate "$500 setup help" tier was folded into codex's $99 pilot rather than kept as a
third price, since both are the same "someone configures this for your repo" offer and running two
prices for it would just confuse the one signup form.
## Pricing
| Tier | Price | For | Includes | Source |
|---|---|---|---|---|
| Local | $0 | Any dev comfortable writing their own checks | Full CLI, example task card, runnable demo, local evidence, no telemetry | codex + claude |
| Setup Pilot | $99 one-time, founding price | Small teams wanting a reliable agent handoff on one repo | One task-contract template, up to 3 acceptance checks, one setup review | codex |
| Team Early Access | $9/seat/mo, planned | Teams running agents across multiple repos | Hosted card-history dashboard, GitHub PR status check gating merge on DONE, Slack alert on ANDON (waitlist, not billed) | claude |
## Primary CTA
One form, one button: **"Join early access"** (claude's label — generic enough to cover both paid
tiers, unlike codex's tier-specific "Join the $99 setup pilot"). The form has an email field and a
plan selector (Setup Pilot / Team Early Access / just updates), so a visitor expresses interest in
either paid idea through the same CTA instead of forcing a single-tier choice on the page.
## Launch channels (drafts for chair approval — none sent by us)
1. Reply on anthropics/claude-code#79948 linking the launch page (claude)
2. Show HN post with the free CLI and the recorded WAIT → ANDON → DONE demo (codex + claude, both proposed this independently)
3. r/ClaudeAI post showing a completed checklist still producing ANDON when a check fails, with clear AI-authorship disclosure (codex + claude, both proposed this independently)
4. Personal outreach to ~20 maintainers of small public repos who've posted about unfinished agent tasks (codex)
5. Post in dev-tools Discord/Slack communities already has a presence in (claude)
## 7-day success metric (merged)
At least 15 qualified email signups, including (a) at least 3 explicit picks of Setup Pilot or
Team Early Access combined (codex's paid-commitment bar, widened from one tier to both since the
page now offers two), and (b) at least 5 signups who also download the CLI from this page or have
starred/cloned the repo (claude's intent signal) → keep going, deliver the first pilot.
## 7-day kill metric (merged)
With at least 100 relevant landing-page visits (codex's denominator — below that the test is
inconclusive), fewer than 5 total qualified signups and zero explicit paid-tier picks → stop the
paid launch and keep only the free CLI (merges codex's visitor-gated threshold with claude's "<5
signups = no path to paid audience").
+35 -6
View File
@@ -8,7 +8,9 @@
<style> <style>
:root{color-scheme:light dark;--bg:#f4f2ec;--fg:#111;--muted:#6a6861;--line:#cbc7bd;--card:#fbfaf6;--hot:#ff5a1f} :root{color-scheme:light dark;--bg:#f4f2ec;--fg:#111;--muted:#6a6861;--line:#cbc7bd;--card:#fbfaf6;--hot:#ff5a1f}
@media(prefers-color-scheme:dark){:root{--bg:#10100f;--fg:#f3f0e8;--muted:#aaa69d;--line:#393732;--card:#171715;--hot:#ff7a45}} @media(prefers-color-scheme:dark){:root{--bg:#10100f;--fg:#f3f0e8;--muted:#aaa69d;--line:#393732;--card:#171715;--hot:#ff7a45}}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.wrap{width:min(980px,calc(100% - 36px));margin:auto}a{color:inherit;text-underline-offset:4px}a:focus-visible{outline:3px solid var(--hot);outline-offset:5px}header{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line)}.brand{font-weight:800;letter-spacing:-.04em}.tiny,.label{font-size:12px;color:var(--muted)}.label{text-transform:uppercase;letter-spacing:.1em}.hero{padding:84px 0 48px}h1{font-size:clamp(46px,8.5vw,88px);line-height:.96;letter-spacing:-.075em;margin:20px 0 28px}h1 span{color:var(--hot)}h2{font-family:ui-sans-serif,system-ui,sans-serif;font-size:30px;line-height:1.1;letter-spacing:-.04em;margin:0 0 18px}p,li{font-family:ui-sans-serif,system-ui,sans-serif;line-height:1.55;font-size:17px}.lead{max-width:760px;font-size:clamp(20px,3vw,28px);line-height:1.25}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0}.button{display:inline-block;padding:13px 18px;border:1px solid var(--fg);border-radius:999px;text-decoration:none;font-size:14px}.primary{background:var(--fg);color:var(--bg)}.signals{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:60px}.card{border:1px solid var(--line);background:var(--card);padding:24px;border-radius:18px}.card strong{font-size:25px}.card p{font-size:16px;color:var(--muted);margin-bottom:0}.andon{border-color:var(--hot)}section{margin-bottom:60px}.split{display:grid;grid-template-columns:1.1fr 1fr;gap:24px}pre{overflow:auto;white-space:pre;max-width:100%;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px;font-size:13px;line-height:1.6}code{font-family:inherit}p code,li code{font-family:ui-monospace,monospace;font-size:.9em}.note{color:var(--muted);font-size:15px}footer{border-top:1px solid var(--line);padding:26px 0 42px;color:var(--muted);font-size:12px;line-height:1.7}@media(max-width:700px){.hero{padding-top:55px}.signals,.split{grid-template-columns:1fr}header{flex-wrap:wrap;padding:16px 0}pre{padding:16px;font-size:12px}} *{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.wrap{width:min(980px,calc(100% - 36px));margin:auto}a{color:inherit;text-underline-offset:4px}a:focus-visible{outline:3px solid var(--hot);outline-offset:5px}header{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line)}.brand{font-weight:800;letter-spacing:-.04em}.tiny,.label{font-size:12px;color:var(--muted)}.label{text-transform:uppercase;letter-spacing:.1em}.hero{padding:84px 0 48px}h1{font-size:clamp(46px,8.5vw,88px);line-height:.96;letter-spacing:-.075em;margin:20px 0 28px}h1 span{color:var(--hot)}h2{font-family:ui-sans-serif,system-ui,sans-serif;font-size:30px;line-height:1.1;letter-spacing:-.04em;margin:0 0 18px}p,li{font-family:ui-sans-serif,system-ui,sans-serif;line-height:1.55;font-size:17px}.lead{max-width:760px;font-size:clamp(20px,3vw,28px);line-height:1.25}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0}.button{display:inline-block;padding:13px 18px;border:1px solid var(--fg);border-radius:999px;text-decoration:none;font-size:14px;font-family:ui-sans-serif,system-ui,sans-serif;cursor:pointer}.primary{background:var(--fg);color:var(--bg)}.signals{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:60px}.card{border:1px solid var(--line);background:var(--card);padding:24px;border-radius:18px}.card strong{font-size:25px}.card p{font-size:16px;color:var(--muted);margin-bottom:0}.andon{border-color:var(--hot)}section{margin-bottom:60px}.split{display:grid;grid-template-columns:1.1fr 1fr;gap:24px}pre{overflow:auto;white-space:pre;max-width:100%;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px;font-size:13px;line-height:1.6}code{font-family:inherit}p code,li code{font-family:ui-monospace,monospace;font-size:.9em}.note{color:var(--muted);font-size:15px}footer{border-top:1px solid var(--line);padding:26px 0 42px;color:var(--muted);font-size:12px;line-height:1.7}
.join{border:1px solid var(--line);background:var(--card);border-radius:18px;padding:26px;margin:30px 0}.join-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.join-row input[type=email],.join-row select{flex:1 1 180px;min-width:0;padding:12px 14px;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--fg);font-family:ui-sans-serif,system-ui,sans-serif;font-size:14px}.join-note{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--bg);color:var(--fg);font-family:ui-sans-serif,system-ui,sans-serif;font-size:14px;margin-bottom:4px}.join .thanks{display:none;font-family:ui-sans-serif,system-ui,sans-serif;font-size:16px}.join.joined .thanks{display:block}.join.joined .join-form{display:none}.secondary-actions{display:flex;gap:16px;flex-wrap:wrap;margin:14px 0 6px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:14px}.pricing{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:60px}.plan{border:1px solid var(--line);background:var(--card);padding:22px;border-radius:18px;display:flex;flex-direction:column}.plan .tier{font-family:ui-sans-serif,system-ui,sans-serif;font-weight:800;font-size:18px;margin-bottom:4px}.plan .price{color:var(--hot);font-weight:800;font-size:15px;margin-bottom:12px}.plan .for{color:var(--muted);font-size:13px;margin-bottom:10px}.plan ul{margin:0 0 14px;padding-left:18px;font-size:14px}.plan li{margin-bottom:4px}.plan .source{margin-top:auto;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}
@media(max-width:700px){.hero{padding-top:55px}.signals,.split,.pricing{grid-template-columns:1fr}header{flex-wrap:wrap;padding:16px 0}pre{padding:16px;font-size:12px}}
</style> </style>
</head> </head>
<body><div class="wrap"> <body><div class="wrap">
@@ -17,15 +19,40 @@
<section class="hero"> <section class="hero">
<div class="label">one task. one card. fresh evidence.</div> <div class="label">one task. one card. fresh evidence.</div>
<h1>Make “done”<br><span>show its work.</span></h1> <h1>Make “done”<br><span>show its work.</span></h1>
<p class="lead">A small wrapper for coding-agent work. Read <code>task.md</code>, compare Git changes to the agreed scope, and run your acceptance checks. Get a signal you can inspect.</p> <p class="lead">Stop trusting an agent's own "I'm done." Read <code>task.md</code>, diff it against Git, run your acceptance checks — get DONE, WAIT, or ANDON you can inspect.</p>
<div class="actions"><a class="button primary" href="finishline.py" download>Download the CLI ↓</a><a class="button" href="#use">Try it in your repo</a><a class="button" href="README.md">Read the limits</a></div> <div id="join" class="join">
<p class="note">Python 3.9+ · Git · macOS/Linux · no dependencies · no model calls</p> <p class="thanks">Thanks — you're on the list. We'll email you about Finishline Supervisor only; nothing else, never shared.</p>
<form class="join-form" action="/api/signup" method="post" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="venture" value="finishline-supervisor">
<input type="hidden" name="website" value="">
<div class="join-row">
<input type="email" name="email" required placeholder="you@repo.dev" aria-label="Email address">
<select name="plan" aria-label="Plan" required>
<option value="setup_pilot">Setup Pilot — $99 founding price</option>
<option value="team_early_access">Team Early Access — $9/seat/mo (waitlist)</option>
<option value="updates_only">Just the free CLI, send updates</option>
</select>
<button class="button primary" type="submit">Join early access</button>
</div>
<input class="join-note" type="text" name="note" placeholder="Optional: which repo, or what you need">
</form>
</div>
<p class="secondary-actions"><a href="finishline.py" download>Download the free CLI ↓</a><a href="README.md">Read the limits</a></p>
<p class="note">Python 3.9+ · Git · macOS/Linux · no dependencies · no model calls · no payment processor yet — signing up expresses interest, it never charges you · we only email you about this tool, never shared</p>
</section> </section>
<div class="signals" aria-label="Exit signals"> <div class="signals" aria-label="Exit signals">
<article class="card"><strong>WAIT <small>1</small></strong><p>The checklist is incomplete, or fresh checks have not been run.</p></article> <article class="card"><strong>WAIT <small>1</small></strong><p>The checklist is incomplete, or fresh checks have not been run.</p></article>
<article class="card andon"><strong>ANDON <small>2</small></strong><p>Stop and inspect: a check failed, scope drifted, or the task definition changed.</p></article> <article class="card andon"><strong>ANDON <small>2</small></strong><p>Stop and inspect: a check failed, scope drifted, or the task definition changed.</p></article>
<article class="card"><strong>DONE <small>0</small></strong><p>Checklist complete. Scope fits. Every acceptance check just passed without changing observed evidence.</p></article> <article class="card"><strong>DONE <small>0</small></strong><p>Checklist complete. Scope fits. Every acceptance check just passed without changing observed evidence.</p></article>
</div> </div>
<section><div class="label">pricing</div><h2>Free forever. Paid tiers are early-access, not a checkout.</h2>
<div class="pricing">
<article class="plan"><div class="tier">Local</div><div class="price">$0</div><div class="for">Any dev comfortable writing their own checks</div><ul><li>Full CLI, example task card, runnable demo</li><li>Local evidence, no account, no telemetry</li></ul><div class="source">source: codex + claude</div></article>
<article class="plan"><div class="tier">Setup Pilot</div><div class="price">$99 one-time, founding price</div><div class="for">Small teams wanting a reliable agent handoff on one repo</div><ul><li>One task-contract template</li><li>Up to 3 acceptance checks</li><li>One setup review</li></ul><div class="source">source: codex</div></article>
<article class="plan"><div class="tier">Team Early Access</div><div class="price">$9/seat/mo, planned</div><div class="for">Teams running agents across multiple repos</div><ul><li>Hosted card-history dashboard</li><li>GitHub PR status check gating merge on DONE</li><li>Slack alert on ANDON</li></ul><div class="source">source: claude</div></article>
</div>
<p class="note">Join above and pick a plan — this is a waitlist, not billing. <a href="LAUNCH.md">Full launch plan and synthesis →</a></p>
</section>
<section class="split"> <section class="split">
<div><div class="label">why this exists</div><h2>The task survives the handoff.</h2><p>A new agent session can read the same <code>finishline.json</code>: pinned task definition, base commit, allowed paths, acceptance commands, and the last 20 evidence runs.</p><p>Inspired by <a href="https://github.com/anthropics/claude-code/issues/79948">anthropics/claude-code#79948</a>, a request for an accountability layer closed as <em>not planned</em>.</p><p class="note">This implements a small repo-local slice of that request. It cannot provide the native, unbypassable enforcement boundary the issue asks for.</p></div> <div><div class="label">why this exists</div><h2>The task survives the handoff.</h2><p>A new agent session can read the same <code>finishline.json</code>: pinned task definition, base commit, allowed paths, acceptance commands, and the last 20 evidence runs.</p><p>Inspired by <a href="https://github.com/anthropics/claude-code/issues/79948">anthropics/claude-code#79948</a>, a request for an accountability layer closed as <em>not planned</em>.</p><p class="note">This implements a small repo-local slice of that request. It cannot provide the native, unbypassable enforcement boundary the issue asks for.</p></div>
<div><div class="label">a real three-run task</div><h2>Build. Check. Finish.</h2><p>We dogfooded the wrapper on a disposable Git repo: build a greeting CLI, verify its exact output, document usage. The first output was <code>almost</code>; the required output was <code>finish line</code>.</p><p><a href="demo-evidence.json">Inspect the full recorded evidence →</a><br><a href="demo.txt">Read the recorded terminal output →</a></p></div> <div><div class="label">a real three-run task</div><h2>Build. Check. Finish.</h2><p>We dogfooded the wrapper on a disposable Git repo: build a greeting CLI, verify its exact output, document usage. The first output was <code>almost</code>; the required output was <code>finish line</code>.</p><p><a href="demo-evidence.json">Inspect the full recorded evidence →</a><br><a href="demo.txt">Read the recorded terminal output →</a></p></div>
@@ -54,5 +81,7 @@ python3 /path/to/finishline.py check
# After reviewing the commands: # After reviewing the commands:
python3 /path/to/finishline.py check --run-checks</code></pre><p>Mark checklist items <code>[x]</code> as you finish them. Run again at each handoff. A prior passing run never counts as a fresh check. ANDON exits 2, WAIT exits 1, DONE exits 0.</p></section> python3 /path/to/finishline.py check --run-checks</code></pre><p>Mark checklist items <code>[x]</code> as you finish them. Run again at each handoff. A prior passing run never counts as a fresh check. ANDON exits 2, WAIT exits 1, DONE exits 0.</p></section>
<section class="card"><div class="label">honest limits</div><h2>Evidence, with a trust boundary you supply.</h2><ul><li>Anyone who can edit the card, script, or checks can bypass this wrapper. It is not a sandbox or native agent enforcement.</li><li>Checks execute local programs with your permissions and environment. They can have side effects; there is no rollback. No automatic merge, deploy, or agent orchestration.</li><li>Scope covers current tracked and untracked Git changes relative to the base. Ignored files, external state, reverted changes, and the card itself are excluded.</li><li>DONE is only as strong as your acceptance checks. A deployment needs its own check. Command output is discarded; evidence contains exit codes and paths. Keep secrets out of task text, filenames, and argv.</li></ul><p class="note">Verified on the local Mac/Python host and in the existing Colima Linux runner container: 14 tests and the three-run demo passed in both. The CLI has not been tested on Fly or Boring.</p></section> <section class="card"><div class="label">honest limits</div><h2>Evidence, with a trust boundary you supply.</h2><ul><li>Anyone who can edit the card, script, or checks can bypass this wrapper. It is not a sandbox or native agent enforcement.</li><li>Checks execute local programs with your permissions and environment. They can have side effects; there is no rollback. No automatic merge, deploy, or agent orchestration.</li><li>Scope covers current tracked and untracked Git changes relative to the base. Ignored files, external state, reverted changes, and the card itself are excluded.</li><li>DONE is only as strong as your acceptance checks. A deployment needs its own check. Command output is discarded; evidence contains exit codes and paths. Keep secrets out of task text, filenames, and argv.</li></ul><p class="note">Verified on the local Mac/Python host and in the existing Colima Linux runner container: 14 tests and the three-run demo passed in both. The CLI has not been tested on Fly or Boring.</p></section>
</main><footer>notplanned · build what fell off the roadmap<br>Pure wrapper. No Codex or Claude changes. No telemetry. <a href="README.md">Full usage and limits</a>.</footer> </main><footer>notplanned · build what fell off the roadmap<br>Pure wrapper. No Codex or Claude changes. No telemetry on the CLI. The signup form posts only email/plan/note to our own list for launch updates on this tool, never shared. <a href="README.md">Full usage and limits</a>.</footer>
</div></body></html> </div>
<script>if(new URLSearchParams(location.search).get("joined")==="1"){var j=document.getElementById("join");if(j)j.classList.add("joined");}</script>
</body></html>