ソースを参照

chore: license under WTFPL v2

Add a LICENSE file at the repo root and a short License section in the
README so downstream redistribution is unambiguous. Single project
copyright line; upstream Sam Hocevar attribution dropped per WTFPL's
own "modified copies of this license document" clause.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
kotoyuuko 3 週間 前
コミット
31e1c24cc9

+ 13 - 0
LICENSE

@@ -0,0 +1,13 @@
+        DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+                    Version 2, December 2004
+
+ Copyright (C) 2026 kotoyuuko
+
+ Everyone is permitted to copy and distribute verbatim or modified
+ copies of this license document, and changing it is allowed as long
+ as the name is changed.
+
+            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. You just DO WHAT THE FUCK YOU WANT TO.

+ 4 - 0
README.md

@@ -167,3 +167,7 @@ See <https://zenmux.ai/docs/api/platform/subscription-detail.html>.
 
 The base URL can be overridden via `ZENMUX_BASE_URL` (useful for staging
 or local testing).
+
+## License
+
+This project is released under the [WTFPL v2](LICENSE) — Do What The Fuck You Want To Public License. Use it however you like.

+ 2 - 0
openspec/changes/archive/2026-04-23-add-wtfpl-license/.openspec.yaml

@@ -0,0 +1,2 @@
+schema: spec-driven
+created: 2026-04-22

+ 69 - 0
openspec/changes/archive/2026-04-23-add-wtfpl-license/design.md

@@ -0,0 +1,69 @@
+## Context
+
+Repository currently has no LICENSE file. The user wants to adopt the WTFPL (version 2, December 2004) — the most permissive license commonly recognized: it imposes no restrictions beyond not changing the name of the license itself if modified. The verbatim text is short (under 20 lines) and is maintained at <http://www.wtfpl.net/>.
+
+## Goals / Non-Goals
+
+**Goals:**
+- Ship an unambiguous, maximally permissive license.
+- Use the canonical WTFPL v2 wording verbatim (avoid modifying the license body, per its own terms).
+- Make the license discoverable: top-level `LICENSE` plus a README mention.
+
+**Non-Goals:**
+- Add SPDX headers to every source file. WTFPL does not require per-file notices; a repo-level `LICENSE` is sufficient.
+- Relicense any vendored dependencies. `github.com/fatih/color`, `gopkg.in/yaml.v3`, `github.com/mattn/go-isatty`, `github.com/mattn/go-colorable`, and `golang.org/x/sys` retain their own (MIT/BSD-family) licenses; WTFPL only governs original code in this repo.
+- Add a copyright-header linter or CI check.
+
+## Decisions
+
+### 1. Filename: `LICENSE` (no extension)
+**Decision:** Place the license at `./LICENSE`.
+**Why:** This is the path GitHub, pkg.go.dev, and most license scanners look for. Using `LICENSE.txt` or `LICENSE.md` works but is less conventional for single-file licenses.
+
+### 2. Exact body
+**Decision:** Use the standard WTFPL v2 text with a single project copyright line, omitting the upstream Sam Hocevar attribution. WTFPL's own clause permits modifying the license document as long as the name is not changed; replacing the upstream copyright with the project's is common practice among adopters. Final body:
+
+```
+        DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+                    Version 2, December 2004
+
+ Copyright (C) 2026 kotoyuuko
+
+ Everyone is permitted to copy and distribute verbatim or modified
+ copies of this license document, and changing it is allowed as long
+ as the name is changed.
+
+            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. You just DO WHAT THE FUCK YOU WANT TO.
+```
+
+**Why:** Keeps the LICENSE file minimal — exactly one copyright line, pointing at the project author. WTFPL's "copy and distribute… modified copies" clause explicitly covers this edit.
+**Alternatives considered:** Keeping Sam Hocevar's original copyright line as a second line — technically more conventional but visually noisy and unnecessary (the author explicitly requested a single line).
+
+### 3. README section placement
+**Decision:** Append a short `## License` section at the bottom of README.md, after "API":
+
+```markdown
+## License
+
+This project is released under the [WTFPL v2](LICENSE) — Do What The Fuck You Want To Public License. Use it however you like.
+```
+
+**Why:** Conventional README footer position; avoids disrupting the existing section flow.
+**Alternatives considered:** Adding a shields.io badge near the title — not worth the HTML clutter or external asset dependency for a single-repo change.
+
+### 4. No per-file notices or go.mod changes
+**Decision:** Do not add SPDX-License-Identifier comments to Go source files; do not add anything to `go.mod` (Go's module system doesn't track licenses there).
+**Why:** WTFPL doesn't require per-file headers; `go list -m` and pkg.go.dev pick up the LICENSE file automatically.
+
+## Risks / Trade-offs
+
+- **WTFPL is not OSI-approved.** Some corporate policy scanners reject it. *Mitigation:* the user explicitly chose it; this is a personal/hobby-scale CLI where that trade-off is acceptable. Users who need a stricter posture can fork.
+- **Copyright-year staleness.** `Copyright (C) 2026` will feel dated next year. *Mitigation:* year ranges aren't required; we'll add a year range (`2026-2027`) or move to a single "current year" convention in a future change when it matters.
+- **License text not verbatim from wtfpl.net.** We replaced the upstream copyright line with the project's own. *Mitigation:* WTFPL's own terms permit "verbatim or modified copies of this license document" as long as the name isn't changed, which it isn't.
+
+## Migration Plan
+
+N/A — new file and a README addendum. No runtime impact, no rollback complexity. Downstream consumers who had forked before this commit were already under implicit "no license = all rights reserved"; WTFPL strictly broadens what they can do.

+ 23 - 0
openspec/changes/archive/2026-04-23-add-wtfpl-license/proposal.md

@@ -0,0 +1,23 @@
+## Why
+
+The repository has no license file, which makes redistribution and reuse ambiguous (GitHub/Git hosts default to "all rights reserved" when a license is absent). The author wants this project to be as permissive as possible, so we're adopting the WTFPL (Do What The Fuck You Want To Public License, v2) — a ~10-line, OSI-approved-equivalent license that imposes no conditions at all.
+
+## What Changes
+
+- Add a top-level `LICENSE` file containing the verbatim WTFPL v2 text, with a copyright line for the project author (`Copyright (C) 2026 kotoyuuko`).
+- Add a "License" section to `README.md` stating the license and linking to the LICENSE file.
+
+## Capabilities
+
+### New Capabilities
+- `licensing`: Declares the project's license and where the license text lives. A project-level (not runtime) capability, but worth capturing as a spec so the choice and its entry-points (file path, README reference) are part of the durable record.
+
+### Modified Capabilities
+<!-- None. -->
+
+## Impact
+
+- New file: `LICENSE` at the repository root.
+- Minor edit: `README.md` gains a short "License" section near the end.
+- No code, build, CLI, or dependency changes; no runtime behavior affected.
+- Downstream effect: users and redistributors know the terms unambiguously; the file also satisfies `go install`/pkg.go.dev metadata expectations.

+ 21 - 0
openspec/changes/archive/2026-04-23-add-wtfpl-license/specs/licensing/spec.md

@@ -0,0 +1,21 @@
+## ADDED Requirements
+
+### Requirement: Distribute under WTFPL v2
+
+The repository SHALL be distributed under the Do What The Fuck You Want To Public License, version 2 (WTFPL v2). A file named `LICENSE` (no extension) at the repository root MUST contain the WTFPL v2 body with a single `Copyright (C) <year> kotoyuuko` line as the sole copyright attribution. The license name (`DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE`) MUST NOT be changed.
+
+#### Scenario: LICENSE file at repo root
+- **WHEN** a contributor inspects the repository root
+- **THEN** a file named `LICENSE` MUST be present and contain the text `DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE` and the clause `You just DO WHAT THE FUCK YOU WANT TO.`
+
+#### Scenario: Single project copyright line
+- **WHEN** the LICENSE file is read
+- **THEN** it MUST contain exactly one `Copyright (C) <year> kotoyuuko` line and MUST NOT contain any other `Copyright (C)` line (including the upstream Sam Hocevar line)
+
+### Requirement: README references the license
+
+The `README.md` SHALL contain a section identifying the license and linking to the `LICENSE` file so that readers and license scanners can discover the license without opening the file.
+
+#### Scenario: License section exists
+- **WHEN** a user reads `README.md`
+- **THEN** it MUST contain a section with the heading `## License` that names "WTFPL" and links to the `LICENSE` file via a relative markdown link

+ 13 - 0
openspec/changes/archive/2026-04-23-add-wtfpl-license/tasks.md

@@ -0,0 +1,13 @@
+## 1. License file
+
+- [x] 1.1 Create `LICENSE` at repo root with the WTFPL v2 body and a single `Copyright (C) 2026 kotoyuuko` line as the sole copyright attribution (exact body in design.md §2)
+- [x] 1.2 Verify the file has no trailing whitespace and ends with a newline
+
+## 2. README
+
+- [x] 2.1 Append a `## License` section to `README.md` immediately after the existing `## API` section, with a one-line blurb linking to the `LICENSE` file
+
+## 3. Verification
+
+- [x] 3.1 Confirm `go build ./...` and `go test ./...` still pass (no code changed, should be trivially green)
+- [x] 3.2 Spot-check the file at the repo root (`ls LICENSE`, preview first 5 lines)

+ 19 - 0
openspec/specs/licensing/spec.md

@@ -0,0 +1,19 @@
+### Requirement: Distribute under WTFPL v2
+
+The repository SHALL be distributed under the Do What The Fuck You Want To Public License, version 2 (WTFPL v2). A file named `LICENSE` (no extension) at the repository root MUST contain the WTFPL v2 body with a single `Copyright (C) <year> kotoyuuko` line as the sole copyright attribution. The license name (`DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE`) MUST NOT be changed.
+
+#### Scenario: LICENSE file at repo root
+- **WHEN** a contributor inspects the repository root
+- **THEN** a file named `LICENSE` MUST be present and contain the text `DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE` and the clause `You just DO WHAT THE FUCK YOU WANT TO.`
+
+#### Scenario: Single project copyright line
+- **WHEN** the LICENSE file is read
+- **THEN** it MUST contain exactly one `Copyright (C) <year> kotoyuuko` line and MUST NOT contain any other `Copyright (C)` line (including the upstream Sam Hocevar line)
+
+### Requirement: README references the license
+
+The `README.md` SHALL contain a section identifying the license and linking to the `LICENSE` file so that readers and license scanners can discover the license without opening the file.
+
+#### Scenario: License section exists
+- **WHEN** a user reads `README.md`
+- **THEN** it MUST contain a section with the heading `## License` that names "WTFPL" and links to the `LICENSE` file via a relative markdown link