Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/bug.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
name: Bug report
description: Report a reproducible problem with current Tabellio behavior.
description: Report a reproducible problem with current WritSet behavior.
title: "[Bug]: "
body:
- type: markdown
attributes:
value: "For vulnerabilities, use https://github.com/IntelIP/Tabellio/security/advisories/new. Do not include credentials, private sessions, provider bodies, or account data."
value: "For vulnerabilities, use https://github.com/IntelIP/WritSet/security/advisories/new. Do not include credentials, private sessions, provider bodies, or account data."
- type: input
id: version
attributes:
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Private vulnerability report
url: https://github.com/IntelIP/Tabellio/security/advisories/new
url: https://github.com/IntelIP/WritSet/security/advisories/new
about: Report security issues privately. Do not post vulnerability details in public issues.
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Who benefits, what problem this solves, and the observable before/after behavior.
List changed files, scope limits, and any unfinished work.

## Tabellio Evidence
## WritSet evidence

- [ ] Evidence envelope generated
- [ ] Evidence envelope validated
Expand Down
5 changes: 3 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# Agent entry point

Tabellio helps teams review AI-assisted code with evidence tied to the exact code
version. Serve teams trying and connecting Tabellio before adding operator detail.
WritSet helps teams understand and track context across coding-agent work.
Serve teams trying and connecting WritSet before adding operator detail.
The published package, CLI commands, and stored formats retain their Tabellio names.

## Find the right guide

Expand Down
9 changes: 5 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contributing

Help teams try Tabellio, connect one repository, and review code with clear evidence.
Help teams try WritSet, connect one repository, and understand their coding agents' context.
Keep changes Git-native, agent-agnostic, dependency-light, deterministic before
AI-assisted, and default-deny for protected external actions.

Expand All @@ -10,11 +10,12 @@ Use Node.js 20 or later, npm, Git 2.38 or later, and Entire 0.7.7 or later.
CI uses Node.js 22.23.1. PostgreSQL client/server binaries are required for the
provenance integration suite; git-spice 0.18 or later is needed for stack work.
The package has no runtime npm dependencies. Named npm scripts below belong to
this checkout; installed users start at [Try Tabellio](docs/try-tabellio.md).
this checkout; installed users start at [Try WritSet](docs/try-tabellio.md).
The published package and CLI commands still use the earlier Tabellio name.

```bash
git clone https://github.com/IntelIP/Tabellio.git
cd Tabellio
git clone https://github.com/IntelIP/WritSet.git
cd WritSet
entire enable --agent codex --project --skip-push-sessions
node scripts/tabellio-preflight.mjs --profile agent
```
Expand Down
4 changes: 2 additions & 2 deletions NOTICE
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Tabellio
WritSet (formerly Tabellio)
Copyright 2026 IntelIP

This product includes software developed for the Tabellio project.
This product includes software developed for the WritSet project (formerly Tabellio).
154 changes: 43 additions & 111 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,132 +1,64 @@
# Tabellio
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="docs/assets/writset-logo-dark.svg">
<img src="docs/assets/writset-logo-light.svg" width="440" alt="WritSet">
</picture>
</p>

Tabellio helps teams review AI-assisted code by collecting what changed, what was checked, and which actions were approved for the exact code version.
<h1 align="center">Context engineering for coding agents.</h1>

![Tabellio product overview](docs/assets/tabellio-hero.svg)
<p align="center">Understand what your agent worked from, what changed, and where to pick up next.</p>

**Published: [@intelip/tabellio 0.7.0](https://www.npmjs.com/package/@intelip/tabellio/v/0.7.0).**
This is an early project for evaluation on trusted workers.
Its local demo is repeatable; production adoption and performance are not established by that demo.
<p align="center">
<a href="docs/README.md">Documentation</a> ·
<a href="docs/try-tabellio.md">Try the demo</a> ·
<a href="https://github.com/IntelIP/WritSet/releases">Releases</a> ·
<a href="https://github.com/IntelIP/WritSet/issues">Help</a>
</p>

[Documentation](docs/README.md) · [Examples](examples/) · [Releases](https://github.com/IntelIP/Tabellio/releases) · [Help](https://github.com/IntelIP/Tabellio/issues)
WritSet keeps task context, code versions, checkpoints, and results connected across
coding-agent work. Start with a clear task, follow the changes, and keep a record
that the next session can use.

## Try the published package
## Keep the context connected

Start in a new directory. The demo needs:
- **Capture the starting point.** Record the task, Git base, changed files, and checkpoints.
- **Track what changed.** Tie results to the code version they describe; surface stale or missing evidence.
- **Carry work forward.** Keep run state, findings, and next actions available after an interruption.

- macOS or Linux, running as a regular user.
- Node.js 20 or later and npm. Repository CI uses Node.js 22.23.1.
- Git 2.38 or later.
- PostgreSQL client and server binaries on `PATH`: `psql`, `createdb`, `initdb`, and `pg_ctl`.
PostgreSQL 14.15 was used for the documented macOS run.
[Agent workflow](docs/agent-run-lifecycle.md) · [How context is stored](docs/native-git-foundation.md)

The demo creates its own temporary Git repository and private PostgreSQL cluster.
You do not need an existing database, provider account, token, Entire installation,
or git-spice installation for this sample. Internet access is needed to install the package.
## Try it locally

**Requirements:** macOS or Linux, Node.js 20+, Git 2.38+, and PostgreSQL client/server
tools on `PATH`. See the [setup guide](docs/try-tabellio.md#requirements).

In a new directory:

```bash
npm install --save-dev @intelip/tabellio@0.7.0
npx tabellio-version --expect-version 0.7.0
npx tabellio-provenance-demo
```

The version command checks the installed runner. The demo imports observations,
restarts the database, rebuilds its derived records, and checks review decisions.
It then stops its PostgreSQL server and removes its temporary files.
See [Try Tabellio](docs/try-tabellio.md) for setup, troubleshooting, and a saved receipt.

## What you should see

Both commands print JSON. Successful receipts include `ok: true` for the version
check and `status: "passed"` for the demo. Expected failure cases remain blocked.

Actual terminal-output excerpt from a clean installed-package run on macOS:

```json
{
"status": "passed",
"checks": {
"sourceReplay": "passed",
"changedSourceReplay": "blocked",
"missingSecurity": "blocked",
"postgresServerRestart": "passed",
"deleteAndReplay": "passed",
"movedBase": "blocked"
},
"cost": { "usd": 0, "modelCalls": 0, "cloudCalls": 0 },
"cleanup": "passed"
}
```

This is an excerpt, not the full receipt; commit IDs and timing vary per run.
Git and PostgreSQL operations are real. Plane, Entire, GitHub, Buildkite, and
security observations are **synthetic fixtures**. GitHub status delivery uses a
local fake transport. Nothing in this sample is published to a provider.
The sample proves the local workflow, not live provider access or scanner effectiveness.

## What Tabellio can do

| Capability | Practical result |
| --- | --- |
| Capture exact Git context | A packet names the base, head, changed files, and checkpoint evidence. |
| Run committed validation commands | Results apply to one code version; later edits can invalidate readiness. |
| Keep durable review and run state | Work can resume with its checks, findings, and next action preserved. |
| Import safe source observations | Local PostgreSQL records keep source identity and replayable relationships. |
| Build candidate-scoped review packets | Missing, stale, conflicting, or failed evidence remains visible and blocking. |
| Record independent security evidence | Bounded scanner receipts remain separate from an agent's review claim. |
| Prepare approved status publication | Review results can be shared through an explicit, short-lived approval. |
| Join delivery evidence | Reports distinguish code, releases, deployments, and missing relationships. |

The package also includes optional git-spice stack operations and a **legacy Plane
import capability**. IntelIP uses AgentShift for current project tracking;
Tabellio does not include an AgentShift adapter.

## Connect a real repository

Repository integration has extra requirements: a trusted Git checkout, genuine
Entire 0.7.7 or later checkpoints, and the committed platform and validation contracts.
Use git-spice 0.18 or later when working with stacked branches. PostgreSQL is
needed for the local provenance store; it is not needed for every Git-ref workflow.

Start with [Connect a repository](docs/getting-started.md).
That guide separates installed CLI commands from source-checkout development.
Exported provider snapshots need explicit access and safe input handling.
Publishing statuses or sharing private control refs needs separate approval.

## How the pieces fit

```mermaid
flowchart LR
A[Git and safe source snapshots] --> B[Tabellio capture and checks]
B --> C[Local PostgreSQL projection]
C --> D[Review packet]
B --> E[Local Git evidence refs]
D --> F[Human review and decision]
E --> F
```

GitHub stores code and pull requests. Private checkpoint, validation, and review
state stays on customer-owned local storage by default. PostgreSQL stores a
derived evidence view; source observations and Git remain the recovery inputs.
See [Native Git foundation](docs/native-git-foundation.md) and
[Provenance operations](docs/provenance.md) for the detailed boundaries.
The demo records source observations, restarts its temporary database, and rebuilds
the stored context. A successful receipt ends with `status: "passed"` and
`cleanup: "passed"`.

## Material limits
**Naming transition:** WritSet was previously Tabellio. The published package and
commands still use the earlier name; the commands above are the supported install.

- Passing checks do not grant merge, release, deployment, or credential authority.
- Missing access is a blocker, not a successful or empty observation.
- Security checks cover their declared rules, not every possible vulnerability.
- Hosted exact-head validation needs genuine, privately provisioned checkpoint evidence.
- No autonomous production service, cloud provisioning, or automatic learning is included.
## Current scope

## Contribute, operate, and get help
WritSet is an early CLI toolkit for trusted local workers. Git and database operations
in the demo are real; external-service and security records are synthetic.
It does not prove production adoption, benchmark gains, or live-provider security.
Private context stays on customer-owned storage by default. External actions require
their own approval.

[Contributing](CONTRIBUTING.md) explains source setup, checks, and handoffs.
[Agent instructions](AGENTS.md) route coding agents to the same standards.
[Operate and release](docs/operate-and-release.md) covers protected operator procedures.
## Go further

Ask questions or report ordinary bugs through [GitHub Issues](https://github.com/IntelIP/Tabellio/issues).
Use [private vulnerability reporting](https://github.com/IntelIP/Tabellio/security/advisories/new)
for security reports; read the [security policy](SECURITY.md) first.
[Connect a repository](docs/getting-started.md) · [Examples](examples/) ·
[Contribute](CONTRIBUTING.md) · [Security](SECURITY.md) · [Brand assets](docs/brand.md)

Tabellio is licensed under **Apache-2.0**. See [LICENSE](LICENSE) and [NOTICE](NOTICE).
Built by **IntelIP**. Licensed under [Apache-2.0](LICENSE).
6 changes: 3 additions & 3 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ version and source commit when available.

## Private vulnerability reporting

Use [GitHub's private report form](https://github.com/IntelIP/Tabellio/security/advisories/new).
Use [GitHub's private report form](https://github.com/IntelIP/WritSet/security/advisories/new).
Do not file vulnerability details in a public issue. The private form is the
project's reporting route; ordinary bugs and questions use
[GitHub Issues](https://github.com/IntelIP/Tabellio/issues).
[GitHub Issues](https://github.com/IntelIP/WritSet/issues).

Include the affected version/file, minimal reproduction, expected and actual
behavior, likely impact, and safe evidence references. Explain whether the issue
Expand Down Expand Up @@ -41,7 +41,7 @@ configuration, disabled TLS verification, dynamic `eval`, and declared dependenc
policy. Candidate ignore files cannot grant a pass. Remaining declared dependencies
need vulnerability evidence. Read [scanner operations](docs/provenance.md) for limits.

Tabellio does not claim complete vulnerability detection, SLSA certification,
WritSet does not claim complete vulnerability detection, SLSA certification,
in-toto verification, cryptographic evidence signing, complete supply-chain
protection, or autonomous production safety. Synthetic security observations in
the demo do not prove scanner effectiveness or live-provider security.
Expand Down
13 changes: 8 additions & 5 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
# Tabellio documentation
# WritSet documentation

Choose the outcome you need. Current guides describe behavior; validation and
review records establish passing evidence for a specific code version.
Understand and track the context behind coding-agent work: tasks, source versions,
checkpoints, results, and handoffs. Choose the outcome you need below.

WritSet was previously Tabellio. The published package, CLI commands, configuration
files, and stored formats keep their existing names during this transition.

| Route | Start here | Result |
| --- | --- | --- |
| **Try Tabellio** | [Published-package demo](try-tabellio.md) | Run a local sample and understand which observations are synthetic. |
| **Try WritSet** | [Published-package demo](try-tabellio.md) | Run a local sample and understand which observations are synthetic. |
| **Connect a repository** | [Integration setup](getting-started.md) | Add genuine checkpoints and repository-specific contracts. |
| **Contribute** | [Contributor setup and handoffs](../CONTRIBUTING.md) | Finish one scoped change with the applicable checks. |
| **Operate and release** | [Operator guide](operate-and-release.md) | Review protected sharing, validation, and release procedures. |
Expand Down Expand Up @@ -34,7 +37,7 @@ review records establish passing evidence for a specific code version.
- [Operations hardening](operations-hardening.md) and [checkpoint proof handoff](checkpoint-proof-handoff.md).
- [Pilot acceptance](pilot/acceptance-plan.md) and [architecture and recovery](pilot/architecture-and-recovery.md).
- [Release notes](releases/), [changelog](../CHANGELOG.md), and [v0.7.0 launch scope](gtm/v0.7.0-launch.md).
- [Security policy](../SECURITY.md) and [private reporting](https://github.com/IntelIP/Tabellio/security/advisories/new).
- [Security policy](../SECURITY.md) and [private reporting](https://github.com/IntelIP/WritSet/security/advisories/new).

## Previous work

Expand Down
2 changes: 1 addition & 1 deletion docs/agent-run-lifecycle.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Agent Run Lifecycle

Tabellio can run a complete local agent workflow without a GitHub API or proprietary code-storage service. State lives under a local run root; Git remains the code substrate.
WritSet can run a complete local agent workflow without a GitHub API or proprietary code-storage service. State lives under a local run root; Git remains the code substrate.

## State Machine

Expand Down
93 changes: 93 additions & 0 deletions docs/assets/fonts/space-grotesk-LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
Copyright 2020 The Space Grotesk Project Authors (https://github.com/floriankarsten/space-grotesk)

This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL


-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.

The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).

"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.

"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:

1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.

2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.

3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.

4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.

5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.

TERMINATION
This license becomes null and void if any of the above conditions are
not met.

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
Binary file added docs/assets/fonts/space-grotesk.woff2
Binary file not shown.
Loading
Loading