oss-publish
oss-publish - OSS Publication And Release Hygiene
Focus: make a repository publishable and releasable with minimal ambiguity. Prefer safe-by-default, non-interactive, repeatable steps.
Baseline Repo Artifacts
Add these at repo root (or confirm they exist and are correct):
LICENSE(pick one; do not invent a custom license)README.md(project intent, quick start, examples)CONTRIBUTING.md(how to contribute; local dev workflow)CODE_OF_CONDUCT.md(community expectations; adopt a standard template)SECURITY.md(vulnerability reporting process)- Optional:
SUPPORT.md(where to ask questions)
If the project is a CLI/tool, also ensure:
--helpis stable and in English- docs include examples for both humans and automation
Release Discipline (Language-Agnostic)
- Use semantic versioning (SemVer) unless the ecosystem dictates otherwise.
- Treat releases as immutable:
- tag the release commit
- generate release notes from commits/CHANGELOG
- attach artifacts (if you distribute binaries)
Pre-release checklist (minimum):
- working tree clean
- tests + lint/format pass
- documentation updated (README, examples)
- version bumped + tagged
- release notes produced
For a concrete checklist and file templates, see:
oss-publish/references/checklist.mdoss-publish/references/templates.mdoss-publish/references/readme.md
Quality Gates (Local + CI)
Prefer a split between fast and slow checks:
pre-commit: format + lint (fast)pre-push(or CI only): full test suite (slower)
Use pre-commit or prek (compatible alternative) depending on repo conventions.
CI Policy (Cross-Platform)
If the project is intended to be cross-platform, include a CI matrix:
ubuntu-latestmacos-latestwindows-latest
Set fail-fast: false so one platform failure does not hide others.
Stable Bootstrap Entry Point
Prefer a single, predictable setup command usable by humans and automation:
- Provide an executable
.wt/setupthat runsmake setup(or equivalent) - Keep it idempotent and non-interactive
Naming And Collisions
- Pick a unique repo and command/binary name.
- Avoid collisions with common system commands and common package names.
- If the name is generic, add an org/team prefix.
Filesystem Layout (XDG)
If the project stores user config/data:
- Config:
$XDG_CONFIG_HOME/{app}(fallback~/.config/{app}) - Data/state/artifacts (non-git-managed):
$XDG_DATA_HOME/{app}(fallback~/.local/share/{app})
Avoid OS-specific special cases unless the ecosystem requires it.
Related Skills
agentic-cli-design: deep guidance for agent/automation-friendly CLIs (JSON mode, exit codes, non-interactive)rust-cli: Rust-specific CLI implementation patterns (clap/anyhow/tracing/serde_json, cargo-release)
More from tumf/skills
agentic-cli-design
|
22opencode-command-creator
Create custom OpenCode commands with proper structure, trigger descriptions, arguments, and configuration. Use when the user wants reusable slash/command workflows in OpenCode, needs `.opencode/commands/*.md` or `opencode.jsonc` entries, wants command templates with `$ARGUMENTS`, or needs to override/extend built-in commands safely.
21gogcli
Fast, script-friendly CLI for Google Workspace and Gmail. Use when you need to automate or interact with Gmail (search/send/manage emails), Google Calendar (create/manage events), Google Drive (upload/download/organize files), Google Sheets/Docs/Slides (read/write/export), Contacts, Tasks, Chat, Classroom, Groups, or Keep. Supports JSON output, multiple accounts, batch operations, and least-privilege authentication. Ideal for email automation, calendar management, file operations, data extraction, workspace administration, and integration with Google services.
14slack-rs
|
11youtube-summarizer
>
2