moda-context

Saves your team's design defaults so every project starts with the right brand and settings.

Installation
Run `npx skills add "https://github.com/moda-design/moda" --skill "moda-context"` to install this skill, then follow its SKILL.md instructions for my next request.

Paste this into Claude Code, Cursor, or any agent that can run commands.

SKILL.mdShow the author's original SKILL.md
---
name: moda-context
description: >-
  Pin a repo to Moda defaults via .moda/context.json — org, brand, canvas — so
  every run in this repo lands in the right place; check credits with `moda
  account usage/costs`. CLI-only: these defaults are files on your disk.
argument-hint: "[what to pin: org | brand | canvas — or 'show']"
allowed-tools: Bash(moda:*), Read
---

# moda-context

<!-- moda:banner -->
**PREREQUISITE — load `moda-core` once per session** (step-0, write contract,
free/metered map). Already loaded? Skip ahead. If you cannot load it, the
non-negotiables: run `moda doctor --json` before anything; `moda brand list`
before creating; writes that pin a revision use your last read's — on
`stale_revision`, re-read and retry once (it heals); send the canvas link the
moment it exists; stuck or failed? `moda ask "<question>"` — free and fast,
never guess.
<!-- /moda:banner -->

Second run in the same repo landing in the same workspace, on the same kit,
against the same canvas? Pin it once and every later run needs no flags.

## What gets pinned, and where

- `.moda/context.json` — committed. The repo's shared default, so a teammate's
  run lands in the same workspace with the same brand.
- `.moda/context.local.json` — gitignored. Yours alone; it wins over the
  committed file.
- Three keys only: `org`, `brand`, `canvas`. Discovered by walking up from the
  working directory, so a subdirectory inherits the repo's pins.

Precedence, highest first: an explicit flag on the command → `MODA_ORG` /
`MODA_API_BASE` in the environment → `context.local.json` → `context.json` →
this install's config → the built-in default.

## The three commands

```
moda context show                       # effective values AND where each came from
moda context set brand [bk_…]           # every create in this repo binds this kit
moda context set canvas [cvs_…]         # "the" canvas this repo keeps updating
moda context set org [ORG_ID] --local   # keep a personal org pin out of the commit
moda context clear [key]                # omit the key to clear all three
```

`moda context show` is the first thing to run when a command lands somewhere
unexpected: the `[source]` marker on each line names the file or flag that won.

## What to pin (and what not to)

- **brand** — the kit the repo's work belongs to. Pin it after `moda brand
  list` confirms which kit the user means; never guess between two kits.
- **canvas** — only when the repo really has ONE living artifact (the README
  deck, the status one-pager). A pinned canvas is a default, not a lock: an
  explicit ref in the ask always wins.
- **org** — whose workspace and billing the work lands in. Never pin or switch
  an org on your own initiative. Ask, then set exactly what the user names.
- Nothing here is secret, so nothing here is a credential: keys live in the OS
  keychain or the environment, never in these files.

## Credits and spend

```
moda account status                     # plan + balance — the honest credit check
moda account usage --days 30 [--by-operation]
moda account costs                      # what is metered vs not, from the server
```

- Canvas authoring, reads, screenshots, exports, and sites cost 0 credits on
  every plan. Only the media-generation and web-research lanes meter.
- Direct media calls do not return a per-call credit amount; the balance from
  `moda account status` is the honest answer, and totals live in `usage`.
- Answer a "how many credits do we have?" question with the balance and the
  plan, not an estimate — never hardcode what is metered, read `costs`.

## Examples

- "make this repo always use our brand" → `moda brand list` → confirm → `moda
  context set brand bk_…` → say what future runs will now do by default.
- "why did that land in the wrong workspace?" → `moda context show`, read the
  `[source]` column, fix the file that actually won.
- "keep updating the same deck from here" → `moda context set canvas cvs_…`.
- "how much have we spent this month?" → `moda account usage --days 30`.

## Errors

Any typed error → load moda-core and read its recovery reference. A pin whose
id no longer resolves fails at the verb that uses it, not at `set` — re-run
`moda context show`, then re-pin or clear.

## Make it recurring

A pinned repo is what makes an unattended run flagless — the scheduled half is
moda-automate. Pin the brand once and every later artifact is on-brand by
default (moda-brand owns the kit itself).

See also: moda-core — the contract, recovery, everything Moda can do.

Mirrored from the author's public source. Install counts from the open skills registry.

The systems behind these skills get built for partners every week.

Partner with us