From bdfd3a6fc414da0a51c8f01d785b97378e8fb674 Mon Sep 17 00:00:00 2001 From: Violet Agent Date: Fri, 31 Jul 2026 17:04:29 +0300 Subject: [PATCH 1/2] docs: add implementation status badges --- package.json | 2 +- scripts/check-status-badges.mjs | 56 +++++++++++++++++++ src/pages/index.mdx | 4 ++ src/pages/integrators/agent-setup.mdx | 2 +- src/pages/integrators/integrating.mdx | 2 +- src/pages/integrators/quickstart.mdx | 2 +- src/pages/introduction/benefits.mdx | 2 +- src/pages/introduction/core-concepts.mdx | 2 +- src/pages/introduction/demos.mdx | 2 +- src/pages/introduction/what-is-bloom.mdx | 2 +- src/pages/petals/authoring.mdx | 2 +- src/pages/petals/model.mdx | 2 +- src/pages/petals/overview.mdx | 2 +- src/pages/petals/ptbs-and-pipes.mdx | 2 +- src/pages/petals/quickstart.mdx | 2 +- src/pages/petals/testing.mdx | 2 +- src/pages/reference/development.mdx | 2 +- src/pages/reference/limitations.mdx | 2 +- src/pages/reference/project-map.mdx | 2 +- src/pages/reference/supported-chains.mdx | 2 +- .../reference/technical-architecture.mdx | 2 +- src/pages/use-bloom/concepts.mdx | 2 +- src/pages/use-bloom/faq.mdx | 2 +- src/pages/use-bloom/is-this-for-me.mdx | 2 +- src/pages/use-bloom/petals-for-users.mdx | 2 +- src/pages/use-bloom/policies.mdx | 2 +- src/pages/use-bloom/quickstart.mdx | 2 +- src/pages/use-bloom/safety-and-approvals.mdx | 2 +- src/pages/use-bloom/start-here.mdx | 2 +- src/pages/wallet/defi-intents.mdx | 2 +- src/pages/wallet/filesystem-guide.mdx | 2 +- src/pages/wallet/security-model.mdx | 2 +- src/pages/wallet/use-cases.mdx | 2 +- src/pages/wallet/wallets-and-transactions.mdx | 2 +- src/pages/wallet/watches-and-simulation.mdx | 2 +- 35 files changed, 93 insertions(+), 33 deletions(-) create mode 100644 scripts/check-status-badges.mjs diff --git a/package.json b/package.json index 5813599..1891a8d 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "type": "module", "scripts": { "dev": "vocs dev", - "lint": "tsc --noEmit", + "lint": "tsc --noEmit && node scripts/check-status-badges.mjs", "build": "vocs build && node scripts/copy-markdown-routes.mjs", "preview": "vocs preview" }, diff --git a/scripts/check-status-badges.mjs b/scripts/check-status-badges.mjs new file mode 100644 index 0000000..2c6f679 --- /dev/null +++ b/scripts/check-status-badges.mjs @@ -0,0 +1,56 @@ +import { readdir, readFile } from 'node:fs/promises' +import { join, relative } from 'node:path' +import { fileURLToPath } from 'node:url' + +const pagesRoot = fileURLToPath(new URL('../src/pages/', import.meta.url)) +const expectedStyle = { + Shipped: 'success', + Partial: 'warning', + Planned: undefined, +} + +async function collectMdxFiles(directory) { + const entries = await readdir(directory, { withFileTypes: true }) + const nested = await Promise.all( + entries.map((entry) => { + const path = join(directory, entry.name) + if (entry.isDirectory()) return collectMdxFiles(path) + return entry.isFile() && entry.name.endsWith('.mdx') ? [path] : [] + }), + ) + return nested.flat() +} + +const files = await collectMdxFiles(pagesRoot) +const errors = [] + +for (const file of files) { + const source = await readFile(file, 'utf8') + const matches = [ + ...source.matchAll(/:badge\[(Shipped|Partial|Planned)\](?:\{([^}]+)\})?/g), + ] + const page = relative(pagesRoot, file) + + if (matches.length !== 1) { + errors.push(`${page}: expected exactly one status badge, found ${matches.length}`) + continue + } + + const [, status, style] = matches[0] + if (style !== expectedStyle[status]) { + const expected = expectedStyle[status] ?? 'no style' + errors.push(`${page}: ${status} must use ${expected}`) + } + + const firstLines = source.split('\n').slice(0, 15).join('\n') + if (!firstLines.includes(matches[0][0])) { + errors.push(`${page}: status badge must appear near the top of the page`) + } +} + +if (errors.length > 0) { + console.error(errors.join('\n')) + process.exitCode = 1 +} else { + console.log(`Verified status badges on ${files.length} pages.`) +} diff --git a/src/pages/index.mdx b/src/pages/index.mdx index 3e879ee..75e8e56 100644 --- a/src/pages/index.mdx +++ b/src/pages/index.mdx @@ -7,6 +7,10 @@ description: Documentation for Bloom users, integrators, and developers. /bloom +:badge[Partial]{warning} + +Status badges reflect the implementation on Bloom `master`: **Shipped** is available today, **Partial** has meaningful gaps or an active migration, and **Planned** is not available end to end yet. +