Skip to content

Add tml copies to publishing skill - #1

Open
tanishka-singhal-ts wants to merge 4 commits into
thoughtspot:mainfrom
tanishka-singhal-ts:add-tml-copies-to-publishing-skill
Open

tanishka-singhal-ts wants to merge 4 commits into
thoughtspot:mainfrom
tanishka-singhal-ts:add-tml-copies-to-publishing-skill

Conversation

@tanishka-singhal-ts

Copy link
Copy Markdown

No description provided.

Tanishka SInghal and others added 4 commits September 11, 2026 11:20
Adds the first guided-procedure skill to the plugin: moving per-tenant
Model copies created by TML export/import onto Orgs Publishing, so one
governed Model serves every Org instead of a copy per Org.

The skill is structured so that the whole assessment — can the governed
Model stand in for the tenant's copy — happens offline from two TML
exports, before anything is written. Every write step is gated on a
confirmation, and the tenant's copy is never deleted, because it is the
rollback.

- skills/migrate-tml-copies-to-publishing/SKILL.md — the procedure,
  prerequisites including the Primary-Org privilege model, the errors
  the platform raises and what each means, and the View and nested
  dependent traps in repointing
- references/assessing-two-exports.md — the offline comparison: table
  pairing on column sets, which differences are expected, the column
  map, verdicts, and the multi-join-path hole
- CLAUDE.md, README.md — list the skill, split into documentation
  lookup and guided procedures

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Remove the first draft of migrate-tml-copies-to-publishing: it kept the
copy, left sharing out and re-keyed only the Model, none of which held
up against a live cluster.

Add the design (docs/migrate-tml-copies-design.md) and the test plan
with results (docs/migrate-tml-copies-test-scenarios.md). The basic
scenario - one shared Answer on an identical copy - passed end to end
on a live multi-Org cluster: compare, publish with a per-Org variable,
carry the copy's sharing, repoint in place, verify the same numbers as
a tenant user, and delete the copy with its Tables and connection.

The skill itself is rebuilt from this design in the documented build
order.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The procedure that passed on a live multi-Org cluster, written for an
agent: compare the two TML exports, re-key the copy's obj_ids (Model,
Tables, connection), parameterize the schema with a per-Org variable,
publish, wait for the published Model to be searchable, carry the
copy's sharing, back up and repoint each Answer in place, verify, and
delete the copy with its Tables and connection.

v0 covers one Org, a copy identical column for column, and Answers;
anything else is refused as not yet supported.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The first run from SKILL.md alone (Org mig_1_2) passed end to end and
exposed gaps in the instructions:

- Requirements: allow one MCP server per Org (token per Org) when the
  tool has no org_identifier; confirm each server's current_org first.
- Step 2: a Table's V2 dependents include content built on the Model;
  only stop when a dependent's TML references the Table directly. Stop
  if inaccessible dependents are not returned. Save raw responses.
- Step 3a: split into case A (variable exists: add this Org's value
  only) and case B. Give the exact update-values body:
  variable_value_scope is top-level, not inside the assignment.
  Full parameterize body. Primary check query after either case.
- Step 7: check the copy is unchanged by comparing TML with inputs/,
  ignoring obj_id; the 3b re-key changes its modified time.
- Add a Report step that writes report.md for the customer.
- Ignore migration/ (exports, backups, ledgers).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant