diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 311bd22..c0fe38a 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -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. diff --git a/LICENSE b/LICENSE index db1d326..7922a02 100644 --- a/LICENSE +++ b/LICENSE @@ -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 diff --git a/openspec/changes/require-go-library-examples/.openspec.yaml b/openspec/changes/archive/2026-08-15-require-go-library-examples/.openspec.yaml similarity index 100% rename from openspec/changes/require-go-library-examples/.openspec.yaml rename to openspec/changes/archive/2026-08-15-require-go-library-examples/.openspec.yaml diff --git a/openspec/changes/require-go-library-examples/design.md b/openspec/changes/archive/2026-08-15-require-go-library-examples/design.md similarity index 100% rename from openspec/changes/require-go-library-examples/design.md rename to openspec/changes/archive/2026-08-15-require-go-library-examples/design.md diff --git a/openspec/changes/require-go-library-examples/proposal.md b/openspec/changes/archive/2026-08-15-require-go-library-examples/proposal.md similarity index 100% rename from openspec/changes/require-go-library-examples/proposal.md rename to openspec/changes/archive/2026-08-15-require-go-library-examples/proposal.md diff --git a/openspec/changes/require-go-library-examples/specs/go-library-standards/spec.md b/openspec/changes/archive/2026-08-15-require-go-library-examples/specs/go-library-standards/spec.md similarity index 100% rename from openspec/changes/require-go-library-examples/specs/go-library-standards/spec.md rename to openspec/changes/archive/2026-08-15-require-go-library-examples/specs/go-library-standards/spec.md diff --git a/openspec/changes/require-go-library-examples/tasks.md b/openspec/changes/archive/2026-08-15-require-go-library-examples/tasks.md similarity index 60% rename from openspec/changes/require-go-library-examples/tasks.md rename to openspec/changes/archive/2026-08-15-require-go-library-examples/tasks.md index 3240c07..17098d5 100644 --- a/openspec/changes/require-go-library-examples/tasks.md +++ b/openspec/changes/archive/2026-08-15-require-go-library-examples/tasks.md @@ -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 diff --git a/openspec/changes/standardize-repository-layout/tasks.md b/openspec/changes/standardize-repository-layout/tasks.md index 2697493..9f6e80b 100644 --- a/openspec/changes/standardize-repository-layout/tasks.md +++ b/openspec/changes/standardize-repository-layout/tasks.md @@ -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 @@ -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 diff --git a/openspec/specs/go-library-standards/spec.md b/openspec/specs/go-library-standards/spec.md index 7df861d..2daf436 100644 --- a/openspec/specs/go-library-standards/spec.md +++ b/openspec/specs/go-library-standards/spec.md @@ -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