Camayoc gives AI coding agents a governed memory: a starter vocabulary for work, decisions and outcomes, loaded into a quipu knowledge graph that refuses any record that does not say how it was learned (observed, declared or inferred). It is for teams whose agents keep re-deciding things a past session already settled. It comes as a Claude Code plugin (a skill, a session-start status hook and a bootstrap command), and as plain scripts any agent that speaks HTTP can use.
The quipucamayoc was the Inca official who kept the quipus and certified what was read back out of them.
This 20-second recording calls the existing adapter source API with two public synthetic CloudEvents. A deployment maps to DeploymentEvent; an unknown type is quarantined with exit 2. The documentation helper prints selected mapped fields without posting an episode or contacting Quipu. Reproduce the recording.
- Keep decisions between sessions: give agents shared knowledge they can read back.
- Check how a fact was learned: admit records with explicit provenance.
- Normalize event input: map supported events and quarantine unknown types.
The Camayoc book explains memory, vocabulary and ingress.
curl -fsSL https://raw.githubusercontent.com/intigraph/camayoc/main/install.sh | shPython 3.9+, curl, and a Linux or macOS shell. Downloads and verifies the latest source package into ~/.local/share/camayoc/TAG.
No native executable, server or agent enrollment is installed.
The agent-memory CLI (camayoc, alias cy) installs separately with
uv tool install git+https://github.com/intigraph/camayoc; see the
reference.
Set STACK_INSTALL_ROOT on the receiving shell for another prefix.
Pinned releases, alternatives, configuration and removal are in the
installation and usage reference.
From an empty directory, bootstrap a governed memory and watch it prove its gate:
git clone -q --depth 1 https://github.com/intigraph/camayoc
QUIPU_SERVER=http://127.0.0.1:3030 bash camayoc/scripts/bootstrap.sh > bootstrap.log 2>&1
grep -E '^(ontology|shapes|gate: PROVEN — an untagged|camayoc:)' bootstrap.logontology: loaded (core.ttl)
shapes: loaded (camayoc-core)
gate: PROVEN — an untagged Decision refused, as it must be.
camayoc: governed memory ready. Query first; record at the moment; tag honestly.
With no quipu on your machine, bootstrap downloaded one (sha256-checked),
started it, loaded the vocabulary and shapes, and then tried to write a
Decision with no provenance tag. The store refused it. That refusal is the
guarantee everything else rests on. Stop the server with
kill "$(cat .quipu/server.pid)"; the full log is in bootstrap.log.
Choose a vocabulary and profile before admitting records. The installation reference covers agent memory; the ingress design covers event normalization. The terminal fixture maps a supported deployment event and refuses an unknown type without posting either to a server.
Start with the Camayoc skill and agent setup reference. Configure the graph endpoint and credentials through your deployment. Query existing knowledge before adding facts; record provenance when writing. Installing source files does not enroll an agent or activate a producer.
The source installer needs Python 3.9+, curl and a Linux or macOS shell. The bootstrap example starts a local Quipu server and writes vocabulary and shapes; run it in a disposable directory and stop its server afterward. Agent-memory CLI installation is separate from the source package. Review write rules and event coverage before connecting live producers.
- The Camayoc book: concepts and setup.
- Installation reference: choose the required components.
- Ingress design: event mapping and quarantine.
- Tambo: guided installation of the complete stack.
- Detailed examples and agent setup.
Load this repository’s graph: public repository-pendant assets have not yet been verified. When a release supplies the archive, checksum and provenance, follow the verified import workflow: extract the share directory and use quipu import SHARE_DIR --db repository.db. Import stages knowledge; ROOT stays unchanged.
Bring deployment outcomes and change history into the same governed memory. These adapters use CDEvents on CloudEvents and Camayoc's single ingress.
Catalog data · Updating the table
| Tool | Standard | How | Status | Docs |
|---|---|---|---|---|
| GitHub / Forgejo Actions | CDEvents on CloudEvents | Reusable deployment-event action or CLI; skipped and cancelled jobs emit no deployment. | Supported adapter; activation is separate | Guide |
| Ansible | CDEvents on CloudEvents | Callback writes one event per applied host; failed or unreachable recap counters mean failure. | Supported adapter; activation is separate | Guide |
| Terraform | CDEvents on CloudEvents | Wrap an actual apply -json; errors or a nonzero exit after an attempted change mean failure. | Supported adapter; activation is separate | Guide |
| Native CDEvents | CDEvents on CloudEvents | Pass supported CDEvents through the single governed ingress; unknown types are quarantined. | Supported adapter; activation is separate | Guide |
| GitHub change lifecycle | CDEvents on CloudEvents | Read change, CI and native review records into ChangeEvent history; scheduling is separate. | Supported adapter; activation is separate | Guide |
The catalog describes source support, not installed producers or measured event coverage. The graph queries for deployment frequency, change failure rate, lead time and restore time need recorded events for the selected service, repository and time window. Missing change or deployment history is not a measured zero.
The Quipu stack is built around a governed, bitemporal knowledge store: shared facts, decisions and work history your agents can query. Quipu can check writes against your rules, records where each fact came from, and answers what was true when.
| tool | what it gives your agents |
|---|---|
| tambo | 🧰 Agent Platform Toolkit - installs and configures the quipu stack |
| quipu | stores shared facts with provenance and history; can check writes against your rules |
| camayoc | prepares knowledge and vocabulary for Quipu, with checks before it is admitted |
| quechua | shared vocabulary and shapes for interoperable knowledge |
| chaski | reacts to graph changes and delivers governed notifications |
| bobbin | indexes your codebase and injects context from that index and Quipu knowledge |
| yupana | shows code impact and can read policies from Quipu to govern agent actions |
| desire-path | turns agent mistakes into feature requests; works on its own without Quipu |
| seeds | a work item tracker backed by the Quipu knowledge base |
| shantytown | runs crews of AI agents on work items, triggered by hand, on a schedule or by events; can share work and memory through Quipu |
| rikuy | live brief: status, graphs, watches and signed decisions over Quipu |
| shuttle | runs signed agent workflows and keeps their records in Quipu |
Run just check and just test before submitting changes.
Repository pendant builders require explicitly pinned model and tokenizer bytes
and an embedding dimension. The input contract is in
repository_share_embedding.py. This
source plumbing does not enable publication or qualify a provider.
Use the locked project environment when reviewing RDF, SHACL or stored queries. It declares RDFLib, pySHACL, pytest and the existing test-suite dependencies; it does not install packages into the system interpreter.
uv sync --frozen --python 3.11 --group review
just review-preflight
just review-test tests/test_dual_read_queries.pyThe preflight prints the selected interpreter and installed dependency versions. It refuses missing imports before the review test recipe runs. Both steps use Python 3.11 and the same frozen dependency group. Use that interpreter for ad-hoc review scripts too:
uv run --frozen --python 3.11 --group review python -c \
'import pyshacl, rdflib; print(pyshacl.__version__, rdflib.__version__)'
uv run --frozen --python 3.11 --group review python -c \
'from rdflib import Graph, URIRef; from rdflib.namespace import RDF, SKOS'For a script outside the repository, add --project /path/to/camayoc to uv run
and pass the script's path after python. Do not bootstrap an unrelated global
Python or interpret skipped query suites as review success. The existing
just test and CI's missing-RDFLib refusal remain available and unchanged;
this environment is for review, not for deployed adapters.
