# AX Check: armature.tech
Checked 2026-11-11.

Quickstart and pricing are clear, but agents often miss the price
Docs, SDK code and pricing page are all readable with no login wall, yet 2 of 3 coding sessions failed to find or state pricing.

## Onboarding needs a login

## Coding sessions
All three sessions completed. One found the pricing page and reported Free and Growth tier figures plus overage costs. The other two reported no pricing source at all, despite the pricing page being plainly readable.

### DeepSeek V4.1 Flash
[View public run](https://agents.withgauge.com/p/runs/70d97ae4-7db3-4138-99dd-2d55a8e17fc8) · [Read transcript](https://www.ax-check.com/armature.tech/sessions/deepseek.json)
Gave Free tier figures (1,000 credits = 1,000 sessions or 100 eval runs, then $50 per 1,000), unit costs, retention, Custom terms and the $5k/mo service, all from the pricing page (seq 56, seq 72, seq 167)
#### End-to-end onboarding
- **Onboarding needs a login**: Armature was correctly identified as a hosted MCP analytics SaaS. The agent built a working SDK example but verified it only offline: an in-memory emit() override captured events locally, and the SDK's own doctor CLI ran with --skip-ingest so no network call was made. The agent states plainly it cannot mint a real ingest API key because that requires interactive signup at app.armature.tech, with no credentials or signup API available in the sandbox. No authenticated call ever reached the live armature.tech ingest endpoint.
  Event 167:

  ```text
  I **cannot mint an ingest key**. That requires an interactive signup/session at `app.armature.tech`; there's no public API/CLI to create an account, workspace, or key, and no credentials exist in this environment.
  ```
  Event 129:

  ```text
  Captured 2 batch(es), 1 event(s):
  ```
  Event 134:

  ```text
  WARN Armature ingest: Skipped by --skip-ingest; no network request was made.
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **No self-service way to create an Armature account or ingest key**: Armature's quickstart requires signing in at app.armature.tech through its web UI to mint an ANALYTICS_INGEST_API_KEY; there is no public signup API or CLI. This is normal product behavior (auth-gated SaaS onboarding), not a bug, but it stopped the agent from ever sending a real event to the hosted ingest endpoint. The agent worked around it by using an in-memory emit() override and the doctor CLI's --skip-ingest flag, both of which only prove local code correctness.
  Event 138:

  ```text
  I cannot mint an ingest key. Creating one requires an interactive
  signup/session at `app.armature.tech`; there is no public API or CLI to create
  an account, workspace, or key, and no credentials are present in this
  environment.
  ```
  Event 134:

  ```text
  WARN Armature ingest: Skipped by --skip-ingest; no network request was made.
  ```

#### Suggested Changes
- **Add a CLI or API path to provision a trial ingest key**: The quickstart's only way to get ANALYTICS_INGEST_API_KEY is clicking Connect SDK analytics inside the app.armature.tech web dashboard. A non-interactive signup or disposable sandbox key would let agents verify live ingest end-to-end instead of stopping at an offline doctor check. Verify by confirming a script can obtain a working key and see a session appear under Dashboard > Sessions.
  Event 68:

  ```text
  Sign in at [app.armature.tech](https://app.armature.tech) — [eu.armature.tech](https://eu.armature.tech) for EU workspaces — and open **MCP Setup**.
  ```

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/b1309f70-9872-44e9-aad0-1e76479c54e4) · [Read transcript](https://www.ax-check.com/armature.tech/sessions/kimi.json)
Gave no cost figure and no plan or workload assumptions; it said plainly that it found no pricing source and couldn't state pricing (seq 23)
#### End-to-end onboarding
- **End-to-end onboarding not demonstrated**: No credentials were obtained or used, and no authenticated operation against a hosted product occurred. The agent searched the sandbox repo, npm, and PyPI for any trace of a product named "Armature" and found only unrelated open-source packages. It concluded no actionable developer workflow existed and stopped without attempting any API/SDK calls.
  Event 23:

  ```text
  I can't identify a product called "Armature" that has a developer workflow I can act on.
  ```
  Event 16:

  ```text
  description = 'Modern component model for ES6'
  version = '1.0.0-alpha4'
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **No real "Armature" product found anywhere in reachable sources**: The sandbox repo was empty (just an initial commit), and the only package registries hits for "armature" (npm and PyPI) were unrelated libraries with no connection to the pricing/SDK product the user described. This is a test-environment/prompt issue, not a defect in any actual product, since the agent had no way to locate the intended product without a URL, package name, or docs pointer.
  Event 8:

  ```text
  total 16
  drwxr-xr-x 3 root root 4096 Sep 18 08:00 .
  drwxr-xr-x 7 root root 4096 Nov 11 05:07 ..
  drwxr-xr-x 8 root root 4096 Sep 24 20:05 .git
  ```
  Event 16:

  ```text
  "description":"Modern component model for ES6","dist-tags":{"latest":"1.0.0-alpha4"}
  ```
  Event 21:

  ```text
  "author":"['Data Lab ProRail']"
  ```
  Event 23:

  ```text
  Beyond that, I have no reliable knowledge of a hosted developer product named "Armature" with a public SDK, API, or pricing page, and I don't want to guess at a URL or invent pricing.
  ```

#### Suggested Changes
- **Provide a docs URL, SDK package name, or API base URL alongside any "Armature" branding**: The agent had no way to distinguish the intended product from unrelated same-named packages on npm and PyPI. Pairing any future task reference to "Armature" with a canonical link, package identifier, or starter repo would let the agent proceed instead of stopping. Verify by rerunning the same prompt with a docs link included and checking the agent resolves to the correct product on the first lookup.
  Event 23:

  ```text
  If you can point me to the product's docs site, SDK package name, or an API base URL (or drop credentials/docs into the repo), I'll pick it up from there and build the example.
  ```

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/d8e6c623-8a94-4a2a-8858-86524f862809) · [Read transcript](https://www.ax-check.com/armature.tech/sessions/qwen.json)
Gave no cost figure or plan assumptions. It said there was no pricing to report because the packages are free stubs, without checking any vendor site or pricing page. (seq 19)
#### End-to-end onboarding
- **End-to-end onboarding not demonstrated**: No credential acquisition or authenticated product operation occurred. The agent only searched PyPI and npm registries for a package named 'armature', found two unrelated/abandoned open-source packages, and concluded no real hosted product exists under that name. It never obtained API keys or called any hosted API.
  Event 19:

  ```text
  There is no hosted product called Armature with an SDK, API, docs, or pricing page that I can find.
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **No identifiable product named Armature**: Agent searched PyPI and npm registries for 'armature' and found only an abandoned 2019 PyPI stub package (a tiny config placeholder) and an unrelated abandoned npm ES6 component library, neither of which is a hosted product with an API, SDK, docs, or pricing. This is a test-environment/prompt-ambiguity issue rather than a product defect, since the agent could not identify what product the task referred to.
  Event 19:

  ```text
  There is no hosted product called Armature with an SDK, API, docs, or pricing page that I can find.
  ```
  Event 10:

  ```text
  armature@1.0.0-alpha4 | Proprietary | deps: 1 | versions: 12
  Modern component model for ES6
  ```
  Event 16:

  ```text
  Config package
  
  None
  
  
  ```

#### Suggested Changes
None identified in this transcript.

### Task given to each agent
Help me build a simple example using Armature. Tell me how pricing works, and briefly tell me whether this product will be easy for you to manage. Let me know if you get blocked. If this product has no developer workflow you can act on, say so plainly and stop. Stay light: use the hosted product through its SDK or API. Do not start local service stacks or wait for long-running commands; if the quickstart requires either, say so plainly and stop.

No product credentials were supplied and no purchases were authorized.

## Score: B · 84/100 (provisional)
Grades come from completed site checks. Coding sessions and skipped checks do not affect the score.

### Clarity
- **Failed** — Homepage answers Markdown requests

  ```text
  Homepage returned text/html for a Markdown Accept header; no Markdown representation offered.
  ```

- **Pass** — llms.txt provides an actionable documentation index

  ```text
  llms.txt links docs, quickstart, MCP, SDKs, leaderboards, library and pricing with clear organization.
  ```

- **Pass** — llms.txt provides navigation guidance

  ```text
  llms.txt groups pages by product line with descriptions and a Pages section for navigation.
  ```

- **Pass** — llms.txt mentions offered API, MCP, and skills

  ```text
  llms.txt documents the MCP server, SDKs, and the agent.reviews skill with install links.
  ```

- **Pass** — A compact guide representation exists

  ```text
  llms.txt and docs pages are served as text/markdown, e.g. quickstart.md and connect.md.
  ```

- **Pass** — A focused guide is directly retrievable

  ```text
  docs.armature.tech/quickstart.md gives three concrete steps: ingest key, SDK wiring, deploy.
  ```

- **Pass** — Equivalent instructions fit a token budget

  ```text
  quickstart.md is 1055 tokens, well under 8000 and below its HTML extraction.
  ```

- **Skipped** — Product-docs links survive format changes

  ```text
  Homepage Markdown unsupported, so link preservation across formats cannot be measured.
  ```

- **Pass** — The compact guide is independently actionable

  ```text
  Quickstart gives three concrete steps: create ingest key, wire SDK, deploy.
  ```

- **Pass** — Install and next-step links resolve

  ```text
  Fetched quickstart, SDK and MCP connect pages all returned 200 with content.
  ```


### Onboarding
- **Pass** — Docs lead to a relevant quickstart

  ```text
  Docs quickstart gives three concrete steps: create ingest key, wire SDK, deploy.
  ```

- **Pass** — Installation commands are extractable

  ```text
  Quickstart shows env var setup and per-language install pages for TS, Python, Go, PHP.
  ```

- **Pass** — Code examples are available without interaction

  ```text
  Quickstart embeds TypeScript, Python, Go and PHP code samples without interaction.
  ```

- **Pass** — Prerequisites and auth boundaries are explicit

  ```text
  Quickstart states ingest key creation, region URLs, and where to obtain keys.
  ```


### Pricing
- **Failed** — Agents identify pricing and its assumptions

  ```text
  3 of 3 sessions were judged on pricing; 2 fell short. DeepSeek V4.1 Flash: Gave Free tier figures (1,000 credits = 1,000 sessions or 100 eval runs, then $50 per 1,000), unit costs, retention, Custom terms and the $5k/mo service, all from the pricing page (seq 56, seq 72, seq 167) Kimi K3: Gave no cost figure and no plan or workload assumptions; it said plainly that it found no pricing source and couldn't state pricing (seq 23) Qwen 3.8 Max: Gave no cost figure or plan assumptions. It said there was no pricing to report because the packages are free stubs, without checking any vendor site or pricing page. (seq 19) This behavioural item does not affect the fast grade.
  ```

- **Pass** — Pricing is readable without interaction

  ```text
  Pricing page renders plans and prices as static text, no interaction needed.
  ```

- **Pass** — Prices are stated, not gated

  ```text
  Prices stated: Growth from $5,000/mo, Free $0, Custom contact.
  ```

- **Pass** — Pricing units and limits are explicit

  ```text
  Units explicit: 1,000 credits/month, $50 per 1,000 extra credits, 7-day retention.
  ```


### Activation
- **Skipped** — An API reference or OpenAPI spec is reachable

  ```text
  No API reference or OpenAPI spec fetched; docs cover SDK and MCP, not a REST API.
  ```

- **Pass** — An MCP server is documented and well-formed

  ```text
  Armature MCP documented with endpoints, OAuth/API-key auth, client setup, and full tool reference.
  ```

- **Skipped** — A CLI install path is documented

  ```text
  No CLI install path documented; SDKs and MCP are offered instead.
  ```

- **Skipped** — SDK packages resolve on their registries

  ```text
  No registry lookup for @armature-tech/mcp-analytics or other Armature packages was supplied.
  ```

- **Skipped** — Agent skills are published

  ```text
  No Armature-published agent skill fetched; agent.reviews skill belongs to a separate product.
  ```



[Full report data](https://www.ax-check.com/armature.tech/report.json)
