Skip to content

Commit be95956

Browse files
authored
chore(closeout): finalize distribution prep
- replace the old weekly governance lane with the current manual plus runtime-gc model - add concentrated distribution and integration truth surfaces - align storefront closure checks with the live GitHub Pages, Issues, Discussions, and branch-protection truth
1 parent 339401f commit be95956

41 files changed

Lines changed: 807 additions & 401 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.example

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -913,7 +913,7 @@ WEB_RUN_ID=
913913
# [tests] Tests
914914
# Governed env variable detected by automated env scan (tests scope).
915915
# policy: optional, non-sensitive
916-
WEEKLY_RUN_ID=
916+
MANUAL_RUN_ID=
917917

918918
# [runtime] Runtime
919919
# Runtime cache directory override.

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ jobs:
9696
ci_gatechain:
9797
- '.github/workflows/ci.yml'
9898
- '.github/workflows/nightly.yml'
99-
- '.github/workflows/weekly.yml'
99+
- '.github/workflows/manual.yml'
100100
- '.github/workflows/pre-commit.yml'
101101
- 'scripts/ci/*gate*'
102102
- 'scripts/ci/*truth*'
Lines changed: 82 additions & 82 deletions
Large diffs are not rendered by default.
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
1-
name: Runtime GC Weekly
1+
name: Runtime GC
22

33
on:
4-
schedule:
5-
- cron: "0 9 * * 1"
64
workflow_dispatch:
75

86
permissions:
97
contents: read
108

119
concurrency:
12-
group: runtime-gc-weekly-${{ github.workflow }}-${{ github.ref }}
10+
group: runtime-gc-manual-${{ github.workflow }}-${{ github.ref }}
1311
cancel-in-progress: true
1412

1513
jobs:

DISTRIBUTION.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Distribution Status
2+
3+
This page separates **repo-ready surfaces** from **actual published registry
4+
state**.
5+
6+
Current public release truth:
7+
8+
- GitHub release/tag: `v0.1.1`
9+
- GitHub Pages storefront: `https://xiaojiou176-open.github.io/prooftrail/`
10+
- npm / PyPI / MCP Registry publication: **not yet published**
11+
12+
## Current Distribution Ledger
13+
14+
| Surface | Materialized in repo | Publish-ready today | Published / listed today | Notes |
15+
| --- | --- | --- | --- | --- |
16+
| GitHub release/tag | yes | yes | yes | Current live release/tag is `v0.1.1`. |
17+
| GitHub Pages storefront | yes | yes | yes | Current live homepage points to GitHub Pages and returns HTTP 200. |
18+
| Root npm package (`prooftrail`) | yes | no | no | Root `package.json` is `private: true`, so the repo does not currently expose a publishable npm package. |
19+
| MCP npm package (`@uiq/mcp-server`) | yes | no | no | The package exists for repo-local use, but `apps/mcp-server/package.json` is `private: true`. |
20+
| AI prompts npm package (`@uiq/ai-prompts`) | yes | no | no | The package exists for repo-local use, but `packages/ai-prompts/package.json` is `private: true`. |
21+
| PyPI package (`prooftrail`) | yes | no | no | `pyproject.toml` exists, but this repo does not currently prove a PyPI release, and the Python package version is not release-synced with `v0.1.1`. |
22+
| MCP Registry listing | partial | no | no | The repo contains an MCP server implementation, but no registry publication or listing proof is materialized here. |
23+
| Skills / starter / plugin bundle metadata | no dedicated surface | no | no | This repo does not currently ship a dedicated skills package, starter bundle, or browser-plugin distribution surface. |
24+
25+
## What "Ready" Means Here
26+
27+
For this repository, "ready for final distribution prep" means:
28+
29+
- the repo-side truth surface is explicit
30+
- the GitHub storefront and closure evidence are aligned
31+
- security and public-truth gates are green
32+
- registry publication is still a separate later action
33+
34+
It does **not** mean that npm, PyPI, or MCP Registry publication has already
35+
happened.
36+
37+
## Intentionally Deferred
38+
39+
These remain outside the current repo-side closeout scope:
40+
41+
- npm publication
42+
- PyPI publication
43+
- MCP Registry submission or listing verification
44+
- Chrome Web Store packaging or submission
45+
- social preview upload evidence
46+
- hosted / multi-tenant deployment rollout
47+
48+
## Why There Is No `proof.html`
49+
50+
This repo intentionally does **not** add a separate `proof.html` truth surface
51+
right now.
52+
53+
Reason:
54+
55+
- the README already owns the storefront story
56+
- `docs/index.md` already owns the public docs map
57+
- this page and `INTEGRATIONS.md` now own the distribution and integration truth
58+
- adding one more HTML proof page would create another drift-prone surface
59+
60+
That keeps the truth surface lighter and easier to keep honest.

INTEGRATIONS.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Integration Boundaries
2+
3+
ProofTrail is a **browser-evidence and recovery layer**.
4+
5+
It can sit behind coding-agent or operator workflows, but this repository does
6+
**not** currently claim:
7+
8+
- an official Codex integration
9+
- an official Claude Code integration
10+
- an official OpenHands integration
11+
- an official OpenCode integration
12+
- an official OpenClaw integration
13+
- a browser plugin
14+
- a first-party hosted agent shell
15+
16+
## Current Repo-Native Integration Surfaces
17+
18+
| Surface | Exists in repo | Current status | Notes |
19+
| --- | --- | --- | --- |
20+
| HTTP API | yes | repo-native | The canonical API contract lives in `docs/reference/universal-api.md` and the checked-in generated client stays repo-local. |
21+
| MCP server | yes | repo-native | `apps/mcp-server/` provides the governed MCP surface for local or self-managed use. |
22+
| AI prompt contracts | yes | repo-native | `packages/ai-prompts/` exists as a private workspace package, not as a published registry surface. |
23+
| GitHub Pages storefront | yes | public-facing | Pages explains product fit and routes people into docs, but it is not a plugin or marketplace listing. |
24+
25+
## Ecosystem Fit, Truthfully
26+
27+
| Ecosystem | Current truthful fit | Best first path | Official plugin or listing today |
28+
| --- | --- | --- | --- |
29+
| Codex | API-first or hybrid browser-evidence layer | `docs/how-to/prooftrail-for-coding-agents.md` -> `docs/how-to/api-builder-quickstart.md` | no |
30+
| Claude Code | MCP-first browser-evidence side road | `docs/how-to/prooftrail-for-coding-agents.md` -> `docs/how-to/mcp-quickstart-1pager.md` | no |
31+
| OpenHands | browser subsystem behind a larger runtime | `docs/how-to/prooftrail-for-ai-agents.md` -> `docs/how-to/api-builder-quickstart.md` | no |
32+
| OpenCode | governed MCP browser surface | `docs/how-to/prooftrail-for-coding-agents.md` -> `docs/how-to/mcp-quickstart-1pager.md` | no |
33+
| OpenClaw | browser workflow backend behind a tool router | `docs/how-to/prooftrail-for-coding-agents.md` -> `docs/how-to/api-builder-quickstart.md` | no |
34+
35+
## What Is Not Materialized Here Yet
36+
37+
These surfaces are **not** currently materialized as dedicated publishable
38+
integration products in this repo:
39+
40+
- vendor-specific plugins
41+
- official marketplace listings
42+
- starter template packages
43+
- dedicated skills registry packages
44+
- formal SDK packages
45+
46+
## How To Read The Current Repo
47+
48+
If you are evaluating ProofTrail for an external toolchain, the truthful order
49+
is:
50+
51+
1. decide whether you need API-first or MCP-first control
52+
2. use the existing repo-native API or MCP surface
53+
3. treat any future registry publication or marketplace packaging as a later step
54+
55+
That keeps current capability and future packaging clearly separated.

README.md

Lines changed: 45 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,24 @@ evidence, and guided recovery.
88
ProofTrail is an auditable browser automation platform for teams that need
99
browser execution to stay inspectable, replayable, and recoverable.
1010

11+
Current public distribution and ecosystem boundaries:
12+
[DISTRIBUTION.md](DISTRIBUTION.md) | [INTEGRATIONS.md](INTEGRATIONS.md)
13+
1114
It also fits teams using Codex, Claude Code, OpenHands, OpenCode, OpenClaw, or
1215
other agent shells that need a browser-evidence layer through API and governed
1316
MCP, not a generic browser bot.
1417

15-
[Docs](docs/index.md) | [Quickstart](docs/getting-started/human-first-10-min.md) | [Minimal Success Case](docs/showcase/minimal-success-case.md) | [API Builder Quickstart](docs/how-to/api-builder-quickstart.md) | [ProofTrail for AI Agents](docs/how-to/prooftrail-for-ai-agents.md) | [ProofTrail for Coding Agents and Agent Ecosystems](docs/how-to/prooftrail-for-coding-agents.md) | [MCP for Browser Automation](docs/how-to/mcp-quickstart-1pager.md) | [AI Reconstruction](docs/how-to/ai-reconstruction-side-road.md) | [Evidence, Recovery, and Review Workspace](docs/how-to/evidence-recovery-review-workspace.md) | [Alternatives](docs/compare/prooftrail-vs-generic-browser-agents.md) | [Release Guide](docs/release/README.md)
18+
Quick paths:
19+
20+
- [Docs](docs/index.md)
21+
- [Quickstart](docs/getting-started/human-first-10-min.md)
22+
- [ProofTrail for AI Agents](docs/how-to/prooftrail-for-ai-agents.md)
23+
- [ProofTrail for Coding Agents and Agent Ecosystems](docs/how-to/prooftrail-for-coding-agents.md)
24+
- [API Builder Quickstart](docs/how-to/api-builder-quickstart.md)
25+
- [Distribution Status](DISTRIBUTION.md)
26+
- [Integration Boundaries](INTEGRATIONS.md)
1627

17-
<img src="assets/storefront/prooftrail-readme-hero.svg" alt="ProofTrail canonical proof loop showing one public command, one retained evidence bundle, and one exact recovery path." />
28+
![ProofTrail proof loop hero](assets/storefront/prooftrail-readme-hero.svg)
1829

1930
![ProofTrail command center showing the canonical run path, evidence-focused navigation, and operator parameter rail](assets/storefront/prooftrail-hero.png)
2031

@@ -137,7 +148,7 @@ board:
137148
- **Codex**, **OpenHands**, and **OpenClaw** usually start API-first or hybrid
138149
- **ProofTrail** stays the browser-evidence and recovery layer in all cases
139150

140-
<img src="assets/storefront/prooftrail-agent-ecosystem-map.svg" alt="ProofTrail ecosystem fit map showing Codex, Claude Code, OpenHands, OpenCode, and OpenClaw with API-first and MCP-first entry roads." />
151+
![ProofTrail ecosystem fit map](assets/storefront/prooftrail-agent-ecosystem-map.svg)
141152

142153
## Explore the Product Surface
143154

@@ -186,11 +197,17 @@ so the public story and the integration story stay connected.
186197

187198
Choose the shortest path that matches what you want to confirm first:
188199

189-
| I want to... | Run this first | What I get |
190-
| --- | --- | --- |
191-
| produce one canonical run | `just setup && just run` | a new run directory under `.runtime-cache/artifacts/runs/<runId>/` with manifest and proof reports |
192-
| know what good evidence should look like | [docs/reference/run-evidence-example.md](docs/reference/run-evidence-example.md) | the concrete report shape you should expect from a healthy run |
193-
| follow the guided operator path | [docs/getting-started/human-first-10-min.md](docs/getting-started/human-first-10-min.md) | the shortest human-readable route from fresh checkout to inspectable proof |
200+
- If you want to produce one canonical run:
201+
Start with `just setup && just run`.
202+
You should get a new run directory under
203+
`.runtime-cache/artifacts/runs/<runId>/` with manifest and proof reports.
204+
- If you want to know what good evidence should look like:
205+
Start with [docs/reference/run-evidence-example.md](docs/reference/run-evidence-example.md).
206+
That page shows the concrete report shape a healthy run should produce.
207+
- If you want to follow the guided operator path:
208+
Start with [docs/getting-started/human-first-10-min.md](docs/getting-started/human-first-10-min.md).
209+
That is the shortest human-readable route from fresh checkout to inspectable
210+
proof.
194211

195212
## 15-Minute Evaluation Path
196213

@@ -246,7 +263,8 @@ The canonical public mainline is:
246263
2. run `just run`
247264
3. inspect `.runtime-cache/artifacts/runs/<runId>/`
248265

249-
`just run` is the canonical public mainline wrapper for `pnpm uiq run --profile pr --target web.local`.
266+
`just run` is the canonical public mainline wrapper for
267+
`pnpm uiq run --profile pr --target web.local`.
250268

251269
`just run-legacy` remains available for lower-level workshop troubleshooting,
252270
but it is not the canonical public mainline.
@@ -279,13 +297,13 @@ Requirements:
279297
just setup
280298
```
281299

282-
2. Run the canonical workflow.
300+
1. Run the canonical workflow.
283301

284302
```bash
285303
just run
286304
```
287305

288-
3. Inspect the resulting evidence bundle.
306+
1. Inspect the resulting evidence bundle.
289307

290308
```bash
291309
ls .runtime-cache/artifacts/runs
@@ -300,7 +318,8 @@ What good looks like:
300318
`reports/proof.gaps.json`, and `reports/proof.repro.json`
301319
- `manifest.json` points back to those proof artifacts through both
302320
`manifest.proof` and `manifest.reports`
303-
- the same orchestrator-first chain is reachable through `pnpm uiq run --profile pr --target web.local`
321+
- the same orchestrator-first chain is reachable through
322+
`pnpm uiq run --profile pr --target web.local`
304323
- even when the PR gate fails, `reports/summary.json` still tells you why
305324
instead of leaving you with a silent shell failure
306325

@@ -341,7 +360,8 @@ Use the product surfaces in this order:
341360
- Ask: "Do I need help rebuilding a flow from artifacts?"
342361
- Use it only after artifacts already exist; it is an optional advanced helper.
343362
5. **MCP**
344-
- Ask: "Do I need an external AI client to inspect runs or operate this repo safely?"
363+
- Ask: "Do I need an external AI client to inspect runs or operate this
364+
repo safely?"
345365
- Treat it as an integration side road, not as a replacement for `just run`.
346366
6. **Review Workspace**
347367
- Ask: "Do I need one review-ready packet before I hand this run to another maintainer?"
@@ -362,7 +382,9 @@ Use this mental model when you explain ProofTrail to a new evaluator:
362382

363383
- **What it is**: evidence-first browser automation with recovery and MCP
364384
- **Who it helps**: AI agents and human operators who need trustworthy browser workflows
365-
- **Why it feels different**: the product does not stop at “the automation ran”; it keeps the evidence, recovery path, and handoff surfaces attached to the run
385+
- **Why it feels different**: the product does not stop at
386+
“the automation ran”; it keeps the evidence, recovery path, and handoff
387+
surfaces attached to the run
366388
- **Where AI fits**: AI reconstruction helps after artifacts already exist
367389
- **Where MCP fits**: MCP exposes the same governed surfaces to external AI clients
368390

@@ -372,7 +394,8 @@ Suitable for:
372394

373395
- teams standardizing browser automation runs across operators and environments
374396
- maintainers who need inspectable evidence instead of ad-hoc shell output
375-
- workflows where replay, diagnostics, and recovery matter as much as first-run success
397+
- workflows where replay, diagnostics, and recovery matter as much as
398+
first-run success
376399

377400
Not suitable for:
378401

@@ -395,9 +418,13 @@ governance checks.
395418

396419
Public collaboration contract:
397420

398-
- external pull requests stay on GitHub-hosted, low-risk governance and build lanes
399-
- live, external, and owner-secret workflows are manual-only and require the protected `owner-approved-sensitive` environment
400-
- macOS-only smoke and regression lanes use GitHub-hosted `macos-latest`; `self-hosted` / `shared-pool` are not part of the public collaboration contract
421+
- external pull requests stay on GitHub-hosted, low-risk governance and build
422+
lanes
423+
- live, external, and owner-secret workflows are manual-only and require the
424+
protected `owner-approved-sensitive` environment
425+
- macOS-only smoke and regression lanes use GitHub-hosted `macos-latest`;
426+
`self-hosted` / `shared-pool` are not part of the public collaboration
427+
contract
401428

402429
## Maintainer Space Hygiene
403430

apps/mcp-server/tests/mcp-smoke.test.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ const NEW_TOOL_NAMES = [
1010
"uiq_api_workflow",
1111
"uiq_catalog",
1212
"uiq_compare_perf",
13+
"uiq_evidence_runs",
1314
"uiq_list_runs",
1415
"uiq_model_target_capabilities",
1516
"uiq_proof",
@@ -94,8 +95,12 @@ nodeTest("mcp resources expose both latest manifest and summary", { timeout: 30_
9495
const uris = listed.resources.map((r) => r.uri).sort()
9596
assert.deepEqual(uris, ["uiq://runs/latest/manifest", "uiq://runs/latest/summary"])
9697

97-
const manifest = await harness.client.readResource({ uri: "uiq://runs/latest/manifest" })
98-
const summary = await harness.client.readResource({ uri: "uiq://runs/latest/summary" })
98+
const manifest = await harness.client.readResource({
99+
uri: "uiq://runs/latest/manifest",
100+
})
101+
const summary = await harness.client.readResource({
102+
uri: "uiq://runs/latest/summary",
103+
})
99104

100105
const manifestText =
101106
manifest.contents.find((c): c is { uri: string; text: string } => "text" in c)?.text ?? ""

apps/web/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@
8484
"workflow recovery"
8585
],
8686
"sameAs": [
87-
"https://github.com/xiaojiou176-open/prooftrail/blob/main/docs/index.md"
87+
"https://xiaojiou176-open.github.io/prooftrail/"
8888
]
8989
}
9090
</script>

configs/env/contract.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1679,7 +1679,7 @@ variables:
16791679
required: false
16801680
sensitive: false
16811681
description: "Governed env variable detected by automated env scan (runtime scope)."
1682-
- name: WEEKLY_RUN_ID
1682+
- name: MANUAL_RUN_ID
16831683
section: tests
16841684
default: ""
16851685
required: false

0 commit comments

Comments
 (0)