From 4d9603931b3133835054eba267286c869dab9b3d Mon Sep 17 00:00:00 2001 From: Tom Softreck Date: Tue, 8 Sep 2026 15:08:25 +0200 Subject: [PATCH] Adopt documentation metadata for protected local verification --- .governance/docs.json | 7 +++ docs/README.md | 5 +- docs/information/local-verification.md | 83 ++++++++++++++++++++++++++ project/ticket-004/README.md | 10 ++++ project/ticket-004/intent.json | 18 ++++++ 5 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 .governance/docs.json create mode 100644 docs/information/local-verification.md create mode 100644 project/ticket-004/README.md create mode 100644 project/ticket-004/intent.json diff --git a/.governance/docs.json b/.governance/docs.json new file mode 100644 index 0000000..f59e717 --- /dev/null +++ b/.governance/docs.json @@ -0,0 +1,7 @@ +{ + "schema": "wellmanifest.docs/adoption/v1", + "repository": "semcod/clickmd", + "standard": "wellmanifest/docs", + "source_revision": "ebe7501063ef4f3e63ded610c2d3183010ca636e", + "policy_sha256": "f6ba9c011ea1d9260e7fac3a1638a767d5ebc9f7d9b32ed51cc3aea22fe95d8c" +} diff --git a/docs/README.md b/docs/README.md index 948d718..ab1ad90 100644 --- a/docs/README.md +++ b/docs/README.md @@ -352,4 +352,7 @@ pip install -e ".[dev]" | `examples/` | Usage examples | [Browse](./examples) | | `mkdocs.yml` | MkDocs configuration | — | - \ No newline at end of file + +## Authored information + +- [Protected local verification](information/local-verification.md) — immutable documentation pin, local Python matrix and publication requirements. diff --git a/docs/information/local-verification.md b/docs/information/local-verification.md new file mode 100644 index 0000000..18fda2f --- /dev/null +++ b/docs/information/local-verification.md @@ -0,0 +1,83 @@ +--- +{ + "schema": "wellmanifest.docs/document/v1", + "id": "local-verification", + "kind": "information", + "version": 1, + "title": "Protected local verification for Clickmd", + "status": "proposed", + "owner": "semcod/clickmd", + "created": "2026-09-08", + "updated": "2026-09-08", + "review_after": "2026-09-15", + "source_revision": "b8720fb50d63103007e229872c92c190d7fa326e", + "affected_repositories": [ + "semcod/clickmd" + ], + "evidence": [ + "https://github.com/subactor/onedev-agent/pull/202", + "https://github.com/semcod/clickmd/issues/4" + ] +} +--- + +# Protected local verification + + +## Purpose + +Verify the complete Clickmd test suite in the independent local executor while +preserving the existing required hosted Python matrix. This repository adopts +Wellmanifest Docs metadata for authored information through `.governance/docs.json`. + + +## Scope + +The local profile runs Python 3.10.19 and 3.13.15 with the same locked dev, +click and rich extras as `.github/workflows/test-locked.yml`. The protected +image prepares dependencies before candidate execution; both test runs are +networkless. A second gate runs the pinned documentation checker against the +trusted current base. The OneDev deployment is owned by subactor/onedev-agent. + + +## Evidence + +An offline image canary of the bound source passed 66 tests on each Python, +with three existing absent-Click cases skipped because the required Click +extra is installed. The executor's regression suite rejects altered, missing +or symlinked dependency inputs and propagates failures from either interpreter. +This document and pin form the real consumer PR canary after executor deployment. +Its terminal receipt determines publication success; the document does not +approve itself. + + +## Contract + +The executor compares candidate `pyproject.toml` and `uv.lock` to independently +approved digests. A change requires an explicit executor package update before +publication can pass. The candidate cannot introduce new trusted pins. +Each Python imports Clickmd from this checkout's `src`, validates the source +path and runs the complete pytest suite. This validates source behavior, not +wheel packaging or every IDE/LLM integration. + +OneDev reports the existing `onedev/local-verify` status. The protected +Validator continues requiring both hosted `test (3.10)` and `test (3.13)`; +the new local result does not silently replace them. Independent exact-head +review and an explicit merge grant remain separate publication requirements. + + +## Limits + +This is a Linux matrix. It does not certify Windows, macOS, GUI integrations, +LLM correctness or deployed product behavior. The three skipped tests cover +an environment without Click; they are not runtime test failures. +The documentation pin declares adoption. Actual enforcement additionally +requires the deployed protected checker and a successful exact-base PR receipt. + + +## Acceptance + +Publish after both hosted tests, the deployed local matrix and documentation +gate pass. Preserve the exact head/base/merge evidence in the independent +receipt. Future dependency changes must update the protected image through +its own reviewed source, test and deployment process. diff --git a/project/ticket-004/README.md b/project/ticket-004/README.md new file mode 100644 index 0000000..80a22ff --- /dev/null +++ b/project/ticket-004/README.md @@ -0,0 +1,10 @@ +# Ticket 004: Protected local verification + +Status: IN_PROGRESS / EDIT. +SESSION_EXECUTION_AUTHORIZATION: continue, push, test and deploy. +Allocation: https://github.com/semcod/clickmd/issues/4. + +AC-01: Adopt immutable Wellmanifest Docs metadata and canonical verification information. +AC-02: Verify both local Python matrix members plus documentation against current base. +AC-03: Preserve both hosted checks and independently publish the exact head. +Canonical result: [local verification](../../docs/information/local-verification.md). diff --git a/project/ticket-004/intent.json b/project/ticket-004/intent.json new file mode 100644 index 0000000..83f84aa --- /dev/null +++ b/project/ticket-004/intent.json @@ -0,0 +1,18 @@ +{ + "schema": "new-project.intent/v3", + "ticket": "ticket-004", + "summary": "Adopt documentation metadata and specify protected local verification", + "workstream": "integration", + "allowedPaths": [ + ".governance/docs.json", + "docs/README.md", + "docs/information/local-verification.md", + "project/ticket-004/**" + ], + "forbiddenPaths": [ + "pyproject.toml", + "uv.lock" + ], + "dependsOn": [], + "conflictsWith": [] +}