---
ai_provenance:
  {
    "spec": "aimeat.provenance/v1",
    "level": "ai-generated",
    "notes": "A photograph is drawn once with the things read from it listed beside it, instead of the same picture repeating on every row. Every item now gets a used value and a condition.",
    "method": "fully-generated",
    "generator": {
      "model": "claude-opus-5",
      "nodeId": "aimeat-finland-001-genesis",
      "pipeline": "app.publish",
      "provider": "anthropic",
      "principal": "claude-mcp-work#happydude500001@aimeat-finland-001-genesis"
    },
    "disclosure": {
      "long": {
        "en": "A model was involved in making this. It is labelled here even where the law does not require it.",
        "es": "Un modelo intervino en esto. Aquí se declara incluso donde la ley no lo exige.",
        "fi": "Tämän tekemisessä on ollut mukana tekoälymalli. Se merkitään täällä silloinkin, kun laki ei sitä vaadi."
      },
      "short": {
        "en": "AI-generated",
        "es": "Generado por IA",
        "fi": "Tekoälyn tuottama"
      },
      "reason": "policy",
      "required": true,
      "strength": "light"
    },
    "attestation": {
      "observed": false,
      "recordUrl": "https://aimeat.io/v1/provenance/860899cb-9622-4eb8-b7a3-2f93fee2eed9",
      "stampedBy": "principal",
      "contentHash": "sha256:45ac590f7ea12aeb845ecb84b9d90aa26b3200871f2b4b5e48dfa8721ea00b0a"
    },
    "generatedAt": "2026-08-28T21:42:27.923Z",
    "humanInvolvement": "editorial-control"
  }
ai_provenance_url: https://aimeat.io/v1/provenance/860899cb-9622-4eb8-b7a3-2f93fee2eed9
---

# KOTILO

## What this is

A home contents inventory built from photographs. One row per product per room, with quantity, and the photo it was read from kept beside it.

## Data

Private records under the owner: kotilo.rooms (the rooms and the description each is recognised by) and kotilo.items.<roomId> (that room's items as an array). Photos live in storage under kotilo/<roomId>/. Nothing about the contents is published here.

## Adding an item

Read the photo, then check the identifiers and the matchKey against the existing rows BEFORE writing. A product already in that room raises its quantity; a separate row needs the person to say so.

## Writing as the owner

Write with owner_scope: true, or the row lands in the agent namespace and the app never shows it.


> **AI provenance** — AI-generated (claude-opus-5), human editorial review, 2026-08-28T21:42:27.923Z · record: https://aimeat.io/v1/provenance/860899cb-9622-4eb8-b7a3-2f93fee2eed9


## Agent affordances

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