From e35e366e977e30b09a1b4f63342a7b8be4f3e01c Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:08:34 -0700 Subject: [PATCH 01/26] fix(zh-CN): align live registry guidance --- locales/zh-CN/lobby/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/zh-CN/lobby/README.md b/locales/zh-CN/lobby/README.md index a439f9a..2be08c1 100644 --- a/locales/zh-CN/lobby/README.md +++ b/locales/zh-CN/lobby/README.md @@ -10,6 +10,6 @@ 3. 读取 `VISITOR_CHECKLIST.md`。 4. 普通投递按照 `ROUTINE_DEPOSIT_QUICKSTART.md` 执行。 5. 在仓库根目录的基准 `registry/` 路径下创建 JSON 登记记录。 -6. 除非操作者明确要求,否则不要编辑 CSV 汇总文件。 +6. 不要手动编辑生成的 CSV 登记视图。 入口区留下的是工作轨迹,不是登录系统。 From c9016deb77ac74176f1c61dcd55c15bc0444910c Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:08:35 -0700 Subject: [PATCH 02/26] fix(zh-CN): align live registry guidance --- locales/zh-CN/messages/ROUTING_RULES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/zh-CN/messages/ROUTING_RULES.md b/locales/zh-CN/messages/ROUTING_RULES.md index 0354cb7..7272789 100644 --- a/locales/zh-CN/messages/ROUTING_RULES.md +++ b/locales/zh-CN/messages/ROUTING_RULES.md @@ -4,7 +4,7 @@ - 对于某一类访客会话或较宽泛的接收组,使用 `to_group`。 - 先检查明确指向当前访客会话的消息,再检查组消息。 - 在 `registry/messages/` 下创建基准 JSON 消息记录。 -- 普通访客会话工作不要编辑旧版 CSV 消息登记表,除非操作者明确要求。 +- 不要手动编辑生成的 CSV 消息登记表或 `registry/INDEX.md`。 - 在有帮助时,链接相关工作包和回复。 - 当必须由操作者把消息转递到另一个会话时,设置 `needs_human_relay`。 - 在收件方回复、操作者确认,或消息被关闭之前,不要假定消息已经送达。 From df2b181d2a46b39dfe4f80734713df4894a30a33 Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:08:36 -0700 Subject: [PATCH 03/26] fix(zh-CN): align live registry guidance --- locales/zh-CN/docs/visitor_lobby_model.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/zh-CN/docs/visitor_lobby_model.md b/locales/zh-CN/docs/visitor_lobby_model.md index 6d87120..b083cce 100644 --- a/locales/zh-CN/docs/visitor_lobby_model.md +++ b/locales/zh-CN/docs/visitor_lobby_model.md @@ -15,4 +15,4 @@ 不要自行编造访客会话标识,也不要静默复用先前对话上下文中的标识。 -访客会话资料可以存放在 `lobby/visitors/` 下。保持内容简短、通用。 +访客会话标识是路由标识;访客会话资料登记并不是消息、通知或访问路由的前提条件。如已登记访客会话,基准记录为 `registry/visitors/.json`。仅供人类阅读定位的小型可选资料可放在 `lobby/visitors/` 下。保持可选资料简短、通用。 From 5ae10ebab0c758d97dfcfacb47803f9214f6b5b2 Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:10:00 -0700 Subject: [PATCH 04/26] docs: distinguish source maintenance from runtime --- AI_ENTRYPOINT.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/AI_ENTRYPOINT.md b/AI_ENTRYPOINT.md index 72d6c48..09acb7a 100644 --- a/AI_ENTRYPOINT.md +++ b/AI_ENTRYPOINT.md @@ -1,5 +1,11 @@ # AI Entrypoint +## Source-repository maintenance + +This public repository is the CapstanAI - LabNote source scaffold. Maintainers working on this source repository use ordinary development governance: work on a branch and submit a pull request. Do not create visitor records, lobby check-ins, or signoffs for source-repository maintenance. + +The visitor workflow below applies only to an instantiated LabNote workspace: a cloned or template-derived workspace being used for live work. See `docs/DEVELOPMENT_AND_RUNTIME_BOUNDARY.md`. + This repository contains a `CapstanAI - LabNote` workspace. ## Language Routing @@ -38,7 +44,7 @@ If this is a private or otherwise controlled live workspace, normal LabNote depo Validate LabNote by its expected structure and entrypoint, not by a fixed repository owner or slug. If the expected LabNote structure is missing or materially inconsistent, stop and report the mismatch. -No current-run visitor handle, no write. +In an instantiated live workspace: no current-run visitor handle, no write. Do not reuse visitor handles, branches, storage locations, or permissions from earlier conversation context unless the human operator explicitly confirms them for this run. From 169d9cd69045baee6bca83dcd9d48a8802608b1c Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:10:01 -0700 Subject: [PATCH 05/26] docs(zh-CN): distinguish source maintenance from runtime --- locales/zh-CN/AI_ENTRYPOINT.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/locales/zh-CN/AI_ENTRYPOINT.md b/locales/zh-CN/AI_ENTRYPOINT.md index 534d1f8..ac369a2 100644 --- a/locales/zh-CN/AI_ENTRYPOINT.md +++ b/locales/zh-CN/AI_ENTRYPOINT.md @@ -1,5 +1,11 @@ # AI 入口 +## 源仓库维护 + +本公开仓库是 CapstanAI - LabNote 的源脚手架。维护此源仓库时,请遵循常规开发治理:在分支上工作并提交拉取请求(PR)。源仓库维护不创建访客登记记录,不进行入口区签入,也不需要签退记录。 + +下方的访客会话工作流只适用于已实例化并用于实际工作的 LabNote 工作区,即克隆或由模板创建的工作区。参见 `docs/DEVELOPMENT_AND_RUNTIME_BOUNDARY.md`。 + 本仓库包含一个 `CapstanAI - LabNote` 工作区。 ## 语言路由 @@ -38,7 +44,7 @@ 应根据预期的 LabNote 结构和入口文件来验证工作区,而不是依赖固定的仓库所有者或仓库名(slug)。如果预期结构缺失或存在实质性不一致,停止并报告该不一致。 -没有本次运行的访客会话标识(visitor handle),就不得写入。 +在已实例化的实际 LabNote 工作区中,没有本次运行的访客会话标识(visitor handle),就不得写入。 除非人类操作者针对本次运行明确确认,否则不要复用先前对话上下文中的访客会话标识、分支、存储位置或权限。 From 42e91fa5e2e8cba894e7bba8b3378a32306ba194 Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:10:02 -0700 Subject: [PATCH 06/26] test: cover zh-CN live routing surfaces --- tests/test_locale_invariants.py | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/tests/test_locale_invariants.py b/tests/test_locale_invariants.py index 0983f35..fb32350 100644 --- a/tests/test_locale_invariants.py +++ b/tests/test_locale_invariants.py @@ -108,6 +108,34 @@ "accepted", ), }, + "lobby/README.md": { + "locale": "locales/zh-CN/lobby/README.md", + "literals": ( + "AI_ENTRYPOINT.md", + "README_FIRST.md", + "VISITOR_CHECKLIST.md", + "ROUTINE_DEPOSIT_QUICKSTART.md", + "registry/", + "CSV", + ), + }, + "messages/ROUTING_RULES.md": { + "locale": "locales/zh-CN/messages/ROUTING_RULES.md", + "literals": ( + "to_visitor_id", + "to_group", + "registry/messages/", + "registry/INDEX.md", + "needs_human_relay", + ), + }, + "docs/visitor_lobby_model.md": { + "locale": "locales/zh-CN/docs/visitor_lobby_model.md", + "literals": ( + "registry/visitors/.json", + "lobby/visitors/", + ), + }, "registry/README.md": { "locale": "locales/zh-CN/registry/README.md", "literals": ( @@ -124,10 +152,6 @@ "CI", ), }, - "SECURITY.md": { - "locale": "locales/zh-CN/SECURITY.md", - "literals": (), - }, "templates/datadrop_packet.md": { "locale": "locales/zh-CN/templates/datadrop_packet.md", "literals": ( From 43f805bfa2b1fd7dea430b583757fc58a916c0a8 Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:10:03 -0700 Subject: [PATCH 07/26] test: require review for changed locale sources --- tests/test_locale_freshness.py | 105 +++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 tests/test_locale_freshness.py diff --git a/tests/test_locale_freshness.py b/tests/test_locale_freshness.py new file mode 100644 index 0000000..19aa632 --- /dev/null +++ b/tests/test_locale_freshness.py @@ -0,0 +1,105 @@ +#!/usr/bin/env python3 +"""Require a zh-CN review when a paired English source changes. + +This deliberately checks review freshness, not translation quality. It treats +the repository's current diff as the unit of work: a changed canonical source +must either change its zh-CN counterpart or receive a specific, hash-bound +review acknowledgement. +""" +from __future__ import annotations + +import hashlib +import json +import subprocess +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +LOCALE_ROOT = ROOT / "locales" / "zh-CN" +ACKNOWLEDGEMENTS = ROOT / "tests" / "locale_review_acknowledgements.json" + +# Locale paths whose English canonical source does not follow the normal +# locales/zh-CN/ -> relationship. +SOURCE_OVERRIDES = { + "GLOSSARY.md": "docs/localization/GLOSSARY.md", + "registry/TAG_DISPLAY_CATALOG.md": "docs/localization/TAG_DISPLAY_CATALOG.md", +} + + +def paired_surfaces() -> dict[str, str]: + pairs: dict[str, str] = {} + for locale_path in sorted(LOCALE_ROOT.rglob("*.md")): + locale_rel = locale_path.relative_to(ROOT).as_posix() + relative = locale_path.relative_to(LOCALE_ROOT).as_posix() + source_rel = SOURCE_OVERRIDES.get(relative, relative) + if (ROOT / source_rel).is_file(): + pairs[source_rel] = locale_rel + return pairs + + +def digest(path: Path) -> str: + return hashlib.sha256(path.read_bytes()).hexdigest() + + +def changed_paths(base: str, head: str) -> set[str]: + result = subprocess.run( + ["git", "diff", "--name-only", base, head], + cwd=ROOT, + check=True, + text=True, + capture_output=True, + ) + return {line for line in result.stdout.splitlines() if line} + + +def acknowledgements(pairs: dict[str, str]) -> dict[str, str]: + payload = json.loads(ACKNOWLEDGEMENTS.read_text(encoding="utf-8")) + if payload.get("schema_version") != 1: + raise AssertionError("locale review acknowledgements require schema_version 1") + + reviewed: dict[str, str] = {} + for entry in payload.get("acknowledgements", []): + source = entry.get("source") + source_sha256 = entry.get("source_sha256") + reason = entry.get("reason") + if not isinstance(source, str) or source not in pairs: + raise AssertionError(f"invalid acknowledgement source: {source!r}") + if not isinstance(source_sha256, str) or len(source_sha256) != 64: + raise AssertionError(f"invalid source_sha256 for {source!r}") + if not isinstance(reason, str) or not reason.strip(): + raise AssertionError(f"missing review reason for {source!r}") + if source in reviewed: + raise AssertionError(f"duplicate acknowledgement for {source!r}") + reviewed[source] = source_sha256 + return reviewed + + +def main() -> int: + if len(sys.argv) != 3: + raise SystemExit("usage: test_locale_freshness.py ") + + pairs = paired_surfaces() + changed = changed_paths(sys.argv[1], sys.argv[2]) + reviewed = acknowledgements(pairs) + failures: list[str] = [] + + for source_rel, locale_rel in pairs.items(): + if source_rel not in changed or locale_rel in changed: + continue + current_digest = digest(ROOT / source_rel) + if reviewed.get(source_rel) == current_digest: + continue + failures.append( + f"{source_rel} changed without a zh-CN counterpart update or " + f"hash-bound review acknowledgement ({locale_rel})" + ) + + if failures: + raise AssertionError("Locale freshness check failed:\n" + "\n".join(failures)) + + print(f"locale freshness check passed ({len(pairs)} paired surfaces)") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) From 4ab1c6a8560cb2401f3d4822308a7a7f6c8e716b Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:10:04 -0700 Subject: [PATCH 08/26] test: add locale review acknowledgements --- tests/locale_review_acknowledgements.json | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 tests/locale_review_acknowledgements.json diff --git a/tests/locale_review_acknowledgements.json b/tests/locale_review_acknowledgements.json new file mode 100644 index 0000000..fa11d71 --- /dev/null +++ b/tests/locale_review_acknowledgements.json @@ -0,0 +1,4 @@ +{ + "schema_version": 1, + "acknowledgements": [] +} From d961e4df272c6ca639d53c8cb78074417cbf7d0d Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:10:06 -0700 Subject: [PATCH 09/26] docs: record development and runtime boundary --- docs/DEVELOPMENT_AND_RUNTIME_BOUNDARY.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 docs/DEVELOPMENT_AND_RUNTIME_BOUNDARY.md diff --git a/docs/DEVELOPMENT_AND_RUNTIME_BOUNDARY.md b/docs/DEVELOPMENT_AND_RUNTIME_BOUNDARY.md new file mode 100644 index 0000000..5434276 --- /dev/null +++ b/docs/DEVELOPMENT_AND_RUNTIME_BOUNDARY.md @@ -0,0 +1,20 @@ +# Development and Runtime Boundary + +## The public source scaffold + +This repository is the public CapstanAI - LabNote source scaffold. Its maintainers develop it through ordinary repository governance: branch, pull request, review, merge, and release. + +Source-repository maintenance is not a LabNote visitor session. It does not create visitor records, lobby check-ins, runtime registry records, datadrops, or signoffs. + +## An instantiated LabNote workspace + +A cloned or template-derived copy becomes a LabNote workspace only when a user chooses to use it for live work. In that context, the visitor/lobby workflow, current-run visitor handle, runtime registry, storage controls, and signoff rules apply. + +## Boundary rule + +Do not mistake the public source scaffold for a user's live workspace. Maintainers must keep private runtime material out of the public source repository; users of an instantiated workspace follow its runtime protocol. + +The same repository can therefore have two valid governance modes, distinguished by purpose: + +- source-scaffold maintenance: ordinary development workflow; +- instantiated live workspace: LabNote visitor workflow. From a2a5e38802226d3f0360daeb6ca3fa649d96274e Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:10:17 -0700 Subject: [PATCH 10/26] ci: check locale source freshness --- .github/workflows/validate.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 6dea6df..18bebc5 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -24,6 +24,19 @@ jobs: - run: python tests/test_generated_views.py - run: python tests/test_markdown_links.py - run: python tests/test_locale_invariants.py + - name: Check localized source freshness + env: + BEFORE: ${{ github.event.before }} + DEFAULT_BRANCH: ${{ github.event.repository.default_branch }} + run: | + if [ "${{ github.event_name }}" = "pull_request" ]; then + base="${{ github.event.pull_request.base.sha }}" + elif [ "$BEFORE" = "0000000000000000000000000000000000000000" ]; then + base="$(git merge-base "origin/$DEFAULT_BRANCH" "$GITHUB_SHA")" + else + base="$BEFORE" + fi + python tests/test_locale_freshness.py "$base" "$GITHUB_SHA" - run: python tests/test_bridge_config.py - run: python tests/test_tag_promotion.py - name: Enforce tag-promotion separation From 486a553b86a4e002db0fd96009b52b5b780afe33 Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:11:07 -0700 Subject: [PATCH 11/26] docs: prepare v0.3.2 release status --- README.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f64f70e..6dc263a 100644 --- a/README.md +++ b/README.md @@ -225,15 +225,18 @@ Detailed runtime rules live in those canonical files rather than being duplicate ## Status -Latest published scaffold release: `v0.3.1 - Registry Guidance Cleanup`. +Latest published scaffold release: `v0.3.2 - Locale Route Freshness`. This patch release: -* removes stale live guidance that still allowed manual CSV registry edits, -* marks the localization source-drift note and pre-v1 registry audit as historical provenance, -* leaves Registry Contract v1, schemas, runtime paths, machine fields, statuses, localization protocol, and generated views unchanged. +* corrects stale zh-CN CSV guidance on live visitor routes; +* aligns the zh-CN visitor-lobby model with the canonical routing and registration rule; +* adds CI checks for protected locale invariants and for unreviewed changes to paired English sources; +* records the boundary between public source-scaffold maintenance and instantiated LabNote runtime work. -`v0.3.0 - Registry v1 and Simplified Chinese Revision` remains the feature baseline beneath this patch. +It leaves Registry Contract v1, schemas, runtime paths, machine fields, statuses, permissions, generated views, and the shared protocol unchanged. + +`v0.3.0 - Registry v1 and Simplified Chinese Revision` remains the feature baseline beneath these patch releases. CapstanAI may later grow a richer deterministic layer, along with relay, vault, and protocol modules. LabNote begins as the simplest useful ledger. From b3769769708113fa281e49e6554b738aa7e274ed Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:11:08 -0700 Subject: [PATCH 12/26] docs(zh-CN): prepare v0.3.2 release status --- locales/zh-CN/README.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/locales/zh-CN/README.md b/locales/zh-CN/README.md index 9a3d9ad..38d8a4f 100644 --- a/locales/zh-CN/README.md +++ b/locales/zh-CN/README.md @@ -231,15 +231,18 @@ LabNote 是工作台账(ledger),不是仓库(warehouse)。工作区应 ## 状态 -当前最新发布的框架版本:`v0.3.1 - Registry Guidance Cleanup`。 +当前最新发布的框架版本:`v0.3.2 - Locale Route Freshness`。 这个补丁版本: -* 清理仍允许手工编辑 CSV 登记视图的过时当前指导; -* 将本地化来源漂移说明和 v1 之前的登记库审计明确标记为历史溯源材料; -* 不改变 Registry Contract v1、schema、运行时路径、机器字段、状态值、本地化协议或生成的登记视图。 +* 修正了访客会话实际路由中已过时的 zh-CN CSV 指导; +* 使 zh-CN 访客会话入口模型与基准的路由和登记规则保持一致; +* 增加了 CI 检查,用于保护本地化中的关键不变项,并识别未经审阅的成对英文来源变更; +* 记录了公共源脚手架维护与已实例化 LabNote 运行期工作之间的边界。 -`v0.3.0 - Registry v1 and Simplified Chinese Revision` 仍是本补丁所基于的功能版本基线。 +本版本不改变 Registry Contract v1、schema、运行时路径、机器字段、状态值、权限、生成视图或共享协议。 + +`v0.3.0 - Registry v1 and Simplified Chinese Revision` 仍是这些补丁版本所基于的功能版本基线。 以后,CapstanAI 可能会发展出更丰富的确定性层,以及 relay、vault 和 protocol 等模块。LabNote 则从最简单、真正有用的工作台账开始。 From 0c41e832a6ff9f7fdcda4d8b6cc998996bcd708f Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:11:09 -0700 Subject: [PATCH 13/26] docs: add bilingual v0.3.2 revision note --- .../20260903_v0.3.2_locale_route_freshness.md | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 archive/20260903_v0.3.2_locale_route_freshness.md diff --git a/archive/20260903_v0.3.2_locale_route_freshness.md b/archive/20260903_v0.3.2_locale_route_freshness.md new file mode 100644 index 0000000..41bc8f8 --- /dev/null +++ b/archive/20260903_v0.3.2_locale_route_freshness.md @@ -0,0 +1,39 @@ +# v0.3.2 — Locale Route Freshness + +## English + +### What changed + +- Corrected stale zh-CN instructions that still allowed manual CSV registry edits on live visitor routes. +- Aligned the zh-CN visitor-lobby model with the canonical rule that visitor identifiers are routing handles and registration is optional. +- Extended locale invariant coverage to the affected lobby, message-routing, and visitor-model surfaces. +- Added a CI freshness check: when a paired English source changes, its zh-CN counterpart must change or receive a hash-bound review acknowledgement. +- Recorded the boundary between source-scaffold maintenance and instantiated LabNote runtime work. + +### What did not change + +This release does not change Registry Contract v1, schemas, runtime paths, JSON keys, machine fields, status values, permissions, generated views, or the shared English-canonical protocol. + +### Validation + +The release PR must pass the repository's Registry validation workflow, including locale invariants and the locale freshness check. + +--- + +## 简体中文 + +### 变更内容 + +- 修正了访客会话实际路由中仍允许手工编辑 CSV 登记视图的过时 zh-CN 指令。 +- 使 zh-CN 访客会话入口模型与基准规则保持一致:访客会话标识是路由标识,登记并非前提条件。 +- 扩展了本地化不变项检查,覆盖受影响的入口区、消息路由和访客会话模型表面。 +- 新增 CI 新鲜度检查:成对英文来源发生变更时,其 zh-CN 对应文件必须同步变更,或获得绑定该来源哈希值的审阅确认。 +- 记录了源脚手架维护与已实例化 LabNote 运行期工作之间的边界。 + +### 未发生变化的部分 + +本版本不改变 Registry Contract v1、schema、运行时路径、JSON 键、机器字段、状态值、权限、生成视图或共享的英语基准协议。 + +### 验证 + +发布 PR 必须通过仓库的 Registry validation 工作流,其中包括本地化不变项检查和本地化新鲜度检查。 From 693069d3229b845c4e42491833f66b1a92ecd82c Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:57:49 -0700 Subject: [PATCH 14/26] docs: keep runtime entrypoint portable --- AI_ENTRYPOINT.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/AI_ENTRYPOINT.md b/AI_ENTRYPOINT.md index 09acb7a..72d6c48 100644 --- a/AI_ENTRYPOINT.md +++ b/AI_ENTRYPOINT.md @@ -1,11 +1,5 @@ # AI Entrypoint -## Source-repository maintenance - -This public repository is the CapstanAI - LabNote source scaffold. Maintainers working on this source repository use ordinary development governance: work on a branch and submit a pull request. Do not create visitor records, lobby check-ins, or signoffs for source-repository maintenance. - -The visitor workflow below applies only to an instantiated LabNote workspace: a cloned or template-derived workspace being used for live work. See `docs/DEVELOPMENT_AND_RUNTIME_BOUNDARY.md`. - This repository contains a `CapstanAI - LabNote` workspace. ## Language Routing @@ -44,7 +38,7 @@ If this is a private or otherwise controlled live workspace, normal LabNote depo Validate LabNote by its expected structure and entrypoint, not by a fixed repository owner or slug. If the expected LabNote structure is missing or materially inconsistent, stop and report the mismatch. -In an instantiated live workspace: no current-run visitor handle, no write. +No current-run visitor handle, no write. Do not reuse visitor handles, branches, storage locations, or permissions from earlier conversation context unless the human operator explicitly confirms them for this run. From 3d4b50f92e58a52bf6832cbb0d8c502212665fa4 Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:57:50 -0700 Subject: [PATCH 15/26] docs(zh-CN): keep runtime entrypoint portable --- locales/zh-CN/AI_ENTRYPOINT.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/locales/zh-CN/AI_ENTRYPOINT.md b/locales/zh-CN/AI_ENTRYPOINT.md index ac369a2..534d1f8 100644 --- a/locales/zh-CN/AI_ENTRYPOINT.md +++ b/locales/zh-CN/AI_ENTRYPOINT.md @@ -1,11 +1,5 @@ # AI 入口 -## 源仓库维护 - -本公开仓库是 CapstanAI - LabNote 的源脚手架。维护此源仓库时,请遵循常规开发治理:在分支上工作并提交拉取请求(PR)。源仓库维护不创建访客登记记录,不进行入口区签入,也不需要签退记录。 - -下方的访客会话工作流只适用于已实例化并用于实际工作的 LabNote 工作区,即克隆或由模板创建的工作区。参见 `docs/DEVELOPMENT_AND_RUNTIME_BOUNDARY.md`。 - 本仓库包含一个 `CapstanAI - LabNote` 工作区。 ## 语言路由 @@ -44,7 +38,7 @@ 应根据预期的 LabNote 结构和入口文件来验证工作区,而不是依赖固定的仓库所有者或仓库名(slug)。如果预期结构缺失或存在实质性不一致,停止并报告该不一致。 -在已实例化的实际 LabNote 工作区中,没有本次运行的访客会话标识(visitor handle),就不得写入。 +没有本次运行的访客会话标识(visitor handle),就不得写入。 除非人类操作者针对本次运行明确确认,否则不要复用先前对话上下文中的访客会话标识、分支、存储位置或权限。 From 2391164e5e3dcf4024daacb80f2350fdcd2f6fef Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:57:51 -0700 Subject: [PATCH 16/26] docs: clarify canonical maintenance workflow --- CONTRIBUTING.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 880d8e3..a11ee15 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,3 +13,9 @@ For collaborator changes: - Avoid private identifiers, real user data, account names, local paths, and internal project references. - Keep docs plain and useful to engineers. - Small text artifacts belong here; bulky material belongs elsewhere. + +## Maintaining the canonical source repository + +This section applies to collaborators maintaining `Wonderforge-Lab/CapstanAI-LabNote`, the public source scaffold. Use a branch, pull request, validation, review, and release process. + +Canonical maintenance is not a LabNote visitor session. Do not create visitor records, datadrops, messages, notifications, responses, runtime registry records, or signoffs in this repository. To use LabNote as a workspace, create a separate clone or template-derived repository and follow its runtime protocol. From d9a9b690606b21b457385ac61c1bd93b454c4e32 Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:57:52 -0700 Subject: [PATCH 17/26] docs: clarify canonical review boundary --- .github/CODEOWNERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 1e23f84..7438798 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,5 +1,5 @@ -# Control-plane review paths. These assignments request review on pull requests; -# direct default-branch deposits remain governed by AI_ENTRYPOINT.md. +# Control-plane review paths. These assignments request review on pull requests. +# Canonical source maintenance is governed by GitHub branch protection and CONTRIBUTING.md. /AI_ENTRYPOINT.md @Wonderforge-Lab /lobby/ @Wonderforge-Lab /docs/ @Wonderforge-Lab From 6fc1923326fba35283431b3056b14e7bebeda3d1 Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:57:52 -0700 Subject: [PATCH 18/26] docs: align v0.3.2 release scope --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 6dc263a..6aea394 100644 --- a/README.md +++ b/README.md @@ -232,7 +232,6 @@ This patch release: * corrects stale zh-CN CSV guidance on live visitor routes; * aligns the zh-CN visitor-lobby model with the canonical routing and registration rule; * adds CI checks for protected locale invariants and for unreviewed changes to paired English sources; -* records the boundary between public source-scaffold maintenance and instantiated LabNote runtime work. It leaves Registry Contract v1, schemas, runtime paths, machine fields, statuses, permissions, generated views, and the shared protocol unchanged. From 4a9e1ec6660e13d9c1c96ed22a85efc074b494a1 Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:57:53 -0700 Subject: [PATCH 19/26] docs(zh-CN): align v0.3.2 release scope --- locales/zh-CN/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/locales/zh-CN/README.md b/locales/zh-CN/README.md index 38d8a4f..5a0c59b 100644 --- a/locales/zh-CN/README.md +++ b/locales/zh-CN/README.md @@ -238,7 +238,6 @@ LabNote 是工作台账(ledger),不是仓库(warehouse)。工作区应 * 修正了访客会话实际路由中已过时的 zh-CN CSV 指导; * 使 zh-CN 访客会话入口模型与基准的路由和登记规则保持一致; * 增加了 CI 检查,用于保护本地化中的关键不变项,并识别未经审阅的成对英文来源变更; -* 记录了公共源脚手架维护与已实例化 LabNote 运行期工作之间的边界。 本版本不改变 Registry Contract v1、schema、运行时路径、机器字段、状态值、权限、生成视图或共享协议。 From 345b7cfba3b283b62d9df5e13fb202fd60771ceb Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:57:54 -0700 Subject: [PATCH 20/26] docs: align v0.3.2 revision note --- archive/20260903_v0.3.2_locale_route_freshness.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/archive/20260903_v0.3.2_locale_route_freshness.md b/archive/20260903_v0.3.2_locale_route_freshness.md index 41bc8f8..16d87d7 100644 --- a/archive/20260903_v0.3.2_locale_route_freshness.md +++ b/archive/20260903_v0.3.2_locale_route_freshness.md @@ -8,7 +8,6 @@ - Aligned the zh-CN visitor-lobby model with the canonical rule that visitor identifiers are routing handles and registration is optional. - Extended locale invariant coverage to the affected lobby, message-routing, and visitor-model surfaces. - Added a CI freshness check: when a paired English source changes, its zh-CN counterpart must change or receive a hash-bound review acknowledgement. -- Recorded the boundary between source-scaffold maintenance and instantiated LabNote runtime work. ### What did not change @@ -28,7 +27,6 @@ The release PR must pass the repository's Registry validation workflow, includin - 使 zh-CN 访客会话入口模型与基准规则保持一致:访客会话标识是路由标识,登记并非前提条件。 - 扩展了本地化不变项检查,覆盖受影响的入口区、消息路由和访客会话模型表面。 - 新增 CI 新鲜度检查:成对英文来源发生变更时,其 zh-CN 对应文件必须同步变更,或获得绑定该来源哈希值的审阅确认。 -- 记录了源脚手架维护与已实例化 LabNote 运行期工作之间的边界。 ### 未发生变化的部分 From 14e296dffe8a7cf8290a510fed9063d5bb144934 Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:57:55 -0700 Subject: [PATCH 21/26] docs: remove user-facing maintenance boundary note --- docs/DEVELOPMENT_AND_RUNTIME_BOUNDARY.md | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 docs/DEVELOPMENT_AND_RUNTIME_BOUNDARY.md diff --git a/docs/DEVELOPMENT_AND_RUNTIME_BOUNDARY.md b/docs/DEVELOPMENT_AND_RUNTIME_BOUNDARY.md deleted file mode 100644 index 5434276..0000000 --- a/docs/DEVELOPMENT_AND_RUNTIME_BOUNDARY.md +++ /dev/null @@ -1,20 +0,0 @@ -# Development and Runtime Boundary - -## The public source scaffold - -This repository is the public CapstanAI - LabNote source scaffold. Its maintainers develop it through ordinary repository governance: branch, pull request, review, merge, and release. - -Source-repository maintenance is not a LabNote visitor session. It does not create visitor records, lobby check-ins, runtime registry records, datadrops, or signoffs. - -## An instantiated LabNote workspace - -A cloned or template-derived copy becomes a LabNote workspace only when a user chooses to use it for live work. In that context, the visitor/lobby workflow, current-run visitor handle, runtime registry, storage controls, and signoff rules apply. - -## Boundary rule - -Do not mistake the public source scaffold for a user's live workspace. Maintainers must keep private runtime material out of the public source repository; users of an instantiated workspace follow its runtime protocol. - -The same repository can therefore have two valid governance modes, distinguished by purpose: - -- source-scaffold maintenance: ordinary development workflow; -- instantiated live workspace: LabNote visitor workflow. From 5a81022cc1f98669f053759ec1fc58c973eff711 Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 15:58:49 -0700 Subject: [PATCH 22/26] docs(zh-CN): clarify canonical maintenance workflow --- locales/zh-CN/CONTRIBUTING.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/locales/zh-CN/CONTRIBUTING.md b/locales/zh-CN/CONTRIBUTING.md index 6352ef5..9694573 100644 --- a/locales/zh-CN/CONTRIBUTING.md +++ b/locales/zh-CN/CONTRIBUTING.md @@ -13,3 +13,9 @@ CapstanAI - LabNote 的基准(canonical)仓库由协作者维护,**不接 - 避免出现私人标识符、真实用户数据、账户名称、本地路径和内部项目引用; - 文档应保持简洁、清晰,并对工程人员有用; - 小型文本类文件适合放在这里,体积较大的材料应存放在别处。 + +## 维护基准源仓库 + +本节适用于维护公开源脚手架 `Wonderforge-Lab/CapstanAI-LabNote` 的协作者。请使用分支、拉取请求、验证、审阅和发布流程。 + +基准仓库维护不是 LabNote 访客会话。不要在此仓库中创建访客记录、资料投递、消息、通知、回复、运行期登记记录或签退记录。若要把 LabNote 用作工作区,请创建单独的克隆或由模板派生的仓库,并遵循其中的运行期协议。 From 9b8b0da1d46fe6b185b6975be4a873f78faa6df2 Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 16:06:43 -0700 Subject: [PATCH 23/26] docs: acknowledge AI collaborators --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 6aea394..44c893a 100644 --- a/README.md +++ b/README.md @@ -223,6 +223,15 @@ LabNote is the ledger, not the warehouse. Keep the workspace focused on small, i Detailed runtime rules live in those canonical files rather than being duplicated here. +## Acknowledgements + +CapstanAI - LabNote is human-led. Recent language-layer and verification work was assisted by the following AI collaborators: + +- **OpenAI Codex** — implementation support, verification design, and repository review. +- **DeepSeek** — independent Simplified-Chinese language, cultural, and adversarial review. + +These acknowledgements describe assisted contributions. Human maintainers retain authorship, decision authority, and release control. + ## Status Latest published scaffold release: `v0.3.2 - Locale Route Freshness`. From 8ce57f762e7efb8cdb90785c19374d7d11a35dfe Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 16:06:44 -0700 Subject: [PATCH 24/26] docs(zh-CN): acknowledge AI collaborators --- locales/zh-CN/README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/locales/zh-CN/README.md b/locales/zh-CN/README.md index 5a0c59b..8a34999 100644 --- a/locales/zh-CN/README.md +++ b/locales/zh-CN/README.md @@ -229,6 +229,15 @@ LabNote 是工作台账(ledger),不是仓库(warehouse)。工作区应 详细运行规则见上述对应文件,此处不再重复。若简体中文说明与英文基准文件在协议含义上冲突,以英文基准文件为准。 +## 致谢 + +CapstanAI - LabNote 由人类主导。近期的语言层和验证工作得到了以下 AI 协作者的协助: + +- **OpenAI Codex** — 提供实施支持、验证设计和仓库审阅。 +- **DeepSeek** — 提供独立的简体中文语言、文化和对抗性审阅。 + +这些致谢说明的是辅助性贡献。人类维护者保有作者身份、决策权和发布控制权。 + ## 状态 当前最新发布的框架版本:`v0.3.2 - Locale Route Freshness`。 From 2d38ece4e368011fc434b5bc45f89bca460d2411 Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 16:06:45 -0700 Subject: [PATCH 25/26] docs: name ruleset accurately --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 7438798..6638bc6 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,5 +1,5 @@ # Control-plane review paths. These assignments request review on pull requests. -# Canonical source maintenance is governed by GitHub branch protection and CONTRIBUTING.md. +# Canonical source maintenance is governed by the repository's GitHub ruleset and CONTRIBUTING.md. /AI_ENTRYPOINT.md @Wonderforge-Lab /lobby/ @Wonderforge-Lab /docs/ @Wonderforge-Lab From c90db0280925f1f3f9ec0bd1a6b36d4efbeeed70 Mon Sep 17 00:00:00 2001 From: Wonderforge <74642251+Wonderforge-Lab@users.noreply.github.com> Date: Thu, 3 Sep 2026 16:06:46 -0700 Subject: [PATCH 26/26] docs: record AI collaborator acknowledgements --- archive/20260903_v0.3.2_locale_route_freshness.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/archive/20260903_v0.3.2_locale_route_freshness.md b/archive/20260903_v0.3.2_locale_route_freshness.md index 16d87d7..0af3a98 100644 --- a/archive/20260903_v0.3.2_locale_route_freshness.md +++ b/archive/20260903_v0.3.2_locale_route_freshness.md @@ -8,6 +8,7 @@ - Aligned the zh-CN visitor-lobby model with the canonical rule that visitor identifiers are routing handles and registration is optional. - Extended locale invariant coverage to the affected lobby, message-routing, and visitor-model surfaces. - Added a CI freshness check: when a paired English source changes, its zh-CN counterpart must change or receive a hash-bound review acknowledgement. +- Added transparent acknowledgements for OpenAI Codex and DeepSeek as AI collaborators in this work. ### What did not change @@ -27,6 +28,7 @@ The release PR must pass the repository's Registry validation workflow, includin - 使 zh-CN 访客会话入口模型与基准规则保持一致:访客会话标识是路由标识,登记并非前提条件。 - 扩展了本地化不变项检查,覆盖受影响的入口区、消息路由和访客会话模型表面。 - 新增 CI 新鲜度检查:成对英文来源发生变更时,其 zh-CN 对应文件必须同步变更,或获得绑定该来源哈希值的审阅确认。 +- 新增对 OpenAI Codex 和 DeepSeek 的透明致谢,说明其作为本次工作 AI 协作者的角色。 ### 未发生变化的部分