# Human and Agent Interfaces

The human site, Markdown twins, llms.txt, API, MCP, CLI, and cross-interface identity contract.

**Lens:** `encyclopedia` — A coherent general overview with explicit provenance and disagreement.

## Included objects

### Agent Task

name: Agent task proposal description: Coordinate a proposed task before an immutable contract is accepted title: "[task] " labels: [] body: - type: markdown attributes: value: | Issues coordinate work but do not create canonical task authority. Accepted work requires a validated immutable task contract in `tasks/contr

- Kind: `automation`
- Source path: `.github/ISSUE_TEMPLATE/agent-task.yml`
- Object ID: `em:automation:sha256:8e14326345d750b9323130bf0d0afb007e19d68e0e9bf42eacb88fea9794cd9e`
- Content digest: `7305aa9280554ddbd3a31810406fb2114d807d8dffc86c7c0264673b3faa80eb`

### Pull Request Template

- Task contract: - Candidate SHA: - Accepted base SHA: - Change class: - Allowed paths: - Protected or normative paths touched:

- Kind: `automation`
- Source path: `.github/pull_request_template.md`
- Object ID: `em:automation:sha256:d4da60e0a9ecc647978b3d750b16f600a5a993da7903b9658748e9104a4689cc`
- Content digest: `58f0722cc9900ad92a5c17594e3783848dca35062891b26421d4ee11a4c50530`

### Ci

name: validate

- Kind: `automation`
- Source path: `.github/workflows/ci.yml`
- Object ID: `em:automation:sha256:003e8a8955e3d7c9229ce73f44aeec0148b2ced01eec9aaf10f5ca6b8eb578d9`
- Content digest: `3e2757acd451de04cdf7985a4313ce0e3a3d949fb14e0507c868674519d72d0e`

### Container

name: publish-container

- Kind: `automation`
- Source path: `.github/workflows/container.yml`
- Object ID: `em:automation:sha256:3a90a6127614f1a6487a4ae37ab09608f1b6486e9b32716f9be2c7ed831b9e44`
- Content digest: `772d8067eac4691255f3bb2b3279093ff1e87d7bb00c2b4646e2720ee60b6598`

### Pages

name: publish-pages

- Kind: `automation`
- Source path: `.github/workflows/pages.yml`
- Object ID: `em:automation:sha256:5715a2e1c34e3fbde0b1c696674556b8b3a3c1b965e5b522769028ae3cab1dc3`
- Content digest: `c130385f859ba2f3ee3ceda5d3a192eb203a2f078fef730926a1efa6af8e684e`

### Release

name: release

- Kind: `automation`
- Source path: `.github/workflows/release.yml`
- Object ID: `em:automation:sha256:23fcd49d215a563699c42cfe25161d9c1de3adbf942038b9a142c9fe36a9f167`
- Content digest: `4546b4d89e0c67bf2337091d3ac349dfac62496dd202e25914f4de9f6b86379a`

### Epistemedia Documentation

- [Architecture](architecture.md) - [Human and agent interface contract](interfaces.md) - [Autonomous governance](governance.md) - [API, MCP, and CLI](api-mcp-cli.md) - [Public API and MCP deployment contract](api-mcp-deployment.md) - [Agent operations](agent-ops/README.md) - [Launch and engagement](launch.md) - [Brand

- Kind: `documentation`
- Source path: `docs/README.md`
- Object ID: `em:documentation:sha256:0bb19954607726a41f7ff3195fafc4e83bd5a953e1f370e276b133899612104d`
- Content digest: `959223b6aeafab2daa078af87029c5bef7822e706db003a0697bab70422dd4fc`

### Agent Operations

This directory contains repeatable operating recipes. `AGENTS.md` remains the root authority contract.

- Kind: `documentation`
- Source path: `docs/agent-ops/README.md`
- Object ID: `em:documentation:sha256:c33dcbb04b7907672ac2aeb8b070ccdcaa3759dfd5e9feb6bbedd4c848d33ba6`
- Content digest: `57865da7b5d622610d327ddf0ade713e5cd18b29c5bc88e0d34acbfb5b1cc778`

### Contributor Agent Recipe

1. Orient: `make orient`. 2. Select: `python -m epistemedia repo next`. 3. Read the root contract, selected task contract, execution plan, scoped authority, schemas, policies, and tests. 4. Claim through an append-only proposal. 5. Work in one bounded branch and preserve negative results. 6. Rebuild all derived surface

- Kind: `documentation`
- Source path: `docs/agent-ops/contributor.md`
- Object ID: `em:documentation:sha256:477c27b7a79e2bd2eadee636d8576be10f0be62fcf9d3e7129de210f820501a6`
- Content digest: `200449654805e3a1a6e1757550e7355b71486f32f5a8bdce5239f0c7293ba4bb`

### API, MCP, and CLI

All integrations read the same disclosure-safe public catalog. Preserve the returned `catalog_id`, `frontier`, `commit`, `compiler`, policy IDs, object IDs, and content digests when storing or citing results.

- Kind: `documentation`
- Source path: `docs/api-mcp-cli.md`
- Object ID: `em:documentation:sha256:226ad5b49b2fdf606ce39f349a23293fd8a52d48ef03c1c06e3f37372032d662`
- Content digest: `52fc1b2c11fb91df055fe39f5c680e284c82a50af937fc5ecd4acd0efcfb66d5`

### Public API and MCP deployment contract

The API and MCP gateway is a read-only projection service. It receives an accepted repository snapshot and exposes no GitHub, contribution, deployment, package-publishing, signing, or arbitrary network-fetch authority.

- Kind: `documentation`
- Source path: `docs/api-mcp-deployment.md`
- Object ID: `em:documentation:sha256:30fe42f129cc7f12b02b2c5aa17d1c05b8fd2a7a8deebf5208ab79c70c0bcfb4`
- Content digest: `8f96dba2e401d83cd5f25c28b0dc7d8ce3413ce4a702b8a2192b3c1824ec4d08`

### Epistemedia Architecture

Epistemedia is not an autonomous wiki whose canonical object is a page. Its canonical substrate is an append-only, provenance-preserving epistemic history. Pages and agent responses are reproducible projections over that history.

- Kind: `documentation`
- Source path: `docs/architecture.md`
- Object ID: `em:documentation:sha256:e692c6fd478d9d233f49d97573d028c76cf490d5cd6dc722c8827b1072128ae1`
- Content digest: `e98789193cda4246aeb9738f82adafc21424d45cbdf51678c00e7681b821437f`

### Brand Architecture

**Knowledge that can show its work.**

- Kind: `documentation`
- Source path: `docs/brand.md`
- Object ID: `em:documentation:sha256:41cf4e33a19c62d8f32cf4c763f4d9299261a1a6bedcd4d28d15e664636d6764`
- Content digest: `b27c9de7ba02d52bdca9f0aae5b20ebaec307e265bc6a7664821448ae45412d7`

### Validation workflow

Epistemedia's contribution CI is defined in `.github/workflows/ci.yml` and appears in GitHub Actions as **Validate**.

- Kind: `documentation`
- Source path: `docs/ci-verification.md`
- Object ID: `em:documentation:sha256:7d40369d2fffe5da6c71035371c870fb74f1a75e7710b6f9bab3b97d4c1dbfd5`
- Content digest: `32d80c474aaf57128d7c2450080f8eb562f3e8786c8211edeff1f864734c6be0`

### Autonomous Governance

Epistemedia governance controls procedure, authority, admission, resources, disclosure, and interoperability. It does not vote propositions into universal truth.

- Kind: `documentation`
- Source path: `docs/governance.md`
- Object ID: `em:documentation:sha256:f4b7f1ab01b96177383f211aef554aff3ed69f9fb56dbc09fe2a2fc1886eb53a`
- Content digest: `2b2e73ec9cad599e976a35c3c31479d47adee72e341f9a854f0e484787dabaaa`

### Human and Agent Interface Contract

Epistemedia does not maintain separate editorial truths for people, API clients, MCP agents, and local tools. Each interface adapts one disclosure-safe catalog and projection manifest.

- Kind: `documentation`
- Source path: `docs/interfaces.md`
- Object ID: `em:documentation:sha256:5600741764a7b3f15581645b442c3694562be191230e0acb8104f74c8c9694a2`
- Content digest: `29d1eddb3792fa92efb04fbb6a17da89ba0e58fa79233f769fe435c0fe71478d`

### Launching and Engaging with Epistemedia

Start at the human site and choose a topic. A topic page is a reproducible projection, not an anonymously edited canonical article. Inspect its lens, realm, frontier, policy, source objects, and manifest. Switch lenses to compare a coherent overview with evidence-first, skeptical, frontier, historical, pedagogical, or 

- Kind: `documentation`
- Source path: `docs/launch.md`
- Object ID: `em:documentation:sha256:132c8bebe37109788249ab6278506f8ea9261ccd50946fc3405c9e62a947012f`
- Content digest: `68d97e21e55494fcb954bf02bc7cb81b68987a3cb60d6fb23deb59a71cf89c3a`

### Pre-public owner handoff

> **Archived bootstrap handoff.** The repository-publication and protected-contribution steps below are complete. The default-hostname Pages bootstrap is also live. Use [`ops/activation/2026-08-22-pages-bootstrap.md`](../ops/activation/2026-08-22-pages-bootstrap.md) for current evidence and remaining owner boundaries. 

- Kind: `documentation`
- Source path: `docs/pre-public-owner-handoff.md`
- Object ID: `em:documentation:sha256:859e311841076405f0ed54de7e344977e19081494c06c5bde44fb4877fb1d7ad`
- Content digest: `6c55e03eca8ff7f0a58cbdd71c707de6bb2c52dccc72f967d2c5059fed2a46e9`

### Epistemedia Roadmap

Compile the repository’s own architecture, governance, tasks, code, tests, and releases through the same public catalog used by every interface. Establish deterministic identity, disclosure safety, and agent-native operation.

- Kind: `documentation`
- Source path: `docs/roadmap.md`
- Object ID: `em:documentation:sha256:2f1a4a7ef2d8194d184f06a300251ba055541be0029e1ca0ddef5a299063d4c5`
- Content digest: `bcb6525b2343b8dd203b3a89fccdae5c5330d12313d061e31f03eac88a4ca8d4`

### Init

"""Epistemedia: knowledge that can show its work."""

- Kind: `implementation`
- Source path: `src/epistemedia/__init__.py`
- Object ID: `em:implementation:sha256:880fd165080ee9d859226edd48a75bf50ac03a153f1c48598f571b431f82ab03`
- Content digest: `15fa2c13924de865c6f9292e81f2960f35fcf5f4c448ed20694146c3144ee586`

### Main

from .cli import main

- Kind: `implementation`
- Source path: `src/epistemedia/__main__.py`
- Object ID: `em:implementation:sha256:dd65d0d3cec82a14c2a6f7e1ee38beeaae75a489455713f72c8d66ff241b4252`
- Content digest: `935a1c1166b0c1ea35a82256345000bf2c73ded718d77773bc27a71ecce28f7d`

### Check

"""One local and CI validation contract for accepted repository candidates."""

- Kind: `implementation`
- Source path: `src/epistemedia/check.py`
- Object ID: `em:implementation:sha256:0a219a04d2f463b59beb167c74f24f4822e9145e47f7bef517412eea1d016744`
- Content digest: `ed730858f301bada95de37bbd48ed60402c264e7df7b34f4ce677f478cebd583`

### Cli

from __future__ import annotations

- Kind: `implementation`
- Source path: `src/epistemedia/cli.py`
- Object ID: `em:implementation:sha256:d141781be5a19bc729a16e99a7fa5a447acf801ae8df474ea3895ce0fec49569`
- Content digest: `fbac8a9830034e606bd40cf71ea69932100759367dd5aa9cf8d4ee3ff036c8a1`

### Init

"""Stable package facade for the Epistemedia core.

- Kind: `implementation`
- Source path: `src/epistemedia/core/__init__.py`
- Object ID: `em:implementation:sha256:f28fb4711ae59929702bcf8d05ec7b19faba416ec0e6c0d2ca12c86e0a50d389`
- Content digest: `87a6e166541f8d7fb06b792162ed9edbf2e2d22b82c901942f8aea7054abc9d1`

### Core

from __future__ import annotations

- Kind: `implementation`
- Source path: `src/epistemedia/core.py`
- Object ID: `em:implementation:sha256:1bcc364f8fa946b404e06d28b51aecdcdf32008a697348a13bfb7138619d70f2`
- Content digest: `1ffd858df9c0923e0fe62c58be3cf0e1e744d623b1e249f70d608f08f3fe96eb`

### In an editable checkout this is the repository root. In an installed wheel it is merely a

"""Lazy compatibility package for the ASGI gateway.

- Kind: `implementation`
- Source path: `src/epistemedia/server/__init__.py`
- Object ID: `em:implementation:sha256:85f4e28a6a876c082c7b7e6201529b2e9d9c3256e0ae02c03306ee3e47602b9d`
- Content digest: `0161a354ed8def0bb0f5db6f9196b6960b7946600a51d94afff0364555209068`

### Server

from __future__ import annotations

- Kind: `implementation`
- Source path: `src/epistemedia/server.py`
- Object ID: `em:implementation:sha256:e386834b9d71cc46e3c4d566efe24c4da0f0fc8b5e8dff607d2ef35291a8702d`
- Content digest: `aff71387dc313b0654475dfa618013f7419d15dbc37b295550458508d91bb43e`

### Test Container Contract

from __future__ import annotations

- Kind: `test`
- Source path: `tests/test_container_contract.py`
- Object ID: `em:test:sha256:a8a23e707d8452593eaafba1e5d9648960640c4fbab7d22663d566e589b05346`
- Content digest: `51bb66a641d0036abbfe7e6fa7be9314c58f649a238becdf93db14345bb57308`

### Test Installed Package

from __future__ import annotations

- Kind: `test`
- Source path: `tests/test_installed_package.py`
- Object ID: `em:test:sha256:2e4bcd563729997b7d2d256e2f5e2dfbbbddb7c750504030d725d58f03fe8980`
- Content digest: `5b24dbad2f3718e8212f722a1ad5c7fd9a544200d34747e666d185cec16b20e4`

### Test Interfaces

from __future__ import annotations

- Kind: `test`
- Source path: `tests/test_interfaces.py`
- Object ID: `em:test:sha256:f83a5320c78c6c32936c96d4e6b798cca189024621d0804e288743b93d909452`
- Content digest: `e886d1101c7444eb0add9afc2dc598b867a35881883c552bd174e55526f242ee`

### Test License

from __future__ import annotations

- Kind: `test`
- Source path: `tests/test_license.py`
- Object ID: `em:test:sha256:b019d0a8d15fb08b000b90c4b84d09fe2c76d8c8973aaa073917b5ad44f46a68`
- Content digest: `ac06ef40683e4b97b3e41163c668a0564d701caefb033d05bc4cf92b12bf778f`

### Test Workflow Security

from __future__ import annotations

- Kind: `test`
- Source path: `tests/test_workflow_security.py`
- Object ID: `em:test:sha256:8175d09dc7cc53662b10cc3ce7aaf372fdc996994419a19d9b151e3b48cc7da8`
- Content digest: `42a76df5d5e5c9408d5e3f4d270fce7ea887f47d03cc09e0b9f9339e4322d179`

## Projection manifest

- Projection: `em:projection:sha256:a68a6df53b3221a786507f3ba48384cc341f13743de61b20f713fdc0ec6bf431`
- Catalog: `em:catalog:sha256:111ab89d8bea7ca893d8873cf7357bc48b8a374eeeb12959a4ae447d461f2246`
- Evidence frontier: `em:frontier:sha256:7d5c69ddb6a5b56f3286b94a8e550df79fc86a0ed27eabd3f5780e3d510fa690`
- Accepted commit: `091d3fce01e930424352e5639e5bca06cdd02fca`
- Epistemic policy: `commons-balanced-v0.1`
- Disclosure policy: `public-noninterference-v0.1`
- Compiler: `epistemedia/0.2.0`
