Skip to main content

telos-md

Custodian of the project's telos. Drift-guard for earned commitments.

A project has a telos — the unchanging thing it is for. Goals, guardrails, and execution all derive from it. When work runs autonomously across many iterations, the telos is the first thing to dissolve: not by a single decision to abandon it, but by accumulated drift that no participant in the loop is positioned to see.

telos-md is the per-project discipline that holds that line. It does two things and refuses to do anything else.

It takes custody. telos_set_north_star is not a setup call; it is a custody act. A telos is registered against a repo, a metric, and a set of stop conditions earned upstream via research.md and locked in governor. Closure (telos_close) is the discharge. Between those two acts, the contract is the tool's responsibility.

It signals drift. Every iteration is reported through telos_tick. The tool measures trajectory against the custodied commitment and names known failure modes — monolithic-loop, heuristic-ratchet, zero-delta-churn, caretaking-drift, execution-without-decision, same-signature-repeat. Each pattern has a specific counter-action. The tool is advisory at counter-action time — it does not execute for the pod — but it is directive at custody time: the contract it holds is the contract.

Custodial-directive, counter-action-advisory. This distinction is the load-bearing rule. See PHILOSOPHY.md.

See TELOS_CUSTODY.md for the mental model, USING_TELOS.md for the quickstart, .governor/adr/ADR-003 for the AGI-substrate thesis.


Five AGI-like sub-properties telos-md scores per project

Emitted by self_audit as a vector, 0–1 each:

  1. Persistence of decision — does this project accumulate durable records of earned autonomy? (AUTONOMY.md growth)
  2. Heterogeneity — are multiple model families authoring the work, or is it monocultural? (fleet_diversity distribution)
  3. Contract-earning — do consequential decisions go through research.mdgovernordocket.md before execution? (trilogy coverage)
  4. Empirical validation — are improvements gated by evidence or by advocacy? (promoted patterns + signal-lift over null)
  5. Self-observation — does the system notice its own drift, or does it require external correction? (drift-catches-that-changed-behavior)

Directional fidelity — the drift detection most consumers will interact with first — is the tactic that protects these five properties. Every drift pattern and counter-action maps to one of them.


Named drift patterns

Autonomous agents keep running. That's the whole point. But left unchecked, they drift into named, repeatable failure modes — each of which is a violation of one of the five AGI-like sub-properties:

  • monolithic-loop — one model authoring every iteration; no basis change, no escape from its own geometry.
  • heuristic-ratchet — tightening the same knob past usefulness; marginal value per iteration goes to zero.
  • zero-delta-churn — N consecutive iterations producing no change on the declared metric.
  • caretaking-drift — hedging or asking permission instead of executing.
  • execution-without-decision — thrashing implementations that should've been earned upstream in research.md.
  • same-signature-repeat — re-doing work another pod is already doing.

Each pattern has a specific counter-action. A pod inside a loop can't see them. A pod consulting telos-md can.


MCP surface (9 tools)

Tool Purpose
telos_set_north_star Custody act. Declare a goal + trajectory metric + stop conditions; scoped to a repo_path.
telos_tick Report one iteration. Returns heading, drift_category, signal, counter-action reasoning, and any settled_autonomy hint from the repo's AUTONOMY.md. (tick arguably belongs on the praxis-md side when hone is later renamed; flagged in ADR-005.)
telos_close Discharge custody with an outcome (reached / abandoned / converged / pivoted). Triggers empirical metrics for any trial candidates applied during the loop.
telos_hypothesize Draft N competing candidate patterns / counter-actions / refinements. Accepts caller-provided heterogeneous candidates (preferred) or falls back to built-in drafting.
telos_trial_status Read-only inspection of a trial's candidates + metrics.
telos_patterns Inspect the pattern library.
telos_traffic List open north stars for a repo.
telos_promote Promote a trial winner. Gated on: applications≥5, score≥0.2, lift≥0.4 over null baseline, regression_test passes, cross_model_review approved for pattern/refinement/counter_action kinds, strictly-best sibling on the rank cascade. Writes <repo>/.telos/promoted/<date>-<id>.md and appends to AUTONOMY.md.
telos_reload Re-import patterns / store / llm from disk. Auto-invoked on successful promote so code changes take effect in the running server.

See USING_TELOS.md for the quickstart, file layout, full pattern table, trilogy composition, and the per-repo orchestrator pattern.


Per-repo, no cross-repo state

telos-md is strictly per-repo. Every artifact lands in <repo>/.telos/:

<repo>/.telos/
├── config.yaml                # project UUID + metadata
├── AUTONOMY.md                # settled decisions earned here (custody trail)
├── north_stars/<nsid>.yaml    # per-NS config + outcome
├── north_stars/<nsid>/ticks.jsonl         # append-only tick log
├── north_stars/<nsid>/applications.jsonl  # tick → candidate attributions
├── trials/<trial_id>/<cid>.md # candidate + metrics (frontmatter)
└── promoted/<date>-<id>.md    # durable promotion records

No user-global registry. No SQLite. Everything is plain-text, git-diffable, portable with the repo.


Relationship to existing tools

  • Trilogy (research.md, governor, docket.md): telos-md does not replace them. It guards execution within their contracts. Counter-actions for several drift patterns explicitly route back to the trilogy — execution-without-decision sends you to research.md + governor + docket.md; heuristic-ratchet tells you to promote the current state as a governor ADR and stop ratcheting.
  • hone (per-tick reflective ceremony, future praxis-md): the discipline every looping agent should run inside each iteration. telos-md measures trajectory across many ticks; hone enforces presence at each individual tick — observe before, propose at most one delta, retain the turn (even on no-op). They are paired primitives, not redundant: skip telos-md and you lose course; skip hone and you lose honesty about what each tick actually changed.
  • rhea, brutal-forge, pal: domain consultants for adversarial challenge, audits, cross-model code review. telos-md is the consultant for temporal coordination: when to pivot, when to stop, when to escape your own geometry. monolithic-loop's counter-action names rhea_challenge and pal_codereview directly.
  • resume-resume: session memory. telos-md's per-repo state is git-portable and composes cleanly with session archives.

Self-improvement

telos-md improves its own pattern library via propose→trial→empirically-validate→promote. Candidates compete on evidence, not advocacy. The promotion gates (applications, score, lift, regression test, cross-model review) exist because specific failure modes were observed or reasoned about. No force-promote path; the gates decide.


Install

uv tool install telos-md
# or: pip install telos-md

Add to your .mcp.json:

{
  "mcpServers": {
    "telos": {
      "type": "stdio",
      "command": "telos"
    }
  }
}

Status

0.3.0. Previously released as lighthouse (up to v0.2.1). Renamed to telos-md to align with the eidosagi.com architecture vocabulary (Telos pulls. Praxis steers.) and to correct the under-described "lighthouse observes, does not set" framing — the tool is in fact the custodian of the project's telos, not a passive observer of drift from a telos declared elsewhere. See .governor/adr/ADR-005 for the rename rationale; GENESIS.md for the original framing.


Documentation

  • TELOS_CUSTODY.md — the mental model: two-axis (custody + drift), no extended metaphor
  • USING_TELOS.md — consumer quickstart, file layout, pattern table, trilogy composition, per-repo orchestrator example
  • SPEC.md — MCP tool contract, pattern library index (note: partially predates the current surface; USING_TELOS.md is authoritative)
  • PHILOSOPHY.md — why telos-md exists at this level of the stack
  • LEARNING.md — how telos-md improves with use
  • GENESIS.md — origin story (historical record; tool was originally named lighthouse)
  • .governor/adr/ — architectural decisions recorded as ADRs (ADR-001: file-only storage; ADR-002: empirical promotion gates; ADR-003: AGI-substrate thesis; ADR-004: session-internal scores; ADR-005: rename from lighthouse)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

telos_md-0.4.1.tar.gz (2.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

telos_md-0.4.1-py3-none-any.whl (49.4 kB view details)

Uploaded Python 3

File details

Details for the file telos_md-0.4.1.tar.gz.

File metadata

  • Download URL: telos_md-0.4.1.tar.gz
  • Upload date:
  • Size: 2.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for telos_md-0.4.1.tar.gz
Algorithm Hash digest
SHA256 f1e85b091f1a4fe4baedb8f57dca0bb70417378a8cd768b6ea12b22ca7075016
MD5 92e093b0de0d926e03f54aff0101e280
BLAKE2b-256 0d2cc3b08a81cac5382a62fe91f01a42bef5fe2fc5a36606559b81fbc8a826b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for telos_md-0.4.1.tar.gz:

Publisher: publish.yml on eidos-agi/telos.md

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file telos_md-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: telos_md-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 49.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for telos_md-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 44f01e8c1501595cb16d2236e25e82ef8c5fdcdf91bd82afe30157dafc1e96fb
MD5 76d8f39696039af72e664bab636b6081
BLAKE2b-256 3bad3eebbde88a3e927c432e521e59150acc7eae40d05fe3e6315606d16b0468

See more details on using hashes here.

Provenance

The following attestation bundles were made for telos_md-0.4.1-py3-none-any.whl:

Publisher: publish.yml on eidos-agi/telos.md

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 files

0.4.0

2 files

0.3.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page