Skip to content

I2000 — What a piece of work serves is one derivation, with a revision

Add Intents::binding over the preflight: the work named by an issue, an intent, paths or a declared exemption resolves to a standing (bound, maintenance, exempt, refused), the intents and criteria served, and two pins of what was resolved — plan_revision, a hash of each served intent's statement, invariants and criteria, the links that reach it and its critique, and evidence_standing, a hash of the served criteria's evidence states; answer it as the read-only capability intents.binding on the command line, HTTP and MCP.

BLOCKED wave 0 · p1 · implementation profile · runs alone

Part of intent-bound-work — A task is bound to the intent it serves.

Blocked. This issue cannot start until milestone:intent-bound-work is done. The status is derived from that, not declared.

Objective

Add Intents::binding over the preflight: the work named by an issue, an intent, paths or a declared exemption resolves to a standing (bound, maintenance, exempt, refused), the intents and criteria served, and two pins of what was resolved — plan_revision, a hash of each served intent's statement, invariants and criteria, the links that reach it and its critique, and evidence_standing, a hash of the served criteria's evidence states; answer it as the read-only capability intents.binding on the command line, HTTP and MCP.

Why

intent preflight answers what an issue serves and has no caller; nothing takes an intent by id, nothing knows an exemption, several intents reached by paths are all judged and none is called ambiguous, and nothing computes a revision a later reader could compare.

Current state

Intents::preflight takes an issue or paths. No exemption class exists. No revision of an intent, its links or its critique is computed.

Desired state

intents.binding answers the same value on every surface; ambiguity, an unknown or retired intent, an undeclared exemption class and a missing reason are refusals with a cause.

Scope

  • apps/majordomus-cli/src/intent_binding.rs
  • apps/majordomus-cli/src/intent.rs
  • apps/majordomus-cli/src/policy.rs
  • apps/majordomus-cli/src/capability/builtin/intents.rs
  • apps/majordomus-cli/src/commands/intent.rs
  • apps/majordomus-cli/src/cli.rs
  • apps/majordomus-cli/tests/intent_binding.rs
  • .ai/repo/adrs/0111-a-task-names-what-it-serves-and-the-binding-is-derived.md
  • .ai/repo/rules/project/an-intent-outlives-its-sessions.v3.md
  • .ai/repo/project
  • docs

Dependencies

None. This issue is a root of the graph.

What waits on this

Acceptance criteria

  • An issue, an intent id and paths each resolve to the criteria served, a plan_revision that changes when the intent, the links or the critique change and at no other time, and an evidence_standing that changes when a served criterion's evidence state does
  • ADR 0111 records the decision and rule project.an-intent-outlives-its-sessions v3 states that a name a worker declared and a hash compared on read are not intent state
  • Paths reaching more than one intent with no issue named are refused as ambiguous_intent
  • An exemption of a class the policy declares, with a reason, is standing exempt; an undeclared class or an empty reason is refused
  • The command line, HTTP and MCP answer the same binding

Validation

  • cargo test --lib intent_binding
  • cargo test --test intent_binding

Evidence required

  • binding_resolves_issue_intent_and_paths
  • ambiguous_paths_are_refused
  • an_exemption_is_a_declared_class_with_a_reason
  • plan_revision_moves_only_with_the_plan

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Timeline

started
—
verified
—
completed
—

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I2000.yaml. Read it back with majordomus plan show I2000.

Searches the titles and descriptions of every page this site publishes.