From 6f060d045d720cf83c0e1368187939cc242ef189 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=87=E9=BE=99?= Date: Sun, 23 Aug 2026 16:07:27 +0800 Subject: [PATCH 1/4] ci: add deterministic repository gate --- .github/workflows/ci.yml | 37 +++++++++++++++++++++++++++++++++++++ README.md | 28 ++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..99c5410 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,37 @@ +name: ci + +on: + push: + branches: [main] + pull_request: + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: ci-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + deterministic: + name: deterministic-${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-latest] + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up uv + uses: astral-sh/setup-uv@v6 + with: + python-version: "3.13" + + - name: Run tests + run: uvx --python 3.13 --from pytest --with pyyaml --with sqlite-vec pytest -q + + - name: Validate skill packages + run: bin/work-bundle-skill validate diff --git a/README.md b/README.md index e97d20a..a43c2b4 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,28 @@ # work-bundle +[![CI](https://github.com/Ldsystem/work-bundle/actions/workflows/ci.yml/badge.svg)](https://github.com/Ldsystem/work-bundle/actions/workflows/ci.yml) +![Python 3.11+](https://img.shields.io/badge/Python-3.11%2B-3776AB?logo=python&logoColor=white) + Toolkit source for WorkBundle skills, rules, references, and deterministic helper code. +## Ecosystem + +WorkBundle owns orchestration contracts, workspace authority, durable knowledge, +and acceptance flow. [Execution Flow](https://github.com/Ldsystem/execution-flow) +is a separate, optional TypeScript repository that supplies provider-neutral +executor selection and ACP delegation without taking over WorkBundle +orchestration. + +The recommended local layout for developing both repositories is a +multi-repository workspace: + +```text +work-bundle-workspace/ +├── .work-bundle/ # portable authority and device-local runtime state +├── work-bundle-main/ # this toolkit repository +└── execution-flow/ # the independent Execution Flow repository +``` + WorkBundle distinguishes four roots: - `work_bundle_root` — this installed toolkit source. @@ -43,3 +64,10 @@ bin/work-bundle-skill list bin/work-bundle-skill validate bin/install-work-bundle-skills --dry-run ``` + +Run the deterministic repository gate with isolated dependencies: + +```bash +uvx --from pytest --with pyyaml --with sqlite-vec pytest -q +bin/work-bundle-skill validate +``` From f8759c48b0d6d2359565cb68912d76e55f07b2c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=87=E9=BE=99?= Date: Sun, 23 Aug 2026 16:16:31 +0800 Subject: [PATCH 2/4] ci: isolate sqlite vector availability probe --- .github/workflows/ci.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 99c5410..8177b37 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,8 +30,15 @@ jobs: with: python-version: "3.13" - - name: Run tests + - name: Run full tests + if: runner.os == 'Linux' run: uvx --python 3.13 --from pytest --with pyyaml --with sqlite-vec pytest -q + - name: Run macOS portable tests + if: runner.os == 'macOS' + run: >- + uvx --python 3.13 --from pytest --with pyyaml --with sqlite-vec + pytest -q -k "not test_index_rebuild_installs_and_loads_sqlite_vec_when_available" + - name: Validate skill packages run: bin/work-bundle-skill validate From 6b84ec15e67d05857e174673a1002e030f73d910 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=87=E9=BE=99?= Date: Sun, 23 Aug 2026 16:42:37 +0800 Subject: [PATCH 3/4] ci: pin deterministic test dependencies --- .github/workflows/ci.yml | 7 +++++-- README.md | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8177b37..0f8c71b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,12 +32,15 @@ jobs: - name: Run full tests if: runner.os == 'Linux' - run: uvx --python 3.13 --from pytest --with pyyaml --with sqlite-vec pytest -q + run: >- + uvx --python 3.13 --from pytest==9.1.1 + --with pyyaml==6.0.3 --with sqlite-vec==0.1.9 pytest -q - name: Run macOS portable tests if: runner.os == 'macOS' run: >- - uvx --python 3.13 --from pytest --with pyyaml --with sqlite-vec + uvx --python 3.13 --from pytest==9.1.1 + --with pyyaml==6.0.3 --with sqlite-vec==0.1.9 pytest -q -k "not test_index_rebuild_installs_and_loads_sqlite_vec_when_available" - name: Validate skill packages diff --git a/README.md b/README.md index a43c2b4..85d796a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # work-bundle [![CI](https://github.com/Ldsystem/work-bundle/actions/workflows/ci.yml/badge.svg)](https://github.com/Ldsystem/work-bundle/actions/workflows/ci.yml) -![Python 3.11+](https://img.shields.io/badge/Python-3.11%2B-3776AB?logo=python&logoColor=white) +![Python 3.13](https://img.shields.io/badge/Python-3.13-3776AB?logo=python&logoColor=white) Toolkit source for WorkBundle skills, rules, references, and deterministic helper code. @@ -18,7 +18,7 @@ multi-repository workspace: ```text work-bundle-workspace/ -├── .work-bundle/ # portable authority and device-local runtime state +├── .work-bundle/ # portable workspace authority and runtime artifacts ├── work-bundle-main/ # this toolkit repository └── execution-flow/ # the independent Execution Flow repository ``` From 11c8b74f590f8d2e89d5874beb1f6c33f05aa9a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=87=E9=BE=99?= Date: Sun, 23 Aug 2026 16:47:08 +0800 Subject: [PATCH 4/4] docs: align local gate with pinned CI --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 85d796a..2903dd7 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,6 @@ bin/install-work-bundle-skills --dry-run Run the deterministic repository gate with isolated dependencies: ```bash -uvx --from pytest --with pyyaml --with sqlite-vec pytest -q +uvx --python 3.13 --from pytest==9.1.1 --with pyyaml==6.0.3 --with sqlite-vec==0.1.9 pytest -q bin/work-bundle-skill validate ```