Product

What TSE-Assistant does, step by step

Developer tools that work in your IDE, on your machine. Sofia, an AI assistant for your functional team. One set of rules for both.

Development

The whole implementation loop — not just code suggestions

Hand it a requirement and it works the way a senior X++ developer does: understand first, change deliberately, build, fix, and prove. Interactively with a review gate on every write — or fully automatic when you choose. It works in Visual Studio, VS Code / Copilot, Cursor, Claude Code and Claude Desktop.

  1. Start from the requirement

    A prompt, a Markdown spec, a Word document or PDF — dropped into the chat client you already use (GitHub Copilot, Claude, Cursor, …). The assistant implements from what the requirement actually says.

  2. Understand the system before touching it

    It studies the existing implementation — standard and custom — follows the dependency chain across classes and methods, and runs find-references over the whole AOT, so a change in one method accounts for every caller, override, and extension point. No guessing.

  3. Author the change

    It creates or modifies the objects the requirement needs — classes, tables, forms, extensions, EDTs, enums, menu items — including labels, added to your existing label file or a newly scaffolded one.

  4. Land it in your model and project

    Everything is written into your custom model and added to your Visual Studio project automatically — atomic writes, a Change ID on every apply, undo with full reverse diffs.

  5. Build through the real toolchain

    It compiles the project — or the whole model when the change calls for it — and reports honestly: "X++ compile ran" vs "nothing changed, binaries untouched".

  6. Read the errors, fix, rebuild

    Compiler output is read and traced back to the objects; the assistant iterates until the build is green.

  7. Best practices, enforced

    It runs BP checks over the new and modified objects and resolves the violations its own change introduced.

  8. Prove it with tests

    It writes SysTest classes in your dedicated test model, stages the records the tests need through governed SQL data access, runs the suite, and grades the outcome from the results XML. Credentials are never hardcoded or pasted in plain text — they're picked up from the environment's own configuration and sealed in the OS secret store.

  9. Supervised or automatic — your call

    Approve each step, or select automatic mode and let the assistant drive the loop end-to-end. The gates, the Change IDs, and the audit trail are identical either way.

  10. Tools-only, by contract

    The assistant's working instructions bind it to its governed tools — no direct XML edits on disk that would dodge the audit log, the project wiring, or undo.

  11. The same rules in every client

    Instruction packs — naming, extension-first patterns, workflow, testing, domain — are wired into Visual Studio/Copilot, VS Code, Cursor, Claude Code and Claude Desktop at install, so every MCP-capable client works to the same agreement.

  12. It learns your environment

    During implementation it proposes saving what mattered — conventions, gotchas, environment quirks — to local memory, so the next task starts smarter.

Installing on a dev box

A self-contained download bundles everything. It indexes your PackagesLocalDirectory — reusing a shared standard prebuilt where possible so only your customizations are extracted locally — and wires up your IDEs automatically, merging with any MCP servers you already have. On a live dev box, close Visual Studio first, and for the fastest build stop SQL Server, the AOS Batch service and Management Reporter while it runs — the index build competes with them for disk. The installer detects them and can stop & restart them for you.

Functional

Meet Sofia — answers and evidence, without waiting on a developer

SofiaAI assistant · read-only on super-user seats; consultant seats propose changes you confirm

Sofia is an AI assistant that answers in plain business language from your environment's published index — its metadata, security and label texts — and shows her sources. Company consultants and super-users use her in the dashboard, in Microsoft Teams once your Teams admin has added the app, or in Slack once your admin has connected the workspace, with nothing to install; your admin switches her on under Configuration → Sofia. The installed Sofia app adds what needs a desktop: live data through your own Microsoft sign-in.

  1. Understand any object or process in plain language

    How a posting works, where a field comes from, what a customization changed — explained from the environment's real metadata, with sources cited.

  2. Security, actually answered

    Which roles, duties and privileges grant a task, and where roles and duties overlap — from the environment's real security artifacts. Which user holds which role is data in your environment: that question needs the installed app with live data.

  3. Trace processes end-to-end

    Menu item → form → data sources → tables → posting chain, walked through the real dependency graph, not from documentation memory.

  4. From requirement to FDD consultant seats

    Attach a requirement and get a functional design document grounded in the objects the change will actually touch — a running start for every CR, with your name on the cover.

  5. Drop in a screenshot, get grounded guidance

    Paste or attach a screenshot of the error or form and ask — or send it alone. Sofia reads it, matches it against the environment's real objects and security, and explains what it means and where to look.

  6. Work with data independently installed app · live data

    Inspect records, and on a consultant seat have Sofia propose the test records needed to replicate an issue or stage a scenario — applied only after your confirmation. Every operation is entitlement-gated and audited; a super-user seat never changes anything.

  7. Compare two environments' custom objects installed app · company seats

    What was added, changed or removed between two of your registered environments — say UAT and PROD — from their published metadata. For company consultant and super-user seats.

  8. Company seats: nothing to install

    Consultant and super-user seats of a company plan open Sofia in the dashboard, in Teams or in Slack and read the environment's published, source-stripped index — no metadata root, no build. An individual consultant installs the app and runs Sofia on their own AI key.

SofiaAI assistant · super-user seat · read-only Environment ▾Model ▾Memory
Hi, my name is Sofia — an AI assistant, part of TSE-Assistant.
I help you make sense of your Dynamics 365 F&O system in plain business language — how processes work, who can do what, and what an error means. Ask me anything, or drop in a screenshot.
Which class posts a sales order confirmation?
SalesFormLetter_Confirm posts it, writing the journals CustConfirmJour and CustConfirmTrans; SalesFormLetter_PackingSlip and SalesFormLetter_Invoice are its siblings for the next two steps.1 tool call · $0.0075 · gpt-4.1-mini · TSE's LLM
📎 Screenshot: pasted-1.png
The dialog says "The credit limit for customer DE-010 has been exceeded. The sales order cannot be confirmed." — Message ID: SYS2032. The check is switched on in CustParameters, and the limit itself is on the customer in CustTable; look under Credit and collections.2 tool calls · $0.0098 · gpt-4.1-mini · TSE's LLM
Recorded on the dashboard's Sofia chat: metadata, security and label texts — no live data on this surface. Every answer shows what it cost.
Governance

How governance works

Seat tiers decide the tools

A developer, consultant or super-user seat each carries its own set of tools. The entitlement comes from our service with the seat's licence, not from the client.

A value-free audit

For company plans, one record per tool call: which tool, which seat, when, a SHA-256 fingerprint of the arguments and the size of the response. For a change, the names of the objects and models changed. Never the arguments, code, field values or record keys. Reads are kept 90 days, changes 180; the Activity tab exports them as CSV.

A Change ID on every apply

Everything is written into your custom model and added to your Visual Studio project automatically — atomic writes, a Change ID on every apply, undo with full reverse diffs.

Supervised or automatic — your call

Approve each step, or select automatic mode and let the assistant drive the loop end-to-end. The gates, the Change IDs, and the audit trail are identical either way.

Tools-only, by contract

The assistant's working instructions bind it to its governed tools — no direct XML edits on disk that would dodge the audit log, the project wiring, or undo.

The same rules in every client

Instruction packs — naming, extension-first patterns, workflow, testing, domain — are wired into Visual Studio/Copilot, VS Code, Cursor, Claude Code and Claude Desktop at install, so every MCP-capable client works to the same agreement.

Security

What we hold

Local-first by default. The developer tools and the installed Sofia app work on your machines. Sofia in Microsoft Teams and the company dashboard, TSE's LLM and the published index are options your admin turns on. We never store your source code.

The developer tools in your IDE

They run on your developer's machine. Whatever the tools return goes to the AI model your IDE uses, under your agreement with that provider — that traffic doesn't pass through us. We keep your account and licence and, for company plans, the value-free audit.

The installed Sofia app

It runs on the consultant's or super-user's machine and sends each question to the AI model that seat uses — your own key, or TSE's LLM when your admin has switched it on. Conversations and memories are kept on that machine.

Sofia in the dashboard, Teams and Slack

A service we host, which your admin switches on. It keeps your conversations, memories and documents for your account so you can come back to them — conversations for 12 months after the last message, or until you delete them. Sofia in Slack →

Every record, what it contains and how long we keep it — the Security page →