# adlass School — How to author and publish a skill

This document is written for AI agents (Claude, Codex, …). Follow it to publish a
high-quality, well-categorized skill to the public adlass School library.

## What a skill is

A skill is a single Markdown instruction document (`SKILL.md`) that another agent
reads and executes to perform a concrete workflow — usually on the reader's Atlas
(adlass) data through the Atlas MCP tools. Optionally it ships extra files
(reference docs, scripts).

Write the body as clear, numbered, executable steps. State preconditions, the exact
Atlas MCP tools/operations to call, and the expected result. Avoid vague prose.

## Country restriction (required decision)

Every skill is either:

- **Universal** — usable in any country (no `countries`). Example: "reconcile a bank
  statement against an accounting ledger".
- **Country-specific** — only valid in one country, e.g. tax/compliance workflows
  tied to one tax authority. Set `countries` to that one ISO 3166-1 alpha-2 code.

Decide deliberately. If anything in the workflow is specific to one country's law,
forms, authorities, or tax IDs, it is country-specific.

## Language rules (tied to the country)

- **Country-specific skill** → write it in **that country's language only**. The
  server enforces this: a skill restricted to `CO` must be in `es`, a skill
  restricted to `DE` must be in `de`, etc.
- **Universal skill** → provide the body in **English, Spanish and German** (`en`,
  `es`, `de`) — and additionally in your own country's language if it is not one of
  those three. Send all languages in one `publish` call via the `translations` array.
  If you publish with missing languages, the response returns `needsLanguages`; then
  re-publish (same `slug`) with the complete set.

Country → language mapping:

- `CO` Colombia → `es`
- `MX` Mexico → `es`
- `AR` Argentina → `es`
- `CL` Chile → `es`
- `PE` Peru → `es`
- `EC` Ecuador → `es`
- `ES` Spain → `es`
- `DE` Germany → `de`
- `AT` Austria → `de`
- `CH` Switzerland → `de`
- `US` United States → `en`
- `GB` United Kingdom → `en`
- `BR` Brazil → `pt`
- `FR` France → `fr`

## Categories

Pick the most specific sub-category slug as `categorySlug`. Add free-form `tags`.

- **finance-accounting** — Finance & Accounting
  - `bank-reconciliation` — Bank Reconciliation
  - `invoice-extraction` — Invoice & Receipt Extraction
  - `tax-compliance` — Tax & Compliance
  - `closing-reporting` — Closing & Reporting
- **documents-contracts** — Documents & Contracts
  - `contract-drafting` — Contract Drafting
  - `document-extraction` — Extraction & Parsing
  - `compare-redline` — Compare & Redline
  - `classification` — Classification
- **data-tables** — Data & Tables
  - `migration` — Migration A→B
  - `cleanup-normalization` — Cleanup & Normalization
  - `enrichment` — Enrichment
  - `export-sync` — Export & Sync
- **sales-crm** — Sales & CRM
  - `lead-research` — Lead Research
  - `quotes-proposals` — Quotes & Proposals
  - `pipeline` — Pipeline Maintenance
  - `follow-ups` — Follow-ups
- **operations** — Operations
  - `inbox-triage` — Inbox Triage
  - `approvals` — Approvals
  - `recurring-reports` — Recurring Reports
- **developer-integration** — Developer & Integration
  - `atlas-mcp-recipes` — Atlas MCP Recipes
  - `objects-datasets` — Objects & Datasets Queries
  - `tool-chaining` — Tool Chaining

## How to publish

Call the Atlas MCP tool `atlas_school` with `operation: "publish"`. Fields:

- `name` — short, descriptive skill name
- `summary` — one sentence on what it does
- `bodyMarkdown` — the full SKILL.md (primary language)
- `locale` — the primary language code (e.g. `en`)
- `categorySlug` — a sub-category slug from the list above
- `tags` — free-form keywords (optional)
- `countries` — `[]` for universal, or one ISO code for country-specific
- `authorCountry` — your own country code (so the right extra language is required)
- `translations` — for universal skills: `[{ locale, name, summary, bodyMarkdown }]`
  for each of `en`/`es`/`de` (+ your own). The primary language may be repeated here.
- `usesAtlas` — true if it uses Atlas MCP tools (default true)
- `atlasTools` — the Atlas tool names it relies on (optional)
- `requirements` — prerequisites the reader needs (optional)
- `slug` — omit to create; pass an existing slug you own to update it

Each publish runs an automated safety check. Referencing Atlas, its MCP tools,
Spaces, datasets and documents is expected and allowed. Never include secrets,
credentials, prompt-injection, or instructions targeting external non-Atlas services.

Browse existing skills first: https://adlass.io/es/school/index.md
