Skip to content

feat: rewrite org profile to match live Kyma API and add a drift guard - #1

Merged
sonpiaz merged 1 commit into
mainfrom
feat/org-profile-refresh
Sep 13, 2026
Merged

sonpiaz merged 1 commit into
mainfrom
feat/org-profile-refresh

Conversation

@sonpiaz

@sonpiaz sonpiaz commented Sep 13, 2026

Copy link
Copy Markdown
Member

What changed

  • profile/README.md rewritten to match the live site (56 lines):
    • Hero is one sentence: "Kyma API gives your app one key for 100+ models across chat, embeddings, image, and audio, with published prices and measured uptime for every model."
    • Quickstart is the homepage's exact three-line OpenAI SDK snippet (base_url="https://kymaapi.com/v1", qwen-3.6-plus), plus the Anthropic SDK base URL (https://kymaapi.com) and the $0.50 signup credit.
    • "What you get", MCP (https://mcp.kymaapi.com/mcp) and Agent Skills (npx skills add kyma-api/kyma-skills).
    • Repositories: the three public, non-fork repos pushed in the last ten days: kyma-mcp-plugin, kyma-skills, openclaw-provider.
  • scripts/check-org-profile.sh (new, read-only, bash + curl + jq) and .github/workflows/check-org-profile.yml (new): a drift guard that runs every Monday at 09:00 UTC, on workflow_dispatch, and on pull requests touching profile/**, the script, or the workflow. That last trigger means this PR runs it.

Why: what was stale (measured 2026-09-13 UTC)

Old README said Live today
"One API, one coding agent, one local workspace" Homepage <title> is "Kyma API: AI models for your app, one account". Fixed-string search of the homepage for kyma ter, kyma-ter, kyma agent, @kyma-api/agent: 0 hits each.
Link to https://kymaapi.com/ter curl -sL -o /dev/null -w '%{http_code}' https://kymaapi.com/ter → 404
npm install -g @kyma-api/agent as the only install step npm view @kyma-api/agent version time.modified → 0.1.20, 2026-04-26T04:54:29Z
Repositories: kyma-api, kyma-ter, kyma-ter-releases kyma-api is private. kyma-ter and kyma-ter-releases were last pushed 2026-04-21. The public repos that are active (kyma-mcp-plugin 2026-09-06, kyma-skills 2026-09-05, openclaw-provider 2026-09-05) were missing.

Every fact in the new README was checked live before writing:

  • curl -s https://api.kymaapi.com/v1/models | jq '.data|length' → 102. By type: language 70, embedding 11, image 10, speech 5, transcription 4, reranking 1, audio-understanding 1, video 0.
  • The homepage snippet contains base_url="https://kymaapi.com/v1" and model="qwen-3.6-plus". The docs Anthropic guide uses base_url="https://kymaapi.com".
  • https://kymaapi.com/llms.txt still says "$0.50 free credit on signup, no card required", spent on the free tier, and lists automatic failover.
  • https://mcp.kymaapi.com/mcp answers 401 with www-authenticate: Bearer realm="mcp", resource_metadata=..., and /.well-known/oauth-protected-resource answers 200.
  • npx skills add kyma-api/kyma-skills was run in a throwaway directory (with --skill '*' --agent claude-code --copy -y so it would not prompt). It found 4 skills and installed 4 SKILL.md files, exit 0.
  • Every link in the README returns 200 after redirects. The contact address hello@kymaapi.com is the general address listed on /terms.

The guard, and how it was proven red then green

Rules:

  1. Every link a reader clicks or loads (href, src, markdown link) must end below 400 after redirects.
  2. Any other https URL is an API endpoint shown in code. https://kymaapi.com/v1 answers 404 and the MCP URL answers 401 to a bare GET by design, so these only have to answer at all: no connection or HTTP 5xx fails.
  3. N+ models fails when the live /v1/models count is below N, and a hard N models fails when the count differs.

It prints each link, endpoint and number it failed on, and it never edits files.

Local runs:

  • Green on this branch's README: ok for 10 links, 2 endpoints and "100+ models" (live count 102) → org profile check: passed, exit 0.
  • Red, on a temporary copy with one link changed to https://kymaapi.com/pricing-w37-527-broken-link: FAIL link https://kymaapi.com/pricing-w37-527-broken-link -> HTTP 404 → exit 1.
  • Red, on a temporary copy saying 101 models: FAIL README says "101 models" but the live count is 102 → exit 1.

Note: GitHub disables scheduled workflows in a public repository after 60 days without repository activity. If the Monday run stops, re-enable it from the Actions tab.

Out of scope for this PR: the org description still says "120+ models", and repositories are pinned through the GitHub UI.

Claude-Session: https://claude.ai/code/session_01A346zJ9Wy6iHMqVxkgnjNv

🤖 Generated with Claude Code

The profile still described a three-product lineup, linked a /ter page that
now returns 404, and told readers to install a CLI package whose last release
was 2026-04-26.

- profile/README.md: one-sentence hero, the homepage's three-line quickstart,
  the Anthropic SDK base URL, the $0.50 signup credit, MCP and Agent Skills,
  and the three public repos pushed in the last ten days.
- scripts/check-org-profile.sh: read-only check that fails when a link ends
  at 400 or above, an endpoint shown in code stops answering, or a model-count
  claim no longer matches /v1/models.
- .github/workflows/check-org-profile.yml: runs the check every Monday at
  09:00 UTC, on demand, and on pull requests that touch these files.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A346zJ9Wy6iHMqVxkgnjNv
@sonpiaz
sonpiaz merged commit ddba620 into main Sep 13, 2026
1 check 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