System Atlas

Map your company with your agent

From an empty workspace to a mapped company, step by step.

Your coding agent already sits where the company is described: repos, docs, tool configs, SOPs. This guide is what the mapping prompt asks it to do, so you know what to expect and can steer it.

Structure only
Teams and roles, tools, processes, datasets, rules and hand-offs. Never secrets, personal data about named people, or customer and financial records.
  1. Connect the agent

    Add the MCP server with an owner or member key: Setup per agent.

  2. Create or find your workspace

    create_my_workspace with your company name, website, a short description and your best guess at industry and business model. It returns your existing private workspace if you have one. Keep the slug.

    {
      "name": "Acme Builders",
      "website": "acmebuilders.example",
      "description": "A general contractor building mid-size commercial projects.",
      "industry": "construction",
      "businessModel": "project"
    }
  3. Read the mapping guide

    get_mapping_guide returns the parts of the business, the primitives in each with their keys and parameters, the flow types, the limits and the rules for describing what the agent finds. The agent uses those keys and words.

  4. Inventory the company

    One component per real thing. For each, the agent notes:

    • a label in your own words and a one or two sentence description;
    • the layer (people, process, software, data, decisions) and the primitive key when it is sure;
    • a parent when it sits inside something else, and a stable clientId such as a repo path or tool slug;
    • values for parameters the guide lists, and a source naming the doc it read.
  5. Upload in batches

    upload_components takes up to 200 items per call, parents before children. Leave primitive out when unsure: each result says where the item went (placedBy: given, existing, matched, model, parent or custom).

    {
      "workspace": "acme-builders",
      "items": [
        {
          "clientId": "tool/gusto",
          "label": "Payroll in Gusto",
          "description": "Runs payroll twice a month for 42 people.",
          "layer": "software",
          "values": [
            {
              "parameter": "frequency",
              "value": "Monthly"
            }
          ],
          "source": {
            "kind": "client_document",
            "title": "finance/README.md"
          }
        }
      ]
    }
    Response
    {
      "company": {
        "slug": "client",
        "name": "Acme Builders"
      },
      "placed": {
        "given": 0,
        "existing": 0,
        "matched": 1,
        "model": 0,
        "parent": 0,
        "custom": 0,
        "failed": 0
      },
      "results": [
        {
          "clientId": "tool/gusto",
          "label": "Payroll in Gusto",
          "primitive": "payroll",
          "placedBy": "matched",
          "confidence": 0.92,
          "created": true,
          "values": 1
        }
      ],
      "summary": {
        "components": 85,
        "custom": 6,
        "coverage": {
          "covered": 31,
          "baseline": 50,
          "percent": 62
        },
        "topGaps": [
          {
            "primitive": "job_costing",
            "label": "Job costing"
          }
        ]
      }
    }

    Then upload_flows for hand-offs between components and upload_notes for how work really happens: workarounds, bottlenecks, manual hand-offs.

  6. Read the report

    The last upload's summary gives components per layer and part, coverage of the baseline and the top gaps. Ask the agent to report those, what it could not map, and what it left out for privacy.

  7. Review and publish

    Open the workspace. Everything is private, self-reported and draft: fix what is wrong, then choose per value what to publish. See Tiers and privacy.

Re-running is safe
The same clientId updates instead of duplicating, so run the agent again whenever the company changes.