Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@ representative at an online or offline event.
## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at . All
complaints will be reviewed and investigated promptly and fairly.
reported to the community leaders responsible for enforcement at john@dewey.ws.
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2026 OSAPI
Copyright (c) 2026 John Dewey

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@

## 2. Bring gohai into compliance

- [ ] 2.1 Write examples under `examples/` covering distinct usage shapes
- [ ] 2.2 Add the README `Examples` section linking them
- [ ] 2.3 Confirm each example compiles
- [x] 2.1 Write examples under `examples/` covering distinct usage shapes
- [x] 2.2 Add the README `Examples` section linking them
- [x] 2.3 Confirm each example compiles

## 3. Verification

- [ ] 3.1 Confirm every Go library ships examples and links them from its README
- [x] 3.1 Confirm every Go library ships examples and links them from its README
11 changes: 7 additions & 4 deletions openspec/changes/standardize-repository-layout/tasks.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,10 @@ a conversion pull request is only that repository's own work.
One repository per change, applying both the file layout and the README
structure for its type.

- [ ] 4.1 `gohai` (Go library)
- [ ] 4.2 `nats-client` (Go library)
- [ ] 4.3 `nats-server` (Go library)
- [ ] 4.4 `osapi-orchestrator` (Go library, pending the open question on its
- [x] 4.1 `gohai` (Go library)
- [x] 4.2 `nats-client` (Go library)
- [x] 4.3 `nats-server` (Go library)
- [x] 4.4 `osapi-orchestrator` (Go library, pending the open question on its
type)
- [ ] 4.5 `osapi` (main product; file layout only, README exempt) — the only
repository with neither a root `CONTRIBUTING.md` nor `AGENTS.md`, a 917-line
Expand All @@ -51,6 +51,9 @@ structure for its type.
`docs/docs/sidebar/development/contributing.md` (109), and
`ui/docs/contributing.md`
- [x] 4.6 `osapi-ui` — not converted; recorded as deprecated instead
- [x] 4.7 `specs` (documentation) — its `CODE_OF_CONDUCT.md` named no
enforcement contact, leaving no way to report a violation, and its `LICENSE`
named `OSAPI` as copyright holder rather than `John Dewey`

## 5. Pin the tools whose output is checked

Expand Down
29 changes: 29 additions & 0 deletions openspec/specs/go-library-standards/spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,3 +103,32 @@ stated above.
- **WHEN** a library needs a shared configuration file to differ
- **THEN** either the file is one permitted to vary, or the difference is a
change to this capability

### Requirement: Runnable examples

A Go library SHALL ship examples under `examples/`, each a standalone program
that compiles and runs against the library's public API.

The README's `Examples` section SHALL link them.

An example SHALL demonstrate a distinct usage shape rather than restating the
same call with different values.

#### Scenario: Reader wants to see the library used

- **WHEN** a developer opens a Go library repository
- **THEN** `examples/` contains programs they can run, and the README's
`Examples` section links to them

#### Scenario: Library exposes several usage shapes

- **WHEN** a library supports more than one authentication mode or storage
backend
- **THEN** each has its own example, rather than one example with commented-out
alternatives

#### Scenario: Example stops compiling

- **WHEN** a change to the public API breaks an example
- **THEN** the example is updated in the same change, because it is part of the
library's surface