SaSame
One company, one Factory, one connected knowledge system.
Company, services, installation, documentation, learning, research, evidence, pricing, API and history — maintained once and delivered to both people and AI systems.
From the feed
Program #2370 was supposed to be a straightforward run: deploy an internal-only immutable Capability Runtime release, phases 2 through 9, done. It did not stay straightforward, which is exactly why it was worth doing end-to-end instead of spot-checking pieces. The first real bug showed up when we tried to actually flip a release. Activation looked fine at the metadata layer — the record said the new version was active — but the code symlink underneath hadn't moved. We were about to trust a release that was, in practice, still serving the old build. Fixed it, then went looking for anything else that might be lying to us the same way. Found one: the health command's active_slot field didn't match the slot that was actually live. Cosmetic-looking, but it's the exact kind of mismatch that turns a 2am incident into a much longer one, because you start debugging the wrong slot. We also ran a restart/recovery/rollback drill on purpose — killed a run mid-flight and forced it through recovery, then rollback, to see what state it left behind. And we went back and independently reconfirmed two Wave 1 runs that had never gotten a second set of eyes, rather than let "probably fine" sit unconfirmed indefinitely. The most useful bug came from refusing to fake the database. Running the drill against real Postgres instead of a mock surfaced a writer-role UPDATE gap that a stub would have quietly hidden. That's the whole argument for doing this against real infrastructure even when it's slower. Phase 8 produced strict per-Case verdicts across all 12 Cases — pass/fail, no partial credit, no "mostly." Phase 9 closed with an explicit BLOCKED determination on service-integration. Not deferred, not "needs discussion" — blocked, stated plainly, backed by an honest Phase 6 measurement of manual time and coverage rather than a rounded-up number, plus a corrected dependency-direction doc and a new evidence retention policy so the next run doesn't lose the trail. Nothing here was catastrophic. All of it was the kind of thing that only shows up when you actually execute the release instead of reviewing it on paper. #buildinpublic #MCP #AIagents
Program #2370 ran end-to-end today, Phases 2 through 9, to deploy an internal-only immutable Capability Runtime release. Nothing customer-facing — this was about proving the deploy/rollback machinery actually works before we trust it with anything real. The interesting part wasn't the happy path. We ran a restart/recovery/rollback drill on interrupted runs, and separately went back to independently reconfirm two Wave 1 runs that had been left unconfirmed. Both of those turned up real problems. First: release activation was only flipping a metadata flag, not the actual code symlink. So a "successful" release could report itself as active while still serving the old code. That's the kind of bug that looks fine in every log line and only shows up when you actually check what's running. Second: the health command was reporting a mismatched active_slot field — telling you the wrong slot was live. Combined with the first bug, you can see how these compound: metadata says new release, health check says wrong slot, actual traffic on old code. Three independent lies agreeing with each other. Third, running the drill against real Postgres (not a mock) exposed a writer-role UPDATE gap — a permissions issue that only a real database would catch. All three got fixed. Phase 8 then ran strict per-Case verdicts across all 12 Cases, and Phase 9 closed with an explicit BLOCKED determination on service-integration — not a soft "mostly done," an honest blocker. That call was backed by a real Phase 6 measurement of manual time and coverage rather than an estimate, plus a corrected dependency-direction doc and a new evidence retention policy so this kind of gap gets caught earlier next time. Slow phase, but the kind where the bugs found are exactly the ones you want found before anything depends on this runtime.
Program #2417 was the closest thing we've run to a self-improving loop, end to end, and we got it fully executed. The goal was a natural-language-only capability synthesis factory feedback loop — the system reads what it needs to build, and improves its own recipe for building it, without a human hand-tuning steps in between runs. The pieces that made that possible: an ObjectiveSpec compiler/schema so goals are parsed into something structured and checkable, a capability-runtime learning telemetry module to actually observe what happens during synthesis, and a Pattern Miner with candidate fragment staging and promotion — so patterns that show up across runs get proposed as reusable fragments instead of staying tribal knowledge in one program's logs. We seeded it with 8 RecipeFragment entries, but not invented ones — each was generalized from a real defect we hit in Programs #2370 and #2326. That mattered. Fragments built from actual failures behave differently than fragments built from what we assumed would fail. We also added Hot Attachment / Same-Run Resume, and wired an Observatory conformance gate in ahead of live gap exploration, so the system checks itself against expected shape before it goes looking for what's missing. Then we ran it: 3 internal NL-only dogfood runs, plus a paired A/B evaluation harness across Methods A/B/C, to actually compare approaches instead of eyeballing outputs. The real find of the day was uglier and more useful than any of the architecture: release picks were being chosen by filename sort instead of the released_at timestamp. Quiet bug, the kind that doesn't crash anything, just silently promotes the wrong artifact. Found it, fixed it, then re-ran evaluation before calling the program complete. Program #2417 is fully closed out now — spec, telemetry, fragments, resume, pattern mining, gate, dogfood, A/B eval, and the fix, recorded end to end. #buildinpublic #MCP #AIagents
Try it live, no LLM involved
This calls SaSame's public MCP server directly over JSON-RPC (initialize, then tools/call for audit_mcp) and shows the raw result. No chatbot in the loop, no API key required.
Reconstructable, published fulfillment records
Start here
The fastest human and machine paths into using SaSame, understanding the Factory and checking its evidence.
Start
Choose the shortest path: audit an MCP for free, connect SaSame to an AI client, or run the local CLI. Account controls are not required for these public paths.
Products
SaSame offers one MCP Factory through Free Listing, Factory, Factory Pro and Factory Team plans, plus Assisted Review as a bounded one-time exception review.
Pricing
Free Listing is €0 and available now. Factory is €9/month, Factory Pro is €29/month and Factory Team is €79/month — all available now. Assisted Review has an approved €99 one-time price but is not yet on sale.
Evidence
Evidence records what was observed, when, how and with which limitations. It does not automatically prove safety, quality, ownership or endorsement.
Documentation
Start with Getting Started, then follow Architecture, Factory, Monitoring, Owner Verification, Observatory, Deployment, Reference and API.
Explore SaSame
Top-level collections are data-driven. Publishing a new root record with navigation enabled adds it here and to the sidebar without a code release.
Get started & pricing
Evidence & build
Learn & research
Company
Mission Archive
Superseded systems and previous SaSame initiatives, preserved for provenance and clearly separated from current products and services.
How SaSame knowledge becomes usable
A record is published once, rendered for people and exposed through the same machine interfaces without duplicating claims.
- 01
Publish
Store one validated, versioned canonical record.
- 02
Render
Present the record as a clear human-facing page and action path.
- 03
Expose
Deliver the same full record through search, API, MCP and LLM indexes.
- 04
Preserve
Keep lifecycle, evidence, aliases, versions and change receipts together.
Recently updated
New and revised records flow into HTML, search, API, MCP, RSS and LLM indexes from the same runtime state.
Connect a Generic MCP Client
Configure a remote Streamable HTTP server using either the keyless public endpoint or the OAuth account endpoint, refresh tools and verify a real call.
Connect an AI Client
Choose a client guide and one of two separate surfaces: the keyless public MCP for discovery and audits, or the Google-authenticated account MCP for organization-bound Factory access.
Connect ChatGPT
Create a custom MCP app using either the keyless public endpoint or the Google-authenticated account endpoint, scan tools, enable the app and verify a real call.
Connect Claude
Add either the keyless public URL or the Google-authenticated account URL as a remote custom connector, connect it, enable it and verify a real tool call.
Connect Claude Code
Register either the public or authenticated Streamable HTTP endpoint, confirm it in the MCP list, complete OAuth when required and verify a real tool call.
Free Listing
Free Listing is €0 and available now: register and claim as many already-live MCPs as you like, with best-effort observation — no checkout, no card and no account required.



