Skip to content

I3663 — An Anthropic API advisor is declared, so a held Anthropic credit grant can pay for review

Declare an advisor in share/advisors.yaml reached over the Anthropic Messages API through the vendor's credential variable, with a model from share/models.yaml (claude-opus-5-5, which this issue adds to the catalogue with its provenance) and an adapter scripts/lib/advisors/anthropic-messages.mjs that speaks the same contract as openai-chat.mjs; reasoning check resolves it, and an absent credential reads not_configured (rule project.advisors-are-optional). No Rust change: the advisor is data and an adapter.

READY wave 0 · p2 · implementation profile · parallel safe

Part of every-model-call-is-paid-from-a-declared-source — How a model call Majordomus starts can be paid is declared by the vendor with evidence, and each call names the source it was declared to draw on.

Ready. Every dependency is done, so majordomus plan start I3663 will be accepted.

Objective

Declare an advisor in share/advisors.yaml reached over the Anthropic Messages API through the vendor's credential variable, with a model from share/models.yaml (claude-opus-5-5, which this issue adds to the catalogue with its provenance) and an adapter scripts/lib/advisors/anthropic-messages.mjs that speaks the same contract as openai-chat.mjs; reasoning check resolves it, and an absent credential reads not_configured (rule project.advisors-are-optional). No Rust change: the advisor is data and an adapter.

Why

share/advisors.yaml reaches OpenAI through its API credential but declares no Anthropic API advisor, so the API credits the owner's Max plan includes pay for nothing Majordomus does. The advisor contract (ADR 0098) already makes absence a status. An Anthropic advisor reviewing work a Claude session wrote shares the author's model family: reasoning policy counts independence only among advisors (reasoning/policy.rs), so the advisor's note says so and nothing here claims it as independent of a Claude author (critique finding anthropic-advisor-is-not-independent-of-a-claude-author).

Current state

Advisors: chatgpt (openai API), gemini and codex (CLI), ollama and lmstudio (local), mesh peers; no Anthropic API advisor.

Desired state

An Anthropic API advisor exists, reasoning check resolves it, and it reads not_configured without its credential.

Scope

  • share/advisors.yaml
  • scripts/lib/advisors
  • share/models.yaml
  • docs/generated

Dependencies

None. This issue is a root of the graph.

Acceptance criteria

  • The adapter passes the advisor contract suite against a recorded fixture answer, with no network
  • With ANTHROPIC_API_KEY unset, reasoning advisors reports the advisor not_configured
  • The adapter never logs, stores or echoes the credential or the prompt body
  • The advisor's note states that it shares a Claude author's model family

Validation

  • node --test scripts/lib/advisors/contract.test.mjs
  • env -u MAJORDOMUS_SHARE majordomus reasoning check

Evidence required

  • anthropic api adapter: request normalisation, credential, usage

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/I3663.yaml. Read it back with majordomus plan show I3663.

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