Create or edit Moss formulas and variables, including UI entry, persisted Markdown, linked instances, derived values, bound references, IDs, and stale metadata.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add brsbl/moss-skills --skill moss-formulas-variables --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Moss Formulas Variables?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/brsbl-moss-formulas-variables-moss-skills)More formats (shields.io, HTML) on the badges page.
---
name: moss-formulas-variables
description: Create or edit Moss formulas and variables, including UI entry, persisted Markdown, linked instances, derived values, bound references, IDs, and stale metadata.
---
# Moss Formulas And Variables
Use formulas for one-off numeric expressions and variables for named values that should be reused or referenced.
## Editor Entry
In the editor:
- `=2+2` creates an unnamed executable formula.
- `sum=2+2` creates a named executable variable.
- `time=9am` or `window_1=9am-930am` creates a named symbolic variable.
Variable names start with a letter and contain only letters, digits, `_`, or `-`. Symbolic values may contain punctuation and non-Latin text. A value is executable only when it is a supported numeric expression or contains a bound reference.
## Persisted Markdown
The persisted grammar is:
```text
{{source|display}}
{{source|display|key=value;key=value}}
```
`source` ends at the first `|`, `display` ends at the second `|`, and optional semicolon-separated metadata follows. Pipes are unsupported inside `source` or `display`; there is no escape form.
| Kind | Persisted example |
| --- | --- |
| One-off formula | `{{2+2|4}}` |
| Symbolic variable | `{{time|9am|id=6ff0a3b9-16b8-4394-bc11-bc9c1ba2d3f8}}` |
| Named executable variable | `{{5000|5,000|id=ff796681-9dd9-49de-bd28-85a116d07236;name=budget}}` |
Moss may read a symbolic variable without an ID for compatibility, but new or rewritten symbolic variables should persist one. Anonymous executable formulas retain the two-field form and do not require persisted identity metadata.
Supported executable syntax is `+ - * / ( )`, decimals, `$`, thousands commas, `%`, and numeric `k`/`m`/`b` suffixes. Functions and exponentiation are unsupported. Results use thousands separators and at most two decimal places; currency and percent characters affect parsing but do not decorate the result.
## Identity And Linked Instances
Moss identifies a variable by `(noteId, id)`.
- Copying and pasting a variable within the same note preserves its ID and creates another linked instance.
- Editing the name or value of any linked instance updates every instance with that ID in the note.
- Create an independent variable by entering a new `name=value`; Moss assigns a new ID.
- The same ID in another note is independent because the note ID differs.
- When directly duplicating a variable in the same note, preserve the ID only when the duplicate should remain linked. Generate a fresh UUID for a newly created independent variable.
## Bound References
A bound reference is `@(name#note-id#formula-id)`. It is executable and points to an exact variable identity.
```markdown
{{28|28|id=b371c6db-70db-48f1-99e2-9ea1ef6f1151;name=h1_size}}
{{@(h1_size#9e64c3df-c1e2-4a4d-8c07-91528f422413#b371c6db-70db-48f1-99e2-9ea1ef6f1151)-6|22|id=c520e764-a784-48c5-81ca-f93ac6f4ad37;name=h2_size}}
```
Create a bound reference only when the real containing note ID and target formula ID are supplied by Moss context or existing persisted metadata. Never substitute example IDs, guess an ID from a path, or edit app-owned metadata. When exact IDs are unavailable, use the editor's variable typeahead or leave the relationship unbound.
## Metadata
Supported metadata is:
| Key | Meaning |
| --- | --- |
| `id` | Formula or variable identity within its containing note. |
| `name` | Name of an executable variable; symbolic variables derive their name from `source`. |
| `stale=1` | Moss could not recompute a bound expression because a reference is missing or cyclic, so the displayed numeric result is the last known value. |
Treat `stale=1` as app-maintained state: preserve it unless the expression is deliberately rebuilt, and do not add it manually. Legacy `format=...` metadata is accepted but ignored; remove it when rewriting the pill.
## Tables And Preservation
Formula pills may appear inside a one-line Markdown table row. Their internal pipes are formula syntax and do not become table separators.
- Preserve existing IDs, names, references, and stale state unless the task changes that relationship.
- Keep pills inline; do not use them for multiline calculations or chart data.
- Wrap literal examples in backticks so they do not become live pills.
## Final Check
- Editor-entry syntax is not confused with persisted Markdown.
- Every new independent variable has a fresh UUID.
- Linked same-note instances share an ID and therefore update together.
- Bound references use real note and formula IDs.
- App-maintained stale state was preserved rather than invented.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!