A Gord Holdings company on the FlashyOS meshRoadmapFlashyOS ↗

Record format

@flashylabs/intent-spec

intent/1 — the Discovery layer’s future tense: one JSON document per repository saying what an organisation intends to do next, served at its own /.well-known/intent.json and merged by anyone. The spec, its schema, the conformance vectors and a dependency-free checker.

version 0.0.0 · measured 2026-10-19 from a checkout · source: intent-spec

node vendor-intent.mjs check <file> — dependency-free; the spec, not on npm

Expiry is derived, never accepted as input: asserted plus the kind’s window (a blocker 14 days, a bug or a decision 30, a task 90, an idea 180). A writer who could set their own expiry could keep a dead idea current forever; re-asserting an item is how it stays alive — somebody looked and said it again.

Filed is not published: an item is private until a named human promotes it. fileItem has no visibility argument, a public item with no promoted record is refused, and a promotion whose by is not a person/ id is refused. Agents suggest; humans consent, as a wire fact rather than a policy.

Edge cases — each one paid for once

The served copy is a projection, never the record

A publisher serves only its public items; partner is not an exception, because a partner-tier item behind no gate is a public item with a misleading label. check --served and verify refuse a non-public item at a public URL as served-nonpublic.

The legacy backlog key is read forever

The format was backlog/1 before it was intent/1, so a reader accepts both keys permanently and warns on the old one; ids beginning backlog/ are never rewritten. A parser that dropped the old key would silently stop reading every roadmap filed before the rename.

← Full catalog · The doctrine behind the tools · Adopt one