<divclass="eyebrow"><spanclass="pulse"></span>Repository truth carried by the branch</div>
<h1>The branch should explain itself.</h1>
<pclass="lead">Truthmark gives AI-assisted work a reviewable truth layer: current claims, ownership routes, product promises, and implementation facts travel with the same Git branch as the code.</p>
<divclass="hero-actions">
<aclass="button primary"href="https://github.com/merlinhu1/truthmark">View on GitHub</a>
<p>Truthmark is best understood as a repository-truth workflow surface. The value is not one feature; it is how several constraints reinforce each other.</p>
</div>
<divclass="map-grid">
<articleclass="surface-card"data-index="01"><spanclass="mini-kicker">Operation</span><h3>No resident service in the critical path</h3><p>Helpers can validate and refresh, but the daily closeout path is designed to remain readable from the checkout.</p></article>
<articleclass="surface-card"data-index="02"><spanclass="mini-kicker">Continuity</span><h3>Truth is maintained after the first draft</h3><p>Code changes keep revisiting the mapped docs, so documentation becomes a living review artifact rather than a launch-week export.</p></article>
<articleclass="surface-card"data-index="03"><spanclass="mini-kicker">Architecture</span><h3>Routes make ownership explicit</h3><p>Files, areas, and truth docs are connected by committed routing metadata instead of implicit tribal knowledge.</p></article>
<articleclass="surface-card"data-index="04"><spanclass="mini-kicker">Governance</span><h3>Product truth and mechanics do not collapse together</h3><p>User-facing promises can link to implementation reality without becoming the same document.</p></article>
<articleclass="surface-card"data-index="05"><spanclass="mini-kicker">Review</span><h3>Claims are small enough for Git</h3><p>The desired unit is a durable claim per line or bullet, making truth updates easy to inspect in pull requests.</p></article>
<articleclass="surface-card"data-index="06"><spanclass="mini-kicker">Portability</span><h3>Agent guidance follows the repo</h3><p>Generated skills, prompts, commands, and instruction blocks are committed where the agent can read them.</p></article>
<articleclass="surface-card"data-index="07"><spanclass="mini-kicker">Repair</span><h3>Overgrown docs trigger structure work</h3><p>When a file starts mixing owners, Truth Structure is the product answer, not a larger paragraph.</p></article>
<articleclass="surface-card"data-index="08"><spanclass="mini-kicker">Boundary</span><h3>Repository files outrank session memory</h3><p>Current truth lives where maintainers can diff, revert, blame, and review it.</p></article>
<div><spanclass="page-note">Workflow field guide</span><h2>Five workflows. One reviewable loop.</h2></div>
<divclass="page-intro-copy"><p>Truthmark does not turn every activity into a command. Three workflows are clear user entry points; Sync closes functional code changes; Structure appears only when ownership needs repair.</p></div>
</section>
<sectionclass="shell section">
<divclass="workflow-deck">
<articleclass="workflow-card"><spanclass="mode">You start · truth writes</span><code>/truthmark-document</code><h3>Document what already exists</h3><p>Read implementation and tests, then create or update bounded truth docs without changing functional code.</p></article>
<articleclass="workflow-card"><spanclass="mode">You start · code writes</span><code>/truthmark-realize</code><h3>Turn accepted truth into code</h3><p>Use product truth as requirements and engineering truth as implementation context. The source docs remain unchanged.</p></article>
<articleclass="workflow-card"><spanclass="mode">You start · read only</span><code>/truthmark-check</code><h3>Audit before review</h3><p>Inspect routing, evidence, lane shape, and truth health without authorizing writes.</p></article>
<articleclass="workflow-card sync"><spanclass="mode">Agent finish-time · truth writes</span><code>Truth Sync</code><h3>Close the branch honestly</h3><p>After functional code changes, review mapped truth, capture supported decisions, and update or explicitly leave claims unchanged with evidence.</p></article>
<articleclass="workflow-card"><spanclass="mode">Only when needed · topology</span><code>Truth Structure</code><h3>Repair ownership before adding prose</h3><p>Split broad routes and overgrown docs when the repository can no longer identify a bounded owner.</p></article>
<p>This demo is fictional, but the workflow is concrete: create the right doc, update it when behavior changes, and split it when ownership gets crowded.</p>
<buttonclass="tab"type="button"role="tab"aria-selected="true"aria-controls="panel-1"id="tab-1"><strong>Episode 1 · New invariant</strong>A retry policy appears in code and needs a current-state owner.</button>
<buttonclass="tab"type="button"role="tab"aria-selected="false"aria-controls="panel-2"id="tab-2"><strong>Episode 2 · Promise pressure</strong>Marketing copy changes; product truth and engineering truth diverge.</button>
<buttonclass="tab"type="button"role="tab"aria-selected="false"aria-controls="panel-3"id="tab-3"><strong>Episode 3 · Ownership split</strong>Replay, delivery, audit, and alerts no longer belong in one file.</button>
<buttonclass="tab"type="button"role="tab"aria-selected="false"aria-controls="panel-4"id="tab-4"><strong>Episode 4 · Reviewer packet</strong>The pull request shows implementation, evidence, and truth changes together.</button>
<divclass="truth-sheet"><spanclass="label">Created doc</span><h3>Webhook delivery behavior</h3><h4>Current behavior</h4><ul><liclass="add">Failed deliveries are retried three times.</li><liclass="add">Backoff starts at 30 seconds and doubles per attempt.</li><liclass="add">Manual replay remains available after automatic retries stop.</li></ul><h4>Non-goals</h4><ul><liclass="quiet">The service does not claim exactly-once delivery.</li></ul></div>
<divclass="truth-sheet"><spanclass="label">Two updated surfaces</span><h3>Product promise vs implementation fact</h3><h4>Product truth</h4><ul><liclass="add">Operators can inspect failed delivery history before replay.</li><liclass="add">The product presents replay as an operator recovery tool, not an automatic guarantee.</li></ul><h4>Engineering truth</h4><ul><liclass="edit">Replay writes an audit row with actor, delivery id, and timestamp.</li><liclass="quiet">The retry limit remains unchanged.</li></ul></div>
<divclass="panel-head"><strong>Truth Structure changes the shape before prose gets heavier.</strong><spanclass="status-pill">split</span></div>
<divclass="panel-grid">
<divclass="evidence"><spanclass="label">Topology pressure</span><divclass="evidence-list"><divclass="file-row">delivery retries + manual replay + alert thresholds + export audit</div><divclass="file-row">one doc now has four owners</div><divclass="file-row">future edits would be ambiguous</div></div></div>
<divclass="truth-sheet"><spanclass="label">New ownership map</span><h3>Owned docs after split</h3><ul><liclass="move">engineering/webhook-delivery.md owns retry and delivery lifecycle.</li><liclass="move">engineering/webhook-replay.md owns operator replay behavior.</li><liclass="move">engineering/webhook-audit.md owns audit rows and export format.</li><liclass="move">product/webhook-reliability.md owns customer-facing recovery promises.</li></ul></div>
<divclass="truth-sheet"><spanclass="label">Reviewer questions</span><h3>What the PR now answers</h3><ul><liclass="add">Which user promise changed?</li><liclass="add">Which implementation behavior supports it?</li><liclass="add">Which files own future updates?</li><liclass="add">Which claims should be rejected if the code changes again?</li></ul></div>
<div><spanclass="page-note">Repository truth model</span><h2>Keep the promise and the mechanism in different rooms.</h2></div>
<divclass="page-intro-copy"><p>Truthmark links what users can rely on to how the repository currently realizes it. The relationship is explicit, but neither document inherits authority from the other.</p></div>
<divclass="section-header"><h2>Two lanes, linked on purpose.</h2><p>Truthmark can let product and engineering documents reference each other without forcing them into the same voice or authority level.</p></div>
<divclass="split-view">
<articleclass="lane"><spanclass="mini-kicker">Promise lane</span><h3>What the project says users can rely on</h3><p>This lane is for product capabilities, boundaries, acceptance criteria, and non-goals.</p><ul><li>Operators can inspect replay history.</li><li>The workflow is repository-native by default.</li><li>Generated presentation pages are not canonical truth.</li></ul></article>
<articleclass="lane"><spanclass="mini-kicker">Mechanics lane</span><h3>What the current implementation actually does</h3><p>This lane is for runtime behavior, contracts, operations, architecture, and failure modes.</p><ul><li>Backoff doubles after each failed delivery attempt.</li><li>GitHub Pages deploys the committed static site under site/**.</li><li>Generated surfaces refresh when rendered content changes.</li></ul></article>
<divclass="section-header"><h2>Three committed layers make the handoff legible.</h2><p>The route map decides ownership, truth docs preserve current claims, and host-native guidance tells the coding agent when each surface may change.</p></div>
<divclass="truth-anatomy">
<articleclass="anatomy-card"data-step="01"><spanclass="mini-kicker">Route</span><h3>Find the bounded owner</h3><p>Changed paths map to an area and its canonical product or engineering truth docs.</p></article>
<articleclass="anatomy-card"data-step="02"><spanclass="mini-kicker">Truth</span><h3>Preserve the claim</h3><p>Human-facing Markdown records current behavior, rationale, boundaries, and evidence in the right lane.</p></article>
<articleclass="anatomy-card"data-step="03"><spanclass="mini-kicker">Guidance</span><h3>Meet the agent in its host</h3><p>Committed skills, prompts, commands, and instruction blocks carry write boundaries into normal coding work.</p></article>
<divclass="section-header"><h2>The workflow is deliberately boring at runtime.</h2><p>Truthmark's ambition is in the repository model, not in requiring every contributor to adopt a new always-on system.</p></div>
<div><spanclass="page-note">Adoption path</span><h2>Install the contract, then get out of the way.</h2></div>
<divclass="page-intro-copy"><p>Choose the agent host your team already uses. Truthmark commits its guidance, routes, and truth docs to the repository, so the next branch can continue without a background service.</p></div>
<divclass="section-header"><h2>Start with the repo, not a server.</h2><p>Install once, commit the workflow surface, and let future branches carry their truth updates through normal review.</p></div>
<sectionclass="terminal"aria-label="Install commands"><divclass="terminal-top"><spanclass="term-dot"></span><spanclass="term-dot"></span><spanclass="term-dot"></span></div><pre><spanclass="prompt">$</span> cd /path/to/your-repo
<spanclass="mini-kicker">What lands in the repo</span>
<h3>A small contract with visible parts</h3>
<p>Every durable surface can be reviewed, blamed, reverted, and carried by the branch.</p>
<divclass="start-list">
<divclass="start-item"><b>1</b><div><strong>Config and routes</strong><span>Choose platforms and map code areas to bounded truth owners.</span></div></div>
<divclass="start-item"><b>2</b><div><strong>Human-facing truth</strong><span>Keep product capabilities and engineering reality separate but linked.</span></div></div>
<divclass="start-item"><b>3</b><div><strong>Host-native guidance</strong><span>Install the workflow shape where your coding agent already looks.</span></div></div>
</div>
</article>
<articleclass="start-card">
<spanclass="mini-kicker">Choose your first move</span>
<h3>Begin with one bounded area</h3>
<p>Document one implemented behavior with code and test evidence. Then keep coding normally and let finish-time Sync review future changes.</p>
<divclass="hero-actions"><aclass="button primary"href="https://github.com/merlinhu1/truthmark#-quick-start-running-locally-in-five-minutes">Read the quick start</a><aclass="button"href="https://github.com/merlinhu1/truthmark/blob/main/docs/user-guide.md">Open the user guide</a></div>
</article>
</div>
<divclass="boundary-card"><strong>Presentation is not authority.</strong><p>This website explains the product. Canonical behavior remains in the repository's README, routed truth docs, source, tests, and configuration. Truthmark adds no required daemon, database, hosted service, or hidden memory layer.</p></div>
<footerclass="shell footer"><div>Truthmark keeps current repository truth reviewable where code review already happens.</div><div><ahref="https://github.com/merlinhu1/truthmark">GitHub</a> · <ahref="https://github.com/merlinhu1/truthmark/blob/main/docs/user-guide.md">User guide</a></div></footer>