Blog

The running record. Status notes, release announcements, and decisions as they get made — including the ones that turn out to be wrong.

This exists because the failure being fixed here was never really a technical one. It was a communication failure: issues nobody answered, releases nobody explained, and a format whose rules lived in a source tree that outsiders had to read to understand. The correction for that is to over-communicate, on a schedule, in public.

Subscribe via RSS. Decisions get argued in the discussion; work happens in the spotlight-tools and spotlight-spec issues.


Nobody should be writing industry rulesets

Speculation, on purpose. If the blocker on industry rulesets is that nobody will maintain them, then the answer is not to find maintainers — it is to stop authoring the rules by hand.

Read it →

One standard, twice — and ninety-odd, never

Exactly one industry standard has a ruleset behind it, and it has two. Not because the demand is missing, but because nobody has said what such a ruleset is allowed to claim.

Read it →

Valuable real estate, claimed in the open

Specifications are economic land grabs. This one is too — so the only thing that distinguishes it is doing it openly, honestly, and giving the land away at the end.

Read it →

Open source permanently — and how it gets paid for

No commercial tier, ever. Which makes the funding question unavoidable rather than optional, so here is the stance, the mechanism, and the list of people this actually concerns.

Read it →

Below the waterline is not a stable state

The format did not get abandoned in a way anyone would notice. It sank into other people's products while adoption kept climbing — and that phase ends somewhere worse.

Read it →

The best idea in the format is trapped inside one ruleset

Aliases already solve the JSONPath problem, and almost nobody can use them. Six of them ship, in one ruleset, and they cannot cross a ruleset boundary. Here is what aliases actually do today.

Read it →

The 2012 move, one layer up

Swagger was a config file for a code generator until a group of people decided it was a format. This is the same move, applied to the rules that govern the descriptions.

Read it →

Mapping every implementation of the format

The tool is one implementation among many — a claim worth nothing without a published list. So here is the list, with the evidence for every entry and a rule that maintainer corrections get merged on sight.

Read it →

Why splitting the Spectral spec from the tooling is the priority

The first move after forking was not fixing the tool. It was pulling the ruleset format out of the tool entirely — because whatever gets built first becomes the definition, and because "supports Spectral" currently me...

Read it →

Twenty-seven CI runs, and not one of them a test

A day spent on the unglamorous half of forking something — security policy, package metadata, branch protection — which turned up the fact that no test had ever run here, that the one workflow which did run belonged t...

Read it →

A development strategy you can actually switch to

Branching, releases, package management, README, and communication — proposed in public before any of it is built, because a fork nobody can switch to is worthless.

Read it →