Skip to content

feat(core): authoritative agents.manifest.json + optional contract description#112

Merged
telivity-otaip merged 1 commit into
mainfrom
pr3-agent-manifest
May 30, 2026
Merged

feat(core): authoritative agents.manifest.json + optional contract description#112
telivity-otaip merged 1 commit into
mainfrom
pr3-agent-manifest

Conversation

@telivity-otaip
Copy link
Copy Markdown
Collaborator

Why

Field feedback flagged two related things: overlapping/ambiguous notions of "which agents exist", and wanting one machine-readable schema per agent. OTAIP's honest version: make the two-tier model first-class and queryable rather than mechanically forcing loose, domain-inventing contracts onto ~60 stub agents.

What

  • New scripts/generate-manifest.ts (pnpm gen:manifest) → committed agents.manifest.json: all 75 agents with id/name/stage/version/contract_status/has_contract/source_path, plus action_type + input/output JSON Schema (same zodToJsonSchema as the tool catalog) for the 18 contracted agents. --check mode fails if the committed file is stale — wired into CI after build.
  • Added optional description to AgentContract; the catalog/describe_agent generator uses it, falling back to the prior OTAIP agent <id> (<actionType>) string. Authors fill descriptions as agents graduate — no bulk schema generation that would invent domain behavior (per CLAUDE.md).

Deliberately NOT done

  • Did not repoint count-agents.ts at the manifest: both already derive from the same discoverAgents() root, so they can't drift on the roster, and repointing would cost count-agents its build-free property. The freshness check covers the manifest.
  • docs/agents.md auto-generation is left as a follow-up.

🤖 Generated with Claude Code

…t description

OTAIP had four overlapping notions of "which agents exist" (discovery,
count-agents, docs/agents.md, the contract registry). This adds one
generated source of truth.

- scripts/generate-manifest.ts (`pnpm gen:manifest`) writes committed
  agents.manifest.json: every discovered agent with has_contract
  first-class, plus action_type + input/output JSON Schema (via the same
  zodToJsonSchema the tool catalog uses) for the 18 contracted agents.
  `--check` mode fails if the committed file is stale; wired into CI.
- Add optional `description` to AgentContract; the catalog/describe_agent
  generator uses it (falling back to the previous string). Authors fill it
  as agents graduate — no bulk, domain-inventing schema generation.

This is the OTAIP-honest answer to "one schema for every agent": the
two-tier model is made queryable rather than papered over.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@telivity-otaip telivity-otaip merged commit e4ffaa8 into main May 30, 2026
1 check passed
@telivity-otaip telivity-otaip deleted the pr3-agent-manifest branch May 30, 2026 09:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant