about

About BC Observatory

Written by waldo, not by the pipeline. The counts on this page come from the last nightly.

Who

I’m waldo. Eric Wauters on paper, but nobody uses the paper.

I’ve been doing NAV, and then Business Central, since the version numbers had a dot in them. Microsoft has called me an MVP since 2007. My kids call me “the guy who’s always typing”.

Here’s the thing: I’m lazy. Properly lazy. Every tool I ever built was so I wouldn’t have to do something twice. The CRS extension, so I’d stop naming files. PowerShell modules, so I’d stop opening PowerShell. BC Telemetry Buddy, so I’d stop writing the same KQL query for the fourth time and could just ask my agent what went wrong last night. You get the idea.

Then AI agents came along and I thought: finally, I can be lazy at scale. I asked one about a field on the Customer table. It answered with great confidence and a field number that does not exist. Hasn’t existed. Will never exist.

So I did the thing I always do. I built something so I wouldn’t have to check. A Mac Mini in my house now reads all of Business Central every night and writes it down, with receipts. This site is that. The agent still answers with confidence. Now it’s also right.

I co-founded iFacto, a Business Central partner in Belgium. I blog at waldo.be, mostly about what I broke that week. I’m Belgian, which explains both the stubbornness and the fact that this runs on a subscription instead of a budget.

It’s unofficial. Microsoft didn’t ask for this. They’re welcome.

Why

There is a shitload of information about Business Central out there. Learn alone is thousands of pages. The code is on GitHub, all of it, every version. The roadmap is a website. There are hundreds of hours of sessions on YouTube and more blogs than anyone can read. None of that is the problem.

The problem is that nothing ties it together. Nothing says: this Learn page is about that table, which that session explains at minute twelve, which Belgium changes, which Microsoft touched in a pull request last Tuesday, which this blog post warned you about. There is no map of the Business Central ecosystem. Everyone carries a piece of it in their head, and the agents carry nothing at all, so they make it up.

So this is a map. Not a mirror: Microsoft Learn stays the documentation, your blog stays your blog. The observatory only draws the lines between them, and every line says where it comes from.

Three rules I don’t bend. Agents first. Every page has a markdown twin, every section an llms.txt, and one MCP server reads the same files the site does. Evidence on everything. A claim without a URL, a commit, a video second or a quote does not get on a page. Honest about who wrote what. Every page shows its trust tier (official is Microsoft, community is everyone else) and its review state, so you know whether a sentence was placed by code, written by a model, or checked by a bigger model.

How

How BC Observatory is built: the pipeline as a telescopeFive sources (Microsoft Learn, microsoft/BCApps and the version history, the Microsoft 365 roadmap, YouTube, community blogs via sources.yaml) feed a nightly pipeline on a Mac Mini: a deterministic stage first (tree-sitter parses the code, validators check every id, evidence is attached), then models only on what changed (Haiku for facts, Sonnet for prose, Opus to review, which sets the review state), onto two outputs: the site with a markdown twin per page, and the MCP server with the plugin and an llms.txt per section.LIGHT IN · the sourcesTHE LENS · every nightTHE MIRRORS · what you readMicrosoft Learn606 topic hubs, from the Learn TOCmicrosoft/BCApps25,646 AL objects, BC28 to BC30Microsoft 365 roadmap80 features with their statusYouTube616 videos, timestampedCommunity blogs601 posts from 33 sourcesDeterministic firsttree-sitter parses the codevalidators check every idevidence: URL, commit, secondModels, only on what changedHaiku facts · Sonnet proseOpus review, which sets the state:derived, unreviewed,reviewed, flaggedThe site28,851 pages, the galaxy,a markdown twin per pageThe MCP server and the pluginnpx bc-observatoryllms.txt per sectionnightly · Mac Mini · Claude subscription · no API keysHow BC Observatory is built: the pipeline as a telescopeFive sources (Microsoft Learn, microsoft/BCApps and the version history, the Microsoft 365 roadmap, YouTube, community blogs via sources.yaml) feed a nightly pipeline on a Mac Mini: a deterministic stage first (tree-sitter parses the code, validators check every id, evidence is attached), then models only on what changed (Haiku for facts, Sonnet for prose, Opus to review, which sets the review state), onto two outputs: the site with a markdown twin per page, and the MCP server with the plugin and an llms.txt per section.Microsoft Learn606 topic hubs, from the Learn TOCmicrosoft/BCApps25,646 AL objects, BC28 to BC30Microsoft 365 roadmap80 features with their statusYouTube616 videos, timestampedCommunity blogs601 posts from 33 sourcesDeterministic firsttree-sitter parses the codevalidators check every idevidence: URL, commit, secondModels, only on what changedHaiku facts · Sonnet proseOpus review, which sets the state:derived, unreviewed,reviewed, flaggedThe site28,851 pages, the galaxy,a markdown twin per pageThe MCP server and the pluginnpx bc-observatoryllms.txt per sectionnightly · Mac Mini · Claude subscription · no API keys
  • Nightly on a Mac Mini in my house, as a self-hosted GitHub runner, on a Claude subscription. No API keys, anywhere.
  • Deterministic first: the code is parsed, never summarised. Models only on what changed: Haiku for facts, Sonnet for prose, Opus to review. A page a model wrote says unreviewed until Opus has checked it.
  • Community text stays yours: a summary in our words, at most three quotes under 25 words, and a link back. A leak scanner fails the build if more than that ever reaches the repository. See the content notice.
  • Procedure bodies and the call graph come from bc-code-atlas by Stefan Maron, which the plugin connects next to this server, as it does Microsoft’s Learn MCP to read the Learn pages the knowledge base points to.
The galaxy keyThe galaxy key: a circle is a hub (a star), a rounded square an AL object, a triangle a video, a bar a post, a dashed line crosses into another system, a dashed ring marks community coverage, and a bright ring marks what was lit this week.hub (a star)AL objectvideopostcrosses into another systemcommunity ringlit this weekThe galaxy keyThe galaxy key: a circle is a hub (a star), a rounded square an AL object, a triangle a video, a bar a post, a dashed line crosses into another system, a dashed ring marks community coverage, and a bright ring marks what was lit this week.hub (a star)AL objectvideopostcrosses into another systemcommunity ringlit this week

The galaxy on the home page is the data model drawn. Systems are domains. Stars are hubs: Learn topics, roadmap features, countries, sources and the most connected AL objects. Videos and posts orbit the hubs they link to. A country draws a constellation over the W1 sky. This week’s additions light up.

For who

Seven readers, seven questions, and the page that answers each.

  • The AL developer on a deadlineIs this field still on Customer in BC30?

    The object page has every field, with the versions it exists in and its obsolete state, straight from the code.

    Table 18 CustomerWho subscribes to an event?
  • The partner planning an upgradeWhat breaks between BC28 and BC30?

    What changed per version and per object, which elements are obsolete or due for cleanup, and what Microsoft merged this week.

    Version lensDeprecation radarThis week's code changes
  • The consultant with a Belgian customerWhat does BE change in W1?

    Each country page diffs the layer against W1, down to the field, and the galaxy draws it as a constellation.

    BelgiumPick a country in the galaxy
  • The person whose agent lies to themTable 18, what is field 7?

    Two commands, then ask. The answer comes with the page, its tier and its evidence. Telemetry Buddy tells you what happened last night; the observatory tells you what the code says should happen. Same agent, both servers.

    Install the MCP serverThe four plugin skills
  • The blogger or channel ownerWhere does my content touch Business Central?

    Your source page has your footprint and a flight path through the galaxy. One pull request to sources.yaml gets you in. Derived only: your words stay on your blog.

    SourcesAdd your blog or channelContent notice
  • The reader who suspects Learn is out of dateDoes Learn still document something that is gone?

    The drift report lists obsolete objects Learn still documents and new objects nobody documented yet.

    Learn drift
  • MeDid that nightly actually land?

    I use this every day from Claude Code. That is why the bugs get fixed, and why you should tell me about the ones I missed.

    Report a problem

For your agent

Every page has a markdown twin (the .md button on every page, this one included), every section an llms.txt, and the MCP server reads the same files: search, ls, cat, get_object, diff_object, localization, whats_new, blog_footprint, feedback.

What to ask, the tools, the plugin's skills, and how to install it in Claude Code, Claude Desktop, Cursor or VS Code: the MCP page. The short version for Claude Code:

claude mcp add bc-observatory -- npx -y bc-observatory@latest
claude plugin marketplace add waldo1001/waldo.BCObservatory

What is in it today

  • 606 TopicsSeeded from the Microsoft Learn tables of contents. What Learn documents per topic, linked to Learn.
  • 25,646 AL objectsEvery W1 and first-party app object of BC28 to BC30, from the code: fields, events, procedures, versions, countries.
  • 96 First-party appsMicrosoft's first-party apps with their objects, Learn hubs, videos and posts.
  • 22 LocalizationsWhat each country layer adds to or changes in W1, down to the field.
  • 80 RoadmapBusiness Central on the Microsoft 365 roadmap, with the videos and Learn pages that cover each feature.
  • 1,083 Code changesMerged pull requests of Microsoft's repositories, joined to the objects they changed.
  • 63 AL extension releasesMicrosoft's changelog of the AL Language extension, one page per version, with what was added to it later.
  • 616 VideosSessions as timestamped evidence: chapters, key points, quotes that deep-link to the second.
  • 601 PostsBlog posts as derived summaries with short quotes and a link to the original.
  • 5 Weekly digestsWhat changed each week, with a deprecation radar. Also as RSS.
  • 33 SourcesEach blog and channel with its footprint and flight path through the galaxy.

Housekeeping

Last nightly: 2026-10-13 (ok, 18 items new or changed).

Code MIT, generated content CC BY 4.0; third-party material keeps its own terms. Unofficial; not affiliated with Microsoft.

Repository · AGENTS.md · Plan ·Runbook · Content notice ·sources.yaml · llms.txt · RSS