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
22 changes: 11 additions & 11 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ jobs:
python-version: ["3.11", "3.12"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: ${{ matrix.python-version }}
- run: python -m pip install --no-deps .
Expand All @@ -35,29 +35,29 @@ jobs:
e2e-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
path: scriptorium
persist-credentials: false
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
repository: scriptorium-suite/scriptorium-spec
ref: 9f044458a9ec106b7959a1ea961c40774081a1d2
ref: 66bfefea93758231491fadc4694708d1b8107ea0
path: scriptorium-spec
persist-credentials: false
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
repository: scriptorium-suite/steward
ref: dcdb46726493bd13735b1c0f327331bbebee7047
ref: 21e4e454fb97702bc5f31c24b805cf3c9489bc31
path: steward
persist-credentials: false
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
repository: foxsplendid/Provenance
ref: 4addf490526840ef9220d8d13f15832f6df4d346
ref: 910efbc47e604c51314866174581cfdd7eac47b6
path: Provenance
persist-credentials: false
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: "3.12"
- name: Install source checkouts
Expand Down Expand Up @@ -188,7 +188,7 @@ jobs:
--provenance-root .\Provenance
.\.demo-venv\Scripts\python.exe -m json.tool '.\demo 输出\demo-report.json'
.\.demo-venv\Scripts\python.exe -c "import json, pathlib; report=json.loads(pathlib.Path(r'.\demo 输出\demo-report.json').read_text(encoding='utf-8')); assert report['demo_status'] == 'passed'"
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: scriptorium-demo-windows
path: |
Expand Down
14 changes: 11 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Changelog

## 0.1.0 — Unreleased
## 0.1.0 — 2026-07-20

- Add `scriptorium inventory`, a deterministic, zero-write preview for explicitly
selected Markdown/PDF sources, AI conversation exports, and Zotero exports. It
Expand All @@ -9,8 +9,10 @@
It does not discover personal folders, persist a manifest, ingest, copy, or apply
a migration.
- Add the first thin suite entry with `scriptorium demo`.
- Add a credential-free, offline synthetic golden path through the canonical
spec validator, Steward review workflow, and Provenance ingest/search/MCP APIs.
- Add a credential-free synthetic golden path through the canonical spec validator,
Steward review workflow, and Provenance ingest/search/MCP APIs. After source
installation, the path requests no suite-managed runtime network action; source
installation itself may fetch declared build requirements.
- Add an isolated Markdown workspace, compatibility manifest, machine-readable
demo report, Windows end-to-end CI, and cross-platform unit tests.
- Add read-only `doctor` targets for Demo and Public Alpha readiness, with stable
Expand All @@ -35,6 +37,12 @@
identifiers, research content, stderr, or an implicit `--run` authorization.
It authorizes no suite project/data writes while accurately disclosing external
readiness probes.
- Report content-free path-selection provenance across `doctor`, `pull`, and
`status`; warn when environment roots conflict with suite config and fail closed
before `pull --run` unless explicit CLI roots remove the ambiguity. Treat a
configured but missing `CODEX_HOME` as zero sessions plus setup remediation,
without creating the directory. Explicit component-root environment variables
also fail closed instead of silently falling back to a different checkout.
- Preserve local home and temporary-directory variables in the secret-stripped
diagnostic subprocess environment so installed Windows Provenance entries can
resolve their profile without inheriting provider credentials.
Expand Down
52 changes: 36 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,24 @@
# Scriptorium

> **Public Alpha candidate:** the umbrella repository ships safe initialization for
> **Public Alpha v0.1.0:** the umbrella repository ships safe initialization for
> a real project, one synthetic vertical slice through `scriptorium demo`, the
> read-only `scriptorium doctor`, a content-free `scriptorium status` control-plane
> summary, a zero-write `scriptorium inventory` preview for explicitly selected
> local sources,
> and explicit project-scoped Codex and Claude Code skill installers. It also ships
> the accepted on-demand `scriptorium pull` entry through Provenance's
> machine-readable public command. Clean-machine release validation is still pending.
> machine-readable public command. GitHub-hosted clean Windows CI and an isolated
> Windows source-install acceptance run pass; live Agent-host parity and Lectern
> remain outside the credential-free golden path.

Scriptorium is a local-first, agent-native research workflow suite. This repository
is its thin control plane: it coordinates independently useful components through
public commands and versioned files without importing their internals or owning
their research data.

[中文说明](README.zh.md) · [Contract source of truth](https://github.com/scriptorium-suite/scriptorium-spec) · [Steward](https://github.com/scriptorium-suite/steward) · [Provenance](https://github.com/foxsplendid/Provenance) · [Design inspirations](ACKNOWLEDGEMENTS.md)
[中文说明](README.zh.md) · [中文产品案例](docs/case-study.zh-CN.md) · [Showcase evidence](docs/showcase/README.zh-CN.md) · [Contract source of truth](https://github.com/scriptorium-suite/scriptorium-spec) · [Design inspirations](ACKNOWLEDGEMENTS.md)

![Scriptorium Public Alpha synthetic golden-path evidence](docs/showcase/demo-poster.svg)

## What works now

Expand All @@ -28,6 +32,15 @@ init does not request network access or read provider credentials. After init,
selection from the suite config when higher-precedence CLI flags or environment
variables are absent.

`doctor`, `status`, and `pull` report whether each root came from the CLI,
environment, suite config, or auto-discovery. `status` and `pull` reports
do not echo selected paths; `doctor` is a detailed local diagnostic and its report
contains resolved paths, so review it before sharing. When an environment root
differs from suite config they emit a visible warning; `pull --run` then fails closed
until the user supplies explicit CLI roots. A selected but unavailable Codex log home
is treated as zero sessions plus an actionable setup cue, not as an internal error,
and the directory is never created implicitly.

`scriptorium demo` creates an isolated Markdown workspace and runs a synthetic
AI4Science literature workflow through the real public interfaces:

Expand All @@ -43,7 +56,7 @@ Once the source checkouts are installed, this demo path is designed to operate
without a network action. It does not call a live model: the agent-written draft
is an explicitly labelled synthetic fixture. The report states that network
behavior is policy-constrained rather than observed by an OS-level sandbox.
Passing this demo proves deterministic component integration, not full Public
Passing this demo proves functionally repeatable component integration, not full Public
Alpha readiness or scientific validity.

`scriptorium doctor` separately checks installation and capability readiness. It
Expand Down Expand Up @@ -110,6 +123,11 @@ python -m venv .venv
.\.venv\Scripts\python.exe -m pip install --no-deps -e ..\Provenance
```

Depending on the local Python environment, editable installation may contact the
configured package index to obtain declared build requirements such as
`setuptools>=68`. The no-runtime-network statement applies only after source
installation is complete; it is not an offline-install guarantee.

### Optional: preview existing local sources

Pass only local files or directories that you intentionally selected. Zotero and
Expand Down Expand Up @@ -242,8 +260,8 @@ scriptorium demo
```

Re-running against an output directory carrying the Scriptorium demo marker is
idempotent. A non-empty directory without that marker is rejected and never
overwritten.
functionally idempotent. Timestamp-bearing generated records may differ byte for
byte. A non-empty directory without that marker is rejected and never overwritten.

## Agent host adapters

Expand Down Expand Up @@ -379,23 +397,25 @@ the current report.

## Compatibility baseline

The first golden path intentionally locks exact source versions:
The first golden path intentionally locks exact source versions as its coordinated
Public Alpha release targets:

- `scriptorium-spec` 2.2.0 release candidate
- Steward 0.2.0 unreleased
- `scriptorium-spec` 2.2.0
- Steward 0.2.0
- Provenance 0.17.0

This source-based constraint is temporary and explicit. Tagged releases and a
range-based compatibility policy belong to the later Public Alpha release step.
The demo and CI workflows continue to pin exact component commits. A range-based
compatibility policy is intentionally deferred until external Alpha usage provides
evidence for safe ranges.

## Next product increments

1. add a compact project context-capsule/resume entry over Provenance MCP, distinct
from the content-free control-plane `status`;
2. add uniform side-effect-free version probes and profile compatibility facts;
3. add an explicitly reviewed, adapter-specific migration manifest and apply path;
4. add schema-driven cross-repository E2E for Lectern handoff;
5. verify installation and the golden path on a clean Windows environment;
6. align screenshots, release notes, tags, and compatibility ranges for Public Alpha.
2. add an explicitly reviewed, adapter-specific migration manifest and apply path;
3. add schema-driven cross-repository E2E for Lectern handoff;
4. verify live Claude Code `SessionEnd` parity with the Codex capture path;
5. run an external-user Alpha and use the evidence to shape packaging and
compatibility ranges.

Apache-2.0. No telemetry.
42 changes: 28 additions & 14 deletions README.zh.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
# Scriptorium

> **Public Alpha 候选版:** 当前 umbrella 仓库已交付真实项目的安全初始化、一个
> **Public Alpha v0.1.0:** 当前 umbrella 仓库已交付真实项目的安全初始化、一个
> 通过 `scriptorium demo` 跑通的合成纵向切片、只读诊断入口 `scriptorium doctor`、
> 不暴露内容的 `scriptorium status` 控制面状态摘要、仅盘点显式本地来源且零写入的
> `scriptorium inventory` 预览,以及显式、项目级的 Codex /
> Claude Code 技能安装器。已确认的按需入口 `scriptorium pull` 也已通过 Provenance
> 的机器可读公共命令交付;干净机器发布验收仍待完成。
> 的机器可读公共命令交付。GitHub-hosted 干净 Windows CI 与隔离的 Windows 源码
> 安装验收已通过;Agent host 实时对等路径与 Lectern 仍不属于无凭据黄金路径。

Scriptorium 是面向科研工作者的本地优先、Agent 原生研究工作流套件。本仓库是
它的薄控制面:通过公开 CLI 与版本化文件编排可独立使用的组件,不导入组件内部
模块,也不成为论文库、项目笔记或科研记忆的新数据主库。

[English](README.md) · [契约单一事实源](https://github.com/scriptorium-suite/scriptorium-spec) · [Steward](https://github.com/scriptorium-suite/steward) · [Provenance](https://github.com/foxsplendid/Provenance) · [设计借鉴与致谢](ACKNOWLEDGEMENTS.zh.md)
[English](README.md) · [中文产品案例](docs/case-study.zh-CN.md) · [展示与证据](docs/showcase/README.zh-CN.md) · [契约单一事实源](https://github.com/scriptorium-suite/scriptorium-spec) · [设计借鉴与致谢](ACKNOWLEDGEMENTS.zh.md)

![Scriptorium Public Alpha 合成黄金路径证据](docs/showcase/demo-poster.svg)

## 当前真正可用的内容

Expand All @@ -23,6 +26,13 @@ Markdown workspace 与 Provenance 数据根目录,以及一份有效的 `proje
`host install`、`doctor`、`status` 和 `pull` 可以从套件配置解析相应的
workspace、数据根与项目选择。

`doctor`、`status` 和 `pull` 会说明各根目录来自 CLI、环境变量、套件配置还是自动发现。
`status` 与 `pull` 报告不会回显实际路径;`doctor` 是详细的本地诊断,其报告包含
已解析路径,分享前必须审阅。若环境变量选择与套件配置不一致,命令会显示显著警告;
`pull --run` 将 fail closed,直到用户用显式 CLI 根目录消除歧义。所选 Codex 日志目录
不可用时,会被视为“0 个会话 + 可执行的设置提示”,而不是内部错误;套件也不会隐式
创建该目录。

`scriptorium demo` 会建立一个隔离的 Markdown 工作区,并通过真实公开接口跑通
一条合成 AI4Science 文献工作流:

Expand Down Expand Up @@ -91,6 +101,10 @@ python -m venv .venv
.\.venv\Scripts\python.exe -m pip install --no-deps -e ..\Provenance
```

根据本地 Python 环境,editable 安装可能访问已配置的包索引以取得
`setuptools>=68` 等声明的构建依赖。“运行期不申请网络动作”只适用于源码安装完成后,
不代表离线安装保证。

### 可选:预览已有本地资料

只传入你主动选择的本地文件或目录。Zotero 与对话导出均为可选;实时 Zotero 数据库
Expand Down Expand Up @@ -212,8 +226,8 @@ scriptorium doctor --target demo
scriptorium demo
```

对带有 Scriptorium demo 标记的目录重复运行是幂等的;非空但没有该标记的目录
会被拒绝,不会覆盖用户文件。
对带有 Scriptorium demo 标记的目录重复运行在功能上是幂等的;带摄取时间戳的生成记录
可能不会逐字节一致。非空但没有该标记的目录会被拒绝,不会覆盖用户文件。

## Agent 宿主适配

Expand Down Expand Up @@ -336,21 +350,21 @@ scriptorium-demo/

## 当前兼容基线

- `scriptorium-spec` 2.2.0 release candidate
- Steward 0.2.0 unreleased
- `scriptorium-spec` 2.2.0
- Steward 0.2.0
- Provenance 0.17.0

首个 golden path 暂时锁定精确源码版本,这是主动暴露的 Alpha 约束。正式 tag 与
版本范围兼容策略留到 Public Alpha 发布阶段完成。
首个 golden path 将以上版本作为协同 Public Alpha 的发布目标,并在 demo 与 CI 中
继续固定精确组件提交。版本范围兼容策略暂不靠猜测定义,而是在获得外部 Alpha
使用证据后再确定。

## 紧邻的产品增量

1. 在 Provenance MCP 之上增加精炼的项目 context-capsule/resume 入口,并与不暴露
内容的控制面 `status` 明确区分;
2. 为组件增加统一、无副作用的版本探针与 profile 兼容事实;
3. 增加需要显式人审的适配器级迁移清单与执行路径;
4. 补齐 Lectern handoff 的 schema 驱动跨仓 E2E;
5. 在干净 Windows 环境完成首装和 golden path 验收;
6. 对齐 Public Alpha 的截图、发布说明、tag 与兼容版本范围。
2. 增加需要显式人审的适配器级迁移清单与执行路径;
3. 补齐 Lectern handoff 的 schema 驱动跨仓 E2E;
4. 验证 Claude Code `SessionEnd` 与 Codex 捕获路径的实时对等性;
5. 开展外部用户 Alpha,用实测结果决定安装打包与兼容版本范围。

Apache-2.0,无遥测。
Loading