# Using Tambo
Tambo ships a resumable interview and the plan/apply/verify engine with
adapters for Quipu, Camayoc, Bobbin, Yupana, and Desire Path.
```bash
cargo install --git https://github.com/intigraph/tambo --locked
# Guided: use, crew themes, and anticipated graph questions are checkpointed.
tambo init --guided
# Read-only preflight: every blocker on this host, before anything installs.
tambo doctor
# Non-interactive: read the same schema from caboodle-intent.toml.
tambo plan --profile retrieval --intent caboodle-intent.toml
# Converge the reviewed plan, then prove both tools with isolated round trips.
tambo apply
tambo verify
tambo verify-questions
# Or run both phases together after review.
tambo install
```
`apply` installs a missing released tool and reads its version back — a
successful installer exit alone is never accepted. `verify` uses temporary
isolated stores: it proves a marker absent, writes it, and requires the reader
path to return it. Progress is written atomically to `.caboodle/state.json`, so
rerunning converges.
If input ends partway through an interview, Tambo stops without a plan and
keeps accepted answers in `.caboodle/interview.toml`. Run `tambo init
--guided` again to resume at the next unanswered question. Invalid answers are
rejected and never produce a plan.
Use `--skip-install` when package installation belongs to another system; the
version and functional checks still run.
`code-intel` adds checksum-pinned Yupana and proves a caller edge in a temporary
repository with isolated HOME/state. `everything` additionally installs Desire
Path by building the revision its `v0.10.0` tag names, reads it back from `dp version`, and
proves ingest/list against a temporary database. These checks never use the user's normal evidence stores.
`caboodle-intent.toml` names the intended use, zero or more themed crew members,
and at least one anticipated ontology question. A question is a contract, not a
wish: it includes an answer shape, fixture/seed intent, executable `SELECT` or
`ASK` SPARQL, and an expected result marker. The reviewed install plan embeds
the contract, and `verify-questions` executes it through Quipu's reader path.
This makes “what should the graph answer?” an install acceptance test.
A first install usually has no ontology to ask about yet. Pressing enter at the
question-count prompt selects the built-in self-test question instead. It seeds one
`tambo-verify-roundtrip` node into a scratch store and queries for it, so it
passes on a fresh machine. `verify-questions` always runs it against that scratch
store, even when `--db` points at your own. Replace it with real questions later
by editing `[intent]` in the plan.
```toml
intended_use = "answer dependency and ownership questions about my services"
[[crew_members]]
name = "Harbor"
theme = "patient navigator"
domain = "service operations"
role = "trace dependencies and explain incidents"
[[anticipated_questions]]
question = "which services depend on the message broker?"
answer_shape = "a list of service entities"
seed_intent = "two fixture services and one depends_on edge to the fixture broker"
sparql = "SELECT ?service WHERE { ?service <https://example.org/depends_on> <https://example.org/broker> }"
expected = "fixture-service"
```
The prose fields steer ontology and seed construction; the SPARQL and expected
marker decide whether that construction is retrievable through the path a reader
will actually use. Never put credentials in this file or the generated plan.
## Review observability before deployment
For every selected tool, Tambo emits a versioned contract. Quipu and Bobbin
currently declare `/metrics` and required metric families; tools without an
exporter remain explicit contracts with an unavailable reason rather than being
silently omitted. Supply generic Prometheus targets without URL schemes:
```toml
[targets]
quipu = "quipu.example:8080"
bobbin = "bobbin.example:3030"
```
Then render and inspect the artifacts. Rendering never claims the targets were
scraped or deploys anything:
```bash
tambo render-observability --targets caboodle-observability.toml
tambo validate-observability
less caboodle-observability/prometheus.yml
less caboodle-observability/alerts.yml
less caboodle-observability/dashboard.json
less caboodle-observability/contracts.json
```
Validation fails on a missing or malformed selected target, a target for a tool
whose pinned contract has no exporter, a missing scrape job, or an alert or
dashboard metric absent from the versioned contracts.
### Newer Bobbin under skip-install
`quickstart --skip-install` and `apply --skip-install` retain an installed Bobbin
whose release version is strictly newer than the reviewed pin, with a warning.
They do not install or downgrade it. Quickstart still runs Bobbin's isolated
functional round-trip before reporting success. Apply alone records an applied
version, not a new functional verification. Older or unrecognised Bobbin versions
still refuse under this flag; missing tools must be provisioned separately.
The exception does not change other tools' version contracts.