Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
1cf3954
Ship the draft claims-test pack so ROCA scoring and Docs or PR packet…
billbrietstout Sep 19, 2026
09531dc
Allow claims-test pack load by fetch or attach so ChatGPT can run the…
billbrietstout Sep 19, 2026
6042cf8
Make the claims-test chain reply with a markdown report instead of JS…
billbrietstout Sep 19, 2026
6cca2cb
Collect published topic attacks before scoring so coverage claims can…
billbrietstout Sep 19, 2026
bbc45b4
Require C-attacks in the Track A shortcut so a stale pack fetch canno…
billbrietstout Sep 19, 2026
eceb043
Show intake packet defaults as bracketed examples and drop the workst…
billbrietstout Sep 19, 2026
aa7d727
Expand claims-test industry_pilot enum and spell out ADAS.
billbrietstout Sep 21, 2026
443f3c7
Tighten claims-test schema: typed suggestions, known topics, drop wor…
billbrietstout Sep 21, 2026
936635d
Add GoatCounter for cookieless aggregate pageview analytics.
billbrietstout Sep 24, 2026
c767cf3
Add missing llm:meta on the claims-test assess page.
billbrietstout Sep 24, 2026
6344aae
Add streaming BSP vendor-risk workbench for content and GenAI suppliers.
billbrietstout Sep 25, 2026
e1f38ca
Give streaming-bsp its own llm:meta classify branch.
billbrietstout Sep 25, 2026
8f89c48
Tighten streaming BSP page: drop FedRAMP, expand acronyms.
billbrietstout Sep 25, 2026
f90901e
Restructure the OpenAI / Hugging Face deck so each hop has one title.
billbrietstout Sep 30, 2026
8f8287f
Name each point on the path a step before assigning a title.
billbrietstout Sep 30, 2026
67cf71f
Add isolated TACIP 20260928a directory for LLM query testing.
billbrietstout Oct 1, 2026
312fbbb
Add a verified attack inventory and have claims-test C-attacks read i…
billbrietstout Oct 2, 2026
7da0bfb
Add business-process attack classes to the inventory (0.2.0) and clai…
billbrietstout Oct 2, 2026
50a582e
Remove telemetry RFC references from the attack inventory (0.2.1).
billbrietstout Oct 2, 2026
3126b7d
Attack inventory 0.2.2: add 18 verified incident refs from AITBM leads
billbrietstout Oct 2, 2026
d92ecd9
Attack inventory 0.3.0: add skill poisoning, rules file poisoning, ex…
billbrietstout Oct 2, 2026
34bff14
Attack inventory 0.4.0: add computer-use stale action, reasoning bloc…
billbrietstout Oct 2, 2026
c70717d
Attack inventory 0.5.0: add feedback-loop poisoning and output contro…
billbrietstout Oct 2, 2026
7a55aa8
Attack inventory 0.6.0: add media preprocessing, adversarial perturba…
billbrietstout Oct 2, 2026
e145fa8
Repair four moved CoSAI source links and the OWASP AISVS link
billbrietstout Oct 3, 2026
07a67e9
Merge develop into fix/cosai-aisvs-links
billbrietstout Oct 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/verify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ jobs:
- name: Page metadata and chunk markers
run: python3 build/verify_pages.py

- name: Attack inventory
run: python3 build/verify_attack_inventory.py

- name: Regeneration drift gate
run: |
python3 build/generate_knowledge_layer.py
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
*.log
node_modules/
*.pdf
!tacip/20260928a/*.pdf
worker/.wrangler/
*.~lock*
CLAUDE.md
Expand Down
4 changes: 3 additions & 1 deletion ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
## Guiding constraints

- No build step. No bundler. No framework.
- No external network requests at runtime (fonts, analytics, CDN scripts).
- No external network requests at runtime for fonts or CDN libraries.
Exception: GoatCounter pageview beacons via `shared/analytics.js`
(aggregate counts only; see `/about/`).
- Pages work without JavaScript. JS adds interactivity progressively.
- One accountable file per concern. No magic.
- Coherent design language with `cosai-wizards` — same CSS token names.
Expand Down
254 changes: 254 additions & 0 deletions HANDOFF.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,254 @@
# Handoff: aisharedresponsibility.com → Cursor Project

**Date:** 17 September 2026
**Live site:** https://aisharedresponsibility.com
**GitHub:** https://github.com/billbrietstout/ai-shared-responsibility
**Local workspace:** `/Users/billstout/Documents/Claude/Projects/AISharedResponsibility.com`
**HEAD:** `62db22c` on `main` (same SHA as `origin/main`, `origin/develop`)
**Working tree:** clean. No stash.

This file is the current-state packet for a Cursor Project coordinator. Read it before planning or delegating. Prefer live data over numbers remembered from older chats.

---

## Goal

Keep the published CoSAI AI Shared Responsibility Framework (SRF) v1.0 reference site accurate, machine-readable, and usable by humans and agents. New work either clarifies v1.0 or is labeled as an independently proposed companion extension. The site answers who is accountable for each activity. It does not invent attack techniques, control catalogs, severity scores, or regulation.

Core rule: exactly one accountable party per activity. "Shared" is a starting point for analysis, not a valid final answer.

---

## What is already done (do not rebuild)

Static site. No bundler. No runtime network for fonts, analytics, or CDN scripts. Serve the repo root. Pages work without JavaScript; JS adds interactivity.

### Framework (CoSAI SRF v1.0)

- Five layers L1 to L5 (`data/layers.json`)
- Eight personas (`data/personas.json`) plus sector specializations
- Four operating models: AI-SaaS, AI-PaaS, Agent-PaaS, IaaS (`data/matrix.json`)
- Autonomy L0 to L5 and override T1 to T5 (paper Appendix A.1.3; site glossary and homepage lede)
- L5 is the model-artifact supply chain (Models, Training, Model Supply Chain). Enterprise TPRM for all vendor categories sits at L1.

### Vertical control schemas (independently proposed; not CoSAI-endorsed)

Live hubs plus controls and how-to pages. Trust `data/index.json` `record_count` over this table if they diverge.

| Vertical | Controls file | Typical count |
|---|---|---|
| Finance | `data/finance-controls.json` | 40 |
| Healthcare | `data/healthcare-controls.json` | 40 |
| Insurance | `data/insurance-controls.json` | 40 |
| Public sector | `data/public-sector-controls.json` | 40 |
| Defense | `data/defense-controls.json` | 53 |
| Manufacturing | `data/manufacturing-controls.json` | 45 |
| Tapestry | `data/tapestry-controls.json` | 26 |

Tapestry adds Federated-Consortium plus personas `sovereign-participant-node` and `consortium-core-coordinator`. Proposed companion; not CoSAI-ratified.

Root files `*-vertical-handoff.md` and `tranche*-handoff.md` are historical build briefs. Verticals they describe are live. Do not restart those programs from those files.

### Companion agentic extensions (shipped 9 September 2026)

Register: `data/srf-vnext-extensions.json`. Page: `/papers/srf-vnext-agentic-extensions/`. Banner on every new surface: independently proposed; not CoSAI SRF v1.0; not CoSAI-endorsed.

Nine asks for a future CoSAI paper: accountability continuity, spawn/replication, fail-closed halt, persistence scope, enforcement-plane declaration, protocol-independent evidence, owner vs halt-authority coverage, spend ceiling as halt, control-plane location. Site copy, glossary terms, vendor-risk questions, threshold schema optional fields, and AI SAFE² on `/compare/` already carry these. Do not re-implement.

Refused brands and scales (do not import): A0 to A6, SAFE² ACT-1 to ACT-4, AISM Chaos-to-Sovereignty, HEAR, Control Envelope as an SRF object.

### Practitioner tools already on the site

- Whitepaper assessment prompt v2.2 at `/assess/whitepaper-assessment/` (intake first; slim catalogs; Novel is a map result)
- Draft claims-test pack v1.0.5 at `/assess/claims-test/` (ROCA + Docs/PR suggestion packets; cousin of whitepaper assessment, not a merge). Pack load is fetch or attach `prompts.json`; citation URLs stay pinned. Chain run replies with the markdown report. C-attacks is required; the shortcut names it and requires a Published attack classes table of ATT-xx rows even when a fetched pack is older or topics is empty. Intake packet values are bracketed examples.
- Threat-model prompt pack v3 at `/tools/prompts/threat-model/` with gold eval under `eval/threat-model/`
- Vendor-risk questionnaire, regulation discovery, controls assessment, IR playbooks, NICE mapping, security-lifecycle page
- [un]prompted October 2026 deck at `/presentation/unprompted-oct2026/`. May 2026 TSC deck removed; `/presentation/` redirects.
- NIST AI RMF static RAG demo at `/nist-ai-rmf/` (not official NIST). SP 800-53 Rev 5 is an opt-in sibling corpus. Isolate from the SRF knowledge graph and from the unlinked TACIP orphan at `/nist/`.
- Agent skills at `/developers/skills/`: `srf-accountability` (fetch live HTTPS data) and optional `openclaw-srf`.

### Knowledge layer and CI

Generated JSON in `glossary.json`, `api/glossary/`, `ontology/`, `ids.json`, `export/`. Sources of truth are HTML glossary anchors and `data/*.json`. CI: `.github/workflows/verify.yml` on push to `main`/`develop` and on PRs. Drift gate regenerates and fails if committed files differ.

OpenCRE export files exist (`export/opencre-srf.json`, `export/opencre-srf.csv`, `opencre-binding-proposal.md`). CRE links are proposals from 12 July 2026, not published OpenCRE mappings.

---

## Recent git history (what changed)

Latest commit on `main`:

```
62db22c Complete SRF accountability skills and correct live-data grounding.
```

Immediately before that: metadata-drift clear, Data & agents routing, publication-look CSS (self-hosted type, Claude chrome stripped), companion agentic extensions, whitepaper assessment v2.2 (PR #28), L5 vs L1 TPRM split, MOSAIC spreadsheet inclusion pass, [un]prompted deck, DSGAI identifiers on `data/threats.json`.

Local leftover: branch `cursor/whitepaper-assessment-v2.2` is one checkpoint commit ahead of its remote (`8811e71`). The feature already merged. Ignore that branch unless recovering a discarded edit.

---

## How this state was verified (17 September 2026)

- `git status` empty; `git stash list` empty
- `main`, `origin/main`, `origin/develop` at `62db22c`
- No open GitHub PRs
- One open issue: [#8 ARA source suggestion](https://github.com/billbrietstout/ai-shared-responsibility/issues/8)
- Local agent transcripts surveyed (29 workspace chats). This transfer chat did not change product code.

---

## How to build, serve, and test

Serve (no compile):

```bash
python3 -m http.server 8080
```

Asset paths are root-relative. Open `http://localhost:8080`.

After glossary or `data/*.json` edits that feed the ontology:

```bash
python3 build/generate_knowledge_layer.py
python3 build/verify_knowledge_layer.py
python3 build/inject_page_metadata.py
python3 build/inject_chunk_markers.py
python3 build/verify_pages.py
```

Commit generated JSON in the same change as the source edit. Do not hand-edit generated files.

If a `data/*-controls.json` file changes, also run `python3 build/sync_llms_full.py` and `python3 build/generate_oscal_verticals.py` (UUIDs are uuid5; clean reruns leave the tree clean).

If the agentic principle source table changes: `python3 build/generate_principle_catalogs.py`.

Always hand-update: `changelog/index.html`, `data/index.json` (`updated` and new file entries), `llms.txt`, `sitemap.xml`, and `llm:concepts` meta on edited pages.

UI changes: exercise the changed route in a browser, plus every other route that reads the same JSON or component. A screenshot is not verification.

Threat-model eval (no model required for gold echo):

```
python3 eval/threat-model/run_eval.py --write-gold-echo
python3 eval/threat-model/run_eval.py --pred eval/threat-model/runs/gold-echo
```

Claims-test eval (no model required for gold echo):

```
python3 eval/claims-test/run_eval.py --write-gold-echo
python3 eval/claims-test/run_eval.py --pred eval/claims-test/runs/gold-echo
```

A claim that Track A beats zero-shot stays false until SME sheets in `eval/threat-model/sme/` exist. `run_compare.py` keeps `closure` false until then.

---

## What not to change

- CoSAI SRF v1.0 identity: five layers, eight personas, four operating models, one-party rule, L0 to L5, T1 to T5
- Homepage H1, CoSAI name, and "who is accountable." Do not put AGI, superintelligence, or existential-risk language on `/`
- `data/matrix.json` cell values unless CoSAI publishes a matrix revision. Companion dimensions live in `data/srf-vnext-extensions.json`
- AITF namespaces. Telemetry work proposes only binding gaps. See `.cursor/rules/aitf.mdc` (local-only; contents summarized below)
- Ingesting AI SAFE²'s control text (dual MIT + CC-BY-SA). Cite and paraphrase. Do not add SAFE² as a 53rd corpus source
- Merging AGI Risk / Redwood into this site
- Runtime fetch of third-party scripts or fonts
- A sixth architecture layer
- New top-level product brands (HEAR, Control Envelope, AISM, ACT tiers)
- Invented regulation IDs. TBD is allowed; fake citations are not
- Treating Federated-Consortium or vertical schemas as CoSAI-ratified

Lane: the SRF names who authorizes, who owns the result, and who signs residual risk. BIML / OWASP / ATLAS / NIST own threats. CIS / CSA AICM / AI Exchange own control content. AIVSS owns severity.

---

## Open work (next Project tasks)

Prioritize with the owner. None of these are in-flight in git.

1. **GitHub issue #8: Agent Runtime Assurance (ARA).** CC BY 4.0, DOI 10.5281/zenodo.21571732. Owner comment: plausible L3/application-layer draft reference. Decide include vs decline against the agentic corpus bar (published/adopted vs proposed draft). If included, add to the source table and regenerate principle catalogs; if declined, close the issue with the bar stated.

2. **OpenCRE maintainer session.** Binding files are generated. Three proposed CRE anchors (225-553, 663-200, 803-457) are unverified with OpenCRE maintainers. Principle `related` links still say CRE-ID mapping is not done. This is outreach plus a format check, not more local JSON.

3. **Threat-model SME eval.** Gold fixtures and scorers exist. Closure needs two reviewers per system filling `eval/threat-model/sme/` templates, then Hamming loss via `labels/expert-corrections.json`.

4. **Telemetry draft publish-or-hold.** Local working draft: `papers/what-new-telemetry-agents-need.md` (gitignored with other `papers/*`). Thesis: AITF is the baseline; propose SRF persona/layer attrs, T1 to T5 oversight events, erasure-compatible evidence, feedback spans, actuation events. Protocol-independent evidence is already a vnext ask. Publishing requires a `papers/` gitignore exception like the vnext paper.

5. **Draft whitepaper claims-test pack.** Shipped at `/assess/claims-test/` (prompts.json, page, gold fixture, eval stub). v1.0.5 intake packet uses bracketed examples and drops `cosai_workstreams`. v1.0.4 requires C-attacks in the Track A shortcut so a stale fetch cannot skip the published-attack table; JSON is optional. Design notes remain in `whitepaper-claims-test-handoff.md`. Do not merge with `/assess/whitepaper-assessment/`. Second industry or WS1–WS4 profile packs are optional follow-on.

6. **Gardening.** Regulation `last_verified` older than 180 days shows Verify on `/regulations/`. Follow PRs and CI on `main`/`develop`.

Do not revive ChatGPT architecture plans that this repo already refused (A0 to A6, homepage rebrand, `/autonomous-ai`, Control Envelope). The executed keep-list is in `~/.cursor/plans/handoff_plan_assessment_a081c39b.plan.md` (local Cursor plan; all todos completed).

---

## Files a cloud clone will miss

`.gitignore` excludes `.cursor/`, `CLAUDE.md`, and `papers/*` except `papers/srf-vnext-agentic-extensions*`. Cloud agents that clone GitHub will not see:

| Path | Why it matters |
|---|---|
| `.cursor/rules/aitf.mdc` | AITF is the telemetry baseline; do not re-propose its namespaces |
| `papers/what-new-telemetry-agents-need.md` | Telemetry draft |
| `papers/netflix-multimodal-*.md`, `papers/streaming-multimodal-*.md`, `papers/taxonomy-claim-test.md` | 13 to 14 Sep 2026 research |
| Local canvases under `~/.cursor/projects/.../canvases/` | Taxonomy scoring, MOSAIC inclusion, whitepaper grades |

Copy this `HANDOFF.md` into the Project's Context tab (or commit it to GitHub) so cloud agents have the constraints.

---

## Writing and labeling

University-freshman grammar. No em dashes. No en dashes as separators. Prefer SRF nouns already on the site: persona, layer, control, obligation, attestation, autonomy level, override tier.

Banned as filler: delve, leverage, robust, seamless, holistic, landscape, ecosystem, end-to-end, foster, empower, "best practices" without a citation.

Companion copy must say independently proposed and not part of CoSAI SRF v1.0. Matrix cells need the concrete obligation, not the status word alone.

Key-takeaway bullets must be testable claims a reader could not predict from the table of contents.

When adding principles, check `security_principles_reference.oscal.json` and `related` links before treating a principle as novel. AI/agentic principles live in the companion catalog, published as `data/ai-agentic-principles.json`.

---

## Agent skills and live grounding

For accountability answers, follow `developers/skills/srf-accountability/SKILL.md`:

1. GET https://aisharedresponsibility.com/llms.txt
2. If needed, GET https://aisharedresponsibility.com/data/index.json and use those `record_count` values
3. Fetch the matching JSON (`matrix.json`, `{vertical}-controls.json`, `vendor-risk.json`, `threats.json`, glossary `api/glossary/{anchor}.json`). Anchors are case-sensitive.

Do not answer SRF lookups from training memory.

---

## Suggested Project setup

- **Workspace:** GitHub repo `billbrietstout/ai-shared-responsibility` (same tree as this folder)
- **Default branch for PRs:** `develop`, then merge to `main` when the owner asks. Both currently match.
- **Context files:** this `HANDOFF.md`; later add `ARCHITECTURE.md` and `build/README.md` if agents keep missing the generate/verify loop
- **Subscriptions to offer the owner:** PRs on this repo; CI on `main` and `develop`; a weekly regulation-staleness check
- **Local agents:** required for browser verification of UI. Cloud agents can edit JSON/HTML and run the Python verifiers.

Coordinator: plan and delegate. Do not rewrite v1.0. Start with issue #8 or the owner's next content ask.

---

## Local chat record (optional deep dive)

Workspace transcripts live under `~/.cursor/projects/Users-billstout-Documents-Claude-Projects-AISharedResponsibility-com/agent-transcripts/`. Useful recent threads:

| Period | Topic |
|---|---|
| 15 Sep 2026 | Whitepaper-assessment prompt grade; multimodal M interoperability |
| 13 to 14 Sep 2026 | Netflix/streaming multimodal inventory and taxonomy claim test |
| 13 Sep 2026 | Publication-look CSS; commit to `main` and `develop` |
| 9 Sep 2026 | ChatGPT handoff assessed; companion extensions shipped instead of a rebrand |
| Aug 2026 | [un]prompted deck, threat-model pack v3, CoSAI PDF URL, DSGAI mapping, MOSAIC inclusion |
| Aug 2026 | NIST AI RMF static RAG demo |

Cite a thread to the owner as a Cursor conversation title plus id, not by dumping JSONL into the Project.
19 changes: 15 additions & 4 deletions about/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -128,10 +128,21 @@ <h2>The wizard tools</h2>
transfer is complete, they are published under the Apache License 2.0.
</p>
<p>
The wizards run entirely in your browser. No data is sent to any server.
State is persisted in <code>localStorage</code> and exportable as JSON.
There are no analytics, no cookies, and no external font or script loads
at runtime.
Wizard assessment state stays in your browser. Inputs and results are
stored in <code>localStorage</code> and are exportable as JSON. That
state is not sent to this site’s servers.
</p>

<h2>Analytics</h2>
<p>
Pageviews are counted with
<a href="https://www.goatcounter.com/" target="_blank" rel="noopener">GoatCounter</a>,
a cookieless analytics service. It records aggregate path, referrer,
browser, and coarse location counts. It does not store IP addresses
or persistent visitor IDs in the browser. Wizard and assessment
payloads are not included. The beacon is loaded from
<code>shared/analytics.js</code> (site code
<code>aisharedresponsibility</code>).
</p>

<h2>Contributing</h2>
Expand Down
Loading
Loading