Skip to content

Commit ce70776

Browse files
committed
feat: publish a small qualified workflow library with THEBEST review signatures
Signed-off-by: HiTecHelpLLC <167040707+HiTecHelpLLC@users.noreply.github.com>
0 parents  commit ce70776

22 files changed

Lines changed: 2517 additions & 0 deletions

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
* text eol=lf
2+
workflows/*.json -text

.github/workflows/quality.yml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: Curated workflow qualification
2+
on:
3+
push:
4+
branches: [main]
5+
pull_request:
6+
workflow_dispatch:
7+
permissions:
8+
contents: read
9+
jobs:
10+
qualify:
11+
strategy:
12+
fail-fast: false
13+
matrix:
14+
os: [windows-latest, ubuntu-latest]
15+
runs-on: ${{ matrix.os }}
16+
timeout-minutes: 15
17+
env:
18+
PYTHONUTF8: '1'
19+
OPENADAPT_FLOW_NO_AUTO_INSTALL: '1'
20+
GIT_CONFIG_COUNT: '1'
21+
GIT_CONFIG_KEY_0: core.longpaths
22+
GIT_CONFIG_VALUE_0: 'true'
23+
steps:
24+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
25+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065
26+
with:
27+
python-version: '3.12'
28+
- name: Validate reviewed content and rejection tests
29+
shell: bash
30+
run: |
31+
python -m pip install -r requirements-verify.txt
32+
python scripts/validate.py
33+
python -m unittest discover -s tests -v
34+
- name: Check helper code style
35+
shell: bash
36+
run: |
37+
python -m pip install ruff==0.16.5
38+
python -m ruff check scripts tests
39+
python -m ruff format --check scripts tests
40+
- name: Verify the pinned THEBEST curator attestation
41+
shell: pwsh
42+
run: |
43+
$publicKey = Join-Path $env:RUNNER_TEMP 'thebest-review.pub'
44+
[System.IO.File]::WriteAllText($publicKey, "800696f2b323bc64efc1a44c1220f64cf420aef73e1fe1631a720c7e75831a93`n", [System.Text.Encoding]::ASCII)
45+
python scripts/attest.py verify --root . --attestation attestations/browser-poster-0.1.0.json --trusted-key $publicKey --expected-role curator --expected-identity thebest
46+
exit $LASTEXITCODE
47+
- name: Install pinned parent runtime for qualification
48+
shell: bash
49+
run: |
50+
python -m pip install "git+https://github.com/HiTecHelpLLC/l1ght5p33d.git@e51098ffa1e7ca42b96d6372578876d1c32e632b#subdirectory=packages/l1ght5p33d"
51+
python -m playwright install --with-deps chromium
52+
- name: Execute exact workflow against the synthetic browser fixture
53+
run: python scripts/qualify_browser.py --synthetic-fixture-only

.gitignore

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
__pycache__/
2+
.pytest_cache/
3+
.ruff_cache/
4+
.mypy_cache/
5+
.venv/
6+
*.pyc
7+
*.key
8+
*.pem
9+
*.png
10+
*.jpg
11+
*.wav
12+
*.mid
13+
profiles/
14+
receipts/

CONTRIBUTING.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Contributing reviewed workflows
2+
3+
Open an issue describing a useful, bounded task before adding a workflow. A small
4+
library with trustworthy behavior is the goal. Do not import bulk collections.
5+
6+
Admission requires:
7+
8+
1. Clear source provenance and an explicit compatible license. Public availability
9+
alone does not grant redistribution permission. Retain authors' notices.
10+
2. ASCII JSON under 64 KiB; no credentials, browser profiles, screenshots, binaries,
11+
personal content, arbitrary code, shell commands or hidden network activity.
12+
3. Named steps, semantic selectors first, explicit effects for every action,
13+
bounded waits and failure behavior. Declare application/version assumptions.
14+
4. Closed metadata with version, exact SHA-256, source, runtime, defaults, test
15+
scope, status, and a complete checklist of actions, arguments and effects.
16+
5. A reproducible local fixture qualification. Run the actual admitted workflow
17+
and verify an independent outcome. Do not substitute a canned demo that skips
18+
the submitted file. Document every environment substitution.
19+
6. Tests proving tampered content, unexpected actions, missing verification and
20+
scope expansion are rejected. Passing tests do not replace curator review.
21+
7. A plain-language description of inputs, effects, filesystem/network scope,
22+
cleanup, remaining limitations and required user approval.
23+
8. All checks passing on the declared platforms, followed by maintainer approval.
24+
25+
Update the exact source allowlist when intentionally adding a file. Total source
26+
must remain under 1 MB. Update the schema and validator deliberately when adding
27+
a new application or graph construct; unsupported constructs fail closed.
28+
29+
Only `fixture-qualified` is currently an admitted status. Do not claim live
30+
application verification from a mock fixture. BandLab and Windows workflows are
31+
pending separate qualification and must not be added as placeholder entries.
32+
33+
No change to this repository may automatically grant a user execution permission.
34+
Signing, catalog publication, registry deployment and P2P seeding are separate
35+
operator actions and are not performed by the validator or qualification script.

LICENSE

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
MIT License
2+
3+
Copyright (c) 2026 OpenAdapt.AI (MLDSAI Inc.)
4+
Copyright (c) 2026 L1ght5p33d contributors (downstream additions)
5+
6+
Permission is hereby granted, free of charge, to any person obtaining a copy
7+
of this software and associated documentation files (the "Software"), to deal
8+
in the Software without restriction, including without limitation the rights
9+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
copies of the Software, and to permit persons to whom the Software is
11+
furnished to do so, subject to the following conditions:
12+
13+
The above copyright notice and this permission notice shall be included in all
14+
copies or substantial portions of the Software.
15+
16+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22+
SOFTWARE.

README.md

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
# L1ght5p33d Workflows
2+
3+
A deliberately small, reviewed collection of local creation workflows. Quality
4+
and clear scope matter more than the number of entries. This initial library
5+
contains **one MIT-licensed workflow**, qualified against our own browser fixture.
6+
It does not contain a scraped collection of third-party scripts.
7+
8+
The engine lives in [L1ght5p33d](https://github.com/HiTecHelpLLC/l1ght5p33d).
9+
This repository is an independent content library. `index.json` is a curator's
10+
index, **not a signed L1ght5p33d registry catalog**. Each admitted version has a
11+
separate [THEBEST review attestation](SIGNING.md) binding exact workflow, review
12+
metadata and test evidence. No public pinning service, automatic updater or
13+
execution permission is configured.
14+
15+
## Admitted workflow: browser poster, version 0.1.0
16+
17+
File: [`workflows/browser-poster.json`](workflows/browser-poster.json).
18+
Review: [`entries/browser-poster.json`](entries/browser-poster.json).
19+
Proof: [THEBEST attestation](attestations/browser-poster-0.1.0.json) and
20+
[Windows fixture evidence](evidence/browser-poster-windows-2026-09-03.json).
21+
22+
This is the exact example copied from the parent project's pinned MIT source at
23+
commit `e51098ffa1e7ca42b96d6372578876d1c32e632b`. The original notices are retained
24+
in [LICENSE](LICENSE), and the source path and exact SHA-256 are in its metadata.
25+
26+
The provider is `browser`. It opens an isolated headless Chromium context at
27+
`http://127.0.0.1:7332`, checks the title `L1ght5p33d Poster Studio`, and performs:
28+
29+
| Step | Input and selector | Expected effect |
30+
| --- | --- | --- |
31+
| `name_poster` | Fill the field labelled `Poster title` using the `title` parameter | Read back `poster_title` equal to that parameter |
32+
| `choose_palette` | Select `Sunset` in the field labelled `Palette` | Read back `palette` equal to `Sunset` |
33+
| `save_poster` | Try button `Old save label`, then declared fallback `Save poster` | Read back `saved` equal to `Saved` |
34+
35+
Default `title`: `Make something wonderful`. Every expected effect has a
36+
three-second verification timeout. A failed or ambiguous selector stops; this
37+
workflow makes no claim to repair itself. Qualification additionally reads the
38+
fixture server's `/state` endpoint and verifies the saved title and palette.
39+
40+
Scope: synthetic fixture data, a temporary browser context, and local execution
41+
receipts. The fixture stores its saved state in memory until it shuts down. No
42+
personal files, accounts, login state, screenshots, publishing, music, purchases,
43+
deletion, or external service are part of this workflow. It does not create an
44+
exported poster image. The generic browser fixture is not a commercial design app.
45+
46+
**A download or successful fixture test is not permission to run a user workflow.**
47+
Inspect the complete plan and grant explicit local approval before execution in
48+
your own environment. Changing selectors, URL, variables, application, or steps
49+
changes what must be reviewed. Never ask an AI to approve on your behalf.
50+
51+
## Check the library without installing an automation runtime
52+
53+
With Python 3.12, from this repository:
54+
55+
```powershell
56+
python -m pip install -r requirements-verify.txt
57+
python scripts/validate.py
58+
python -m unittest discover -s tests -v
59+
```
60+
61+
Checks enforce an explicit source-file allowlist, less than 1 MB of ASCII source,
62+
at most 64 KiB per workflow, hashes, paths, closed metadata, version/status,
63+
defaults, and agreement between actual steps/providers/selectors/effects and the
64+
review checklist. These checks detect drift; a reviewer must still assess intent.
65+
Signature verification additionally requires your separately pinned THEBEST public
66+
key; see [SIGNING.md](SIGNING.md). The tests include signature and tamper rejection.
67+
68+
## Reproduce the synthetic browser qualification
69+
70+
Use a dedicated Python 3.12 environment with the parent runtime from the exact
71+
commit recorded in the metadata. CI installs that revision as follows:
72+
73+
```powershell
74+
python -m venv "$env:TEMP\l1ght5p33d-library-check"
75+
$env:GIT_CONFIG_COUNT = '1'
76+
$env:GIT_CONFIG_KEY_0 = 'core.longpaths'
77+
$env:GIT_CONFIG_VALUE_0 = 'true'
78+
& "$env:TEMP\l1ght5p33d-library-check\Scripts\python.exe" -m pip install "git+https://github.com/HiTecHelpLLC/l1ght5p33d.git@e51098ffa1e7ca42b96d6372578876d1c32e632b#subdirectory=packages/l1ght5p33d"
79+
& "$env:TEMP\l1ght5p33d-library-check\Scripts\python.exe" -m playwright install chromium
80+
& "$env:TEMP\l1ght5p33d-library-check\Scripts\python.exe" scripts/qualify_browser.py --synthetic-fixture-only
81+
```
82+
83+
That explicit command authorizes only this fixed synthetic test. It validates the
84+
admitted bytes, starts the bundled fixture on a free loopback port, changes only
85+
the fixture URL in a temporary in-memory copy, and executes all original steps
86+
and defaults. It verifies three effects, the declared fallback, server state and
87+
zero model calls. Temporary run data are removed; no user policy is changed.
88+
The script accepts no arbitrary workflow, external URL or destination argument.
89+
90+
## Admission and limitations
91+
92+
Windows desktop and BandLab are **not admitted entries** in this initial library.
93+
Each needs its own reviewed metadata, fixtures and reproducible qualification.
94+
Live application claims additionally require evidence from the specified app and
95+
version. Existing examples in the engine repository are candidates, not implicit
96+
members of this curated collection.
97+
98+
The initial CI targets Windows and Ubuntu with Python 3.12. Browser installation
99+
and CI dependency installation require network access; routine workflow execution
100+
does not require an AI connection. Metadata describe the test scope, not universal
101+
compatibility. There is no public workflow registry deployment in this repository.
102+
103+
Unofficial and unaffiliated with BandLab, Suno, browser vendors, and other
104+
applications. Product names identify potential integrations only.

SECURITY.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Security
2+
3+
Treat workflow files, descriptions, effects and claimed verification as untrusted
4+
until reviewed. A hash detects content drift; it does not prove author identity,
5+
safe intent or that a workflow is suitable for your machine.
6+
7+
The curator index is not signed and is not directly installable as a signed
8+
runtime catalog. Detached THEBEST review attestations bind exact versioned files
9+
and test evidence; verify them against a separately trusted public key as described
10+
in SIGNING.md. This repository contains no private signing key or persistent network
11+
service. Downloads and signatures do not grant permission or execute workflows.
12+
13+
Do not submit secrets, cookies, profiles, private screenshots or personal media.
14+
Report vulnerabilities privately through the repository owner's GitHub security
15+
reporting channel when enabled. If unavailable, ask the maintainer for a private
16+
channel without posting exploit details or sensitive data publicly.
17+
18+
The synthetic qualification script is opt-in developer tooling. It launches only
19+
the fixed local fixture and a temporary browser context. Do not modify it to run
20+
untrusted downloads. Runtime installations should use the recorded upstream commit
21+
and undergo the dependency checks of the parent project.

SIGNING.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Author identity, curator review and execution approval
2+
3+
These are three separate claims:
4+
5+
1. An **author signature** identifies the key that published exact workflow bytes.
6+
It is not a THEBEST test endorsement. Authors keep their own keys.
7+
2. A **THEBEST curator signature** binds a workflow version, its complete review
8+
metadata, test evidence, source runtime commit, environment and qualified scope.
9+
This library's initial attestation covers only our synthetic browser fixture.
10+
3. **Your run approval** confirms the complete proposed actions, effective inputs,
11+
application and permissions on your machine. Neither kind of signature grants it.
12+
13+
The initial entry has a THEBEST curator attestation. No separate upstream author
14+
signature is claimed. Test claims are evidence signed by the curator, not a
15+
cryptographic proof that a test was run or a promise that every environment is safe.
16+
17+
## Verify an exact version
18+
19+
Install `requirements-verify.txt`. Obtain THEBEST's public key through a channel
20+
you trust and pin a copy **outside this checkout**. The published key file is
21+
`trust/thebest-review-2026-09.pub`; this initial GitHub repository is the bootstrap
22+
publication channel. Verify its fingerprint before trusting it:
23+
24+
```text
25+
SHA-256 of raw Ed25519 public key bytes:
26+
14c70511c35c423f046e79c1944cdc9ca8d06442202c516a18f67d6932895c84
27+
```
28+
29+
Example after you have pinned the key at `C:\WorkflowTrust\thebest.pub`:
30+
31+
```powershell
32+
python scripts/attest.py verify --root . --attestation attestations/browser-poster-0.1.0.json --trusted-key C:\WorkflowTrust\thebest.pub --expected-role curator --expected-identity thebest
33+
```
34+
35+
The verifier checks the signature against that external trust anchor and hashes
36+
the exact workflow, metadata and evidence files. It rejects tampering, unknown
37+
fields, wrong keys/roles/identities, invalid dates, expiry and escaping paths.
38+
It does not run a workflow. Never accept a replacement key merely because it came
39+
with the same downloaded archive: an attacker could replace both.
40+
Use a reviewed verifier from a trusted, pinned checkout. Untrusted verification
41+
code from an arbitrary archive could simply lie about the result.
42+
43+
The envelope uses Ed25519 through the maintained `cryptography` library, with a
44+
versioned, canonical ASCII JSON payload. Payload files are SHA-256 addressed.
45+
The human-readable entry contains descriptions, actual actions, selectors,
46+
defaults, verification, runtime, source and limitations. Changing any of those
47+
bytes invalidates this version's review attestation.
48+
49+
## Publishing and key custody
50+
51+
The private curator key is stored outside Git on the operator's computer, with
52+
Windows access restricted to that OS account. It is not uploaded to GitHub,
53+
placed in CI, served by THEBEST or distributed with workflows. CI verifies public
54+
proofs and reruns the fixture; it cannot sign new reviews.
55+
56+
Maintainers review the exact files, run the qualification, preserve its sanitized
57+
report under `evidence/`, then use the local `sign` command. Signing requires the
58+
explicit identity, role, scope, environment, source commit and validity interval.
59+
The first curator review expires after 90 days; a fresh review and test run are
60+
needed to issue a new current attestation. Changes require another review and
61+
signature. Retain historical evidence rather than silently replacing its claims.
62+
63+
For a suspected compromised key, stop trusting it locally and stop admitting new
64+
downloads signed by it. Announce a replacement through a separately trusted
65+
channel. Automatic key rotation, online revocation distribution and author key
66+
enrollment are future registry work. Offline verification cannot discover a new
67+
revocation by itself. This preview does not provide a transparency log or
68+
independent audit authority.
69+
70+
The L1ght5p33d runtime already verifies native signed registry catalogs. These
71+
detached review attestations are an additional explicit verification tool; this
72+
repository's curator index is not yet wired into runtime discovery or THEBEST's
73+
P2P registry. No public P2P availability or automatic approval is implied.

THIRD_PARTY_NOTICES.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Third-party notices
2+
3+
The admitted workflow retains its original MIT copyright and license in LICENSE
4+
and records its exact upstream source in entries/browser-poster.json.
5+
6+
The detached signature helper composes these installed dependencies; no library
7+
source is copied here:
8+
9+
| Project | Version | License | Source |
10+
| --- | --- | --- | --- |
11+
| cryptography | 50.0.1 | Apache-2.0 OR BSD-3-Clause | https://github.com/pyca/cryptography |
12+
| cffi | 2.1.1 | MIT-0 | https://github.com/python-cffi/cffi |
13+
| pycparser | 3.0 | BSD-3-Clause | https://github.com/eliben/pycparser |
14+
15+
The optional browser qualification installs the exact L1ght5p33d commit named
16+
in entry metadata. Its dependency and license notices are maintained at
17+
https://github.com/HiTecHelpLLC/l1ght5p33d/blob/e51098ffa1e7ca42b96d6372578876d1c32e632b/THIRD_PARTY_NOTICES.md .
18+
Browser binaries, Python, private keys, user recordings and third-party music are
19+
not included in this repository.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"algorithm":"Ed25519","payload_b64":"eyJldmlkZW5jZSI6eyJwYXRoIjoiZXZpZGVuY2UvYnJvd3Nlci1wb3N0ZXItd2luZG93cy0yMDI2LTA5LTAzLmpzb24iLCJzaGEyNTYiOiJmOGEzNTUxYzUyMTZiYzU0NDFhMGMzMzVmNzQ4NGJmZGMyMzNlMjRlMDhmOWU2MWE4NzE4ZjhlM2YxODU2ZTMxIn0sImV4cGlyZXNfYXQiOiIyMDI2LTEyLTAyVDIyOjA4OjM4WiIsImlkZW50aXR5IjoidGhlYmVzdCIsImlzc3VlZF9hdCI6IjIwMjYtMDktMDNUMjI6MDg6MzhaIiwibWV0YWRhdGEiOnsicGF0aCI6ImVudHJpZXMvYnJvd3Nlci1wb3N0ZXIuanNvbiIsInNoYTI1NiI6ImExMzhhM2VhMTBiNTJlYzRmMjg3NDUxYmEyNTQyMmViZWZmN2QwNmExNTUzYjVhNWY2M2UwNTBiYzhjZDU0MDEifSwicXVhbGlmaWNhdGlvbiI6eyJlbnZpcm9ubWVudCI6eyJjaHJvbWl1bSI6IjE1MS4wLjc5MjIuMzQiLCJwbGF0Zm9ybSI6IldpbmRvd3MtMTEtMTAuMC4yNjIwMC1TUDAiLCJwbGF5d3JpZ2h0IjoiMS42Mi4wIiwicHl0aG9uIjoiMy4xMi42In0sInNjb3BlIjoiU3ludGhldGljIGxvY2FsIGJyb3dzZXIgcG9zdGVyIGZpeHR1cmUgb25seTogdGhyZWUgZWZmZWN0cywgZGVjbGFyZWQgc2VsZWN0b3IgZmFsbGJhY2ssIGluZGVwZW5kZW50IHNhdmVkLXN0YXRlIHJlYWRiYWNrIGFuZCB6ZXJvIG1vZGVsIGNhbGxzOyBubyBsaXZlIGFwcGxpY2F0aW9uIHF1YWxpZmljYXRpb24uIiwic291cmNlX2NvbW1pdCI6ImU1MTA5OGZmYTFlN2NhNDJiOTZkNjM3MjU3ODg3NmQxYzMyZTYzMmIifSwicm9sZSI6ImN1cmF0b3IiLCJzY2hlbWFfdmVyc2lvbiI6ImwxZ2h0NXAzM2QtYXR0ZXN0YXRpb24tY2xhaW1zL3YxIiwid29ya2Zsb3ciOnsicGF0aCI6IndvcmtmbG93cy9icm93c2VyLXBvc3Rlci5qc29uIiwic2hhMjU2IjoiYTk4MjM4NzRmZjY0ODNiNWQzODA0ZGVmMTJjZmQzY2ExZGUyZmIzMmY3YWQxYjI5N2Q5NDNlN2I5NWRiNWQ3NyJ9fQ==","schema_version":"l1ght5p33d-attestation/v1","signature_b64":"iBYo3OX/U7MFgf2StYjHuf2VS2JhWJMY1AZ2Ta3t8/UI23KMGUN0sRpNuzRU71uLOtU0ceV3AGXV4G2zmvhwBQ=="}

0 commit comments

Comments
 (0)