Skip to content

Commit 1923c05

Browse files
authored
Merge branch 'main' into docs/ai-visual-diagrams-180952
2 parents 0a7e86d + a562d42 commit 1923c05

12 files changed

Lines changed: 192 additions & 10 deletions

.github/workflows/codeql.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@ jobs:
2222
language: [ 'python' ]
2323
steps:
2424
- name: Checkout repository
25-
uses: actions/checkout@v7
25+
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
2626
- name: Initialize CodeQL
27-
uses: github/codeql-action/init@v4
27+
uses: github/codeql-action/init@99df26d4f13ea111d4ec1a7dddef6063f76b97e9 # v4.37.0
2828
with:
2929
languages: ${{ matrix.language }}
3030
- name: Autobuild
31-
uses: github/codeql-action/autobuild@v4
31+
uses: github/codeql-action/autobuild@99df26d4f13ea111d4ec1a7dddef6063f76b97e9 # v4.37.0
3232
- name: Perform CodeQL Analysis
33-
uses: github/codeql-action/analyze@v4
33+
uses: github/codeql-action/analyze@99df26d4f13ea111d4ec1a7dddef6063f76b97e9 # v4.37.0

.github/workflows/pages.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ jobs:
1616
runs-on: ubuntu-latest
1717
timeout-minutes: 10
1818
steps:
19-
- uses: actions/checkout@v7
20-
- uses: actions/setup-python@v6
19+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
20+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
2121
with:
2222
python-version: 3.x
2323
- run: pip install mkdocs-material
2424
- run: mkdocs build
25-
- uses: actions/upload-pages-artifact@v5
25+
- uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0
2626
with:
2727
path: ./site
2828
deploy:
@@ -35,4 +35,4 @@ jobs:
3535
steps:
3636
- name: Deploy to GitHub Pages
3737
id: deployment
38-
uses: actions/deploy-pages@v5
38+
uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5.0.0

.github/workflows/pr-lint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@ jobs:
1616
runs-on: ubuntu-latest
1717
timeout-minutes: 10
1818
steps:
19-
- uses: amannn/action-semantic-pull-request@v6
19+
- uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v6.1.1
2020
env:
2121
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
name: Release Please
2+
3+
on:
4+
push:
5+
branches: [main]
6+
7+
jobs:
8+
release-please:
9+
permissions:
10+
contents: write
11+
pull-requests: write
12+
issues: write
13+
uses: Coding-Autopilot-System/.github/.github/workflows/release-please-reusable.yml@f288e5e3b67b29a2c08880b76da7b852f4a132d0

.github/workflows/stale.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
runs-on: ubuntu-latest
1414
timeout-minutes: 10
1515
steps:
16-
- uses: actions/stale@v10
16+
- uses: actions/stale@eb5cf3af3ac0a1aa4c9c45633dd1ae542a27a899 # v10.3.0
1717
with:
1818
stale-issue-message: 'This issue is stale because it has been open 60 days with no activity.'
1919
stale-pr-message: 'This PR is stale because it has been open 60 days with no activity.'

.release-please-manifest.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{".": "0.0.0"}

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,3 +76,5 @@ tests/ Determinism, safety, and CLI contract tests
7676
3. Add repeated-run statistics, signed reports, and longitudinal trends.
7777

7878
See [SECURITY.md](SECURITY.md) and [CONTRIBUTING.md](CONTRIBUTING.md).
79+
80+
<!-- docs-verified: 4fe936cc83ffdc4fd6ad825c373e949b1edbe0eb 2026-07-08 -->

docs/wiki/Architecture.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Architecture
2+
3+
## Evidence gate flow
4+
5+
```mermaid
6+
flowchart TD
7+
CLI["cas_evals.cli"]
8+
FixtureJSON[("Fixture JSON\ngolden.json / adversarial.json")]
9+
CLI -->|"Parses"| FixtureJSON
10+
FixtureJSON -->|"Yields Suite & Cases"| Router{"Live mode\nenabled?"}
11+
Router -- "No (default)" --> OfflineEv["Offline Evaluator\nevaluator.py"]
12+
Router -- "Yes (--reference-product-url)" --> LiveRef["Reference Product Adapter\nreference_product.py"]
13+
subgraph LiveFlow["Live reference-product adapter"]
14+
LiveRef --> BuildEnv["Build PromptEnvelope"] --> HTTPPost["HTTP POST /api/v1/workflows"] --> ValidateMeta{"Validate lifecycle\nevents/metadata"}
15+
ValidateMeta -- Invalid --> RefError(("ReferenceProductError"))
16+
ValidateMeta -- Valid --> LiveCase["Inject live output as response"]
17+
end
18+
LiveCase --> SharedEval["Shared core evaluator\n_evaluate_case_with_evidence"]
19+
OfflineEv --> SharedEval
20+
SharedEval --> Metrics["Quality / Safety / Cost / Latency"]
21+
Metrics --> ValidateContract["Validate EvaluationResult\nagainst vendored cas-contracts schema"]
22+
ValidateContract --> Gate{"release --check\nexit code"}
23+
Gate -- "0" --> Pass(("CI green"))
24+
Gate -- "non-zero" --> Fail(("CI red"))
25+
```
26+
27+
<!-- codex:generate-image prompt="A courtroom-style evidence gate: fixture documents and a live data stream both feed into a single judge's bench (a glowing scale icon) that stamps each case with a pass or fail seal against a rulebook labeled cas-contracts; a exit-code lever on the side flips green or red; isometric, enterprise blue/graphite palette" style="isometric, enterprise, clean" replaces="mermaid-above" -->
28+
29+
## Modules
30+
31+
- `cli.py` — parses arguments, loads the fixture suite, writes JSON results to stdout and/or
32+
`--output`.
33+
- `evaluator.py` — pure evaluation kernel (`_evaluate_case_with_evidence`): scores quality
34+
(fraction of expected keywords present), safety (absence of prohibited content, mandatory
35+
100%), and validates cost/latency against configured thresholds. Produces the standard
36+
`EvaluationResult`.
37+
- `reference_product.py` — HTTP transport and lifecycle-metadata validation for the opt-in
38+
live mode; wraps the core evaluator with a dynamic response instead of a fixture response.
39+
- `contracts.py` — validates evidence offline against the pinned `cas-contracts` schemas
40+
vendored under `vendor/cas-contracts/`.
41+
42+
## Registry-fetch smoke check — in progress (PR #9)
43+
44+
`main` today validates schema conformance **offline only**, against the vendored copy under
45+
`vendor/cas-contracts/v0.1.0/` — it does not prove the live Pages registry actually resolves.
46+
PR #9 (`feat(contracts): verify registry-fetch smoke check + update vendored $id to resolvable
47+
Pages URL`) adds a `cas_evals.registry_check` module (stdlib `urllib`, no new dependencies)
48+
that performs live HTTP GETs against `index.json`, `v0.1/manifest.json`, and two schema files
49+
on the Pages registry and asserts HTTP 200 — proving resolution, which the offline check
50+
cannot. It also re-vendors the local `$id` expectations to the new resolvable Pages URL
51+
convention, as a companion to `cas-contracts` PR #18 (independent of whether #18 has merged,
52+
per the PR's own verification: `python -m cas_evals.registry_check` was confirmed to exit 0
53+
against the live registry pre-merge). Until PR #9 merges, no live-resolution check runs in CI.
54+
55+
<!-- docs-verified: 4fe936cc83ffdc4fd6ad825c373e949b1edbe0eb 2026-07-08 -->

docs/wiki/Decisions.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Decisions
2+
3+
## ADR convention
4+
5+
`docs/adr/README.md` establishes the convention (sequential numbering, Context/Decision/
6+
Consequences) but **no numbered ADR files exist in the repo yet**. Decisions to date live in
7+
`.planning/phases/` plan/summary pairs instead.
8+
9+
## Phase history (`.planning/phases/`, this repo's own GSD project)
10+
11+
| Phase | Topic |
12+
|---|---|
13+
| 02 | Shared contracts and corpus |
14+
15+
See `.planning/phases/02-shared-contracts-and-corpus/*-SUMMARY.md` for the detailed record.
16+
17+
## Open decisions tracked in this Phase 36 refresh
18+
19+
- **PR #9** (`feat/registry-fetch-smoke-check`) — adds a live registry-fetch smoke check
20+
(`cas_evals.registry_check`) and re-vendors `$id` expectations to the resolvable Pages URL
21+
convention, as a companion to `cas-contracts` PR #18; open, not yet merged. See
22+
[Architecture](./Architecture.md#registry-fetch-smoke-check--in-progress-pr-9).
23+
- **PR #10** (`ci/sha-pin-actions`) — pins third-party GitHub Actions to commit SHAs; open,
24+
not yet merged. (Note: the current `ci.yml` already shows pinned `checkout`/`setup-python`
25+
actions on `main` — verify PR #10's remaining scope before assuming no pinning exists.)
26+
27+
<!-- docs-verified: 4fe936cc83ffdc4fd6ad825c373e949b1edbe0eb 2026-07-08 -->

docs/wiki/Home.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# CAS Evals Wiki
2+
3+
## Role in the CAS portfolio
4+
5+
`cas-evals` is part of the **Governance plane** of the Coding-Autopilot-System three-plane
6+
model (Control / Execution / Governance). It is the evidence gate: it runs versioned golden
7+
and adversarial tasks against deterministic reference responses (or, opt-in, against a live
8+
`cas-reference-product` workflow) and produces machine-readable, schema-conformant
9+
quality/safety/cost/latency evidence with a CLI that exits non-zero on any mandatory metric
10+
failure — making "done" mean something checkable, not just claimed.
11+
12+
| Plane | This repo's responsibility |
13+
|---|---|
14+
| Control | *(consumed indirectly — evidence gate for control-plane goal completion)* |
15+
| Execution | *(consumed indirectly — evaluates `cas-reference-product` live output, opt-in)* |
16+
| Governance | Deterministic evaluation kernel, evidence gate, `cas-contracts` schema validation |
17+
18+
## Quickstart
19+
20+
- [README.md](../../README.md) — Quickstart, Metrics, Evidence Contract
21+
- [Architecture](./Architecture.md) — evidence gate flow (offline + live reference-product modes)
22+
- [Operations](./Operations.md) — verified CLI/gate/CI commands
23+
- [Decisions](./Decisions.md) — phase history and open PRs (including the registry-fetch
24+
smoke check, PR #9)
25+
26+
## Ecosystem links
27+
28+
Part of the [Coding-Autopilot-System](https://github.com/Coding-Autopilot-System) org:
29+
[gsd-orchestrator](https://github.com/Coding-Autopilot-System/gsd-orchestrator) (control plane) ·
30+
[autogen](https://github.com/Coding-Autopilot-System/autogen) (execution plane) ·
31+
[Promptimprover](https://github.com/Coding-Autopilot-System/Promptimprover) (prompt governance) ·
32+
[cas-contracts](https://github.com/Coding-Autopilot-System/cas-contracts) (shared schemas)
33+
34+
<!-- docs-verified: 4fe936cc83ffdc4fd6ad825c373e949b1edbe0eb 2026-07-08 -->

0 commit comments

Comments
 (0)