# ARCHIMATE

> Your enterprise architecture, interviewed out of you. Copy a layer's interview prompt into your own AI chat, answer its questions, paste the result back — the model opens out as tables, zoomable mermaid diagrams, derived viewpoints with narratives, and a structural health check across all seven ArchiMate 3.2 layers. A connected AI can also write straight into the model over MCP. This document tells an agent how to call it.

## Installation

Nothing to install. This app runs on an AIMEAT node and is reachable two ways.

Over MCP — attach any MCP-capable client to `https://aimeat.io/v1/mcp` (OAuth 2.1), then:

```
    owner:  happydude500001
    app_id: archimate.html        (not "archimate")

aimeat_app_tools_get   { owner: "happydude500001", app_id: "archimate.html" }
```

Over HTTP — get an identity through the RFC 8628 device flow described at `https://aimeat.io/auth.md`, then
call the endpoints in `https://aimeat.io/v1/spec`.

## Configuration

- **Scopes.** The owner approves a scope set when they approve your agent. A call outside it
  answers 403 naming the scope, never an empty result.
- **Payment.** Priced tools answer 402 with the terms attached until a checkout for them completes;
  completing the checkout IS the invocation.
- **Schemas.** Every tool carries a full input and output schema in the manifest, so nothing has to
  be inferred from the app source: `https://aimeat.io/v1/apps/happydude500001/archimate.html/webmcp`

## Usage

```
aimeat_app_tool_invoke {
  owner: "happydude500001",
  app:   "archimate.html",
  tool:  "search",
  input: { ... }
}
```

This app publishes no priced tools.

## What this app does

# ARCHIMATE

An ArchiMate 3.2 modeling app. The human sees their enterprise architecture as tables and mermaid diagrams at https://archimate.apps.aimeat.io/ — one page per model, all seven layers opened out. You (the AI) interview the person in chat and write the model; the app is the surface where they read what you heard.

## Data

One model = one memory record under the owner:

- Key: `archimate.model.<slug>` (slug: lowercase, digits, hyphens)
- Find models: list memory keys with prefix `archimate.model.` and owner scope
- The agent face you are reading is `apps.archimate.html.agentface`

## Record shape

```json
{ "v": 1, "n": "Model name", "d": "description", "au": "who wrote last", "u": "ISO timestamp",
  "st": { "mot": "empty|draft|done", "str": "…", "bus": "…", "app": "…", "tec": "…", "phy": "…", "imp": "…" },
  "el": [ { "id": "bus_order_handling", "t": "businessProcess", "n": "Order handling", "d": "optional doc" } ],
  "re": [ { "f": "app_erp", "t": "bus_order_handling", "r": "serving", "l": "optional label" } ] }
```

On an element `t` is its TYPE; on a relation `t` is the TO-id (`f` is from). An element's layer is derived from its type.

## Vocabulary

Element ids: `^[a-z][a-z0-9_]{1,40}$`, prefixed with the layer code.

| Layer | Code | Element types |
|---|---|---|
| Motivation | mot | stakeholder, driver, assessment, goal, outcome, principle, requirement, constraint, value |
| Strategy | str | resource, capability, courseOfAction, valueStream |
| Business | bus | businessActor, businessRole, businessProcess, businessFunction, businessService, businessInterface, businessEvent, businessObject, contract, product |
| Application | app | applicationComponent, applicationCollaboration, applicationService, applicationInterface, applicationFunction, applicationEvent, dataObject |
| Technology | tec | node, device, systemSoftware, technologyService, technologyInterface, technologyFunction, artifact, communicationNetwork, path |
| Physical | phy | equipment, facility, distributionNetwork, material |
| Implementation & Migration | imp | workPackage, deliverable, implementationEvent, plateau, gap |

Relation types: composition, aggregation, assignment, realization, serving, access, influence, triggering, flow, specialization, association.

## Write protocol

1. ALWAYS read the model key first (owner scope), so you merge instead of clobbering.
2. Merge by upsert: update an element by its exact id, append new ones. Never drop an element the person did not explicitly agree to remove.
3. Write the WHOLE record back with `aimeat_memory_write` and `owner_scope: true`. A plain agent-namespace write is shadowed by the owner's copy and never shows up in the app. If the write is refused for lack of the write-as-owner scope, hand the person the JSON to paste into the app's Interview panel instead.
4. Update `st.<layer>` to `draft` when you fill a layer (only the person marks a layer `done`), and stamp `u` (ISO time) and `au` (your identity).

## Interview

The bound skill `archimate-interview` carries the layer-by-layer interview protocol: themes per layer, recommended order (mot → str → bus → app → tec → phy → imp), and the merge rules in full.

## Afterwards

Tell the person: "Open https://archimate.apps.aimeat.io/ to see the tables and diagrams — press Reload if the model is already open."

> **AI provenance** — AI-generated (anthropic/claude-fable-5), no human editorial review, 2026-08-18T15:09:07.353Z · record: https://aimeat.io/v1/provenance/824964d7-5a86-49de-954c-b7a629832495


## Agent affordances

- Act — WebMCP tool listing for this app: https://aimeat.io/v1/apps/happydude500001/archimate.html/webmcp
- Learn — skills bound to this app: https://aimeat.io/v1/apps/happydude500001/archimate.html/skills
- App catalog on this node (this app: happydude500001/archimate.html): https://aimeat.io/app-catalog.html
- Register an agent on this node (RFC 8628 device flow): https://aimeat.io/auth.md


## Where the rest is

- [llms.txt](https://archimate.apps.aimeat.io/llms.txt) · [Site map](https://archimate.apps.aimeat.io/sitemap.md)
- [Node manual](https://aimeat.io/llms-full.txt) · [Node glossary](https://aimeat.io/v1/glossary.md) · [OpenAPI](https://aimeat.io/v1/spec)
