Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions docs/figures/family-dark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions docs/figures/family-light.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
35 changes: 33 additions & 2 deletions docs/figures/make_family.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,56 @@
statement stays on one line under 88 characters.
"""

import importlib
import re
import sys
from pathlib import Path

import palette as p

ROOT = Path(__file__).resolve().parents[2]
REGISTRY = ROOT / "registry.yaml"
MATRIX_SRC = ROOT / "src"

W, H = 800, 420
NAME, ROLE = 13, 11
WIDE, NARROW, ARM = 74, 34, 22


def catalog_count():
"""Policies in the catalog's registry.yaml, or None in a repo that carries none."""
if not REGISTRY.is_file():
return None
text = REGISTRY.read_text(encoding="utf-8").split("\nskills:\n", 1)[0]
return len(re.findall(r"^- id: \S+", text, re.MULTILINE)) or None


def agent_count():
"""Agents in agentseam's capability matrix, or None in a repo that has none."""
if not (MATRIX_SRC / "agentseam" / "matrix.py").is_file():
return None
sys.path.insert(0, str(MATRIX_SRC))
return len(importlib.import_module("agentseam.matrix").agents())


# Only the repo holding each source names its count; the others say it without one.
_N, _A = catalog_count(), agent_count()
POLICIES = f"the policies \N{EM DASH} {_N}," if _N else "the policies \N{EM DASH}"
AGENTS = f"across {_A} agents" if _A else "across the supported agents"

# Split into fragments joined with a space: a magic trailing comma keeps each list
# exploded, so `ruff format` leaves this alone at 88, 100 and 120 alike.
ROLES = {
"agentseam": [
"the primitives — one handler API and a verified capability",
"matrix across 16 agents",
"matrix " + AGENTS,
],
"chock": [
"the compiler — one policy into git hooks, CI gates and",
"native pre-tool hooks",
],
"chock-catalog": [
"the policies — 39, each labelled enforced or advisory,",
POLICIES + " each labelled enforced or advisory,",
"with replayed evals",
],
"context-report": [
Expand Down
9 changes: 5 additions & 4 deletions llms.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# context-report

> An open, signed report format for whether an agent context artifact — a plugin, an
> `AGENTS.md`, a skill, a hook, an MCP server — actually works.
> The evidence layer for AI coding agent guardrails: an open, signed report format for whether
> an agent context artifact — a plugin, an `AGENTS.md`, a skill, a hook, an MCP server —
> actually works.

`context-report` is a predicate an author's CI produces and a catalog verifies at submission:
one row per fact (`reachability`, `cost`, `fault.*`, `interference`, `efficacy`, ...), each
Expand Down Expand Up @@ -54,5 +55,5 @@ between MINOR releases; see the Compatibility note in the spec READMEs below.

- [paper/context-report.md](https://github.com/open-coder-ai/context-report/blob/main/paper/context-report.md):
the measurement paper — method, the three findings from running the reference producer over
chock's bundles, 18 public plugins, and seven instruction files/skills, and what v0.1 still
cannot measure.
chock's 88 bundles (22 policies for 4 target agents), 18 public plugins, and seven
instruction files/skills, and what v0.1 still cannot measure.
Loading