This document records the stable release and archive packaging contract for the
Rust-native tv CLI.
GitHub Releases are the first supported binary distribution path.
Pushing a version tag matching v* runs .github/workflows/release.yml, builds
native release archives, generates SHA256SUMS, and publishes a GitHub Release.
The release workflow currently builds:
x86_64-unknown-linux-gnux86_64-apple-darwinaarch64-apple-darwinx86_64-pc-windows-msvc
Package-manager installers, code signing, notarization, and crates.io publication are not part of the first release workflow.
Keep CHANGELOG.md as the project-level changelog.
For tag-specific GitHub Release notes, add:
docs/releases/<tag>.md
The workflow strips a leading top-level heading from that file because the GitHub Release title already contains the tag. If the file does not exist, the workflow falls back to generated notes.
Each release archive includes:
tvortv.exeREADME.mdCHANGELOG.mdLICENSE- user-facing
docs/getting-started.md - user-facing
docs/ja/getting-started.md - user-facing
AGENTS.md - user-facing
CLAUDE.md - runtime-oriented skills under
.agents/skills/ - the same runtime-oriented skills under
.claude/skills/
The user-facing AGENTS.md and CLAUDE.md are staged from
packaging/agent/AGENTS.md. They are intentionally different from the
repository root contributor guides.
Only the two getting-started docs are copied from docs/ into release
archives. The full repository documentation tree remains a contributor and
project reference and is not broadly packaged.
scripts/stage-release-package-files.sh owns the release skill allowlist.
Runtime skills currently included:
chart-analysismarket-data-interpretationmulti-symbol-scanpine-developreplay-practicescreener-result-analysisscreener-workflowstrategy-report
Development-only skills must stay out of release archives. Examples:
continuityconventional-commitsdiscovering-skillsrelease-prep
When adding a runtime skill, update the staging script, the packaged agent guide, and README release archive description. Validate the changed skill with the repo-local skill validator when available.
For release packaging changes, run:
bash -n scripts/stage-release-package-files.sh
cargo build --release --locked
rm -rf target/release-package-smoke
scripts/stage-release-package-files.sh target/release-package-smoke target/release/tv
find target/release-package-smoke -maxdepth 4 -print | sort
git diff --checkConfirm the archive staging directory includes runtime skills and the two getting-started docs, and excludes development-only skills and docs.
For release workflow changes, also inspect .github/workflows/release.yml and
ensure the tag-triggered asset names remain stable:
tv-<tag>-x86_64-unknown-linux-gnu.tar.gztv-<tag>-x86_64-apple-darwin.tar.gztv-<tag>-aarch64-apple-darwin.tar.gztv-<tag>-x86_64-pc-windows-msvc.zipSHA256SUMS
Before a public release, check:
LICENSEexists and matches the intended license- README states the TradingView affiliation and terms boundaries
- docs do not contain local absolute paths, account-local identifiers, credentials, cookies, tokens, or raw live payloads
- GitHub Actions CI is green for the target commit
- release notes exist for the tag if curated notes are desired
- release archives contain only user-facing runtime guidance, not development or continuity skills