Skip to content

docs: one name per domain, and it is the URL's - #242

Merged
retr0h merged 1 commit into
mainfrom
docs/domain-naming-rule
Oct 1, 2026
Merged

retr0h merged 1 commit into
mainfrom
docs/domain-naming-rule

Conversation

@retr0h

@retr0h retr0h commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Settles osapi-io/osapi#566. One section in domains.md.

The provider directory, the agent processor, the URL segment and the SDK service disagree about what a domain is called, in four different ways, and nothing said which one was right.

The rule

A domain carries one name across every layer, and the URL decides what it is. The URL is the one a consumer depends on and the only one that cannot be changed without a major version, so everything else moves to it.

The name is the concept, never the tool. A container domain is container with a Docker implementation inside it, the way the NTP domain is already ntp with a chrony implementation inside it. Naming the directory docker is a claim that stops being true the day a second runtime is supported.

Abbreviations are not names either: memory, not mem.

Two exceptions, because they are real

A provider may serve several URL segments when it gathers facts that are genuinely separate resources. host answers hostname, os and uptime, and collapsing those into one endpoint would be worse.

A segment may be served by several providers when they implement one concept. network is interfaces, routes and reachability.

What this means in practice

today becomes
node/apt node/package
node/mem node/memory
container/docker container/ with a docker implementation
scheduled/cron schedule/ with a cron implementation
SDK cron SDK schedule
SDK docker SDK container

host and network stay as they are, under the two exceptions.

Why the rule lands before the rename

The rename is mechanical once the rule exists, and large. Writing it down first means new domains inherit it rather than copying whichever neighbour they happened to read, and it means the rename is a change that makes the code match a stated rule rather than one that argues for a preference in a diff.

It also unblocks the per-domain pages in this repo, which were waiting on knowing what to call them.

just test passes.

🤖 Generated with Claude Code

https://claude.ai/code/session_01FuKUsHFG1EqZXamffh9M2c

The provider directory, the agent processor, the URL segment and the SDK
service disagree about what a domain is called, in four different ways, and
nothing said which one was right. osapi-io/osapi#566 has the map.

The URL decides, because it is the one of those a consumer depends on and
the only one that cannot be changed without a major version. The name is the
concept rather than the tool: a container domain is container with a Docker
implementation inside it, the way the NTP domain is ntp with a chrony
implementation inside it.

Two shapes stay allowed because they are real rather than accidental. A
provider may serve several URL segments when it gathers facts that are
separate resources, which is what host does for hostname, os and uptime. A
segment may be served by several providers when they implement one concept,
which is what network is.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FuKUsHFG1EqZXamffh9M2c
@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown

Thank you for contributing to this project! 😊🕹️

@retr0h
retr0h merged commit 32ca937 into main Oct 1, 2026
5 checks passed
@retr0h
retr0h deleted the docs/domain-naming-rule branch October 1, 2026 18:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant