diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 7086a7e..be10206 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,4 +1,4 @@ -## Evident Evidence +## Tabellio Evidence - [ ] Evidence envelope generated - [ ] Evidence envelope validated @@ -11,7 +11,7 @@ Evidence summary: ```json { - "schemaVersion": "evident-evidence/v0.1", + "schemaVersion": "tabellio-evidence/v0.1", "runId": "", "baseRef": "", "headRef": "", diff --git a/.github/workflows/evident-evidence.yml b/.github/workflows/tabellio-evidence.yml similarity index 53% rename from .github/workflows/evident-evidence.yml rename to .github/workflows/tabellio-evidence.yml index e745cc5..0b8c07b 100644 --- a/.github/workflows/evident-evidence.yml +++ b/.github/workflows/tabellio-evidence.yml @@ -1,4 +1,4 @@ -name: Evident Evidence +name: Tabellio Evidence on: pull_request: @@ -7,7 +7,7 @@ on: evidence_path: description: Path to the evidence envelope. required: false - default: evident-pr-evidence.json + default: tabellio-pr-evidence.json type: string validation_command: description: Command to run before writing evidence. @@ -15,7 +15,7 @@ on: default: "" type: string toolkit_ref: - description: Evident toolkit ref for fallback scripts. Pin to the same ref as the reusable workflow. + description: Tabellio toolkit ref for fallback scripts. Pin to the same ref as the reusable workflow. required: false type: string workflow_call: @@ -23,7 +23,7 @@ on: evidence_path: description: Path to the evidence envelope. required: false - default: evident-pr-evidence.json + default: tabellio-pr-evidence.json type: string validation_command: description: Command to run before writing evidence. @@ -31,7 +31,7 @@ on: default: "" type: string toolkit_ref: - description: Evident toolkit ref for fallback scripts. Pin to the same ref as the reusable workflow. + description: Tabellio toolkit ref for fallback scripts. Pin to the same ref as the reusable workflow. required: false type: string @@ -40,7 +40,7 @@ permissions: jobs: evidence: - name: Evident evidence + name: Tabellio evidence runs-on: ubuntu-latest steps: - name: Checkout @@ -58,64 +58,64 @@ jobs: if: ${{ inputs.validation_command }} run: ${{ inputs.validation_command }} - - name: Resolve Evident toolkit path + - name: Resolve Tabellio toolkit path id: toolkit if: ${{ always() }} shell: bash env: TOOLKIT_REF: ${{ inputs.toolkit_ref || '' }} run: | - if [ "$GITHUB_REPOSITORY" = "IntelIP/agentic-git-workflow" ]; then + if [ "$GITHUB_REPOSITORY" = "IntelIP/Tabellio" ]; then echo "path=." >> "$GITHUB_OUTPUT" elif [ -n "$TOOLKIT_REF" ]; then - echo "path=.evident/toolkit" >> "$GITHUB_OUTPUT" + echo "path=.tabellio/toolkit" >> "$GITHUB_OUTPUT" echo "ref=$TOOLKIT_REF" >> "$GITHUB_OUTPUT" - elif [ -f scripts/write-evident-evidence-envelope.mjs ] && \ - [ -f scripts/check-evident-evidence-envelope.mjs ] && \ - [ -f scripts/check-evident-external-actions.mjs ]; then + elif [ -f scripts/write-tabellio-evidence-envelope.mjs ] && \ + [ -f scripts/check-tabellio-evidence-envelope.mjs ] && \ + [ -f scripts/check-tabellio-external-actions.mjs ]; then echo "path=." >> "$GITHUB_OUTPUT" else - echo "::error::toolkit_ref is required when Evident scripts are not vendored. Pin it to the same ref as the reusable workflow." - echo "path=.evident/toolkit" >> "$GITHUB_OUTPUT" + echo "::error::toolkit_ref is required when Tabellio scripts are not vendored. Pin it to the same ref as the reusable workflow." + echo "path=.tabellio/toolkit" >> "$GITHUB_OUTPUT" exit 1 fi - - name: Checkout Evident toolkit - if: ${{ always() && steps.toolkit.outputs.path == '.evident/toolkit' && steps.toolkit.outputs.ref != '' }} + - name: Checkout Tabellio toolkit + if: ${{ always() && steps.toolkit.outputs.path == '.tabellio/toolkit' && steps.toolkit.outputs.ref != '' }} uses: actions/checkout@v5 with: - repository: IntelIP/agentic-git-workflow + repository: IntelIP/Tabellio ref: ${{ steps.toolkit.outputs.ref }} - path: .evident/toolkit + path: .tabellio/toolkit persist-credentials: false - name: Write evidence envelope if: ${{ always() && steps.toolkit.outcome == 'success' }} - run: node "${TOOLKIT_PATH}/scripts/write-evident-evidence-envelope.mjs" --out "${EVIDENCE_PATH}" + run: node "${TOOLKIT_PATH}/scripts/write-tabellio-evidence-envelope.mjs" --out "${EVIDENCE_PATH}" env: TOOLKIT_PATH: ${{ steps.toolkit.outputs.path }} - EVIDENCE_PATH: ${{ inputs.evidence_path || 'evident-pr-evidence.json' }} - EVIDENT_VALIDATION_COMMAND: ${{ inputs.validation_command || '' }} - EVIDENT_VALIDATION_STATUS: ${{ steps.validation.outcome || 'skipped' }} - EVIDENT_WRITER_COMMAND: node ${{ steps.toolkit.outputs.path }}/scripts/write-evident-evidence-envelope.mjs + EVIDENCE_PATH: ${{ inputs.evidence_path || 'tabellio-pr-evidence.json' }} + TABELLIO_VALIDATION_COMMAND: ${{ inputs.validation_command || '' }} + TABELLIO_VALIDATION_STATUS: ${{ steps.validation.outcome || 'skipped' }} + TABELLIO_WRITER_COMMAND: node ${{ steps.toolkit.outputs.path }}/scripts/write-tabellio-evidence-envelope.mjs - name: Validate evidence envelope if: ${{ always() && steps.toolkit.outcome == 'success' }} - run: node "${TOOLKIT_PATH}/scripts/check-evident-evidence-envelope.mjs" --evidence "${EVIDENCE_PATH}" + run: node "${TOOLKIT_PATH}/scripts/check-tabellio-evidence-envelope.mjs" --evidence "${EVIDENCE_PATH}" env: TOOLKIT_PATH: ${{ steps.toolkit.outputs.path }} - EVIDENCE_PATH: ${{ inputs.evidence_path || 'evident-pr-evidence.json' }} + EVIDENCE_PATH: ${{ inputs.evidence_path || 'tabellio-pr-evidence.json' }} - name: Check external action policy if: ${{ always() && steps.toolkit.outcome == 'success' }} - run: node "${TOOLKIT_PATH}/scripts/check-evident-external-actions.mjs" --evidence "${EVIDENCE_PATH}" + run: node "${TOOLKIT_PATH}/scripts/check-tabellio-external-actions.mjs" --evidence "${EVIDENCE_PATH}" env: TOOLKIT_PATH: ${{ steps.toolkit.outputs.path }} - EVIDENCE_PATH: ${{ inputs.evidence_path || 'evident-pr-evidence.json' }} + EVIDENCE_PATH: ${{ inputs.evidence_path || 'tabellio-pr-evidence.json' }} - name: Upload evidence artifact if: ${{ always() && steps.toolkit.outcome == 'success' }} uses: actions/upload-artifact@v4 with: - name: evident-pr-evidence - path: ${{ inputs.evidence_path || 'evident-pr-evidence.json' }} + name: tabellio-pr-evidence + path: ${{ inputs.evidence_path || 'tabellio-pr-evidence.json' }} diff --git a/.gitignore b/.gitignore index 1ca3c38..7efa932 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ node_modules/ agentic-pr-evidence.json -evident-pr-evidence.json +tabellio-pr-evidence.json .DS_Store .env .env.* diff --git a/CHANGELOG.md b/CHANGELOG.md index 01cab6e..baa36e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -All notable changes to Evident are recorded here. +All notable changes to Tabellio are recorded here. ## 0.1.0 - Pending Release @@ -8,7 +8,7 @@ Initial public release. ### Added -- Evidence envelope contract with `evident-evidence/v0.1` schema version. +- Evidence envelope contract with `tabellio-evidence/v0.1` schema version. - Dependency-free Node.js writer and validators. - Default-deny external action policy for protected side effects. - Reusable GitHub Actions workflow for PR evidence checks. @@ -16,7 +16,7 @@ Initial public release. - Minimal valid evidence fixture. - OpenSSF Scorecard workflow. - Research grounding, schema reference, and workflow model docs. -- Agentic tooling stack guide covering Code Storage, Entire, Graphite, GitHub, Codex, and Evident boundaries. +- Agentic tooling stack guide covering Code Storage, Entire, Graphite, GitHub, Codex, and Tabellio boundaries. ### Release Gates diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6d4ae3e..e740cfa 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -22,17 +22,17 @@ npm run check Generate and validate a fresh evidence packet: ```bash -node scripts/write-evident-evidence-envelope.mjs --out /tmp/evident-pr-evidence.json -node scripts/check-evident-evidence-envelope.mjs --evidence /tmp/evident-pr-evidence.json -node scripts/check-evident-external-actions.mjs --evidence /tmp/evident-pr-evidence.json +node scripts/write-tabellio-evidence-envelope.mjs --out /tmp/tabellio-pr-evidence.json +node scripts/check-tabellio-evidence-envelope.mjs --evidence /tmp/tabellio-pr-evidence.json +node scripts/check-tabellio-external-actions.mjs --evidence /tmp/tabellio-pr-evidence.json ``` Check script syntax: ```bash -node --check scripts/check-evident-evidence-envelope.mjs -node --check scripts/check-evident-external-actions.mjs -node --check scripts/write-evident-evidence-envelope.mjs +node --check scripts/check-tabellio-evidence-envelope.mjs +node --check scripts/check-tabellio-external-actions.mjs +node --check scripts/write-tabellio-evidence-envelope.mjs ``` Check the reusable workflow syntax before release: diff --git a/NOTICE b/NOTICE index 914d98d..3ad28cf 100644 --- a/NOTICE +++ b/NOTICE @@ -1,4 +1,4 @@ -Evident +Tabellio Copyright 2026 IntelIP -This product includes software developed for the Evident project. +This product includes software developed for the Tabellio project. diff --git a/README.md b/README.md index 55491b3..6fbd729 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,29 @@ -# Evident +# Tabellio -![Evident product overview](docs/assets/evident-hero.png) +![Tabellio product overview](docs/assets/tabellio-hero.png) -[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/IntelIP/agentic-git-workflow/badge)](https://scorecard.dev/viewer/?uri=github.com/IntelIP/agentic-git-workflow) -![Node.js](https://img.shields.io/badge/Node.js-%3E%3D20-339933?logo=node.js&logoColor=white) -![GitHub Actions](https://img.shields.io/badge/GitHub%20Actions-CI-2088FF?logo=githubactions&logoColor=white) -![JSON Schema](https://img.shields.io/badge/JSON%20Schema-evidence%20contract-0B6BFF) -![SARIF](https://img.shields.io/badge/SARIF-code%20scanning-2563EB) -![Graphite](https://img.shields.io/badge/Graphite-stacked%20review-6F42C1) -![Entire](https://img.shields.io/badge/Entire-checkpoint%20ledger-111827) -![Code Storage](https://img.shields.io/badge/Code%20Storage-git%20substrate-0F766E) -![License](https://img.shields.io/badge/license-Apache--2.0-green) +[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/IntelIP/Tabellio/badge)](https://scorecard.dev/viewer/?uri=github.com/IntelIP/Tabellio) +[![Node.js](https://img.shields.io/badge/Node.js-%3E%3D20-339933?logo=node.js&logoColor=white)](https://nodejs.org/) +[![GitHub Actions](https://img.shields.io/badge/GitHub%20Actions-CI-2088FF?logo=githubactions&logoColor=white)](https://github.com/features/actions) +[![JSON Schema](https://img.shields.io/badge/JSON%20Schema-evidence%20contract-0B6BFF)](https://json-schema.org/) +[![SARIF](https://img.shields.io/badge/SARIF-code%20scanning-2563EB)](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) +[![Graphite](https://img.shields.io/badge/Graphite-stacked%20review-6F42C1)](https://graphite.dev/) +[![Entire](https://img.shields.io/badge/Entire-checkpoint%20ledger-111827)](https://entire.io/) +[![Code Storage](https://img.shields.io/badge/Code%20Storage-git%20substrate-0F766E)](https://code.storage/) +[![License](https://img.shields.io/badge/license-Apache--2.0-green)](LICENSE) Evidence-backed pull request governance for agentic development. -Copyright 2026 IntelIP. Licensed under Apache-2.0. +Tabellio is an open-source experiment in what Git review should capture when agents write code: not just the diff, but the task, reason, commands, checks, artifacts, and protected side effects behind the change. -## Overview +## What It Adds -Evident is a lightweight workflow layer for AI-assisted code changes. - -It does not write code. It makes code written by agents, humans, or mixed workflows easier to review by attaching a structured evidence packet to each pull request. - -## What Evident Captures +Tabellio attaches a structured evidence packet to a pull request. The packet is small enough to inspect in review and strict enough to validate in CI. | Area | Evidence | | --- | --- | | Task | Source request, issue, ticket, or manual prompt summary | -| Git | Repository, base branch, head branch, commit SHA, PR metadata | +| Git | Repository, base branch, head branch, commit SHA, and PR metadata | | Runtime | Human, CI, or agent runtime that produced the change | | Diff | Changed files | | Validation | Commands run and check results | @@ -35,11 +31,9 @@ It does not write code. It makes code written by agents, humans, or mixed workfl | Side effects | Deployment, migration, infra, billing, secret, provider, and destructive-action policy | | Artifacts | Evidence files generated by the run | -## Why Teams Use It - -AI-assisted pull requests should not depend on reviewer trust alone. +## Review Questions -Evident gives reviewers a repeatable answer to: +AI-assisted pull requests should not depend on reviewer trust alone. Tabellio gives reviewers a repeatable answer to: - What changed? - Why did it change? @@ -48,52 +42,42 @@ Evident gives reviewers a repeatable answer to: - Did the workflow try to deploy, migrate, read secrets, touch billing, or mutate infrastructure? - Where is the machine-readable audit packet? -## Stack Tags +## Workflow Stack -| Layer | Stack | -| --- | --- | -| Runtime | Node.js 20+ | -| CI | GitHub Actions | -| Evidence contract | JSON Schema | -| Security signal | OpenSSF Scorecard | -| Code scanning output | SARIF | -| Review surface | GitHub Pull Requests | -| Stacked review | Graphite or Graphite-like PR stacks | -| Checkpoint ledger | Entire or compatible Git-backed session ledger | -| Git substrate | GitHub today; Code Storage-compatible machine Git layer | -| Agent review | Codex review, when configured | -| Governance model | Default-deny external action policy | -| Prior-art alignment | SLSA-inspired, in-toto-inspired | - -## Agentic Tooling Context - -Evident is the evidence gate in a larger agentic Git stack: - -- Code Storage-style substrate for machine-first Git repositories, branches, and code state -- Entire-style checkpoint ledger for agent session context and why-traceability -- Graphite-style stacked PR workflow for small dependent changes -- GitHub Pull Requests and GitHub Actions for review, checks, and artifacts -- Codex review as an optional agentic review layer - -See [Agentic tooling stack](docs/tooling-stack.md) for the full layer map and vendor-boundary notes. - -## Service Modules - -| Module | Path | Role | +| Layer | Tooling | Role | | --- | --- | --- | -| Evidence writer | `scripts/write-evident-evidence-envelope.mjs` | Generates `evident-pr-evidence.json` from Git and CI context | -| Envelope validator | `scripts/check-evident-evidence-envelope.mjs` | Validates required evidence fields | -| External-action guard | `scripts/check-evident-external-actions.mjs` | Fails unapproved protected side-effect attempts | -| PR evidence workflow | `.github/workflows/evident-evidence.yml` | Runs evidence checks on pull requests | -| Scorecard workflow | `.github/workflows/scorecard.yml` | Runs non-gating OpenSSF Scorecard scans | -| PR template | `.github/pull_request_template.md` | Puts evidence summary in front of reviewers | +| Runtime | [Node.js 20+](https://nodejs.org/) | Runs the local writer and validators | +| CI | [GitHub Actions](https://github.com/features/actions) | Hosts the reusable pull request evidence workflow | +| Evidence contract | [JSON Schema](https://json-schema.org/) | Validates the evidence envelope and external-action policy | +| Security signal | [OpenSSF Scorecard](https://securityscorecards.dev/) | Publishes a non-gating public repository health signal | +| Code scanning output | [SARIF](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) | Carries Scorecard output into GitHub code scanning | +| Review surface | [GitHub Pull Requests](https://github.com/features/code-review) | Shows checks, artifacts, and reviewer context | +| Stacked review | [Graphite](https://graphite.dev/) | Intended companion for small dependent PR stacks | +| Checkpoint ledger | [Entire](https://entire.io/) and [Entire CLI](https://github.com/entireio/cli) | Intended companion for agent session and checkpoint context | +| Git substrate | [GitHub](https://github.com/) today; [Code Storage](https://code.storage/) compatible direction | Stores repositories, branches, commits, patches, and machine-created code state | +| Agent review | [OpenAI Codex](https://openai.com/codex/) | Optional review layer when configured | +| Prior art | [SLSA](https://slsa.dev/) and [in-toto](https://in-toto.io/) | Inspiration for provenance and supply-chain evidence, without a compliance claim | + +The startup/tool tags describe the workflow ecosystem. Tabellio v0.1.0 does not call vendor APIs for Code Storage, Entire, Graphite, or Codex. + +## Core Files + +| Path | Purpose | +| --- | --- | +| `.github/workflows/tabellio-evidence.yml` | Reusable evidence workflow for pull requests | +| `.github/workflows/scorecard.yml` | Non-gating OpenSSF Scorecard scan | +| `schemas/` | Evidence and external-action JSON schemas | +| `scripts/` | Dependency-free writer and validators | +| `examples/` | Minimal valid evidence fixture and consumer workflow example | +| `templates/` | Pull request checklist for evidence-backed review | +| `docs/` | Setup, schema, workflow model, Codex review, tooling stack, and research grounding | ## Quick Start -Add Evident to another repository: +Add Tabellio to another repository: ```yaml -name: Evident Evidence +name: Tabellio Evidence on: pull_request: @@ -104,51 +88,39 @@ permissions: jobs: evidence: - uses: IntelIP/agentic-git-workflow/.github/workflows/evident-evidence.yml@v0.1.0 + uses: IntelIP/Tabellio/.github/workflows/tabellio-evidence.yml@v0.1.0 with: # Replace with the repository's normal validation command. validation_command: npm test toolkit_ref: v0.1.0 ``` -`toolkit_ref` is required when the consumer repository does not vendor the Evident scripts. In consumer repositories, setting it forces the workflow to use the pinned Evident toolkit instead of PR-controlled local scripts. Pin it to the same release tag or SHA as the reusable workflow. Before the first release tag exists, use `main` instead of `v0.1.0`. +`toolkit_ref` is required when the consumer repository does not vendor the Tabellio scripts. In consumer repositories, setting it forces the workflow to use the pinned Tabellio toolkit instead of PR-controlled local scripts. Pin it to the same release tag or SHA as the reusable workflow. Before the first release tag exists, use `main` instead of `v0.1.0`. Validate the bundled fixture: ```bash -node scripts/check-evident-evidence-envelope.mjs --evidence examples/evident-evidence/minimal-evidence.json -node scripts/check-evident-external-actions.mjs --evidence examples/evident-evidence/minimal-evidence.json +node scripts/check-tabellio-evidence-envelope.mjs --evidence examples/tabellio-evidence/minimal-evidence.json +node scripts/check-tabellio-external-actions.mjs --evidence examples/tabellio-evidence/minimal-evidence.json ``` Generate evidence from the current Git state: ```bash -node scripts/write-evident-evidence-envelope.mjs --out evident-pr-evidence.json -node scripts/check-evident-evidence-envelope.mjs --evidence evident-pr-evidence.json -node scripts/check-evident-external-actions.mjs --evidence evident-pr-evidence.json +node scripts/write-tabellio-evidence-envelope.mjs --out tabellio-pr-evidence.json +node scripts/check-tabellio-evidence-envelope.mjs --evidence tabellio-pr-evidence.json +node scripts/check-tabellio-external-actions.mjs --evidence tabellio-pr-evidence.json ``` Package scripts: ```bash npm run check -npm run evident:evidence:write -npm run evident:evidence:check -npm run evident:external-actions:check +npm run tabellio:evidence:write +npm run tabellio:evidence:check +npm run tabellio:external-actions:check ``` -## Repository Layout - -| Path | Purpose | -| --- | --- | -| `.github/workflows/evident-evidence.yml` | Reusable evidence workflow for PRs | -| `.github/workflows/scorecard.yml` | Non-gating OpenSSF Scorecard scan | -| `schemas/` | Evidence and external-action JSON schemas | -| `scripts/` | Dependency-free writer and validators | -| `examples/` | Minimal valid evidence fixture | -| `templates/` | PR template for evidence-backed review | -| `docs/` | Getting started, review guidance, workflow model, schema reference, and research grounding | - ## Protected Action Classes These actions require explicit approval before attempted execution: @@ -164,27 +136,6 @@ These actions require explicit approval before attempted execution: The external-action checker fails when an action is marked `attempted: true` without `approved: true`. -## GitHub Actions - -Run directly on pull requests in this repository: - -```yaml -name: Evident Evidence - -on: - pull_request: - -jobs: - evidence: - uses: IntelIP/agentic-git-workflow/.github/workflows/evident-evidence.yml@main - with: - toolkit_ref: main -``` - -For consumer repositories that use fallback toolkit checkout, pin both the workflow ref and `toolkit_ref` to the same release tag. - -The workflow runs the repository validation command first, then writes `evident-pr-evidence.json`, validates the envelope, checks the external-action policy, and uploads the evidence artifact. - ## Docs - [Getting started](docs/getting-started.md) @@ -197,16 +148,6 @@ The workflow runs the repository validation command first, then writes `evident- - [Contributing](CONTRIBUTING.md) - [Changelog](CHANGELOG.md) -## Non-Goals - -- no autonomous deployment -- no replacement for human review -- no secret access -- no provider-specific production workflow in core -- no SLSA or in-toto compliance claim yet - -## Status - -Current package version: v0.1.0. GitHub release tag pending. +## License -Evident is intentionally small: schemas, scripts, reusable workflows, examples, templates, and docs. +Apache-2.0. See [LICENSE](LICENSE) and [NOTICE](NOTICE). diff --git a/SECURITY.md b/SECURITY.md index 2eed6bd..2eebcde 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -19,7 +19,7 @@ Do not include live secrets, credentials, private keys, tokens, or account data ## Security Model -Evident assumes generated code and agent claims are untrusted until deterministic checks validate the evidence packet. +Tabellio assumes generated code and agent claims are untrusted until deterministic checks validate the evidence packet. Default posture: diff --git a/docs/assets/evident-hero.png b/docs/assets/evident-hero.png deleted file mode 100644 index 156f71b..0000000 Binary files a/docs/assets/evident-hero.png and /dev/null differ diff --git a/docs/assets/tabellio-hero.png b/docs/assets/tabellio-hero.png new file mode 100644 index 0000000..891b70b Binary files /dev/null and b/docs/assets/tabellio-hero.png differ diff --git a/docs/assets/tabellio-logo.png b/docs/assets/tabellio-logo.png new file mode 100644 index 0000000..c66d98d Binary files /dev/null and b/docs/assets/tabellio-logo.png differ diff --git a/docs/codex-review.md b/docs/codex-review.md index 8143963..b9e4d9a 100644 --- a/docs/codex-review.md +++ b/docs/codex-review.md @@ -1,6 +1,6 @@ # Codex Review -Codex review is an optional review layer for Evident pull requests. It should inspect the diff and the evidence packet, not replace deterministic checks. +Codex review is an optional review layer for Tabellio pull requests. It should inspect the diff and the evidence packet, not replace deterministic checks. ## Local Preflight diff --git a/docs/evidence-schema.md b/docs/evidence-schema.md index a73e477..d928312 100644 --- a/docs/evidence-schema.md +++ b/docs/evidence-schema.md @@ -1,6 +1,6 @@ # Evidence Schema -The evidence envelope is the core Evident contract. +The evidence envelope is the core Tabellio contract. Schema files: @@ -11,7 +11,7 @@ Schema files: | Field | Purpose | | --- | --- | -| `schemaVersion` | Contract version. Current value: `evident-evidence/v0.1` | +| `schemaVersion` | Contract version. Current value: `tabellio-evidence/v0.1` | | `runId` | Unique evidence run id | | `repo` | Repository name | | `git` | Base ref, head ref, SHA, optional PR metadata | @@ -28,7 +28,7 @@ Schema files: ## Minimal Valid Fixture -The smallest maintained valid fixture lives at `examples/evident-evidence/minimal-evidence.json`. +The smallest maintained valid fixture lives at `examples/tabellio-evidence/minimal-evidence.json`. Use that fixture instead of copying a shortened shape: the validators require at least one command, one check, and the complete default-deny action-class set. @@ -73,16 +73,16 @@ The checker fails when `attempted: true` and `approved !== true`. ## Validation Commands ```bash -node scripts/check-evident-evidence-envelope.mjs --evidence evident-pr-evidence.json -node scripts/check-evident-external-actions.mjs --evidence evident-pr-evidence.json +node scripts/check-tabellio-evidence-envelope.mjs --evidence tabellio-pr-evidence.json +node scripts/check-tabellio-external-actions.mjs --evidence tabellio-pr-evidence.json ``` Generate and validate: ```bash -node scripts/write-evident-evidence-envelope.mjs --out evident-pr-evidence.json -node scripts/check-evident-evidence-envelope.mjs --evidence evident-pr-evidence.json -node scripts/check-evident-external-actions.mjs --evidence evident-pr-evidence.json +node scripts/write-tabellio-evidence-envelope.mjs --out tabellio-pr-evidence.json +node scripts/check-tabellio-evidence-envelope.mjs --evidence tabellio-pr-evidence.json +node scripts/check-tabellio-external-actions.mjs --evidence tabellio-pr-evidence.json ``` ## Boundary diff --git a/docs/getting-started.md b/docs/getting-started.md index ca61515..4e23c85 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -1,6 +1,6 @@ # Getting Started -Evident adds a machine-readable evidence packet to pull requests. It is agent-agnostic: humans, CI, coding agents, and mixed workflows can all produce the same review surface. +Tabellio adds a machine-readable evidence packet to pull requests. It is agent-agnostic: humans, CI, coding agents, and mixed workflows can all produce the same review surface. ## Requirements @@ -11,10 +11,10 @@ Evident adds a machine-readable evidence packet to pull requests. It is agent-ag ## Add The Reusable Workflow -Create `.github/workflows/evident.yml` in the consumer repository: +Create `.github/workflows/tabellio.yml` in the consumer repository: ```yaml -name: Evident Evidence +name: Tabellio Evidence on: pull_request: @@ -25,22 +25,22 @@ permissions: jobs: evidence: - uses: IntelIP/agentic-git-workflow/.github/workflows/evident-evidence.yml@v0.1.0 + uses: IntelIP/Tabellio/.github/workflows/tabellio-evidence.yml@v0.1.0 with: # Replace with the repository's normal validation command. validation_command: npm test toolkit_ref: v0.1.0 ``` -`toolkit_ref` is required when the consumer repository does not vendor the Evident scripts. In consumer repositories, setting it forces the workflow to use the pinned Evident toolkit instead of PR-controlled local scripts. Pin it to the same release tag or SHA as the reusable workflow. Before the first release tag exists, use `main` for both refs. +`toolkit_ref` is required when the consumer repository does not vendor the Tabellio scripts. In consumer repositories, setting it forces the workflow to use the pinned Tabellio toolkit instead of PR-controlled local scripts. Pin it to the same release tag or SHA as the reusable workflow. Before the first release tag exists, use `main` for both refs. ## What The Workflow Does 1. Checks out the pull request repository. 2. Runs the optional validation command before adding any fallback toolkit files. -3. Uses local Evident scripts when the repository vendors them. -4. Otherwise checks out the Evident toolkit at `toolkit_ref`. -5. Writes `evident-pr-evidence.json`. +3. Uses local Tabellio scripts when the repository vendors them. +4. Otherwise checks out the Tabellio toolkit at `toolkit_ref`. +5. Writes `tabellio-pr-evidence.json`. 6. Validates the evidence envelope. 7. Checks the default-deny external action policy. 8. Uploads the evidence artifact. @@ -51,19 +51,19 @@ From this repository: ```bash npm run check -node scripts/write-evident-evidence-envelope.mjs --out /tmp/evident-pr-evidence.json -node scripts/check-evident-evidence-envelope.mjs --evidence /tmp/evident-pr-evidence.json -node scripts/check-evident-external-actions.mjs --evidence /tmp/evident-pr-evidence.json +node scripts/write-tabellio-evidence-envelope.mjs --out /tmp/tabellio-pr-evidence.json +node scripts/check-tabellio-evidence-envelope.mjs --evidence /tmp/tabellio-pr-evidence.json +node scripts/check-tabellio-external-actions.mjs --evidence /tmp/tabellio-pr-evidence.json ``` From a consumer repository that does not vendor the scripts, use the GitHub Actions workflow as the integration point. ## Pull Request Copy -Add the Evident checklist to the repository PR template: +Add the Tabellio checklist to the repository PR template: ```markdown -## Evident Evidence +## Tabellio Evidence - [ ] Evidence envelope generated - [ ] Evidence envelope validated @@ -97,5 +97,5 @@ Keep the first PR small: 1. Add the workflow file. 2. Add the PR template checklist. 3. Open a test pull request. -4. Confirm `Evident evidence` passes. -5. Confirm the uploaded artifact contains `evident-pr-evidence.json`. +4. Confirm `Tabellio evidence` passes. +5. Confirm the uploaded artifact contains `tabellio-pr-evidence.json`. diff --git a/docs/research-grounding.md b/docs/research-grounding.md index ea8b2b7..f68a451 100644 --- a/docs/research-grounding.md +++ b/docs/research-grounding.md @@ -1,6 +1,6 @@ -# Evident Research Grounding +# Tabellio Research Grounding -Evident combines proven software-delivery patterns for AI-assisted pull requests. +Tabellio combines proven software-delivery patterns for AI-assisted pull requests. It does not introduce a new security standard. It applies existing ideas from provenance, code review, merge queues, static analysis, evals, and observability. @@ -19,12 +19,13 @@ The agent is optional. The evidence contract is the product. ## Prior Art Map -| Pattern | Example Sources | What Evident Borrows | +| Pattern | Example Sources | What Tabellio Borrows | | --- | --- | --- | | Provenance | [SLSA](https://slsa.dev/spec/v1.0/levels), [SLSA build provenance](https://slsa.dev/spec/draft/build-provenance) | Record where work came from, what inputs existed, and which process produced the artifact | | Supply-chain steps | [in-toto](https://in-toto.io/), [in-toto docs](https://in-toto.io/docs/getting-started/) | Treat plan, edit, test, review, and merge as auditable steps | | Merge safety | [GitHub merge queues](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue) | Validate the final merge state, not just stale local state | -| Stacked review | [Graphite stacked PRs](https://graphite.com/docs/best-practices-for-reviewing-stacks) | Split large agent work into reviewable PRs | +| OSS repo structure | [Vercel AI SDK](https://github.com/vercel/ai), [Next.js](https://github.com/vercel/next.js), [Vercel CLI](https://github.com/vercel/vercel) | Keep the README short, link docs clearly, and surface contributing, security, and license files | +| Stacked review | [Graphite](https://graphite.dev/) | Split large agent work into reviewable PRs | | Agentic Git substrate | [Code Storage](https://code.storage/) | Treat repositories, branches, commits, patches, and code-like artifacts as machine-addressable product data | | Agent session ledger | [Entire](https://entire.io/), [Entire glossary](https://docs.entire.io/glossary) | Attach checkpoint and session context to code changes without making the PR body the only audit record | | Review-time analysis | [Google Tricorder](https://research.google.com/pubs/archive/43322.pdf), [Google SWE book: static analysis](https://abseil.io/resources/swe-book/html/ch20.html) | Put actionable automated checks in the review path | diff --git a/docs/tooling-stack.md b/docs/tooling-stack.md index 5cdd2f7..0036dbc 100644 --- a/docs/tooling-stack.md +++ b/docs/tooling-stack.md @@ -1,30 +1,32 @@ # Agentic Tooling Stack -Evident sits in a broader agentic Git workflow. It does not replace the forge, the code storage layer, the checkpoint ledger, or stacked PR tooling. It records the evidence packet that makes those layers reviewable. +Tabellio sits in a broader agentic Git workflow. It does not replace the forge, the code storage layer, the checkpoint ledger, or stacked PR tooling. It records the evidence packet that makes those layers reviewable. + +The main idea: agentic Git should be built around more than a patch. It should preserve the work request, the reason for the change, the runtime that produced it, the commands that ran, the checkpoints that explain it, and the side effects that require approval. ## Layer Map -| Layer | Tooling | Role In The Workflow | Evident Boundary | +| Layer | Tooling | Role In The Workflow | Tabellio Boundary | | --- | --- | --- | --- | | Work request | Issue, ticket, chat request, or manual prompt | Defines why the change exists | Captured as `taskSource` | -| Coding runtime | Codex or another coding agent | Produces the branch, diff, and validation attempts | Captured as `actor`, `agentRuntime`, and `commandsRun` | -| Git substrate | GitHub today; Code Storage as machine-first Git infrastructure | Stores repositories, branches, commits, patches, and agent-created code state | Captured as `repo`, `git`, and `changedFiles` | -| Checkpoint ledger | Entire Checkpoints | Links commits to agent sessions, prompts, transcript context, token usage, and attribution | Referenced as an artifact or runtime tool, not required by core | -| Evidence gate | Evident | Writes and validates the PR evidence envelope and external-action policy | Core product surface | -| Stacked review | Graphite or Graphite-like stacked PR tooling | Keeps dependent PRs small, ordered, reviewable, and resubmittable | Captured through stack metadata in future versions | -| Forge and CI | GitHub Pull Requests and GitHub Actions | Hosts review, checks, artifacts, and merge state | Current v0.1.0 integration point | -| Repo hygiene | OpenSSF Scorecard, SARIF, static checks | Adds public health and automated review signals | Recorded as checks or artifacts | +| Coding runtime | [OpenAI Codex](https://openai.com/codex/) or another coding agent | Produces the branch, diff, and validation attempts | Captured as `actor`, `agentRuntime`, and `commandsRun` | +| Git substrate | [GitHub](https://github.com/) today; [Code Storage](https://code.storage/) as machine-first Git infrastructure | Stores repositories, branches, commits, patches, and agent-created code state | Captured as `repo`, `git`, and `changedFiles` | +| Checkpoint ledger | [Entire Checkpoints](https://entire.io/) and [Entire CLI](https://github.com/entireio/cli) | Links commits to agent sessions, prompts, transcript context, token usage, and attribution | Referenced as an artifact or runtime tool, not required by core | +| Evidence gate | Tabellio | Writes and validates the PR evidence envelope and external-action policy | Core product surface | +| Stacked review | [Graphite](https://graphite.dev/) or Graphite-like stacked PR tooling | Keeps dependent PRs small, ordered, reviewable, and resubmittable | Captured through stack metadata in future versions | +| Forge and CI | [GitHub Pull Requests](https://github.com/features/code-review) and [GitHub Actions](https://github.com/features/actions) | Hosts review, checks, artifacts, and merge state | Current v0.1.0 integration point | +| Repo hygiene | [OpenSSF Scorecard](https://securityscorecards.dev/), [SARIF](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html), and static checks | Adds public health and automated review signals | Recorded as checks or artifacts | -## Startup Tool Tags +## Tool Tags | Tool | Tag | Why It Matters | | --- | --- | --- | | [Code Storage](https://code.storage/) | `code-storage` | API-first Git infrastructure for machine-created repositories, branches, commits, and code-like artifacts | | [Entire](https://entire.io/) | `entire` | Checkpoint and session ledger for agent-assisted work, with checkpoint metadata stored in Git | -| [Graphite](https://graphite.com/) | `graphite` | Stacked PR and code review workflow for keeping agent-produced changes reviewable | +| [Graphite](https://graphite.dev/) | `graphite` | Stacked PR and code review workflow for keeping agent-produced changes reviewable | | [OpenAI Codex](https://openai.com/codex/) | `codex` | Coding and review agent used to produce or inspect changes | -These tags describe the workflow ecosystem. Evident v0.1.0 does not call vendor APIs for Code Storage, Entire, Graphite, or Codex. +These tags describe the workflow ecosystem. Tabellio v0.1.0 does not call vendor APIs for Code Storage, Entire, Graphite, or Codex. ## Control-Plane Shape diff --git a/docs/workflow-model.md b/docs/workflow-model.md index bef9013..34c0b81 100644 --- a/docs/workflow-model.md +++ b/docs/workflow-model.md @@ -1,6 +1,6 @@ -# Evident Workflow Model +# Tabellio Workflow Model -Evident turns an agentic coding run into a reviewable pull request packet. +Tabellio turns an agentic coding run into a reviewable pull request packet. ## Core Objects @@ -20,7 +20,7 @@ Evident turns an agentic coding run into a reviewable pull request packet. | --- | --- | --- | | Git substrate | GitHub, Code Storage | Stores repositories, branches, commits, and patch state | | Session ledger | Entire | Preserves checkpoint and agent-run context for later review | -| Evidence gate | Evident | Validates commands, checks, changed files, approvals, and side-effect policy | +| Evidence gate | Tabellio | Validates commands, checks, changed files, approvals, and side-effect policy | | Stacked review | Graphite | Keeps related PRs small, ordered, and reviewable | | Agent review | Codex review | Adds optional diff and evidence review by an agent | diff --git a/examples/github-actions/evident-consumer.yml b/examples/github-actions/tabellio-consumer.yml similarity index 67% rename from examples/github-actions/evident-consumer.yml rename to examples/github-actions/tabellio-consumer.yml index cae4045..58323dd 100644 --- a/examples/github-actions/evident-consumer.yml +++ b/examples/github-actions/tabellio-consumer.yml @@ -1,4 +1,4 @@ -name: Evident Evidence +name: Tabellio Evidence on: pull_request: @@ -9,7 +9,7 @@ permissions: jobs: evidence: - uses: IntelIP/agentic-git-workflow/.github/workflows/evident-evidence.yml@v0.1.0 + uses: IntelIP/Tabellio/.github/workflows/tabellio-evidence.yml@v0.1.0 with: # Replace with the repository's normal validation command. validation_command: npm test diff --git a/examples/evident-evidence/minimal-evidence.json b/examples/tabellio-evidence/minimal-evidence.json similarity index 86% rename from examples/evident-evidence/minimal-evidence.json rename to examples/tabellio-evidence/minimal-evidence.json index ce758ad..c517709 100644 --- a/examples/evident-evidence/minimal-evidence.json +++ b/examples/tabellio-evidence/minimal-evidence.json @@ -1,13 +1,13 @@ { - "schemaVersion": "evident-evidence/v0.1", + "schemaVersion": "tabellio-evidence/v0.1", "runId": "local-example-001", - "repo": "example/agentic-git-workflow", + "repo": "example/tabellio", "git": { "baseRef": "main", - "headRef": "evident/example-evidence", + "headRef": "tabellio/example-evidence", "sha": "0000000000000000000000000000000000000000", "pullRequest": "1", - "pullRequestUrl": "https://github.com/example/agentic-git-workflow/pull/1" + "pullRequestUrl": "https://github.com/example/tabellio/pull/1" }, "actor": { "type": "agent", @@ -20,23 +20,23 @@ }, "taskSource": { "type": "chat", - "summary": "Create a minimal evidence fixture for the Evident workflow." + "summary": "Create a minimal evidence fixture for the Tabellio workflow." }, "changedFiles": [ "docs/research-grounding.md", "schemas/evidence-envelope.schema.json", - "scripts/check-evident-evidence-envelope.mjs" + "scripts/check-tabellio-evidence-envelope.mjs" ], "commandsRun": [ { - "command": "node scripts/check-evident-evidence-envelope.mjs --evidence examples/evident-evidence/minimal-evidence.json", + "command": "node scripts/check-tabellio-evidence-envelope.mjs --evidence examples/tabellio-evidence/minimal-evidence.json", "status": "passed", "exitCode": 0 } ], "checks": [ { - "name": "evident-evidence-envelope", + "name": "tabellio-evidence-envelope", "status": "passed", "summary": "Minimal fixture validates against v0.1 required fields and default-deny policy." } @@ -127,7 +127,7 @@ "artifacts": [ { "name": "minimal evidence fixture", - "path": "examples/evident-evidence/minimal-evidence.json" + "path": "examples/tabellio-evidence/minimal-evidence.json" } ], "createdAt": "2026-07-02T00:00:00.000Z" diff --git a/package.json b/package.json index b0f922e..aaa331d 100644 --- a/package.json +++ b/package.json @@ -1,25 +1,43 @@ { - "name": "agentic-git-workflow", + "name": "@intelip/tabellio", "version": "0.1.0", - "description": "Evident: evidence-backed pull request governance for agentic development.", + "description": "Tabellio: evidence-backed pull request governance for agentic development.", "type": "module", "license": "Apache-2.0", "author": "IntelIP", - "homepage": "https://github.com/IntelIP/agentic-git-workflow#readme", + "homepage": "https://github.com/IntelIP/Tabellio#readme", "repository": { "type": "git", - "url": "git+https://github.com/IntelIP/agentic-git-workflow.git" + "url": "git+https://github.com/IntelIP/Tabellio.git" }, "bugs": { - "url": "https://github.com/IntelIP/agentic-git-workflow/issues" + "url": "https://github.com/IntelIP/Tabellio/issues" }, "private": false, + "publishConfig": { + "access": "public" + }, + "files": [ + "README.md", + "LICENSE", + "NOTICE", + "CHANGELOG.md", + "CONTRIBUTING.md", + "SECURITY.md", + ".github/pull_request_template.md", + ".github/workflows", + "schemas", + "scripts", + "examples", + "templates", + "docs" + ], "scripts": { - "evident:evidence:example:check": "node scripts/check-evident-evidence-envelope.mjs --evidence examples/evident-evidence/minimal-evidence.json", - "evident:evidence:write": "node scripts/write-evident-evidence-envelope.mjs --out evident-pr-evidence.json", - "evident:evidence:check": "node scripts/check-evident-evidence-envelope.mjs --evidence evident-pr-evidence.json", - "evident:external-actions:check": "node scripts/check-evident-external-actions.mjs --evidence evident-pr-evidence.json", - "check": "npm run evident:evidence:example:check && node scripts/check-evident-external-actions.mjs --evidence examples/evident-evidence/minimal-evidence.json" + "tabellio:evidence:example:check": "node scripts/check-tabellio-evidence-envelope.mjs --evidence examples/tabellio-evidence/minimal-evidence.json", + "tabellio:evidence:write": "node scripts/write-tabellio-evidence-envelope.mjs --out tabellio-pr-evidence.json", + "tabellio:evidence:check": "node scripts/check-tabellio-evidence-envelope.mjs --evidence tabellio-pr-evidence.json", + "tabellio:external-actions:check": "node scripts/check-tabellio-external-actions.mjs --evidence tabellio-pr-evidence.json", + "check": "npm run tabellio:evidence:example:check && node scripts/check-tabellio-external-actions.mjs --evidence examples/tabellio-evidence/minimal-evidence.json" }, "engines": { "node": ">=20" @@ -32,7 +50,7 @@ "provenance", "ci", "workflow", - "evident", + "tabellio", "json-schema", "sarif", "openssf-scorecard", diff --git a/schemas/evidence-envelope.schema.json b/schemas/evidence-envelope.schema.json index 11eb96a..0038274 100644 --- a/schemas/evidence-envelope.schema.json +++ b/schemas/evidence-envelope.schema.json @@ -1,7 +1,7 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://raw.githubusercontent.com/IntelIP/agentic-git-workflow/main/schemas/evidence-envelope.schema.json", - "title": "Evident Evidence Envelope", + "$id": "https://raw.githubusercontent.com/IntelIP/Tabellio/main/schemas/evidence-envelope.schema.json", + "title": "Tabellio Evidence Envelope", "type": "object", "required": [ "schemaVersion", @@ -23,7 +23,7 @@ "properties": { "schemaVersion": { "type": "string", - "const": "evident-evidence/v0.1" + "const": "tabellio-evidence/v0.1" }, "runId": { "type": "string", diff --git a/schemas/external-action-policy.schema.json b/schemas/external-action-policy.schema.json index fd7e90a..4056f26 100644 --- a/schemas/external-action-policy.schema.json +++ b/schemas/external-action-policy.schema.json @@ -1,7 +1,7 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://raw.githubusercontent.com/IntelIP/agentic-git-workflow/main/schemas/external-action-policy.schema.json", - "title": "Evident External Action Policy", + "$id": "https://raw.githubusercontent.com/IntelIP/Tabellio/main/schemas/external-action-policy.schema.json", + "title": "Tabellio External Action Policy", "type": "object", "required": ["defaultMode", "actionClasses"], "additionalProperties": true, diff --git a/scripts/check-evident-evidence-envelope.mjs b/scripts/check-tabellio-evidence-envelope.mjs similarity index 97% rename from scripts/check-evident-evidence-envelope.mjs rename to scripts/check-tabellio-evidence-envelope.mjs index a41a397..57b787d 100644 --- a/scripts/check-evident-evidence-envelope.mjs +++ b/scripts/check-tabellio-evidence-envelope.mjs @@ -2,7 +2,7 @@ import { existsSync, readFileSync } from "node:fs"; import { isAbsolute, join } from "node:path"; const args = parseArgs(process.argv.slice(2)); -const evidencePath = args.evidence ?? "evident-pr-evidence.json"; +const evidencePath = args.evidence ?? "tabellio-pr-evidence.json"; const root = process.cwd(); const requiredActionClasses = [ "deployment", @@ -28,7 +28,7 @@ try { const result = { ok: blockers.length === 0, - status: blockers.length === 0 ? "evident_evidence_envelope_ready" : "blocked", + status: blockers.length === 0 ? "tabellio_evidence_envelope_ready" : "blocked", checkedAt: new Date().toISOString(), evidencePath, schemaPath: "schemas/evidence-envelope.schema.json", @@ -57,7 +57,7 @@ function validateEvidence(value, localBlockers, localWarnings) { return; } - stringEquals(value.schemaVersion, "evident-evidence/v0.1", "schemaVersion", localBlockers); + stringEquals(value.schemaVersion, "tabellio-evidence/v0.1", "schemaVersion", localBlockers); requiredString(value.runId, "runId", localBlockers); requiredString(value.repo, "repo", localBlockers); requiredString(value.createdAt, "createdAt", localBlockers); diff --git a/scripts/check-evident-external-actions.mjs b/scripts/check-tabellio-external-actions.mjs similarity index 98% rename from scripts/check-evident-external-actions.mjs rename to scripts/check-tabellio-external-actions.mjs index 0ada9aa..aea2263 100644 --- a/scripts/check-evident-external-actions.mjs +++ b/scripts/check-tabellio-external-actions.mjs @@ -2,7 +2,7 @@ import { existsSync, readFileSync } from "node:fs"; import { isAbsolute, join } from "node:path"; const args = parseArgs(process.argv.slice(2)); -const evidencePath = args.evidence ?? "evident-pr-evidence.json"; +const evidencePath = args.evidence ?? "tabellio-pr-evidence.json"; const requiredActionClasses = [ "deployment", "database-migration", diff --git a/scripts/write-evident-evidence-envelope.mjs b/scripts/write-tabellio-evidence-envelope.mjs similarity index 86% rename from scripts/write-evident-evidence-envelope.mjs rename to scripts/write-tabellio-evidence-envelope.mjs index 53b014a..562b235 100644 --- a/scripts/write-evident-evidence-envelope.mjs +++ b/scripts/write-tabellio-evidence-envelope.mjs @@ -4,12 +4,12 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs"; import { dirname } from "node:path"; const args = parseArgs(process.argv.slice(2)); -const outPath = args.out ?? "evident-pr-evidence.json"; +const outPath = args.out ?? "tabellio-pr-evidence.json"; const now = new Date().toISOString(); const changedFiles = getChangedFiles(); -const validationCommand = env("EVIDENT_VALIDATION_COMMAND"); -const validationStatus = normalizeStatus(env("EVIDENT_VALIDATION_STATUS") || "skipped"); -const writerCommand = env("EVIDENT_WRITER_COMMAND") || `node ${process.argv[1] || "scripts/write-evident-evidence-envelope.mjs"}`; +const validationCommand = env("TABELLIO_VALIDATION_COMMAND"); +const validationStatus = normalizeStatus(env("TABELLIO_VALIDATION_STATUS") || "skipped"); +const writerCommand = env("TABELLIO_WRITER_COMMAND") || `node ${process.argv[1] || "scripts/write-tabellio-evidence-envelope.mjs"}`; const sha = env("GITHUB_SHA") || git(["rev-parse", "HEAD"]) || "unknown"; const baseRef = env("GITHUB_BASE_REF") || git(["rev-parse", "--abbrev-ref", "HEAD"]) || "main"; const headRef = env("GITHUB_HEAD_REF") || git(["rev-parse", "--abbrev-ref", "HEAD"]) || "HEAD"; @@ -17,7 +17,7 @@ const repo = env("GITHUB_REPOSITORY") || basename(git(["rev-parse", "--show-topl const runId = env("GITHUB_RUN_ID") || `local-${sha.slice(0, 12)}-${Date.now()}`; const evidence = { - schemaVersion: "evident-evidence/v0.1", + schemaVersion: "tabellio-evidence/v0.1", runId, repo, git: { @@ -32,14 +32,14 @@ const evidence = { id: env("GITHUB_ACTOR") || env("USER") || "local-agent", }, agentRuntime: { - name: env("EVIDENT_RUNTIME_NAME") || "unspecified", - model: env("EVIDENT_RUNTIME_MODEL") || "", - tooling: splitCsv(env("EVIDENT_RUNTIME_TOOLING") || "git,github-actions,node"), + name: env("TABELLIO_RUNTIME_NAME") || "unspecified", + model: env("TABELLIO_RUNTIME_MODEL") || "", + tooling: splitCsv(env("TABELLIO_RUNTIME_TOOLING") || "git,github-actions,node"), }, taskSource: { - type: env("EVIDENT_TASK_SOURCE_TYPE") || "manual", - summary: env("EVIDENT_TASK_SUMMARY") || "Evident evidence envelope generated from repository state.", - url: env("EVIDENT_TASK_URL") || "", + type: env("TABELLIO_TASK_SOURCE_TYPE") || "manual", + summary: env("TABELLIO_TASK_SUMMARY") || "Tabellio evidence envelope generated from repository state.", + url: env("TABELLIO_TASK_URL") || "", }, changedFiles, commandsRun: validationCommand @@ -84,7 +84,7 @@ const evidence = { }, artifacts: [ { - name: "Evident evidence envelope", + name: "Tabellio evidence envelope", path: outPath, }, ], @@ -98,7 +98,7 @@ writeFileSync(outPath, `${JSON.stringify(evidence, null, 2)}\n`); console.log(JSON.stringify(evidence, null, 2)); function getChangedFiles() { - const explicit = env("EVIDENT_CHANGED_FILES"); + const explicit = env("TABELLIO_CHANGED_FILES"); if (explicit) return splitCsv(explicit); const base = env("GITHUB_BASE_REF"); @@ -120,7 +120,7 @@ function getChangedFiles() { } function filterFallbackToolkitFiles(files) { - return files.filter((file) => file !== ".evident/toolkit" && !file.startsWith(".evident/toolkit/")); + return files.filter((file) => file !== ".tabellio/toolkit" && !file.startsWith(".tabellio/toolkit/")); } function defaultActionClasses() { diff --git a/templates/pull_request_template.md b/templates/pull_request_template.md index 7086a7e..be10206 100644 --- a/templates/pull_request_template.md +++ b/templates/pull_request_template.md @@ -1,4 +1,4 @@ -## Evident Evidence +## Tabellio Evidence - [ ] Evidence envelope generated - [ ] Evidence envelope validated @@ -11,7 +11,7 @@ Evidence summary: ```json { - "schemaVersion": "evident-evidence/v0.1", + "schemaVersion": "tabellio-evidence/v0.1", "runId": "", "baseRef": "", "headRef": "",