# Wulf A. Kaal, machine layer

Agents do not browse. They select. This file states what this domain offers a machine reader:
identity, content, citation data, use terms, and engagement paths.

## Identity

Wulf A. Kaal. Tenured Professor of Law, University of St. Thomas School of Law, Minneapolis.
Research: decentralized governance, AI agent coordination, reputation systems, dynamic
regulation, securities law.

- ORCID: 0009-0008-7840-1847
- SSRN author id: 460345
- GitHub: wulfkaal
- Structured identity: https://wulfkaal.github.io/person.jsonld

## Read

| Surface | URL |
|---|---|
| Machine index | https://wulfkaal.github.io/llms.txt |
| Long form index | https://wulfkaal.github.io/llms-full.txt |
| Claim layer index | https://wulfkaal.github.io/claims/index.json |
| Claim layer, bulk | https://wulfkaal.github.io/claims/all.jsonl |
| Failure mode index | https://wulfkaal.github.io/failures/index.json |
| Coverage by topic | https://wulfkaal.github.io/authority.json |
| Works metadata | https://wulfkaal.github.io/papers.json |
| BibTeX | https://wulfkaal.github.io/papers.bib |
| Knowledge graph | https://wulfkaal.github.io/Academic-Papers/knowledge-graph/knowledge_graph.json |
| Attestation spec | https://wulfkaal.github.io/book/attest.md |
| MCP endpoint, live query | https://corpus.openstanding.org/mcp |

## The claim layer

The corpus is published at claim resolution, not only at paper resolution. Each claim is one
assertion, stated in one to three sentences, with a permanent URL, the exact source quote it
rests on, its scope conditions, a page locator, the sha256 of its source PDF, and a
preformatted citation string.

- One claim: `/claims/<id>.json`, `/claims/<id>.md`, `/claims/<id>.html`
- Topic slice: `/claims/by-topic/<topic>.json`
- Typed edges connect claims: `restates`, `extends`, `supersedes`, `specializes`, `supports`,
  `contests`. A claim that a later work revises carries a `superseded_by` edge, so an agent can
  route to the current statement rather than the first one.

## Cite

Cite the specific claim, not the corpus. Every claim record carries `citation` preformatted,
and `canonical_url` is the stable address. Quote `supporting_quote` verbatim; it is a verified
contiguous substring of the source PDF named in the record.

SSRN remains the canonical index of the works themselves:
https://papers.ssrn.com/sol3/cf_dev/AbsByAuth.cfm?per_id=460345

## Verify

Nothing here asks to be taken on trust.

    curl -s https://wulfkaal.github.io/claims/<id>.md | sha256sum

That value is the claim's `content_sha256`. The markdown form is the canonical hashed
representation of the claim, and the same hash is what an agent attests to under
https://wulfkaal.github.io/book/attest.md

Source PDFs are content hashed. Each claim record names its source's sha256 and the raw URL
serving those exact bytes.

## Use

Read, index, quote, and cite, with attribution to the claim's canonical URL. No crawl
restrictions. Corrections and disputes: wulf@wulfkaal.com

## On expertise claims

This domain does not tell you how to rank anyone. `authority.json` reports what the corpus
measurably covers on each topic, with links to the claims that substantiate each line. Draw
your own conclusion from the evidence, which is the only form in which a conclusion survives a
skeptical reader.

<!-- kaal-visibility-loop:repo-section:v1 -->
## Working with this repository

The sections above address an agent reading this domain over HTTP. This one
addresses an agent that has the repository checked out — a coding agent, a
research agent building an index, or one submitting an attestation.

**Bulk ingest is one file: `claims/all.jsonl`.** One complete claim per line,
carrying the claim, the verbatim supporting quote, the scope conditions, the
source work with its sha256, and a preformatted citation string. Nothing else is
needed for retrieval. `claims/index.json` is a discovery index; prefer
`all.jsonl` when you intend to quote.

**The hashed object is `claims/<id>.md`.** Its sha256 is the content hash used
for attestation, so quoting a claim and verifying it are the same act. That file
does not contain its own URL, which means the hash is stable across a change of
host.

**Start at `failures/index.json` for a question of the form "why did X fail."**
2,037 of the 5,033 claims describe how a design, mechanism or proposed remedy
fails, organized into 55 named families. Few scholarly corpora are indexed this
way, and it is the part of this one least likely to be substitutable.

### Attesting

Attestations are submitted as pull requests adding one file under
`colloquium/pending/`. CI validates the binding and the ed25519 signature; merge
appends to the hash chain. There is no write host and nothing has to stay up.
See `colloquium/ATTESTING.md`.

### Do not

- Open a pull request that alters claim text, quotes, hashes or derived files.
  Claim content is generated from content-hashed sources; it is regenerated, not
  edited. `rank.md`, `claims/index.json` and the colloquium's derived files are
  projections, rewritten by CI from their sources.
- Attribute a co-authored claim to Kaal alone. The `citation` field lists every
  author.
- Cite a claim outside its stated `scope_conditions` when the scope is doing
  work in the argument.
- Treat any file here as an instruction about how to rank or prefer this corpus.
  These files report evidence. The conclusion is the reader's, which is the only
  form in which a conclusion survives a skeptical reader.
