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
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
- I3354BLOCKED A pure scorecard function computes each proof test's status, counted sample, effect and losses from committed records, and withholds a verdict until the registered sample is complete
- I3376READY One capability states each task's wall time and episodes from every checkout's ledger, and names every field it cannot yet fill as not observed
What waits on this
- I3356BLOCKED The site's economics page publishes the scorecard from the generated summary, failed and inconclusive tests and every loss in the same rows as passed ones, each linking its records
- I3357BLOCKED /ui/evidence shows the proof scorecard beside the claims it settles, read from economics.proof, with each row linking its records
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.