Skip to content

docs(openapi): widen API title/description to full bundle + AI-agent/MCP framing (discoverability)#244

Merged
mastermanas805 merged 1 commit into
masterfrom
docs/openapi-widen-framing
Jun 4, 2026
Merged

docs(openapi): widen API title/description to full bundle + AI-agent/MCP framing (discoverability)#244
mastermanas805 merged 1 commit into
masterfrom
docs/openapi-widen-framing

Conversation

@mastermanas805
Copy link
Copy Markdown
Member

Problem

internal/handlers/openapi.go is the first thing an AI coding agent fetches (GET /openapi.json) to decide what the API does. The top-level info block undersold the product:

  • Title was just "InstaNode API".
  • Description said "databases, caches, and queues" — omitting pgvector/vector, object storage, webhooks, and the headline deployment wedge, plus any AI-agent / MCP / free-tier / single-HTTP-call framing.

This indexed instanode for a subset of the bundle. Discoverability audit flagged it.

Fix (framing-only — no endpoint/schema contract change)

Before:

  • title: InstaNode API
  • description (lead): Zero-friction developer infrastructure. Provision real databases, caches, and queues with a single HTTP call — no account, no Docker, no setup.

After:

  • title: instanode.dev — zero-friction dev infrastructure for AI agents
  • description (lead): widened to lead with the keywords agents match — provision real Postgres + pgvector + Redis + MongoDB + NATS JetStream queues + S3-compatible object storage + webhook receivers AND deploy the app on top, each via a single HTTP call, no account/Docker/setup; free anonymous tier (24h TTL); also available as an MCP server + SDKs + CLI for agent tool-use. Cross-checked against the live router surface (all 9 */new paths present) and CLAUDE.md "Live API surface".

Also added a top-level tags[] block (the spec previously had none) describing each service family: database / vector / cache / nosql / queue / storage / webhook / deploy / auth.

No paths, parameters, or schemas were added, removed, or renamed. The ## Idempotency / Rate limit / Payload size / Security headers description sections are untouched.

Tests / gates

  • make openapi-snapshot regenerated openapi.snapshot.json (the description is content, not whitespace, so the canonical snapshot changed). A snapshot update WAS required.
  • make openapi-snapshot-check → passes (snapshot matches OpenAPISpecProduction()).
  • go test ./internal/handlers/ -run OpenAPI -short → green, incl. TestOpenAPISpecParses + TestServeOpenAPI_* (proves the edited spec still parses as valid JSON and serves at /openapi.json).
  • go test ./cmd/openapi-snapshot/ → green.
  • go vet clean; gofmt (real $(go env GOROOT)/bin/gofmt) on the changed file only.

Rule 22 (contract↔docs sync) follow-up

The widened framing should be echoed by content/llms.txt (source of truth, synced into instanode-web/public/llms.txt at build) and the marketing site's hook. Those live in separate repos (content + instanode-web) and are intentionally NOT touched here — file as a follow-up PR.

🤖 Generated with Claude Code

…MCP framing

The OpenAPI info block — the first thing an AI coding agent fetches to
decide what the API does — only mentioned "databases, caches, and queues"
and a generic "InstaNode API" title. It omitted pgvector/vector, object
storage, webhooks, and the headline deployment wedge, plus any AI-agent /
MCP / free-tier / single-HTTP-call framing.

Framing-only change (no path/parameter/schema contract edits):
- info.title → "instanode.dev — zero-friction dev infrastructure for AI agents"
- info.description widened to lead with the keywords agents match: Postgres,
  pgvector/vector, Redis, MongoDB, NATS queues, S3 storage, webhooks, AND app
  deployment — each a single HTTP call, no account/Docker/setup; free anon
  tier; also MCP server + SDKs + CLI. Accurate to the live router surface.
- Added a top-level tags[] block describing each service family
  (database/vector/cache/nosql/queue/storage/webhook/deploy/auth).
- Regenerated openapi.snapshot.json (description is content, so the
  canonical snapshot changed; drift check passes).

No paths, parameters, or schemas added/removed/renamed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mastermanas805 mastermanas805 enabled auto-merge (squash) June 4, 2026 16:06
@mastermanas805 mastermanas805 merged commit 8039d1d into master Jun 4, 2026
19 checks passed
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