Five surfaces, every guide topic, every command and every rule — generated from the CLI itself, so what is on this page is what your terminal answers.
Handing this to an agent instead of reading it? The same reference, in plain markdown: /product/cli.md
Install the CLI. No account is needed to begin — the first call mints an anonymous session, and everything on this page works from a cold install.
macOS / Linux
curl -LsSf https://beta.deepcell.net/install.sh | shWindows (PowerShell)
irm https://beta.deepcell.net/install.ps1 | iexThen check the install in one call: version, whether the service is reachable, who you are, and which workspace is active.
deepcell doctorRead the guided walkthrough, then list what is in your workspace. If the second one prints, you are connected.
deepcell guide orient/start
deepcell lsSigning in is optional and belongs after your first file, not before it. It keeps your work beyond the anonymous session, lifts the anonymous limits, and lets you share what you build.
deepcell loginThe reference is split by the question you are asking at that instant, because each kind of knowledge has a different shape, a different read frequency, and a different risk of going stale. Reach for the one that matches your question rather than reading the set.
| Surface | The question you are asking | What it answers |
|---|---|---|
| deepcell help | How do I invoke this exactly? | Every command, flag, exit code and example as one document. |
| deepcell rules | What must always hold? | The non-negotiable invariants every .deepcell model must satisfy. |
| deepcell guide | What is the procedure for this stage? | Explain how DeepCell itself works. |
| deepcell ref | What values are legal here? | Look up legal values, and resolve any typed id. |
| deepcell example get | What does a correct one look like? | Write an example document to a local file. |
Two of them — the invocation reference and the legal-values reference — are derived from the implementation, so they cannot drift from it. The other three are written by hand and tied back mechanically: every id they cite has to resolve, and CI fails when one does not.
This page is not a sixth surface. It is a rendering of those five, built from the same manifest the CLI serves, so the two cannot describe different commands. Manifest version: 0.3.0
Topics are ordered procedure, grouped by the stage of the work they belong to. Read the one for the stage you are in rather than the whole index. Print any of them from a terminal:
deepcell guide orient/start| Topic | Stage | What it covers |
|---|---|---|
| orient/choose-shape | orient | What you are building, and which examples and domain pack to read for it |
| orient/concepts | orient | Item, Context, Status, Scenario, Value, Calc — the six words everything is built from |
| orient/how-to-work | orient | You produce work that someone else will question. It lands in a `.deepcell` |
| orient/start | orient | Look before you build: check the setup, pick the workspace, read what is there |
| ingest/tabular | ingest | An xlsx or csv becomes items and contexts: dimension mapping, then provenance |
| generate/calcs | generate | Define the relationship once; the engine produces every number from it |
| generate/first-file | generate | Empty workspace to one valid `.deepcell` file you can then build on |
| generate/structure | generate | Rows are Items, columns are Contexts, and a third axis is a custom Dimension |
| generate/values | generate | Literal cells are for inputs only, and every driver must actually hold one |
| generate/whole-doc | generate | Authoring a complete document as one XML write, and when that beats defs ops |
| revise/history | revise | Versions, variants, and moving a workspace between the cloud and a local folder |
| revise/reasoning | revise | Record why the model says what it says — and supersede rather than delete |
| revise/scenarios | revise | What-if analysis over one file — no copies, no forked models |
| revise/structure | revise | What add, rename, reorder and delete each break — and what the ops fix for you |
| revise/values | revise | Changing numbers that already exist — one cell, many cells, or raw XML |
| verify/lint | verify | One of three verification moves, and not the one that catches the worst failure |
| verify/query-back | verify | Read the forecast cells back — an empty grid is the failure no linter reports |
| verify/review | verify | Eight dimensions, each independently runnable, each demanding cited evidence |
| present/charts | present | Chart blocks, key-value cards, text notes, and the results-first Summary sheet |
| present/decks | present | HTML slides whose numbers come from the document itself, through typed bindings |
| present/deliver | present | Getting the result to someone: workbench link, share link, xlsx, pptx |
| present/layout | present | Sheets, blocks, expansions, formats, and sensitivity: what renders, and where |
| present/prose | present | Writing the `<Document>` body, and addressing anything in the file from it |
| overview | reference | Template — three-statement model architecture: sheet layout, item order ranges, and the IS/BS/CF golden loop |
| assumptions | reference | Template — assumptions sheet: driver categories, order ranges, and why drivers are Values while anything derived is a CalcDef |
| income-statement | reference | Template — income statement items and formulas, revenue through net income |
| balance-sheet | reference | Template — balance sheet items and formulas, plus the assets = liabilities + equity check |
| cash-flow | reference | Template — cash flow statement: operating/investing/financing sections and the cash reconciliation |
| dcf | reference | Template — DCF valuation: free cash flow build, WACC, terminal value, and the equity bridge |
| scenarios | reference | Template — worked bull/base/bear setup: which variables to override and by how much (for the mechanics, read scenario-definitions) |
| validation | reference | Template — integrity check items every model should carry (balance check, cash reconciliation, coverage ratios) |
| quick-start | reference | Template index for financial models — which of the finance-pack templates to read for a 3-statement, DCF or scenario build (to begin a task, read orient/start) |
| orchestrator | reference | How to run DeepCell work — what the job is, when it is done, and how to look things up instead of guessing |
| calc-engine | reference | How the calc engine recomputes — define relationships, not values |
| bank | reference | Template — bank / NIM model: rate × balance grid, net interest income, efficiency ratio, provision |
| insurance | reference | Template — insurance model: earned premium, loss/expense ratios, combined ratio, underwriting result |
| reit | reference | Template — REIT model: NOI, FFO, AFFO, real-estate depreciation add-back |
| custom-dimensions | reference | Custom dimensions — multi-segment analysis (geography, product, unit, channel) |
| formula-patterns | reference | Formula patterns — advanced modeling constructs and the formula quick guide |
| xml-schema-reference | reference | XML skeleton for the core sections in document order — Metadata, Status, Context, Items, Calculations, Presentation, Values, Dimensions |
| build-from-scratch | reference | Build playbook — starting with no existing .deepcell file, from empty workspace to a valid model |
| build-on-historicals | reference | Build playbook — adding projections on top of categorized historicals produced by an extractor |
| account-categorization | reference | Mapping a company's own statement labels onto a standard chart of accounts, without editing the extraction |
| chart-of-accounts-gaap | reference | Template — US GAAP standard chart of accounts (order 4000-4299), item ids matching the statement templates |
| chart-of-accounts-ifrs | reference | Template — IFRS standard chart of accounts, and where it diverges from US GAAP |
| chart-of-accounts-cas | reference | Template — Chinese Accounting Standards (企业会计准则) chart of accounts for A-share filers |
| non-gaap-metrics | reference | Template — non-GAAP adjusted metrics (order 4300-4399): adjusted EBITDA, net income, and EPS |
| calc-specificity | reference | Calc status & scenario specificity — how multiple calcs for one (item, context) slot are disambiguated |
| status-resolution | reference | Which stored status a read answers with — the read side of the status axis, and the diagnostics emitted when it had to choose |
| status-semantics | reference | What a status MEANS — the archetype vocabulary on <Status> and the period state on <Context>, which replaced guessing from id spelling |
| items | reference | ItemDefinitions — data types, scale, currency, and value conventions |
| functions | reference | Built-in formula functions reference |
| sync | reference | Local sync workflow (clone, pull, push) |
| exit-codes | reference | What a nonzero exit means per command — written-but-invalid vs rolled-back vs partial |
| presentations | reference | PresentationDefinitions — core Sheet/Block layout, membership, ordering, and coverage |
| presentation-expansions | reference | Presentation block expansions — status/scenario columns and custom-dimension rows |
| presentation-charts | reference | Presentation charts, dashboards, key-value/text blocks, and results-first summaries |
| decks | reference | HTML Deck structure, typed bindings, slide markup, static charts, and security |
| deck-styling | reference | HTML Deck institutional house style — layout, typography, palette, charts, and CSS starter |
| deck-authoring | reference | HTML Deck CLI authoring, validation, viewer deep links, limits, and troubleshooting |
| surface-ownership | reference | Who owns a number, a conclusion, a paragraph and a slide — the cross-surface editing contract |
| document-authoring | reference | <Document> prose — the link-everything rule, the markdown dialect, anchors, embeds, and the CLI |
| deepcell-uri | reference | The deepcell: reference — grammar, per-kind locators, the formula-grammar conversion, and id rules |
| data-sources | reference | SourceDefinitions — where a number came from; the one place an outward address lives |
| scenario-definitions | reference | ScenarioDefinitions — what-if scenario analysis |
| format-definitions | reference | FormatDefinitions — cell formatting rules for viewer and Excel export |
| format-precedence | reference | FormatDefinitions — precedence chain, FormatStatus inference, number-format resolution |
| reasoning | reference | Reasoning — typed knowledge graph (Claim, Assumption, Evidence, Argument) |
| reasoning-anti-patterns | reference | Common reasoning mistakes with corrected examples |
| reasoning-checklist | reference | Pre-build checklist for valid <Reasoning> sections |
| sharing | reference | Share links — give anyone a browser view of one file (incl. anonymous sessions) |
| viewer | reference | Web viewer — view .deepcell files in the browser |
| replace | reference | String-replacement editing with deepcell replace |
| upload | reference | Uploading and creating .deepcell files (write and import commands) |
| schema-matching | reference | Mapping external data (xlsx/csv) to .deepcell item and context dimensions |
| values-vs-defs-ops | reference | Two-call pattern: /batch-edit (Values) vs /apply-defs-ops (structural) |
| sensitivity | reference | Sensitivity blocks — 2-variable data tables, 1-variable data tables, scenario comparisons |
| house-rules | reference | House rules — the non-negotiable invariants every model must satisfy |
| review-dimensions | reference | Review dimensions — the model audit checklist (integrity, formulas, coverage, sanity, grounding, reasoning, intent, presentation) |
| model-scopes | reference | Choosing model scope — P&L+DCF default, 3-statement triggers, industry models |
| sec-extraction | reference | SEC extraction — raw historical layer, model mapping layer, provenance rules |
| cn-extraction | reference | A-share (cninfo) extraction — CAS statements from report PDFs, #page deep links, canonical item map |
| excel-import | reference | Excel import — dimension mapping, formula conversion, excel_import provenance |
Every command, with the shape of its invocation, its flags and their defaults, what each exit code means, and one runnable example. The whole catalog is also one call away as machine-readable data — worth caching once instead of paying for a round trip per command:
deepcell helpPermanently delete your account and everything it owns.
deepcell account delete| Flag | Type | Default | What it does |
|---|---|---|---|
| --confirm-email <confirm_email> | text | — | Your account email. Prompted for if omitted. |
| --password <password> | text | — | Account password. Prompted for if the account has one. |
| --yes | boolean | — | Skip the interactive 'this is irreversible' confirmation. |
Exit codes: 0 — completed
Download every record DeepCell holds about your account.
deepcell account export| Flag | Type | Default | What it does |
|---|---|---|---|
| --output <out_path> | file | — | Write the export to this file instead of stdout. |
Exit codes: 0 — completed
List Claims that depend_on ASSUMPTION_ID.
deepcell assumption impact <filename> <assumption_id>
deepcell assumption impact model.deepcell a_hiringExit codes: 0 — completed · 2 — unparseable-document
Print file content (XML) to stdout.
deepcell cat <filename>
deepcell cat model.deepcell| Flag | Type | Default | What it does |
|---|---|---|---|
| --revision <revision> | text | — | Show file at specific revision. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
Exit codes: 0 — completed
Show metadata for a single cell (formula, dependencies, data source).
deepcell cell-meta <filename> [item_ref_pos] [context_ref_pos]
deepcell cell-meta model.deepcell Revenue FY2026E| Flag | Type | Default | What it does |
|---|---|---|---|
| --item <item_opt> | text | — | Item ref (alternative to the ITEM_REF positional). |
| --context <context_opt> | text | — | Context ref (alternative to the CONTEXT_REF positional). |
| --status <status_ref> | text | — | Status reference (e.g. 'actual'). A CONSTRAINT, not a hint: the read may answer from that bucket or the untagged one, never from a third. Omit to let the document decide which status answers. |
| --scenario <scenario_ref> | text | — | Scenario dimension (omit for the base cell). |
| --custom-dimensions <custom_dimensions> | text | — | Custom dimensions as 'dim:member;dim:member', e.g. 'geography:na'. |
Exit codes: 0 — completed
List every Claim in FILENAME whose status is `falsified`.
deepcell claim falsified <filename>
deepcell claim falsified model.deepcellExit codes: 0 — completed · 2 — unparseable-document
Walk the supersedes chain backwards from CLAIM_ID (newest first).
deepcell claim history <filename> <claim_id>
deepcell claim history model.deepcell <claim_id>Exit codes: 0 — completed · 2 — unparseable-document
Show your view of CLAIM_ID beside the consensus it is a variant of.
deepcell claim variant <filename> <claim_id>
deepcell claim variant model.deepcell <claim_id>Exit codes: 0 — completed · 2 — unparseable-document
Clone a workspace to a local folder.
deepcell clone <slug> [directory]
deepcell clone <slug>Exit codes: 0 — completed
Commit changes staged on the server by something other than you.
deepcell commit| Flag | Type | Default | What it does |
|---|---|---|---|
| --message <message> | text | — | Commit message. |
Exit codes: 0 — completed · 1 — written-but-invalid
Add a row or a column to a Block.
deepcell defs add-axis-member <filename> --sheet <sheet_id> --block <block_id> --axis <axis> --member <member> --ref <ref>
deepcell defs add-axis-member model.deepcell --sheet variance --block revenue_table --axis rows --member item --ref Gross_Profit| Flag | Type | Default | What it does |
|---|---|---|---|
| --sheet <sheet_id> | text | required | Sheet containing the block. |
| --block <block_id> | text | required | blockId to edit. |
| --axis <axis> | rows | columns | required | Which axis to edit: 'rows' (the block's @itemOrders) or 'columns' (its @contextRefs). |
| --member <member> | item | context | required | What kind of id --ref is. Pair 'item' with rows, 'context' with columns. |
| --ref <ref> | text | required | The item id or context id to add. |
| --index <index> | integer range | — | 0-based position on the axis (default: append at the end). |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Add a presentation Block (table or chart) to a sheet.
deepcell defs add-block <filename> --sheet <sheet_id> --block-type <block_type> --name <name>
deepcell defs add-block model.deepcell --sheet variance --block-type table --name 'Revenue vs budget' --item-orders Revenue,COGS --context-refs FY2025,FY2026| Flag | Type | Default | What it does |
|---|---|---|---|
| --sheet <sheet_id> | text | required | Sheet to add the block to. |
| --block-type <block_type> | text | required | One of: table, chart, sensitivity, key_value, text. The server stores any string, but the renderer skips a block whose type it does not know, so anything else is written and never drawn. |
| --name <name> | text | required | Display name / section heading. |
| --item-orders <item_orders> | text | — | Comma-separated item ids forming the block's rows, in order (e.g. 'revenue,cogs,gross_profit'). Omit and the block renders empty — see the note above. |
| --context-refs <context_refs> | text | — | Comma-separated context ids forming the block's columns, in order (e.g. 'FY2024,FY2025'). Omit to show every context. |
| --index <index> | integer | — | Insertion index within the sheet (default: append at the end). |
| --chart-type <chart_type> | bar | bar_stacked | bar_horizontal | line | area | pie | donut | waterfall | range_bar | — | Chart type (chart blocks only). 'waterfall' bridges deltas between declared totals; 'range_bar' draws a low..high band per category (the football field). |
| --category-axis <category_axis> | context | item | — | Which dimension is the category axis (chart blocks only). |
| --grid-span <grid_span> | single | full | — | Dashboard layout footprint (chart blocks only). |
| --total-item-refs <total_item_refs> | text | — | Whitespace/comma-separated refs naming the plotted categories that rest on the baseline instead of floating on the running sum (--chart-type=waterfall only). Declared, never inferred: omit it and every step is a delta. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Add a CalculationDefinition (formula).
deepcell defs add-calc <filename> --item <item_id> --formula <formula>
deepcell defs add-calc model.deepcell --item Revenue --calc-id calc_revenue --formula 'Units_Sold[CURRENT] * Unit_Price[CURRENT]' --status projected| Flag | Type | Default | What it does |
|---|---|---|---|
| --item <item_id> | text | required | Item the calc resolves into (itemId). |
| --calc-id <calc_id> | text | — | Stable calcId for the new calc (e.g. 'calc_stress_low'). Errors if the id is already taken. Omit to let the server assign one — but an auto id is what `defs delete-calc` and a claim's --calc-ref must then quote, so choose your own when the calc has to be citable. |
| --formula <formula> | text | required | Jingwei formula, e.g. "Revenue[PREVIOUS] * 1.1". |
| --context <context_ref> | text | — | Pin calc to one or more contextRefs. Pass a CSV (e.g. 'FY25,FY26,FY27') to pin a roll-forward chain to several periods in one call — omit the seed period so its literal is kept. Omit entirely to fan out across every period the item lacks a literal value. |
| --scenario <scenario_ref> | text | — | Limit calc to this scenarioRef. |
| --status <status_ref> | text | — | Pin calc to a statusRef (e.g. 'projected'). Strongly recommended for forecast formulas so they coexist with the historical actuals in the same item/context slots — without it the projection stores one untagged cell that answers every status, leaving the actuals nowhere to sit. Not enforced: omitting it succeeds, and the cost shows up later as an actual you cannot store. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Add a ContextDefinition — a period, or a non-temporal axis member.
deepcell defs add-context <filename>
deepcell defs add-context model.deepcell --name FY2025 --context FY2025 --kind period --state closed --status actual| Flag | Type | Default | What it does |
|---|---|---|---|
| --name <name> | text | — | The context IDENTIFIER (@contextId), e.g. 'Low_Rent' — not a display label. Must satisfy the reference-id grammar. Set the readable name afterwards with `defs update-context --label`. |
| --status <status_ref> | text | — | statusRef (optional). |
| --context <context_ref> | text | — | Explicit contextRef (else server-assigned). |
| --kind <kind> | text | — | Context kind. Omit (or 'period' / temporal alias) for time columns; pass 'program', 'segment', 'fund', 'region', 'entity', 'product', 'other' (or any snake_case label, ≤32 chars) for non-temporal axes. Always written as @kind on the <Context> element. |
| --state <state> | text | — | Period state: closed | open | future. This is what says whether the period is over — the question the A/E suffix on a context id used to answer by accident. Only meaningful for --kind period. |
| --as-of <as_of> | text | — | ISO YYYY-MM-DD the period's numbers are stated as of. Documentation and lint input only; never consulted when rendering. |
| --index <index> | integer | — | Position in contexts list (omit to append at end). |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Add a <Document> — the prose that ships with the model.
deepcell defs add-doc <filename>
deepcell defs add-doc model.deepcell --doc-id variance_note --name 'July variance note' --lang en --body-file variance-note.md| Flag | Type | Default | What it does |
|---|---|---|---|
| --doc-id <doc_id> | text | — | Document identifier (@docId). Must match [A-Za-z0-9_.-]+ so a deepcell:doc/<id> reference to it parses back. |
| --name <name> | text | — | Display title. |
| --lang <lang> | text | — | BCP-47 language tag, e.g. 'en' or 'zh'. |
| --body-file <body_file> | file | — | File holding the initial markdown body (else empty). |
| --index <index> | integer | — | Position among documents. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Add a <Format formatId="..."> to FormatDefinitions.
deepcell defs add-format <filename> <format_id>
deepcell defs add-format model.deepcell fmt_statement --rule 'default:fontName=Arial'| Flag | Type | Default | What it does |
|---|---|---|---|
| --rule <rule_strs> | text | — | One rule as semicolon-separated key=value pairs, e.g. 'target=default; font_color=#000000; number_format=#,##0'. Commas inside a value (such as Excel number formats) are preserved. Repeat the flag for multiple rules. Keys: target, font_color, background_color, font_weight, font_style, font_name, font_size, text_align, indent, number_format, border_top/bottom/left/right. |
| --inherit | boolean | — | --no-inherit opts the Format out of the IB default base (a total custom theme; writes @inherit="false"). Default inherits the base (add-on model). See `deepcell guide format-precedence`. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Add an ItemDefinition (no value).
deepcell defs add-item <filename> --name <name>
deepcell defs add-item model.deepcell --name Revenue --label Revenue --data-type monetary --scale 6 --currency USD --order-mode append| Flag | Type | Default | What it does |
|---|---|---|---|
| --name <name> | text | required | Item name (itemId basis). |
| --label <label> | text | — | Display label (e.g. 'Gross Margin %'); defaults to a humanized form of --name. |
| --level <level> | integer | — | Hierarchy level (0-3). |
| --parent <parent_item_id> | text | — | Parent itemId (omit for root). |
| --index <index> | integer | — | Position among siblings (omit to append at end). |
| --order <order> | integer | — | Explicit @order (must be unique; presentation blocks address rows by order ranges). Overrides --index placement. |
| --order-mode <order_mode> | append | — | 'append' assigns max(existing orders) + 10 — no need to know which orders are taken. Mutually exclusive with --order; overrides --index. |
| --data-type <data_type> | text | — | DataType element (e.g. 'monetary', 'percentage', 'number'). |
| --unit <unit> | text | — | Unit element (e.g. '%', 'hours', 'tonnes'). |
| --scale <scale> | integer | — | Scale element (units multiplier exponent). |
| --currency <currency> | text | — | Currency element (ISO code, e.g. 'USD'). |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Add a ContextDefinition (period, or non-temporal axis member).
deepcell defs add-period <filename>
deepcell defs add-period model.deepcell --name FY2026 --context FY2026 --state future --status projected| Flag | Type | Default | What it does |
|---|---|---|---|
| --name <name> | text | — | The period IDENTIFIER (@contextId), e.g. FY2027E — not a display label. Must satisfy the reference-id grammar. Set the readable name afterwards with `defs update-context --label`. |
| --status <status_ref> | text | — | statusRef (e.g. 'projected'). |
| --context <context_ref> | text | — | Explicit contextRef (else server-assigned). |
| --kind <kind> | text | — | Context kind. Omit (or pass 'period' / a temporal alias like 'time' / 'year' / 'annual' / 'fy') for time columns; pass e.g. 'program', 'segment', 'fund', 'region', 'entity', 'product', 'other' (or any snake_case label, ≤32 chars) for non-temporal axes. Always written as @kind on the <Context> element. |
| --state <state> | text | — | Period state: closed | open | future. This is what says whether the period is over — the question the A/E suffix on a context id used to answer by accident. Only meaningful for --kind period. |
| --as-of <as_of> | text | — | ISO YYYY-MM-DD the period's numbers are stated as of. Documentation and lint input only; never consulted when rendering. |
| --index <index> | integer | — | Position in contexts list (omit to append at end). |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Add a <Rule> to an existing <Format>.
deepcell defs add-rule <filename> <format_id> --target <target>
deepcell defs add-rule model.deepcell fmt_statement --target 'level:0:item' --font-weight bold --number-format '#,##0'| Flag | Type | Default | What it does |
|---|---|---|---|
| --target <target> | text | required | Rule @target selector (see `deepcell guide format-definitions`). |
| --bg-color <background_color> | text | — | Hex color '#RRGGBB' for backgroundColor. |
| --font-color <font_color> | text | — | Hex color '#RRGGBB' for fontColor. |
| --font-weight <font_weight> | text | — | e.g. 'bold' / 'normal'. |
| --font-style <font_style> | text | — | e.g. 'italic' / 'normal'. |
| --font-name <font_name> | text | — | Font family name. |
| --font-size <font_size> | float | — | Font size in points. |
| --text-align <text_align> | text | — | 'left' | 'center' | 'right'. |
| --indent <indent> | integer | — | Indent character count. |
| --number-format <number_format> | text | — | Excel-style pattern, e.g. '#,##0'. |
| --border-top <border_top> | text | — | e.g. 'thin #000000' (style + optional hex color). |
| --border-bottom <border_bottom> | text | — | Bottom border, e.g. 'thin #000000' (style + optional hex color). |
| --border-left <border_left> | text | — | Left border, e.g. 'thin #000000' (style + optional hex color). |
| --border-right <border_right> | text | — | Right border, e.g. 'thin #000000' (style + optional hex color). |
| --index <index> | integer | — | Insert position (omit to append). |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Add a ScenarioDefinition.
deepcell defs add-scenario <filename>
deepcell defs add-scenario model.deepcell --name downside| Flag | Type | Default | What it does |
|---|---|---|---|
| --name <name> | text | — | The scenario IDENTIFIER (@scenarioId), e.g. 'Bull' — not a display label. Must satisfy the reference-id grammar. Set the readable name afterwards with `defs update-scenario --label`. |
| --base <base_scenario_ref> | text | — | (removed) @baseScenarioRef no longer exists — see `deepcell guide scenario-definitions`. |
| --context <context_ref> | text | — | Explicit contextRef. |
| --is-default | boolean | — | Mark as the document's default scenario — clears @isDefault from every other scenario. |
| --index <index> | integer | — | Position (omit to append at end). |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Add a sensitivity block (data table / scenario comparison).
deepcell defs add-sensitivity <filename> --sheet <sheet_id> --name <name> --spec-file <spec_file>
deepcell defs add-sensitivity model.deepcell --sheet summary --name 'IRR sensitivity' --spec-file sensitivity.json| Flag | Type | Default | What it does |
|---|---|---|---|
| --sheet <sheet_id> | text | required | Sheet to add the block to. |
| --name <name> | text | required | Display name of the sensitivity block. |
| --index <index> | integer | — | Position among sheet blocks (omit to append at end). |
| --format-ref <format_ref> | text | — | FormatDefinitions id. |
| --spec-file <spec_file> | filename | required | JSON with {"axes": [...], "outputs": [...]} (use "-" for stdin). |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Add a presentation Sheet — a tab in the rendered document.
deepcell defs add-sheet <filename> --label <label>
deepcell defs add-sheet model.deepcell --label 'Variance review' --index 1| Flag | Type | Default | What it does |
|---|---|---|---|
| --label <label> | text | required | Sheet tab label, e.g. 'Dashboard'. |
| --index <index> | integer range | — | 0-based position among the sheets (default: append at the end). |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Declare a <Source> - the one place an outward address may live.
deepcell defs add-source <filename> --id <source_id>
deepcell defs add-source model.deepcell --id <source_id>| Flag | Type | Default | What it does |
|---|---|---|---|
| --id <source_id> | text | required | Stable sourceId, e.g. 'src_aapl_10k_fy25'. |
| --kind <kind> | text | — | What the source physically IS - closed set: filing, webpage, pdf, workbook, dataset, query, transcript, media, message, document, person, derived, other. What it is USED AS goes in --role. |
| --role <role> | text | — | What the source is being used AS - free text: historical_actual, assumption, analyst_estimate, management_guidance, industry_benchmark, market_data, manual, ... |
| --reach <reach> | text | — | Can a recipient open it? public | account | private | offline. 'private' withholds the locator on share and export; 'offline' means no locator exists, which is a complete record, not a broken one. |
| --title <title> | text | — | Human-readable title - what renders when the locator is withheld. |
| --locator <locator> | text | — | The one outward address (URL, path, DSN). |
| --description <description> | text | — | Longer note about the source. |
| --at <at> | text | — | Default position inside the source: text:HEADING[,SUFFIX] | page:47 | sheet:Name!A1:B9 | row:1042 | col:arr | t:00:14:32 | anchor:id. |
| --effective-date <effective_date> | text | — | ISO date the source describes. |
| --retrieved-at <retrieved_at> | text | — | ISO timestamp it was fetched. |
| --issuer <issuer> | text | — | Who published it. |
| --ticker <issuer_ticker> | text | — | Issuer ticker symbol. |
| --identity <identities> | text | — | Declared identity as 'scheme:value' (e.g. 'sec.accession:0000320193-25-000079'). Repeatable. |
| --items <item_refs> | text | — | CSV of itemRefs this source backs. |
| --contexts <context_refs> | text | — | CSV of contextRefs. Omit to cover every context the statusRef allows. |
| --status <status_ref> | text | — | statusRef for the coverage row. |
| --scenario <scenario_ref> | text | — | scenarioRef for the coverage row. |
| --custom-dimensions <custom_dimensions> | text | — | 'dim:member;dim:member' for the coverage row. |
| --index <index> | integer | — | Position (omit to append at end). |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Add a StatusDefinition.
deepcell defs add-status <filename>
deepcell defs add-status model.deepcell --name Budget --ref budget --archetype budget --authority derived| Flag | Type | Default | What it does |
|---|---|---|---|
| --name <name> | text | — | The status IDENTIFIER (@statusId), e.g. 'Forecast' — not a display label. Must satisfy the reference-id grammar. Set the readable name afterwards with `defs update-status --label`. |
| --ref <status_ref> | text | — | Explicit statusRef. |
| --color <color> | text | — | (removed) color is a FormatDefinitions concern — see `deepcell defs add-format`. |
| --is-default | boolean | — | Mark as the document's default status — clears @isDefault from every other status. |
| --archetype <archetype> | text | — | What this status MEANS: actual | preliminary | restated | estimate | guidance | consensus | forecast | budget | plan | target. Its realized/expected nature is derived from it. Omitting it leaves the meaning to be guessed from the id's spelling — see `deepcell ref status`. |
| --assurance <assurance> | text | — | Optional refinement: audited | reviewed | unaudited. |
| --authority <authority> | text | — | Optional refinement — who asserted the number: reported | derived | guidance | consensus | third_party. |
| --index <index> | integer | — | Position (omit to append at end). |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Apply a batch of ops atomically.
deepcell defs apply <filename>
deepcell defs apply model.deepcell --ops-file ops.json --dry-run| Flag | Type | Default | What it does |
|---|---|---|---|
| --ops-file <ops_file> | filename | — | JSON file with an `ops` array (use '-' for stdin). |
| --ops <ops_inline> | text | — | Inline ops JSON (same shapes as --ops-file); mirrors the agent tool's `defs apply --ops '<json>'` form. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Remove a row or a column from a Block.
deepcell defs delete-axis-member <filename> --sheet <sheet_id> --block <block_id> --axis <axis> --ref <ref>
deepcell defs delete-axis-member model.deepcell --sheet variance --block revenue_table --axis rows --ref Gross_Profit| Flag | Type | Default | What it does |
|---|---|---|---|
| --sheet <sheet_id> | text | required | Sheet containing the block. |
| --block <block_id> | text | required | blockId to edit. |
| --axis <axis> | rows | columns | required | Which axis to edit: 'rows' (the block's @itemOrders) or 'columns' (its @contextRefs). |
| --ref <ref> | text | required | The item id or context id to remove. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Delete a Block from a Sheet.
deepcell defs delete-block <filename> --sheet <sheet_id> --block <block_id>
deepcell defs delete-block model.deepcell --sheet <sheet_id> --block <block_id>| Flag | Type | Default | What it does |
|---|---|---|---|
| --sheet <sheet_id> | text | required | Sheet containing the block. |
| --block <block_id> | text | required | blockId to delete. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Delete a CalculationDefinition by calcId.
deepcell defs delete-calc <filename> <calc_id>
deepcell defs delete-calc model.deepcell <calc_id>| Flag | Type | Default | What it does |
|---|---|---|---|
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Delete a Context (period or non-temporal axis member).
deepcell defs delete-context <filename> <context_ref>
deepcell defs delete-context model.deepcell <context_ref>| Flag | Type | Default | What it does |
|---|---|---|---|
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Delete a Document and its body.
deepcell defs delete-doc <filename> <doc_id>
deepcell defs delete-doc model.deepcell <doc_id>| Flag | Type | Default | What it does |
|---|---|---|---|
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Delete a <Format> by formatId.
deepcell defs delete-format <filename> <format_id>
deepcell defs delete-format model.deepcell <format_id>| Flag | Type | Default | What it does |
|---|---|---|---|
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Delete an item, and with --cascade its descendants too.
deepcell defs delete-item <filename> <item_id>
deepcell defs delete-item model.deepcell Revenue --cascade| Flag | Type | Default | What it does |
|---|---|---|---|
| --cascade | boolean | — | Also delete all descendants. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Delete a <Rule> by index or by @target.
deepcell defs delete-rule <filename> <format_id>
deepcell defs delete-rule model.deepcell <format_id>| Flag | Type | Default | What it does |
|---|---|---|---|
| --index <index> | integer | — | Delete the rule at this position. |
| --target <target> | text | — | Delete the first rule with this @target. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Delete a ScenarioDefinition by its contextRef.
deepcell defs delete-scenario <filename> <scenario_ref>
deepcell defs delete-scenario model.deepcell <scenario_ref>| Flag | Type | Default | What it does |
|---|---|---|---|
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Delete a presentation Sheet and every Block on it.
deepcell defs delete-sheet <filename> <sheet_id>
deepcell defs delete-sheet model.deepcell <sheet_id>| Flag | Type | Default | What it does |
|---|---|---|---|
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Remove a <Source>.
deepcell defs delete-source <filename> --id <source_id>
deepcell defs delete-source model.deepcell --id <source_id>| Flag | Type | Default | What it does |
|---|---|---|---|
| --id <source_id> | text | required | sourceId to delete. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Delete a StatusDefinition by its statusRef.
deepcell defs delete-status <filename> <status_ref>
deepcell defs delete-status model.deepcell <status_ref>| Flag | Type | Default | What it does |
|---|---|---|---|
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Set or replace a Header property.
deepcell defs header set <filename> <key> <value>
deepcell defs header set model.deepcell <key> <value>| Flag | Type | Default | What it does |
|---|---|---|---|
| --type <prop_type> | string | number | boolean | datetime | string | Property type tag written into <Property @type>. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Delete a Header property.
deepcell defs header unset <filename> <key>
deepcell defs header unset model.deepcell <key>| Flag | Type | Default | What it does |
|---|---|---|---|
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
List what the document DEFINES: items, calcs, contexts, scenarios, statuses.
deepcell defs list <filename>
deepcell defs list model.deepcell| Flag | Type | Default | What it does |
|---|---|---|---|
| --workspace <workspace_slug> | text | — | Override active workspace. |
Exit codes: 0 — completed · 1 — read-only-check
Change a Block's display name — its section heading in the render.
deepcell defs rename-block <filename> <new_name> --sheet <sheet_id> --block <block_id>
deepcell defs rename-block model.deepcell <new_name> --sheet <sheet_id> --block <block_id>| Flag | Type | Default | What it does |
|---|---|---|---|
| --sheet <sheet_id> | text | required | Sheet containing the block. |
| --block <block_id> | text | required | blockId to rename. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Rename a Context's @contextId; references cascade.
deepcell defs rename-context <filename> <context_ref> <new_name>
deepcell defs rename-context model.deepcell <context_ref> <new_name>| Flag | Type | Default | What it does |
|---|---|---|---|
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Rename a custom Dimension's @dimensionId.
deepcell defs rename-dimension <filename> <dimension_id> <new_name>
deepcell defs rename-dimension model.deepcell <dimension_id> <new_name>| Flag | Type | Default | What it does |
|---|---|---|---|
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Rename an item's stable identifier; references cascade.
deepcell defs rename-item <filename> <item_id> <new_name>
deepcell defs rename-item model.deepcell Revenue Total_Revenue| Flag | Type | Default | What it does |
|---|---|---|---|
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Rename one Member's @memberId within a custom Dimension.
deepcell defs rename-member <filename> <dimension_id> <member_id> <new_name>
deepcell defs rename-member model.deepcell <dimension_id> <member_id> <new_name>| Flag | Type | Default | What it does |
|---|---|---|---|
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Rename a scenario's IDENTIFIER (@scenarioId); references cascade.
deepcell defs rename-scenario <filename> <scenario_ref> <new_name>
deepcell defs rename-scenario model.deepcell downside bear| Flag | Type | Default | What it does |
|---|---|---|---|
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Change a Sheet's displayed tab label.
deepcell defs rename-sheet <filename> <sheet_id> <new_label>
deepcell defs rename-sheet model.deepcell <sheet_id> <new_label>| Flag | Type | Default | What it does |
|---|---|---|---|
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Change a status's IDENTIFIER (@statusId); references cascade.
deepcell defs rename-status <filename> <status_ref> <new_name>
deepcell defs rename-status model.deepcell <status_ref> <new_name>| Flag | Type | Default | What it does |
|---|---|---|---|
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Move a row or a column to a new position within a Block.
deepcell defs reorder-axis-member <filename> --sheet <sheet_id> --block <block_id> --axis <axis> --ref <ref> --to-index <to_index>
deepcell defs reorder-axis-member model.deepcell --sheet variance --block revenue_table --axis rows --ref Gross_Profit --to-index 0| Flag | Type | Default | What it does |
|---|---|---|---|
| --sheet <sheet_id> | text | required | Sheet containing the block. |
| --block <block_id> | text | required | blockId to edit. |
| --axis <axis> | rows | columns | required | Which axis to edit: 'rows' (the block's @itemOrders) or 'columns' (its @contextRefs). |
| --ref <ref> | text | required | The item id or context id to move. |
| --to-index <to_index> | integer range | required | Final 0-based position on the axis. 0 = first row / leftmost column. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Move a Block to a new position within its Sheet.
deepcell defs reorder-block <filename> --sheet <sheet_id> --block <block_id> --to-index <to_index>
deepcell defs reorder-block model.deepcell --sheet variance --block revenue_table --to-index 0| Flag | Type | Default | What it does |
|---|---|---|---|
| --sheet <sheet_id> | text | required | Sheet containing the block. |
| --block <block_id> | text | required | blockId to move. |
| --to-index <to_index> | integer range | required | Final 0-based position among the sheet's blocks. 0 = topmost. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Move a Context to a new position in the contexts list.
deepcell defs reorder-contexts <filename> <context_ref> <to_index>
deepcell defs reorder-contexts model.deepcell <context_ref> <to_index>| Flag | Type | Default | What it does |
|---|---|---|---|
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Move an item to a new position among its siblings (final-position index).
deepcell defs reorder-item <filename> <item_id> --to-index <to_index>
deepcell defs reorder-item model.deepcell Revenue --to-index 0| Flag | Type | Default | What it does |
|---|---|---|---|
| --to-index <to_index> | integer | required | Final 0-based position among the item's siblings. 0 = first. Lets you place a referenced item before its referencer (avoids a forward item-order reference). |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Move a scenario to a new position in the scenario list.
deepcell defs reorder-scenarios <filename> <scenario_ref> --to-index <to_index>
deepcell defs reorder-scenarios model.deepcell <scenario_ref> --to-index <to_index>| Flag | Type | Default | What it does |
|---|---|---|---|
| --to-index <to_index> | integer range | required | Final 0-based position among the scenarios. 0 = first. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Move a Sheet to a new position in the tab order.
deepcell defs reorder-sheets <filename> <sheet_id> --to-index <to_index>
deepcell defs reorder-sheets model.deepcell variance --to-index 0| Flag | Type | Default | What it does |
|---|---|---|---|
| --to-index <to_index> | integer range | required | Final 0-based position among the sheets. 0 = leftmost tab. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Set presentation-layout attributes on an existing block.
deepcell defs set-block-attrs <filename> --sheet <sheet_id> --block <block_id>
deepcell defs set-block-attrs model.deepcell --sheet variance --block revenue_table --status-refs actual,budget --status-expansion columns| Flag | Type | Default | What it does |
|---|---|---|---|
| --sheet <sheet_id> | text | required | Sheet containing the block. |
| --block <block_id> | text | required | blockId of the block to edit. |
| --status-expansion <status_expansion> | none | columns | — | Side-by-side status-column layout. 'columns' lays each status in --status-refs out as its own run of context columns; 'none' (default) keeps the single-column-per-context layout. |
| --status-refs <status_refs> | text | — | Whitespace/comma-separated status ids to expand into columns (e.g. "actual budget"). Required for --status-expansion=columns. |
| --dim-expansion <dim_expansion> | none | rows | — | Custom-dimension member sub-rows. 'rows' lays each member of --dim-ref out as a contiguous sub-row under its item; 'none' (default) keeps the one-row-per-item layout. |
| --dim-ref <dim_ref> | text | — | Dimension id whose members are expanded into sub-rows (e.g. "geography"). Required for --dim-expansion=rows. |
| --dim-expansion-cap <dim_expansion_cap> | integer range | — | Max members to expand into sub-rows before falling back to a single row (positive int; default 24). Used with --dim-expansion=rows. |
| --scenario-expansion <scenario_expansion> | none | columns | — | Side-by-side scenario-column layout. 'columns' lays each scenario in --scenario-refs out as its own run of context columns; 'none' (default) keeps the single-column-per-context layout. |
| --scenario-refs <scenario_refs> | text | — | Whitespace/comma-separated scenario ids to expand into columns (e.g. "Base Bull"). Required for --scenario-expansion=columns. |
| --chart-type <chart_type> | bar | bar_stacked | bar_horizontal | line | area | pie | donut | waterfall | range_bar | — | Chart type (chart blocks only). 'waterfall' bridges deltas between declared totals; 'range_bar' draws a low..high band per category (the football field). |
| --category-axis <category_axis> | context | item | — | Which dimension is the category axis (chart blocks only). |
| --grid-span <grid_span> | single | full | — | Dashboard layout footprint (chart blocks only). |
| --total-item-refs <total_item_refs> | text | — | Whitespace/comma-separated refs naming the plotted categories that rest on the baseline instead of floating on the running sum (--chart-type=waterfall only). Declared, never inferred: omit it and every step is a delta. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Set cell/row/column formatting (resolves the governing <Format>).
deepcell defs set-format <filename> --sheet-id <sheet_id> --item-ref <item_ref> --scope <scope>
deepcell defs set-format model.deepcell --sheet-id ic --block-id deal_summary --item-ref Entry_Multiple --scope item --number-format '0.0x' --bold| Flag | Type | Default | What it does |
|---|---|---|---|
| --sheet-id <sheet_id> | text | required | Sheet id of the cell. |
| --block-id <block_id> | text | — | Governing block id (resolves @formatRef). |
| --item-ref <item_ref> | text | required | Item ref of the cell. |
| --context-ref <context_ref> | text | — | Context ref (required for cell/column scope). |
| --scope <scope> | cell | item | context | required | cell:ITEM:CONTEXT | item:ITEM | context:CONTEXT |
| --number-format <number_format> | text | — | Excel pattern, e.g. '#,##0'. |
| --font-name <font_name> | text | — | Font family name. |
| --font-size <font_size> | float | — | Font size in points. |
| --bold | boolean | — | Set/clear bold. |
| --italic | boolean | — | Set/clear italic. |
| --fg-color <fg_color> | text | — | Text hex '#RRGGBB'. |
| --bg-color <bg_color> | text | — | Fill hex '#RRGGBB'. |
| --text-align <text_align> | text | — | 'left'|'center'|'right'. |
| --indent <indent> | integer | — | Indent character count. |
| --border-top <border_top> | text | — | e.g. 'thin #000000'. |
| --border-bottom <border_bottom> | text | — | Bottom border, e.g. 'thin #000000' (style + optional hex color). |
| --border-left <border_left> | text | — | Left border, e.g. 'thin #000000' (style + optional hex color). |
| --border-right <border_right> | text | — | Right border, e.g. 'thin #000000' (style + optional hex color). |
| --clear <clear> | text | — | Token name to revert to inherit (repeatable). |
| --clear-all | boolean | — | Delete the target's rule entirely. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Replace which cells a <Source> backs.
deepcell defs set-source-cites <filename> --id <source_id>
deepcell defs set-source-cites model.deepcell --id <source_id>| Flag | Type | Default | What it does |
|---|---|---|---|
| --id <source_id> | text | required | sourceId whose coverage to replace. |
| --items <item_refs> | text | — | CSV of itemRefs this source backs. |
| --contexts <context_refs> | text | — | CSV of contextRefs. Omit to cover every context the statusRef allows. |
| --status <status_ref> | text | — | statusRef for the coverage row. |
| --scenario <scenario_ref> | text | — | scenarioRef for the coverage row. |
| --custom-dimensions <custom_dimensions> | text | — | 'dim:member;dim:member' for the coverage row. |
| --at <at> | text | — | Position override for this coverage row. |
| --clear | boolean | — | Remove every coverage row instead of setting one. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Show one item's ItemDef and every CalcDef that governs it.
deepcell defs show <filename> <item_id>
deepcell defs show model.deepcell Revenue| Flag | Type | Default | What it does |
|---|---|---|---|
| --workspace <workspace_slug> | text | — | Override active workspace. |
Exit codes: 0 — completed · 1 — read-only-check
Patch a CalcDef; only the fields you pass are changed.
deepcell defs update-calc <filename> <calc_id>
deepcell defs update-calc model.deepcell calc_revenue --formula 'Units_Sold[CURRENT] * Unit_Price[CURRENT] * 1.02'| Flag | Type | Default | What it does |
|---|---|---|---|
| --formula <formula> | text | — | Replace the formula. |
| --context <context_ref> | text | — | Change contextRef. |
| --scenario <scenario_ref> | text | — | Change scenarioRef. |
| --status <status_ref> | text | — | Change statusRef (e.g. 'projected'). Pass '' to clear. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Patch a Context's name / status / kind; only fields you pass are sent.
deepcell defs update-context <filename> <context_ref>
deepcell defs update-context model.deepcell FY2025 --state closed --as-of 2025-12-31| Flag | Type | Default | What it does |
|---|---|---|---|
| --name <name> | text | — | Rename the contextId; references cascade. NOT the display name — see --label. |
| --label <new_label> | text | — | Change the context's DISPLAY LABEL (emits set_context_label). The contextId is untouched — use --name to change the identifier. |
| --status <status_ref> | text | — | Set statusRef. |
| --clear-status | boolean | — | Clear statusRef (explicit-null). |
| --kind <kind> | text | — | Context kind. Omit / null / 'period' / temporal alias collapses to canonical 'period'; any other snake_case label marks a non-temporal context. Always written to @kind. |
| --state <state> | text | — | Period state: closed | open | future. This is what says whether the period is over — the question the A/E suffix on a context id used to answer by accident. Only meaningful for --kind period. |
| --as-of <as_of> | text | — | ISO YYYY-MM-DD the period's numbers are stated as of. Documentation and lint input only; never consulted when rendering. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Update a Document's attributes.
deepcell defs update-doc <filename> <doc_id>
deepcell defs update-doc model.deepcell <doc_id>| Flag | Type | Default | What it does |
|---|---|---|---|
| --name <name> | text | — | New display title. |
| --lang <lang> | text | — | New BCP-47 language tag. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Rename a <Format> and/or toggle its IB-default inheritance.
deepcell defs update-format <filename> <format_id>
deepcell defs update-format model.deepcell <format_id>| Flag | Type | Default | What it does |
|---|---|---|---|
| --new-id <new_id> | text | — | New formatId; cascades through every <Block @formatRef>. |
| --inherit | boolean | — | Toggle the IB default base. --no-inherit makes this a total custom theme (@inherit="false"); --inherit returns to the add-on default. See `deepcell guide format-precedence`. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Patch an item; only fields you pass are sent.
deepcell defs update-item <filename> <item_id>
deepcell defs update-item model.deepcell Revenue --scale 3 --currency USD| Flag | Type | Default | What it does |
|---|---|---|---|
| --name <name> | text | — | Rename the itemId; references cascade. Equivalent to `defs rename-item`. |
| --label <new_label> | text | — | Change the item's DISPLAY LABEL (emits set_item_label). The itemId is untouched — use `defs rename-item` to change the identifier. |
| --level <level> | integer | — | Change hierarchy level. |
| --parent <parent_item_id> | text | — | Change parent itemId. |
| --clear-parent | boolean | — | Make item a root (explicit-null parentItemId). |
| --data-type <data_type> | text | — | Set DataType element (e.g. 'monetary', 'percentage', 'number'). |
| --unit <unit> | text | — | Set Unit element (e.g. '%', 'hours', 'tonnes'). |
| --scale <scale> | integer | — | Set Scale element. |
| --currency <currency> | text | — | Set Currency element (ISO code). |
| --clear-data-type | boolean | — | Remove the DataType element (explicit-null). |
| --clear-unit | boolean | — | Remove the Unit element (explicit-null). |
| --clear-scale | boolean | — | Remove the Scale element (explicit-null). |
| --clear-currency | boolean | — | Remove the Currency element (explicit-null). |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Patch a scenario; only the fields you pass are sent.
deepcell defs update-scenario <filename> <scenario_ref>
deepcell defs update-scenario model.deepcell downside --label 'Bear case'| Flag | Type | Default | What it does |
|---|---|---|---|
| --name <name> | text | — | Rename the scenarioId; references cascade. Equivalent to `defs rename-scenario`. NOT the display name — see --label. |
| --label <new_label> | text | — | Change the scenario's DISPLAY LABEL (emits set_scenario_label). The scenarioId is untouched — use --name to change the identifier. |
| --is-default | boolean | — | Make this the document's default scenario (clears @isDefault from every other scenario), or strip the flag from this one. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Edit a sensitivity block's name, format, or axes/outputs.
deepcell defs update-sensitivity <filename> --sheet <sheet_id> --block <block_id>
deepcell defs update-sensitivity model.deepcell --sheet <sheet_id> --block <block_id>| Flag | Type | Default | What it does |
|---|---|---|---|
| --sheet <sheet_id> | text | required | Sheet containing the block. |
| --block <block_id> | text | required | blockId of the block to edit. |
| --name <name> | text | — | New display name. |
| --format-ref <format_ref> | text | — | New FormatDefinitions id. |
| --spec-file <spec_file> | filename | — | JSON with {"axes": [...], "outputs": [...]} to replace both. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Change fields on a <Source>.
deepcell defs update-source <filename> --id <source_id>
deepcell defs update-source model.deepcell --id <source_id>| Flag | Type | Default | What it does |
|---|---|---|---|
| --id <source_id> | text | required | sourceId to update. |
| --kind <kind> | text | — | New @kind (closed set). |
| --role <role> | text | — | New @role (free text). |
| --reach <reach> | text | — | public | account | private | offline. |
| --title <title> | text | — | New title. Pass '' to clear. |
| --locator <locator> | text | — | New locator. Pass '' to clear. |
| --description <description> | text | — | New description. Pass '' to clear. |
| --at <at> | text | — | New default position. |
| --effective-date <effective_date> | text | — | New effective date. |
| --retrieved-at <retrieved_at> | text | — | New retrieval timestamp. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Patch a status; only the fields you pass are sent.
deepcell defs update-status <filename> <status_ref>
deepcell defs update-status model.deepcell budget --archetype budget --label Budget| Flag | Type | Default | What it does |
|---|---|---|---|
| --name <name> | text | — | Rename the statusId; references cascade. Equivalent to `defs rename-status`. NOT the display name — see --label. |
| --label <new_label> | text | — | Change the status's DISPLAY LABEL (emits set_status_label). The statusId is untouched — use --name to change the identifier. |
| --is-default | boolean | — | Make this the document's default status (clears @isDefault from every other status), or strip the flag from this one. |
| --archetype <archetype> | text | — | What this status MEANS: actual | preliminary | restated | estimate | guidance | consensus | forecast | budget | plan | target. Pass an empty string to clear it (and fall back to inference). |
| --assurance <assurance> | text | — | audited | reviewed | unaudited. |
| --authority <authority> | text | — | reported | derived | guidance | consensus | third_party. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --dry-run | boolean | — | Validate only: run the full server-side pipeline (per-op validation, formula parse, post-apply cycle check + recompute) and report errors without persisting anything — no commit, no revision bump. |
Exit codes: 0 — completed · 1 — nothing-changed
Show a document's shape: items, contexts, scenarios, statuses, sheets.
deepcell describe <filename>
deepcell describe model.deepcell --lint| Flag | Type | Default | What it does |
|---|---|---|---|
| --include-reasoning | boolean | — | Append a compact summary of the document reasoning graph. |
| --scenario <scenario_id> | text | — | Scenario ID whose value overrides to apply. |
| --lint | boolean | — | Include canonical structural findings and exit non-zero on findings. |
| --since <since_revision> | text | — | With --lint: mark each finding pre-existing or new against this revision. Use `HEAD~1` for the commit before yours, or a SHA from `deepcell log`. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
Exit codes: 0 — completed · 1 — read-only-check
Show diff between two revisions (like git diff).
deepcell diff <revision_a> [revision_b]
deepcell diff <revision_a>| Flag | Type | Default | What it does |
|---|---|---|---|
| --file <filename> | text | — | Filter diff by filename. |
Exit codes: 0 — completed
Show what cites a reference: prose, slides and reasoning, this file only.
deepcell doc backlinks <filename> --target <target>
deepcell doc backlinks model.deepcell --target <target>| Flag | Type | Default | What it does |
|---|---|---|---|
| --target <target> | text | required | Reference to invert, e.g. 'claim/t_hold'. |
Exit codes: 0 — completed
List every block and the id it can be edited by.
deepcell doc blocks <filename>
deepcell doc blocks model.deepcell| Flag | Type | Default | What it does |
|---|---|---|---|
| --doc <doc_id> | text | — | Document ID (default: the first). |
Exit codes: 0 — completed
Delete one block.
deepcell doc delete-block <filename> --doc <doc_id> --block <block_id>
deepcell doc delete-block model.deepcell --doc <doc_id> --block <block_id>| Flag | Type | Default | What it does |
|---|---|---|---|
| --doc <doc_id> | text | required | Document ID. |
| --block <block_id> | text | required | Block id to delete. |
| --rationale <rationale> | text | — | Commit message recording why. |
| --revision <revision> | text | — | Compare-and-swap token from `cat`. |
Exit codes: 0 — completed
Insert a new block after another one, or at the top of the document.
deepcell doc insert-block <filename> --doc <doc_id> --markdown-file <markdown_file>
deepcell doc insert-block model.deepcell --doc <doc_id> --markdown-file <markdown_file>| Flag | Type | Default | What it does |
|---|---|---|---|
| --doc <doc_id> | text | required | Document ID. |
| --after <after_block_id> | text | — | Insert after this block id. Omit to insert at the top. |
| --markdown-file <markdown_file> | file | required | File holding the new block's markdown. |
| --rationale <rationale> | text | — | Commit message recording why. |
| --revision <revision> | text | — | Compare-and-swap token from `cat`. |
Exit codes: 0 — completed
List every deepcell: reference, and whether it resolved.
deepcell doc links <filename>
deepcell doc links model.deepcell --doc variance_note --unresolved| Flag | Type | Default | What it does |
|---|---|---|---|
| --doc <doc_id> | text | — | Restrict to one document. |
| --unresolved | boolean | — | Only references that did not resolve. |
Exit codes: 0 — completed
Check a document's references.
deepcell doc lint <filename>
deepcell doc lint model.deepcell --doc variance_note --strict| Flag | Type | Default | What it does |
|---|---|---|---|
| --doc <doc_id> | text | — | Restrict to one document. |
| --strict | boolean | — | Also flag numerals that match a modelled value but are typed, not linked. |
Exit codes: 0 — completed
List every <Document> in the file.
deepcell doc list <filename>
deepcell doc list model.deepcellExit codes: 0 — completed
Move a block after another one, or to the top.
deepcell doc move-block <filename> --doc <doc_id> --block <block_id>
deepcell doc move-block model.deepcell --doc <doc_id> --block <block_id>| Flag | Type | Default | What it does |
|---|---|---|---|
| --doc <doc_id> | text | required | Document ID. |
| --block <block_id> | text | required | Block id to move. |
| --after <after_block_id> | text | — | Move after this block id. Omit to move to the top. |
| --rationale <rationale> | text | — | Commit message recording why. |
| --revision <revision> | text | — | Compare-and-swap token from `cat`. |
Exit codes: 0 — completed
Print the headings and the anchor each one is addressable by.
deepcell doc outline <filename>
deepcell doc outline model.deepcell --doc variance_note| Flag | Type | Default | What it does |
|---|---|---|---|
| --doc <doc_id> | text | — | Document ID (default: the first). |
Exit codes: 0 — completed
Replace one anchored section of a document.
deepcell doc patch-body <filename> --doc <doc_id> --anchor <anchor> --markdown <markdown>
deepcell doc patch-body model.deepcell --doc variance_note --anchor outlook --markdown '## Outlook {#outlook}\n\nQ4 pipeline covers the gap.'| Flag | Type | Default | What it does |
|---|---|---|---|
| --doc <doc_id> | text | required | Document ID. |
| --anchor <anchor> | text | required | Explicit {#id} anchor of the section to replace. |
| --markdown <markdown> | text | required | Replacement markdown for that section. |
| --rationale <rationale> | text | — | Commit message recording why. |
| --revision <revision> | text | — | Compare-and-swap token from `cat`. |
Exit codes: 0 — completed
Replace one block, addressed by its id.
deepcell doc replace-block <filename> --doc <doc_id> --block <block_id> --markdown-file <markdown_file>
deepcell doc replace-block model.deepcell --doc <doc_id> --block <block_id> --markdown-file <markdown_file>| Flag | Type | Default | What it does |
|---|---|---|---|
| --doc <doc_id> | text | required | Document ID. |
| --block <block_id> | text | required | Block id from `deepcell doc blocks`. |
| --markdown-file <markdown_file> | file | required | File holding the replacement markdown. |
| --rationale <rationale> | text | — | Commit message recording why. |
| --revision <revision> | text | — | Compare-and-swap token from `cat`. |
Exit codes: 0 — completed
Replace a document's whole markdown body.
deepcell doc set-body <filename> --doc <doc_id> --body-file <body_file>
deepcell doc set-body model.deepcell --doc variance_note --body-file variance-note.md -m 'Rewrite the July variance note'| Flag | Type | Default | What it does |
|---|---|---|---|
| --doc <doc_id> | text | required | Document ID. |
| --body-file <body_file> | file | required | File holding the new markdown body. |
| --rationale <rationale> | text | — | Commit message recording why. |
| --revision <revision> | text | — | Compare-and-swap token from `cat` (refuses if the file moved). |
Exit codes: 0 — completed
Print one document.
deepcell doc show <filename>
deepcell doc show model.deepcell --doc variance_note --as markdown| Flag | Type | Default | What it does |
|---|---|---|---|
| --doc <doc_id> | text | — | Document ID (default: the first). |
| --scenario <scenario_id> | text | — | Scenario to resolve values under. |
| --as <rendering> | text | markdown | text | markdown keeps the [[deepcell:...]] source; text shows resolved values. |
| --with-ids | boolean | — | Prefix each block with the id it can be edited by. |
Exit codes: 0 — completed
Give every block without an id a stable `{#id}`, so it can be edited.
deepcell doc stamp-ids <filename> --doc <doc_id>
deepcell doc stamp-ids model.deepcell --doc <doc_id>| Flag | Type | Default | What it does |
|---|---|---|---|
| --doc <doc_id> | text | required | Document ID. |
| --rationale <rationale> | text | — | Commit message recording why. |
| --revision <revision> | text | — | Compare-and-swap token from `cat`. |
Exit codes: 0 — completed
Check this machine's setup: version, server, identity, workspace.
deepcell doctor
deepcell doctor -f json| Flag | Type | Default | What it does |
|---|---|---|---|
| --timeout <timeout> | float | 10 | How long to wait for the server probe. |
Exit codes: 0 — completed
Download a file from the workspace to the local filesystem.
deepcell download <filename>
deepcell download model.deepcell| Flag | Type | Default | What it does |
|---|---|---|---|
| --output <out_path> | text | — | Output file path (default: same as filename). |
| --revision <revision> | text | — | Download file at specific revision. |
Exit codes: 0 — completed
Write literal cell values (assumptions, historical actuals).
deepcell edit <filename> [item_ref] [context_ref] [new_value]
deepcell edit model.deepcell Growth_Rate FY2026E 0.12| Flag | Type | Default | What it does |
|---|---|---|---|
| --force | boolean | — | Force-edit a calculated cell (override formula). |
| --clear | boolean | — | Remove the literal value cell (NEW_VALUE omitted) so a CalcDef can re-govern it. |
| --status <status_ref> | text | — | Status reference (e.g. 'projected'). |
| --scenario <scenario_ref> | text | — | Scenario dimension — must be a defined scenarioId (omit for the base cell). |
| --custom-dimensions <custom_dimensions> | text | — | Custom dimensions as 'dim:member;dim:member', e.g. 'geography:na;product_line:ent'. |
| --batch <batch_file> | text | — | Batch edits as a JSON file path, '-' for stdin, or inline JSON (a value starting with '[' or '{'). |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --rationale <commit_message> | text | — | Why this edit was made. Written as the commit message body (and a trailer), so history reads as the decision instead of '[batch-edit] Item[Ctx]'. Sent as `rationale`; `-m` / `--message` are aliases of `--rationale`. |
| --title <commit_title> | text | — | Short commit subject (e.g. 'Q3 actuals update'). Combined with --rationale as 'title: rationale'. Rejected with --replace, which takes a single undivided commit message. |
| --auto-create-context | boolean | — | Auto-create missing context definitions. |
| --replace | boolean | — | DEPRECATED alias for `deepcell replace FILE OLD NEW` — still works, will be removed in a future release. Note the exit codes listed here are `edit`'s: in replace mode, exit 1 means the replacement IS already in the file and the document is invalid. |
| --replace-all | boolean | — | Replace all occurrences (with the deprecated --replace). |
| --workspace <workspace_slug> | text | — | Override active workspace. |
Exit codes: 0 — completed · 1 — partial
Complete, valid documents to copy the shape from.
deepcell example| Flag | Type | Default | What it does |
|---|---|---|---|
| --pack <pack> | text | — | Core examples plus this pack's. |
Exit codes: 0 — completed
Write an example document to a local file.
deepcell example get <name> --into <into>| Flag | Type | Default | What it does |
|---|---|---|---|
| --into <into> | file | required | Local path to write the document to. |
| --layer <layer> | skeleton | full | full | Which document to seed from. |
| --force | boolean | — | Overwrite an existing file. |
Exit codes: 0 — completed
List every example name — the same output as bare `deepcell example`.
deepcell example list| Flag | Type | Default | What it does |
|---|---|---|---|
| --pack <pack> | text | — | Core examples plus this pack's. |
Exit codes: 0 — completed
Print one layer of an example: skeleton, full, or transcript.
deepcell example show [name] [layer]
deepcell example showExit codes: 0 — completed
Search for items/values matching a pattern in .deepcell files.
deepcell grep <pattern>
deepcell grep Revenue| Flag | Type | Default | What it does |
|---|---|---|---|
| --file <filename> | text | — | Search within a specific file. |
| --ignore-case | boolean | — | Case-insensitive search. |
Exit codes: 0 — completed
Explain how DeepCell itself works.
deepcell guide [topic]
deepcell guide orient/start| Flag | Type | Default | What it does |
|---|---|---|---|
| --stage <stage> | text | — | Only this stage's topics (e.g. generate). |
| --pack <pack> | text | — | Only this domain pack's topics (e.g. finance). |
| --packs | boolean | — | List the domain packs. |
| --all | boolean | — | Include the legacy flat topics. |
| --search <search> | text | — | Topics whose name or description matches, across both catalogs. |
Exit codes: 0 — completed
Every command, flag, exit code and example as one document.
deepcell help [command...]
deepcell helpExit codes: 0 — completed
Import an xlsx or csv file into a .deepcell document.
deepcell import <file> --items <items> --contexts <contexts>
deepcell import variance.xlsx --name variance_import --items '[{"id":"Revenue","name":"Revenue","level":0,"row":2,"sheet":"Variance"}]' --contexts '[{"id":"FY25A","name":"FY25 actual","period_type":"annual","status":"actual","column":"B"}]'| Flag | Type | Default | What it does |
|---|---|---|---|
| --items <items> | text | required | Items JSON string or path to JSON file. |
| --contexts <contexts> | text | required | Contexts JSON string or path to JSON file. |
| --name <name> | text | — | Name for the .deepcell file (default: input filename). |
| --workspace <workspace> | text | — | Target workspace slug. |
| --aggregations <aggregations> | text | — | Aggregation rules JSON string or path to JSON file. |
| --keep-raw | boolean | — | Store raw values alongside aggregated results. |
Exit codes: 0 — completed · 1 — partial
Extract one statement's table — rows, canonical items, #page deep link.
deepcell ingest cn extract <pdf_url>
deepcell ingest cn extract https://static.cninfo.com.cn/finalpage/2026-03-28/1224567890.PDF --statement income --persist| Flag | Type | Default | What it does |
|---|---|---|---|
| --statement <statement> | text | 合并利润表 | Chinese heading or income | balance | cash_flow |
| --persist | boolean | — | Mirror the source PDF into DeepCell storage and return a durable `source_page_url` to record as the <Source> <Locator>. --no-persist skips the mirror (faster, but the only url you get back is the volatile cninfo link). |
Exit codes: 0 — completed
List annual / interim reports with PDF permalinks.
deepcell ingest cn filings <code>
deepcell ingest cn filings 600519 --type annual --count 5| Flag | Type | Default | What it does |
|---|---|---|---|
| --type <filing_type> | text | annual | annual | interim | semiannual | q1 | q3 |
| --count <count> | integer range | 5 | number of reports (1-30) |
Exit codes: 0 — completed
Resolve a 6-digit code, company name (中文简称), or pinyin.
deepcell ingest cn search <keywords>
deepcell ingest cn search 600519Exit codes: 0 — completed
Locate the financial statements inside a report PDF (page + scale).
deepcell ingest cn statements <pdf_url>Exit codes: 0 — completed
Add a new knowledge entry to a .deepcell file.
deepcell knowledge add <filename>
deepcell knowledge add model.deepcell| Flag | Type | Default | What it does |
|---|---|---|---|
| --id <knowledge_id> | text | — | Unique knowledgeId (kebab-case) |
| --label <label> | text | — | Short title for the entry |
| --body <body> | text | — | Body text content |
| --ref <refs> | text | — | Cross-reference as item:<itemId> (repeatable) |
| --parent <parent> | text | — | Parent knowledgeId for hierarchy |
| --author <author> | agent | human | — | Who is creating this entry |
| --level <level> | integer | — | (removed) not stored — use --parent for hierarchy |
| --from-json <from_json> | path | — | JSON file with an array of entries to add in bulk |
| --workspace <workspace_slug> | text | — | Override active workspace |
Exit codes: 0 — completed · 1 — written-but-invalid
Read a specific knowledge entry.
deepcell knowledge cat <filename> <knowledge_id>
deepcell knowledge cat model.deepcell <knowledge_id>| Flag | Type | Default | What it does |
|---|---|---|---|
| --workspace <workspace_slug> | text | — | Override active workspace |
Exit codes: 0 — completed
Delete knowledge entries from a .deepcell file.
deepcell knowledge delete <filename> [knowledge_ids...]
deepcell knowledge delete model.deepcell| Flag | Type | Default | What it does |
|---|---|---|---|
| --yes | boolean | — | Skip confirmation prompt |
| --recursive | boolean | — | Delete entry and all descendants |
| --force | boolean | — | Force delete even if entry has children |
| --from-json <from_json> | path | — | JSON file with an array of IDs to delete |
| --workspace <workspace_slug> | text | — | Override active workspace |
Exit codes: 0 — completed · 1 — written-but-invalid
List knowledge entries in a .deepcell file.
deepcell knowledge list <filename>
deepcell knowledge list model.deepcell| Flag | Type | Default | What it does |
|---|---|---|---|
| --flat | boolean | — | Flat list instead of tree view |
| --item-ref <item_ref> | text | — | Filter entries that reference this item |
| --author <author> | text | — | Filter by author (agent or human) |
| --parent <parent_id> | text | — | Filter by parent knowledgeId |
| --workspace <workspace_slug> | text | — | Override active workspace |
Exit codes: 0 — completed
Show cross-references for a knowledge entry.
deepcell knowledge refs <filename> <knowledge_id>
deepcell knowledge refs model.deepcell <knowledge_id>| Flag | Type | Default | What it does |
|---|---|---|---|
| --workspace <workspace_slug> | text | — | Override active workspace |
Exit codes: 0 — completed
Search knowledge entries by text pattern (case-insensitive substring match on label and body).
deepcell knowledge search <filename> [pattern]
deepcell knowledge search model.deepcell| Flag | Type | Default | What it does |
|---|---|---|---|
| --item-ref <item_ref> | text | — | Filter by item reference (entries that reference this item) |
| --workspace <workspace_slug> | text | — | Override active workspace |
Exit codes: 0 — completed
Search knowledge entries across all accessible workspaces.
deepcell knowledge search-all <pattern>| Flag | Type | Default | What it does |
|---|---|---|---|
| --item-ref <item_ref> | text | — | Also filter by item reference |
| --workspace <workspace_slugs> | text | — | Limit to specific workspace(s) |
| --limit <limit> | integer range | 50 | Max results to return (1-1000). |
| --offset <offset> | integer range | 0 | Skip N results for pagination. |
Exit codes: 0 — completed
Update an existing knowledge entry.
deepcell knowledge update <filename> [knowledge_id]
deepcell knowledge update model.deepcell| Flag | Type | Default | What it does |
|---|---|---|---|
| --label <label> | text | — | New label text |
| --body <body> | text | — | New body text |
| --ref <refs> | text | — | Cross-reference as item:<itemId> (repeatable, replaces all refs) |
| --add-ref <add_refs> | text | — | Append a ref (item:<itemId>) without removing existing ones |
| --remove-ref <remove_refs> | text | — | Remove a ref (type:target) from existing ones |
| --parent <parent> | text | — | New parent knowledgeId |
| --author <author> | agent | human | — | Who is updating this entry |
| --level <level> | integer | — | (removed) not stored — use --parent for hierarchy |
| --from-json <from_json> | path | — | JSON file with an array of entries to update in bulk |
| --workspace <workspace_slug> | text | — | Override active workspace |
Exit codes: 0 — completed · 1 — written-but-invalid
Show version history for the workspace (like git log).
deepcell log [filename_pos]
deepcell log| Flag | Type | Default | What it does |
|---|---|---|---|
| --file <filename> | text | — | Filter by filename. |
| --limit <limit> | integer | 20 | Number of entries to show. |
| --after <after_sha> | text | — | Pagination cursor: start AFTER this commit sha. Pass the last sha of the previous page to read the next one. |
Exit codes: 0 — completed
Authenticate with the DeepCell API.
deepcell login| Flag | Type | Default | What it does |
|---|---|---|---|
| --email <email> | text | — | Email for direct login (headless/CI). |
| --password <password> | text | — | Password for direct login (headless/CI). |
Exit codes: 0 — completed
Log out and remove stored credentials.
deepcell logoutExit codes: 0 — completed
List files in the active workspace.
deepcell lsExit codes: 0 — completed
Apply conflict resolutions to a pending merge session.
deepcell merge apply <session_id> --resolve <strategy>| Flag | Type | Default | What it does |
|---|---|---|---|
| --resolve <strategy> | ours | theirs | required | Resolution strategy for all conflicts. |
| --file <filename> | text | — | Write merged result to this local file. |
Exit codes: 0 — completed · 1 — conflict
Preview a three-way merge for a .deepcell file.
deepcell merge preview <filename>
deepcell merge preview model.deepcell| Flag | Type | Default | What it does |
|---|---|---|---|
| --base <base_rev> | text | — | Base revision SHA (defaults to last_sync_sha). |
| --theirs-rev <theirs_rev> | text | — | Revision for theirs (defaults to HEAD). |
Exit codes: 0 — completed · 1 — conflict
Resolve a sync conflict for a .deepcell file.
deepcell merge resolve <filename>
deepcell merge resolve model.deepcell| Flag | Type | Default | What it does |
|---|---|---|---|
| --ours | text | — | Resolve all conflicts with local values. |
| --theirs | text | — | Resolve all conflicts with remote values. |
Exit codes: 0 — completed · 1 — conflict
Fetch latest cloud changes to the local folder.
deepcell pullExit codes: 0 — completed · 1 — conflict
Upload local changes to the cloud workspace.
deepcell push| Flag | Type | Default | What it does |
|---|---|---|---|
| --message <message> | text | "" | Commit message for the push. |
Exit codes: 0 — completed · 1 — written-but-invalid
Query a .deepcell file.
deepcell query <filename> [item_ref] [context_ref] [status_ref]
deepcell query model.deepcell Revenue FY2026E| Flag | Type | Default | What it does |
|---|---|---|---|
| --scenario <scenario_ref> | text | — | Scenario dimension (omit for default scenario). |
| --custom-dimensions <custom_dimensions> | text | — | Custom dimensions as 'dim:member;dim:member', e.g. 'geography:na'. |
| --sheet <sheet_id> | text | — | Render a full sheet as markdown table. |
| --block <block_id> | text | — | Render a specific block within a sheet. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
Exit codes: 0 — completed
Add a new <Argument> edge to FILENAME's <Reasoning> section.
deepcell reasoning add-argument <filename> --from-id <from_id> --to-id <to_id> --rel <rel>
deepcell reasoning add-argument model.deepcell --from-id r_pricing --to-id t_gm --rel refutes --weight 0.6| Flag | Type | Default | What it does |
|---|---|---|---|
| --from-id <from_id> | text | required | Source node id. |
| --to-id <to_id> | text | required | Target node id. |
| --rel <rel> | supports | refutes | depends_on | derives_from | variant_of | supersedes | contradicts | references | required | How --from-id relates to --to-id: supports / refutes (evidential), depends_on (falsifying the target falsifies the source), derives_from (computed or inferred from it), variant_of (your view vs a consensus claim), supersedes (replaces an older node), contradicts, references. See `deepcell guide reasoning`. |
| --id <arg_id> | text | — | Argument id (auto-generated if omitted). |
| --weight <weight> | float | — | How much this edge carries, 0-1 (optional). |
| --body <body> | text | — | <Body> text. |
| --body-file <body_file> | file | — | File holding the <Body> text; '-' reads stdin. Prefer this over --body for text containing '$' — inline shell arguments mangle dollar amounts. |
| --status <status> | text | — | Argument lifecycle status (active/superseded/revoked). |
Exit codes: 0 — completed · 1 — written-but-invalid
Add a new <Assumption> to FILENAME's <Reasoning> section.
deepcell reasoning add-assumption <filename> --id <assumption_id>
deepcell reasoning add-assumption model.deepcell --id a_hiring --label 'Hiring lands on plan' --body 'Sales headcount reaches 40 by Q3.' --item-refs Headcount| Flag | Type | Default | What it does |
|---|---|---|---|
| --id <assumption_id> | text | required | New Assumption id. |
| --label <label> | text | — | <Label> text. |
| --label-file <label_file> | file | — | File holding the <Label> text; '-' reads stdin. Prefer this over --label for text containing '$' — inline shell arguments mangle dollar amounts. |
| --body <body> | text | — | <Body> text. |
| --body-file <body_file> | file | — | File holding the <Body> text; '-' reads stdin. Prefer this over --body for text containing '$' — inline shell arguments mangle dollar amounts. |
| --status-ref <status_ref> | text | — | Model Status dimension id (e.g. actual / projected) — NOT the assumption's lifecycle state (that is --status). |
| --calc-ref <calc_ref> | text | — | CalcDef id anchoring this assumption to a formula in the model. |
| --item-refs <item_refs> | text | — | Comma-separated item ids the assumption constrains. Without it the unanchored_assumption lint warns — the assumption cannot be impact-traced or falsified when actuals drift in (macro assumptions may legitimately omit it). |
| --confidence <confidence> | float | — | How strongly you hold this assumption, 0-1. |
| --status <status> | holding | uncertain | broken | superseded | — | Assumption lifecycle state: holding until something contradicts it, broken once actuals do, superseded when a newer assumption replaces it. |
| --verified-at <verified_at> | text | — | ISO date (YYYY-MM-DD) this assumption was last confirmed to still hold (@verifiedAt). Records WHEN it was checked; --status holding records that it stands. |
| --broken-at <broken_at> | text | — | ISO date (YYYY-MM-DD) this assumption was found no longer to hold (@brokenAt). Records WHEN it failed; --status broken records THAT it failed — set both when actuals contradict an assumption. |
Exit codes: 0 — completed · 1 — written-but-invalid
Add a new <Claim> to FILENAME's <Reasoning> section.
deepcell reasoning add-claim <filename> --id <claim_id> --kind <kind>
deepcell reasoning add-claim model.deepcell --id t_gm --kind thesis --label 'Gross margin expands' --body 'Mix shift to subscription lifts GM 200bps.' --item-refs Gross_Margin_Pct --confidence 0.62| Flag | Type | Default | What it does |
|---|---|---|---|
| --id <claim_id> | text | required | New Claim id. |
| --kind <kind> | thesis | risk | catalyst | counter | question | market_consensus | knowledge | required | What the claim is: thesis (what you conclude), risk / catalyst (what moves it, needs --probability), counter (the case against), question (open), market_consensus (someone else's view, needs --attribution), knowledge (a durable fact). See `deepcell guide reasoning`. |
| --label <label> | text | — | <Label> text. |
| --label-file <label_file> | file | — | File holding the <Label> text; '-' reads stdin. Prefer this over --label for text containing '$' — inline shell arguments mangle dollar amounts. |
| --body <body> | text | — | <Body> text. |
| --body-file <body_file> | file | — | File holding the <Body> text; '-' reads stdin. Prefer this over --body for text containing '$' — inline shell arguments mangle dollar amounts. |
| --status-ref <status_ref> | text | — | Model Status dimension id (e.g. actual / projected) — NOT the claim lifecycle state (that is --status). Not permitted on --kind knowledge: knowledge claims are timeless (lint: status_ref_on_knowledge, error). |
| --calc-ref <calc_ref> | text | — | CalcDef id anchoring this claim to a formula in the model. |
| --item-refs <item_refs> | text | — | Comma-separated item ids anchoring this claim to the model. thesis/risk/catalyst claims need --item-refs or --calc-ref, else the unanchored_claim lint warns (they become invisible to reasoning-diff and item-scoped queries). question/knowledge/market_consensus are exempt. |
| --probability <probability> | float | — | Likelihood, 0-1 (required for kind=risk / catalyst). |
| --severity <severity> | low | med | high | — | Qualitative impact (required for kind=risk). |
| --confidence <confidence> | float | — | How strongly you hold this claim, 0-1. |
| --parent-claim-ref <parent_claim_ref> | text | — | Claim id this one hangs under (hierarchy, not an Argument edge). |
| --attribution <attribution> | text | — | Who holds this view (required for kind=market_consensus), e.g. 'Bloomberg consensus, 2026-07'. |
| --status <status> | draft | active | superseded | falsified | revoked | — | Claim lifecycle state — NOT the model's Status dimension (that is --status-ref). |
Exit codes: 0 — completed · 1 — written-but-invalid
Add a new <Evidence> to FILENAME's <Reasoning> section.
deepcell reasoning add-evidence <filename> --id <evidence_id> --source-ref <source_ref>
deepcell reasoning add-evidence model.deepcell --id e_10k --source-ref src_aapl_10k_fy25 --excerpt 'Gross margin of 46.2%' --retrieved-at 2026-02-19T10:30:00Z| Flag | Type | Default | What it does |
|---|---|---|---|
| --id <evidence_id> | text | required | New Evidence id. |
| --source-ref <source_ref> | text | required | sourceId of a <Source> in <SourceDefinitions>. |
| --excerpt <excerpt> | text | — | <Excerpt> text. |
| --excerpt-file <excerpt_file> | file | — | File holding the <Excerpt> text; '-' reads stdin. Prefer this over --excerpt for text containing '$' — inline shell arguments mangle dollar amounts. |
| --at <at> | text | — | Position in the source (page:47, t:00:14:32, text:HEADING). |
| --reliability <reliability> | text | — | primary | secondary | tertiary. |
| --effective-date <effective_date> | text | — | ISO8601 date. |
| --retrieved-at <retrieved_at> | text | — | ISO8601 date. |
Exit codes: 0 — completed · 1 — written-but-invalid
Delete the <Argument> NODE_ID from FILENAME's <Reasoning> section.
deepcell reasoning delete-argument <filename> <node_id>
deepcell reasoning delete-argument model.deepcell <node_id>| Flag | Type | Default | What it does |
|---|---|---|---|
| --cascade | boolean | — | Also remove every Argument touching the node (default). --no-cascade keeps them, and is refused with code=would_dangle unless you also pass --allow-dangling — an Argument's @id is optional, so a dangling edge cannot reliably be found and cleaned up later. |
| --allow-dangling | boolean | — | With --no-cascade, permit the delete even though it orphans Arguments. |
Exit codes: 0 — completed · 1 — written-but-invalid
Delete the <Assumption> NODE_ID from FILENAME's <Reasoning> section.
deepcell reasoning delete-assumption <filename> <node_id>
deepcell reasoning delete-assumption model.deepcell <node_id>| Flag | Type | Default | What it does |
|---|---|---|---|
| --cascade | boolean | — | Also remove every Argument touching the node (default). --no-cascade keeps them, and is refused with code=would_dangle unless you also pass --allow-dangling — an Argument's @id is optional, so a dangling edge cannot reliably be found and cleaned up later. |
| --allow-dangling | boolean | — | With --no-cascade, permit the delete even though it orphans Arguments. |
Exit codes: 0 — completed · 1 — written-but-invalid
Delete the <Claim> NODE_ID from FILENAME's <Reasoning> section.
deepcell reasoning delete-claim <filename> <node_id>
deepcell reasoning delete-claim model.deepcell t_gm --cascade| Flag | Type | Default | What it does |
|---|---|---|---|
| --cascade | boolean | — | Also remove every Argument touching the node (default). --no-cascade keeps them, and is refused with code=would_dangle unless you also pass --allow-dangling — an Argument's @id is optional, so a dangling edge cannot reliably be found and cleaned up later. |
| --allow-dangling | boolean | — | With --no-cascade, permit the delete even though it orphans Arguments. |
Exit codes: 0 — completed · 1 — written-but-invalid
Delete the <Evidence> NODE_ID from FILENAME's <Reasoning> section.
deepcell reasoning delete-evidence <filename> <node_id>
deepcell reasoning delete-evidence model.deepcell <node_id>| Flag | Type | Default | What it does |
|---|---|---|---|
| --cascade | boolean | — | Also remove every Argument touching the node (default). --no-cascade keeps them, and is refused with code=would_dangle unless you also pass --allow-dangling — an Argument's @id is optional, so a dangling edge cannot reliably be found and cleaned up later. |
| --allow-dangling | boolean | — | With --no-cascade, permit the delete even though it orphans Arguments. |
Exit codes: 0 — completed · 1 — written-but-invalid
Render the Argument graph from FILENAME as Mermaid (default) or DOT.
deepcell reasoning graph <filename>
deepcell reasoning graph model.deepcell --syntax mermaid| Flag | Type | Default | What it does |
|---|---|---|---|
| --syntax <graph_syntax> | mermaid | dot | mermaid | Graph syntax to emit. Use the global -f json for the raw graph payload. |
Exit codes: 0 — completed
Walk Argument edges from CLAIM_ID and list downstream nodes affected if it's falsified.
deepcell reasoning impact <filename> <claim_id>
deepcell reasoning impact model.deepcell a_hiringExit codes: 0 — completed
Lint the <Reasoning> section of FILENAME for structural issues.
deepcell reasoning lint <filename>
deepcell reasoning lint model.deepcell --strict| Flag | Type | Default | What it does |
|---|---|---|---|
| --strict | boolean | — | Exit non-zero on warn-level findings too (default: only error-level findings fail). |
Exit codes: 0 — completed · 1 — read-only-check
Declare which Claim is FILENAME's main conclusion.
deepcell reasoning set-conclusion <filename> [claim_id]
deepcell reasoning set-conclusion model.deepcell t_gm| Flag | Type | Default | What it does |
|---|---|---|---|
| --clear | boolean | — | Remove the declaration and fall back to deriving the apex from the argument topology. |
Exit codes: 0 — completed · 1 — written-but-invalid
Replace ASSUMPTION_ID with a new Assumption, keeping the old as history.
deepcell reasoning supersede-assumption <filename> <assumption_id> --id <new_id>
deepcell reasoning supersede-assumption model.deepcell a_hiring --id a_hiring_v2 --label 'Hiring lands one quarter late'| Flag | Type | Default | What it does |
|---|---|---|---|
| --id <new_id> | text | required | Id of the replacement Assumption. |
| --label <label> | text | — | <Label> text of the replacement. |
| --label-file <label_file> | file | — | File holding the replacement <Label> text; '-' reads stdin. Prefer this over --label for text containing '$' — inline shell arguments mangle dollar amounts. |
| --body <body> | text | — | <Body> text of the replacement. |
| --body-file <body_file> | file | — | File holding the replacement <Body> text; '-' reads stdin. Prefer this over --body for text containing '$' — inline shell arguments mangle dollar amounts. |
| --item-refs <item_refs> | text | — | Comma-separated item ids. |
| --status-ref <status_ref> | text | — | Model Status dimension id. |
| --calc-ref <calc_ref> | text | — | CalcDef id this assumption drives. |
| --confidence <confidence> | float | — | Confidence in the replacement, 0-1. |
| --status <status> | holding | uncertain | broken | superseded | — | Lifecycle status of the replacement. |
Exit codes: 0 — completed · 1 — written-but-invalid
Replace CLAIM_ID with a new Claim, keeping the old one as history.
deepcell reasoning supersede-claim <filename> <claim_id> --id <new_id>
deepcell reasoning supersede-claim model.deepcell t_gm --id t_gm_v2 --label 'Gross margin expands, slower' --body 'Mix shift lifts GM 120bps.' --confidence 0.55| Flag | Type | Default | What it does |
|---|---|---|---|
| --id <new_id> | text | required | Id of the replacement Claim. |
| --label <label> | text | — | <Label> text of the replacement. |
| --label-file <label_file> | file | — | File holding the replacement <Label> text; '-' reads stdin. Prefer this over --label for text containing '$' — inline shell arguments mangle dollar amounts. |
| --body <body> | text | — | <Body> text of the replacement. |
| --body-file <body_file> | file | — | File holding the replacement <Body> text; '-' reads stdin. Prefer this over --body for text containing '$' — inline shell arguments mangle dollar amounts. |
| --kind <kind> | thesis | risk | catalyst | counter | question | market_consensus | knowledge | — | Kind of the replacement (defaults to the superseded claim's kind). |
| --item-refs <item_refs> | text | — | Comma-separated item ids. |
| --context-refs <context_refs> | text | — | Comma-separated context ids. |
| --status-ref <status_ref> | text | — | Model Status dimension id. |
| --calc-ref <calc_ref> | text | — | CalcDef id this claim is anchored to. |
| --confidence <confidence> | float | — | Confidence in the replacement, 0-1. |
Exit codes: 0 — completed · 1 — written-but-invalid
Patch an <Argument> edge; only the attributes you pass are changed.
deepcell reasoning update-argument <filename> <argument_id>
deepcell reasoning update-argument model.deepcell arg_pricing --weight 0.6| Flag | Type | Default | What it does |
|---|---|---|---|
| --rel <rel> | supports | refutes | depends_on | derives_from | variant_of | supersedes | contradicts | references | — | Reclassify the edge — see `deepcell reasoning add-argument --help`. |
| --weight <weight> | float | — | How much this edge carries, 0-1. |
| --body <body> | text | — | Replacement <Body> text. |
| --body-file <body_file> | file | — | File holding the replacement <Body> text; '-' reads stdin. Prefer this over --body for text containing '$' — inline shell arguments mangle dollar amounts. |
| --status <status> | text | — | Argument lifecycle status (active / superseded / revoked). |
Exit codes: 0 — completed · 1 — written-but-invalid
Update attributes on an existing <Assumption> ASSUMPTION_ID.
deepcell reasoning update-assumption <filename> <assumption_id>
deepcell reasoning update-assumption model.deepcell a_hiring --status broken --broken-at 2026-07-31| Flag | Type | Default | What it does |
|---|---|---|---|
| --label <label> | text | — | Replacement <Label> text. |
| --label-file <label_file> | file | — | File holding the replacement <Label> text; '-' reads stdin. Prefer this over --label for text containing '$' — inline shell arguments mangle dollar amounts. |
| --body <body> | text | — | Replacement <Body> text. |
| --body-file <body_file> | file | — | File holding the replacement <Body> text; '-' reads stdin. Prefer this over --body for text containing '$' — inline shell arguments mangle dollar amounts. |
| --status-ref <status_ref> | text | — | Model Status dimension id (e.g. actual / projected) — NOT the assumption's lifecycle state (that is --status). |
| --calc-ref <calc_ref> | text | — | CalcDef id anchoring this assumption to a formula in the model. |
| --item-refs <item_refs> | text | — | Comma-separated item ids the assumption constrains — the cheap fix for an unanchored_assumption lint warning. |
| --confidence <confidence> | float | — | How strongly you hold this assumption, 0-1. |
| --status <status> | holding | uncertain | broken | superseded | — | Assumption lifecycle state: holding until something contradicts it, broken once actuals do, superseded when a newer assumption replaces it. |
| --verified-at <verified_at> | text | — | ISO date (YYYY-MM-DD) this assumption was last confirmed to still hold (@verifiedAt). Records WHEN it was checked; --status holding records that it stands. |
| --broken-at <broken_at> | text | — | ISO date (YYYY-MM-DD) this assumption was found no longer to hold (@brokenAt). Records WHEN it failed; --status broken records THAT it failed — set both when actuals contradict an assumption. |
Exit codes: 0 — completed · 1 — written-but-invalid
Update attributes on an existing <Claim> CLAIM_ID in FILENAME.
deepcell reasoning update-claim <filename> <claim_id>
deepcell reasoning update-claim model.deepcell t_gm --status falsified| Flag | Type | Default | What it does |
|---|---|---|---|
| --kind <kind> | thesis | risk | catalyst | counter | question | market_consensus | knowledge | — | Reclassify the claim — see `deepcell reasoning add-claim --help` for what each kind means. |
| --label <label> | text | — | Replacement <Label> text. |
| --label-file <label_file> | file | — | File holding the replacement <Label> text; '-' reads stdin. Prefer this over --label for text containing '$' — inline shell arguments mangle dollar amounts. |
| --body <body> | text | — | Replacement <Body> text. |
| --body-file <body_file> | file | — | File holding the replacement <Body> text; '-' reads stdin. Prefer this over --body for text containing '$' — inline shell arguments mangle dollar amounts. |
| --status-ref <status_ref> | text | — | Model Status dimension id (e.g. actual / projected) — NOT the claim lifecycle state (that is --status). Not permitted on --kind knowledge: knowledge claims are timeless (lint: status_ref_on_knowledge, error). |
| --calc-ref <calc_ref> | text | — | CalcDef id anchoring this claim to a formula in the model. |
| --item-refs <item_refs> | text | — | Comma-separated item ids anchoring this claim to the model — the cheap fix for an unanchored_claim lint warning. |
| --probability <probability> | float | — | Likelihood, 0-1 (required for kind=risk / catalyst). |
| --severity <severity> | low | med | high | — | Qualitative impact (required for kind=risk). |
| --confidence <confidence> | float | — | How strongly you hold this claim, 0-1. |
| --parent-claim-ref <parent_claim_ref> | text | — | Claim id this one hangs under (hierarchy, not an Argument edge). |
| --attribution <attribution> | text | — | Who holds this view (required for kind=market_consensus). |
| --status <status> | draft | active | superseded | falsified | revoked | — | Claim lifecycle state — NOT the model's Status dimension (that is --status-ref). |
Exit codes: 0 — completed · 1 — written-but-invalid
Patch an <Evidence> node; only the attributes you pass are changed.
deepcell reasoning update-evidence <filename> <evidence_id>
deepcell reasoning update-evidence model.deepcell <evidence_id>| Flag | Type | Default | What it does |
|---|---|---|---|
| --label <label> | text | — | Replacement <Label> text. |
| --label-file <label_file> | file | — | File holding the replacement <Label> text; '-' reads stdin. Prefer this over --label for text containing '$' — inline shell arguments mangle dollar amounts. |
| --body <body> | text | — | Replacement <Body> text. |
| --body-file <body_file> | file | — | File holding the replacement <Body> text; '-' reads stdin. Prefer this over --body for text containing '$' — inline shell arguments mangle dollar amounts. |
| --source <source> | text | — | Replacement @source (where the evidence came from). |
| --url <url> | text | — | Replacement @url. |
| --as-of <as_of> | text | — | Replacement @asOf date (ISO). |
| --item-refs <item_refs> | text | — | Comma-separated item ids. |
| --context-refs <context_refs> | text | — | Comma-separated context ids. |
Exit codes: 0 — completed · 1 — written-but-invalid
Warn when an edit moved something a Claim was anchored to.
deepcell reasoning-diff <file>
deepcell reasoning-diff model.deepcell| Flag | Type | Default | What it does |
|---|---|---|---|
| --accept | boolean | — | Print warnings but exit 0 (acknowledge and continue). |
| --since-branch-base <since_branch_base> | path | — | Path to a third .deepcell file representing the branch base. When supplied, drift is computed across both branch_base->HEAD and HEAD->working intervals so accumulated commits surface. |
Exit codes: 0 — completed · 1 — read-only-check · 2 — unparseable-document
Look up legal values, and resolve any typed id.
deepcell ref [target...]
deepcell ref lint/hardcoded_literal_in_calc| Flag | Type | Default | What it does |
|---|---|---|---|
| --limit <limit> | integer | 40 | Maximum search results. |
Exit codes: 0 — completed
Create a new DeepCell account (headless/CI).
deepcell register| Flag | Type | Default | What it does |
|---|---|---|---|
| --email <email> | text | — | Account email. |
| --password <password> | text | — | Account password (min 8 chars). |
| --name <display_name> | text | — | Your display name. |
| --locale <locale> | text | zh-CN | Locale (default: zh-CN). |
Exit codes: 0 — completed
Show the relationship graph of a .deepcell file.
deepcell relationships <filename>
deepcell relationships model.deepcell --type business| Flag | Type | Default | What it does |
|---|---|---|---|
| --type <graph_type> | items | dependencies | blocks | business | unified | unified | Graph type. 'business' is the Item-centric Relationships workspace. |
Exit codes: 0 — completed
Replace raw XML text in a file — the last-resort editor.
deepcell replace <filename> [old_string] [new_string]
deepcell replace model.deepcell "<Old>text</Old>" "<New>text</New>"| Flag | Type | Default | What it does |
|---|---|---|---|
| --replace-all | boolean | — | Replace every occurrence instead of requiring a unique match. |
| --batch <batch_file> | text | — | Replacement as a JSON object {"old_string": "...", "new_string": "..."} — a file path, '-' for stdin, or inline JSON. Use this for multiline XML. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking. |
| --message <commit_message> | text | — | Git commit message for the write. |
| --workspace <workspace_slug> | text | — | Override active workspace. |
Exit codes: 0 — completed · 1 — written-but-invalid
Restore the workspace to a previous revision (like git checkout).
deepcell restore <revision>| Flag | Type | Default | What it does |
|---|---|---|---|
| --file <filename> | text | — | Restore specific file only. |
| --yes | boolean | — | Skip confirmation prompt. |
Exit codes: 0 — completed
Delete a file from the workspace.
deepcell rm <filename>
deepcell rm model.deepcell| Flag | Type | Default | What it does |
|---|---|---|---|
| --yes | boolean | — | Skip confirmation prompt. |
Exit codes: 0 — completed
The non-negotiable invariants every .deepcell model must satisfy.
deepcell rules [rule_id]
deepcell rules R2| Flag | Type | Default | What it does |
|---|---|---|---|
| --pack <pack> | text | — | Restrict to the core rules plus this pack's (e.g. finance). |
| --full | boolean | — | Print every rule in full, not just the index — one call, every invariant, no per-rule round trips. |
Exit codes: 0 — completed
Create a share link for FILENAME and print its viewer URL.
deepcell share create <filename>
deepcell share create model.deepcell --permission view| Flag | Type | Default | What it does |
|---|---|---|---|
| --permission <permission> | view | edit | view | Access level for the link. Edit links require an account. |
| --expires-days <expires_days> | integer range | — | Days until the link expires. Every link expires; omit this to take the server default (90 days, or 7 for a password-less --permission edit link and for anonymous sessions). Larger values are clamped to that cap. |
| --password <password> | text | — | Password-protect the link (account required). |
| --label <label> | text | — | Label to recognize the link in `share list`. |
Exit codes: 0 — completed
List active share links in the workspace.
deepcell share list| Flag | Type | Default | What it does |
|---|---|---|---|
| --file <filename> | text | — | Only links for this file. |
Exit codes: 0 — completed
Revoke a share link by its id (see `share list`).
deepcell share revoke <share_id>Exit codes: 0 — completed
Show local changes vs last sync.
deepcell statusExit codes: 0 — completed
Export one document's prose as a Word file.
deepcell to-docx <filename>
deepcell to-docx model.deepcell --doc variance_note -o variance-note.docx| Flag | Type | Default | What it does |
|---|---|---|---|
| --doc <doc_id> | text | — | Document ID (required when the file has multiple documents). |
| --scenario <scenario_id> | text | — | Document scenario ID to export. |
| --output <out_path> | text | — | Output path (default: <filename>.docx). |
| --bundle | boolean | — | Link to sibling .xlsx / .pptx exports written alongside this one. |
Exit codes: 0 — completed
Export a .deepcell file to Excel format.
deepcell to-excel <filename>
deepcell to-excel model.deepcell -o model.xlsx| Flag | Type | Default | What it does |
|---|---|---|---|
| --output <out_path> | text | — | Output file path (default: <filename>.xlsx). |
| --formulas | boolean | — | Export with live Excel formulas. |
| --recalculate | boolean | — | Recompute formula values via the LibreOffice service (requires --formulas). |
| --scenario <scenario_id> | text | — | Document scenario ID to export (applies its VariableOverrides; omit for the default scenario). |
| --variant <variant_id> | text | — | (removed) Never worked — see --scenario for document scenarios. |
Exit codes: 0 — completed
Export a deck or a document as a PDF.
deepcell to-pdf <filename>
deepcell to-pdf model.deepcell| Flag | Type | Default | What it does |
|---|---|---|---|
| --from <source> | deck | doc | deck | Which surface to render: the presentation deck, or the prose document. |
| --deck <deck_id> | text | — | Deck ID (required when the file has multiple decks). |
| --doc <doc_id> | text | — | Document ID (required when the file has multiple documents). |
| --scenario <scenario_id> | text | — | Document scenario ID to export. |
| --output <out_path> | text | — | Output path (default: <filename>_<deck|doc>.pdf). |
Exit codes: 0 — completed
Export one document-defined HTML deck as editable PowerPoint objects.
deepcell to-pptx <filename>
deepcell to-pptx model.deepcell --deck board -o board.pptx| Flag | Type | Default | What it does |
|---|---|---|---|
| --deck <deck_id> | text | — | Deck ID (required when the document has multiple decks). |
| --scenario <scenario_id> | text | — | Document scenario ID to export. |
| --output <out_path> | text | — | Output path (default: <filename>.pptx). |
Exit codes: 0 — completed
Check whether a newer deepcell CLI has been published.
deepcell upgradeExit codes: 0 — completed
Ask the package index right now and update the cached answer.
deepcell upgrade check| Flag | Type | Default | What it does |
|---|---|---|---|
| --timeout <timeout> | float | 3 | How long to wait for each package index. |
Exit codes: 0 — completed
Turn the automatic upgrade check off.
deepcell upgrade disableExit codes: 0 — completed
Turn the automatic upgrade check on (the default).
deepcell upgrade enableExit codes: 0 — completed
Show the setting and the last cached answer.
deepcell upgrade statusExit codes: 0 — completed
Check out a variant branch for local edits.
deepcell variant checkout [name]
deepcell variant checkout| Flag | Type | Default | What it does |
|---|---|---|---|
| --main | boolean | — | Switch back to the main branch (clear active variant). |
Exit codes: 0 — completed
Create a new variant branch.
deepcell variant create <name>Exit codes: 0 — completed
Show diff between a variant branch and main.
deepcell variant diff [name]
deepcell variant diff| Flag | Type | Default | What it does |
|---|---|---|---|
| --file <file_path> | text | — | Limit the diff to a single file. |
Exit codes: 0 — completed
List variants in the workspace.
deepcell variant listExit codes: 0 — completed
Merge a variant branch back into main.
deepcell variant merge [name]
deepcell variant merge| Flag | Type | Default | What it does |
|---|---|---|---|
| --resolve <resolve> | ours | theirs | — | Conflict resolution strategy: 'ours' keeps main, 'theirs' keeps variant. |
Exit codes: 0 — completed · 1 — conflict
Verify your email address.
deepcell verify-emailExit codes: 0 — completed
Print the browser URL to open FILENAME in the web workbench.
deepcell viewer <filename>
deepcell viewer model.deepcell| Flag | Type | Default | What it does |
|---|---|---|---|
| --workspace <workspace_slug> | text | — | Override active workspace. |
| --open | boolean | — | Open the URL in the default browser. |
Exit codes: 0 — completed
Show the currently authenticated user.
deepcell whoamiExit codes: 0 — completed
Create a new workspace.
deepcell workspace create <name>| Flag | Type | Default | What it does |
|---|---|---|---|
| --slug <slug> | text | — | URL-friendly slug (auto-generated from name if omitted). |
| --description <description> | text | "" | Workspace description. |
Exit codes: 0 — completed
Show workspace details.
deepcell workspace info [slug]
deepcell workspace infoExit codes: 0 — completed
List workspaces you belong to.
deepcell workspace listExit codes: 0 — completed
Set the active workspace for subsequent commands.
deepcell workspace use <slug>
deepcell workspace use my-workspaceExit codes: 0 — completed
Create a file, or replace an existing one wholesale.
deepcell write <filename>
deepcell write model.deepcell --file ./model.deepcell| Flag | Type | Default | What it does |
|---|---|---|---|
| --stdin | boolean | — | Read content from stdin. |
| --file <from_file> | path | — | Read content from a local file. |
| --content <from_content> | text | — | Pass file content inline (useful for MCP/programmatic access). |
| --content-base64 <from_b64> | text | — | Pass file content as a base64-encoded string. |
| --message <message> | text | "" | Commit message. |
| --revision <revision> | text | — | Expected revision SHA for optimistic locking — the `Revision:` line `deepcell cat` prints on stderr. The write is refused with a conflict if FILENAME changed since (a change to a different file is not a conflict). |
Exit codes: 0 — completed · 1 — written-but-invalid
The invariants every model must satisfy, each with a stable id that other surfaces cite. Where a rule has lint backing, the listed code is what prints when the rule is broken — which is what turns it from advice into something you can check. The rest are audited in review.
deepcell rules R2| Rule | What it says | Enforced by | Lint code |
|---|---|---|---|
| rule:R1 | Native generation — Excel at the edges only | review | — |
| rule:R2 | Driver-based forecasts | lint | hardcoded_literal_in_calc |
| rule:R3 | One model per request — one file, edited in place | review | — |
| rule:R4 | Forecasts must populate — verify by query-back | review | — |
| rule:R5 | Self-checking calculations | review | — |
| rule:R6 | Point-in-time results stay in their period | review | — |
| rule:R7 | Canonical naming and units | lint | monetary_units |
| rule:R8 | Reasoning is mandatory | lint | unanchored_claim, unanchored_assumption, exclusivity_assertion, body_itemrefs_mismatch |
| rule:R9 | Every model carries PresentationDefinitions | lint | unrendered_value |
| rule:R10 | A DCF carries a real FCF bridge | review | — |
| rule:R11 | Circular structures by deliberate convention — and seeded | review | — |
| rule:R12 | Assumptions are grounded | review | — |
| rule:R13 | Statuses and periods declare what they mean | lint | undeclared_status_archetype, undeclared_context_state |
| rule:R14 | The model states its conclusion | lint | missing_apex_recommendation, dangling_conclusion_ref |
| rule:R15 | Prose that asserts a value must link it | review | — |
| rule:R16 | An outward address lives in exactly one place | review | — |
| rule:R17 | A cross-surface reference is a deepcell: URI | review | — |
Complete, valid documents to start from, each chosen for the mechanic it demonstrates rather than its industry. They are rebuilt from their own transcripts and linted in CI, so none of them is a stale snippet. Copy the line under one to seed a file with it.
| Example | The mechanic it shows | Domain |
|---|---|---|
| finance/saas-dcf | the full three-statement + DCF loop | finance |
| ops/headcount-plan | items × contexts, drivers, and scenarios | HR / operations |
| project/build-budget | status axis (committed / actual / forecast) and variance self-checks | construction, grants |
| research/experiment-results | custom dimensions, actual vs expected status, and a <Document> write-up | science / clinical research |
| supply/inventory-plan | sensitivity blocks | logistics |
A linked income statement, balance sheet and cash flow statement feeding an unlevered DCF whose every forecast number traces to a driver item — with the three self-checks (BS_Check, CF_Recon, EV_Check) that prove the loop closed.
deepcell example get finance/saas-dcf --into <into>Two hiring plans out of one model — every derived number traces to an editable driver row, and the second scenario is the handful of cells that differ rather than a second copy of the file.
deepcell example get ops/headcount-plan --into <into>Three readings of the same cell live on the Status dimension — not in three parallel item trees — a calc reaches across them with `Item[ctx]#status`, and every allocation and variance carries a cross-check whose correct answer is known to be 0.
deepcell example get project/build-budget --into <into>A third axis and a second reading on the same row — cohort is a custom Dimension that slices every data row instead of doubling it, and measured sits beside pre-registered under one item id rather than under two. The readout itself ships as a <Document>: every number in the prose is a link, so re-running the trial's numbers rewrites the write-up.
deepcell example get research/experiment-results --into <into>Sensitivity is a native `blockType="sensitivity"` block whose every cell is a transient recompute of the model — never a ladder of near-duplicate perturbation items — shown in all three legal shapes: 2-variable grid, 1-variable table, and scenario comparison.
deepcell example get supply/inventory-plan --into <into>