logicsrc/docs
Anthony Ettinger 32bbdeda95
OpenListing 0.1: one file a seller serves about a thing on offer (#213)
A house for sale, an apartment to rent, a car. One document per listing,
on the seller's own origin, so a directory reads the seller's file
instead of licensing somebody else's database or scraping a marketplace
that forbids it.

**The name `OpenRental` was the obvious one and it is taken.** It
already means renting OpenAgent and OpenSwarm members through CoinPay,
with a published schema, SDK, validators and fixtures. Its own document
records surviving one collision already: it was OpenFleet until
2026-09-13. Reusing the name for housing would have broken a shipped
0.1 spec, so the family is OpenListing instead.

Two axes rather than a spec per combination. A house for sale and a
house to rent are the same house; only the offer differs. A house for
sale and a car for sale are the same offer; only the subject differs.
Writing OpenHouseForSale, OpenHouseForRent, OpenCarForSale and the rest
produces one spec per cell of a grid, each repeating most of the others.
So `offer.type` carries sale/rent/lease/auction/free/wanted and
`subject.type` carries property/vehicle, and a subject profile adds only
the fields peculiar to its subject. A reader that knows OpenListing but
not a profile still reads price, location, offer and dates correctly.

`openhouse` is not used as a name: in real estate an open house is a
viewing event, not a kind of listing. An actual one is an entry in
`showings`.

The problem section is grounded rather than asserted: RESO tracks 484
separate MLSs as of August 2026, down from nearly twice that in 2015;
each does publish a RESO Web API feed, and each requires a real estate
licence, a signed per-MLS data agreement and vendor credentials. Four
hundred and eighty-four negotiations for one national view, not
redistributable. Vehicle parts are the same shape with different
letters (ACES/VCdb, TecDoc).

Decisions worth naming. Prices are decimal STRINGS, because 2450.10 is
not representable in binary floating point and a listing is a price.
Absent means unstated, never zero -- with `bedrooms: 0` called out in
the property profile as the one place where zero genuinely differs and a
studio is not an unstated bedroom count. `location.precision` lets a
seller publish a postal code rather than a street for an occupied home,
and forbids a reader from drawing a pin on a building anyway. A closed
listing SHOULD stay served for 90 days with `closed_at`, because a
directory that learns from a 404 cannot tell "sold" from "outage" --
the failure that makes every coupon site a graveyard.

The vehicle profile treats a VIN as a claim rather than a proof, points
readers at NHTSA vPIC (free, keyless, public domain) for decoding rather
than making sellers restate what the VIN encodes, and puts parts fitment
explicitly out of scope: that is ACES/VCdb or TecDoc, and a public spec
cannot restate licensed data.

Registered as one parent and two blocks under it, using the registry's
existing `parent` field the way OpenServer's blocks already do. Flat
slugs rather than nested paths because /docs/[slug] is a single dynamic
segment, not a catch-all -- a nested slug would not have routed at all.

nichedb.dev is named as the reference directory.

50 contract tests pass including spec-discovery and page-metadata.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-25 03:14:19 -07:00
..
opencontext
opencreds vault + teams: filter secrets by category, export to CSV, simpler help (#195) 2026-09-23 21:08:08 -07:00
openprd Add Tech Stack and Monetization sections to OpenPRD (0.3) (#144) 2026-09-06 16:50:11 -07:00
openskill Add OpenSkill descriptions for human capabilities and OpenProfile discovery 2026-09-13 15:47:58 +00:00
openstream/reports docs: OpenStream benchmark report for nixamp 0.24.2 (#184) 2026-09-13 05:16:24 -07:00
openswarm OpenServer 0.2: the provider says how to install its CLI (#171) 2026-09-12 21:46:01 -07:00
agent-screening.md
agentad-marketplace.md
agentad.md
agentgit.md
agentstack.md
ans-sdk.md
arcade.md
asdlc.md Add ASDLC, the Agentic Software Development Lifecycle 2026-09-06 15:02:31 +00:00
cli.md OpenFleet reference implementation: @logicsrc/openfleet, logicsrc fleet, and Claude Code hooks (#185) 2026-09-13 10:58:55 +00:00
communication-accounts.md Ship OpenFleet contracts and the OpenWall draft proposal (#177) 2026-09-13 00:57:45 -07:00
config.md
credential-sharing.md vault + teams: filter secrets by category, export to CSV, simpler help (#195) 2026-09-23 21:08:08 -07:00
data-model.md Merge master; OpenFleet keeps its name, PR 177's rental descriptor becomes OpenRental 2026-09-13 08:45:33 +00:00
openabtest.md Add OpenABTest draft experiment and accounting contracts (#180) 2026-09-13 02:17:35 -07:00
openaccess.md OpenAccess 0.1: OAuth 2.1 with a grant you can carry (#158) 2026-09-12 12:26:15 -07:00
openaffiliate.md OpenAffiliate 0.1: one file a merchant serves about the commission it pays (#166) 2026-09-12 19:36:59 -07:00
openagent.md Publish OpenAgent profile specification and discovery (#188) 2026-09-13 05:37:59 -07:00
openapi.yaml
openbandwidth.md docs: OpenCPU, OpenMemory, OpenGPU and OpenBandwidth, the resources of a server purchase (#163) 2026-09-12 18:59:05 -07:00
openbroadcast.md docs: OpenBroadcast and OpenGuest, the broadcaster-and-guest framework as OpenProfile.md sections (#168) 2026-09-12 20:30:42 -07:00
openconnection.md OpenConnection: a setup token you paste, a bridge that honours it (#174) 2026-09-12 22:22:39 -07:00
opencontext.md
opencoupon.md docs: OpenCoupon and OpenRecipe.md, the first two niche specs (#165) 2026-09-12 19:16:34 -07:00
opencpu.md docs: OpenCPU, OpenMemory, OpenGPU and OpenBandwidth, the resources of a server purchase (#163) 2026-09-12 18:59:05 -07:00
opencreds.md Add the LogicSRC OpenCreds specification (#140) 2026-08-29 04:11:38 -07:00
opendisk.md OpenFile and OpenDisk carry OpenServer 0.2's developer block, and OpenFile names fi1zes.com (#173) 2026-09-12 22:05:06 -07:00
openemoji.md OpenEmoji catalog: every emoji in the reference set, with search and filters (#197) 2026-09-23 21:27:40 -07:00
openfile.md OpenFile and OpenDisk carry OpenServer 0.2's developer block, and OpenFile names fi1zes.com (#173) 2026-09-12 22:05:06 -07:00
openfleet.md Publish OpenAgent profile specification and discovery (#188) 2026-09-13 05:37:59 -07:00
opengpu.md docs: OpenCPU, OpenMemory, OpenGPU and OpenBandwidth, the resources of a server purchase (#163) 2026-09-12 18:59:05 -07:00
openguest.md docs: OpenBroadcast and OpenGuest, the broadcaster-and-guest framework as OpenProfile.md sections (#168) 2026-09-12 20:30:42 -07:00
openi18n.md docs: OpenL10n and OpenI18n, the words half and the languages half of OpenFile (#187) 2026-09-13 04:39:59 -07:00
openicon.md OpenIcon: the agentic styles re-render brand marks, and a style says which ground it needs (#211) 2026-09-24 07:24:08 -07:00
openjob.md docs: OpenJob and OpenResume.md (#148) 2026-09-08 16:16:05 -07:00
openl10n.md docs: OpenL10n and OpenI18n, the words half and the languages half of OpenFile (#187) 2026-09-13 04:39:59 -07:00
openlisting.md OpenListing 0.1: one file a seller serves about a thing on offer (#213) 2026-09-25 03:14:19 -07:00
openmcp.md logicsrc CLI 0.2.0: every LogicSRC tool is a word after logicsrc (#157) 2026-09-12 11:16:40 -07:00
openmemory.md docs: OpenCPU, OpenMemory, OpenGPU and OpenBandwidth, the resources of a server purchase (#163) 2026-09-12 18:59:05 -07:00
openmodel.md OpenModel 0.1: what a model costs, from the provider that bills you (#212) 2026-09-24 11:21:10 -07:00
openobject.md feat(specs): OpenObject and OpenSlice 0.1 (#192) 2026-09-21 03:05:38 -07:00
openontology-governance.md
openontology-interoperability.md
openontology.md
openprd.md Add Tech Stack and Monetization sections to OpenPRD (0.3) (#144) 2026-09-06 16:50:11 -07:00
openprofile.md Add OpenSkill descriptions for human capabilities and OpenProfile discovery 2026-09-13 15:47:58 +00:00
openproperty.md OpenListing 0.1: one file a seller serves about a thing on offer (#213) 2026-09-25 03:14:19 -07:00
openrecipe.md docs: OpenCoupon and OpenRecipe.md, the first two niche specs (#165) 2026-09-12 19:16:34 -07:00
openrental.md Publish OpenAgent profile specification and discovery (#188) 2026-09-13 05:37:59 -07:00
openresume.md docs: OpenJob and OpenResume.md (#148) 2026-09-08 16:16:05 -07:00
opensaas.md OpenSaaS 0.1: one file a subscription service serves about the way in and the way out (#176) 2026-09-12 22:29:24 -07:00
openserver.md OpenServer 0.2: the provider says how to install its CLI (#171) 2026-09-12 21:46:01 -07:00
opensite.md OpenSite: one record about a page or a site, the card a reader would draw (#175) 2026-09-12 22:30:41 -07:00
openskill.md Add OpenSkill descriptions for human capabilities and OpenProfile discovery 2026-09-13 15:47:58 +00:00
openslice.md feat(specs): OpenObject and OpenSlice 0.1 (#192) 2026-09-21 03:05:38 -07:00
opensong.md Add OpenSong spec: a song as plain-text blocks a generator takes (#194) 2026-09-23 17:33:18 -07:00
openspec-comparison.md
openstack.md docs: OpenStack.md 0.1, one Markdown file for what a project is built on (#191) 2026-09-21 02:21:12 -07:00
openstream.md docs: OpenStream benchmark reports, published per release (#150) 2026-09-12 06:23:46 -07:00
openswarm.md feat(specs): OpenObject and OpenSlice 0.1 (#192) 2026-09-21 03:05:38 -07:00
openthreat.md docs: OpenThreat, one file a security tool serves about what it found in the open (#167) 2026-09-12 20:30:22 -07:00
openvehicle.md OpenListing 0.1: one file a seller serves about a thing on offer (#213) 2026-09-25 03:14:19 -07:00
openwall.md Ship OpenFleet contracts and the OpenWall draft proposal (#177) 2026-09-13 00:57:45 -07:00
openwebring.md OpenWebring and OpenWiki carry the whole AI Content Disclosure vocabulary (#190) 2026-09-13 13:14:05 +00:00
openwiki.md OpenWebring and OpenWiki carry the whole AI Content Disclosure vocabulary (#190) 2026-09-13 13:14:05 +00:00
permissions.md
plugins.md
positioning.md
roadmap.md
tui.md