Skip to content

I3355 — majordomus economics proof serves the scorecard on the command line, HTTP and MCP from one capability declaration

Declare capability economics.proof in apps/majordomus-cli/src/capability/builtin/economics.rs (CLI economics proof, HTTP GET /api/v1/economics/proof, MCP majordomus_economics_proof) answering I3354's scorecard, add the CLI text rendering, name it in the projection test at builtin/economics.rs:235-258, and run majordomus generate for every projection it writes.

BLOCKED wave 3 · p1 · implementation profile · parallel safe

Part of the-proof-scorecard-is-published — One derived scorecard publishes every proof test's computed status, losses included, on every surface, and no value claim stands without a passed test.

Blocked. This issue cannot start until I3354, I3376 are done. The status is derived from that, not declared.

Objective

Declare capability economics.proof in apps/majordomus-cli/src/capability/builtin/economics.rs (CLI economics proof, HTTP GET /api/v1/economics/proof, MCP majordomus_economics_proof) answering I3354's scorecard, add the CLI text rendering, name it in the projection test at builtin/economics.rs:235-258, and run majordomus generate for every projection it writes.

Why

The owner's report of 2026-10-19 asks for the verdicts to be public. Every surface reads one capability, which is how this repository adds an operation (capability! declarations, ADR 0004). It depends on I3376 because both add declarations and projection-test entries to the same region of builtin/economics.rs.

Current state

apps/majordomus-cli/src/capability/builtin/economics.rs:141-202 declares economics.summary, explain, runs and check; the projection test is at :235-258.

Desired state

majordomus economics proof prints six rows and the totals; --format json, /api/v1/economics/proof and majordomus_economics_proof return the same data.

Scope

  • apps/majordomus-cli/src/capability/builtin/economics.rs
  • apps/majordomus-cli/src/commands/economics.rs
  • apps/majordomus-cli/tests/economics.rs
  • .claude/skills/mj-economics/SKILL.md
  • .ai/repo/mcp-tool-run-baseline.txt
  • docs/generated/capabilities.md
  • docs/generated/cli.json
  • docs/generated/cli.md
  • docs/generated/cli.yaml
  • docs/generated/openapi.json
  • docs/generated/openapi.yaml
  • docs/generated/registry.json
  • docs/generated/registry.yaml
  • docs/generated/graph.json
  • docs/generated/modules/economics.md
  • site/content/docs/cli/economics
  • site/content/docs/cli/economics/_index.md
  • site/content/registry/capabilities
  • site/data/generated/catalogue.json
  • site/data/generated/cli.json
  • site/data/generated/executable.json
  • site/data/generated/openapi.json
  • site/data/registry/registry.json
  • site/data/registry/product.json
  • handbook/shape/explorer-data.json

Out of scope

  • Rendering on /ui or the site (I3356, I3357)
  • Refusing claims (I3358)

Dependencies

What waits on this

Acceptance criteria

  • The capability is served on CLI, HTTP and MCP, and the projection test names it
  • CLI JSON, HTTP and MCP return the same reading for the same fixture
  • majordomus generate --check is clean

Validation

  • cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib capability::builtin::economics
  • cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test economics
  • majordomus economics proof
  • majordomus generate --check

Evidence required

  • test_proof_capability_projected

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

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