ctl-release
について
ctl-releaseスキルは、ソースコードの変更が発生した際に、モノレポ内のspikectlまたはctl CLIパッケージの更新とリビルドを行います。このスキルは、コンパイル、Nixビルド、およびバイナリテストを処理し、リファクタリング後にCLIツールが適切に更新されることを保証します。開発者はこれを使用して、自動化された検証チェックを伴う配布可能なバイナリを維持します。
クイックインストール
Claude Code
推奨/plugin add https://github.com/majiayu000/claude-skill-registrygit clone https://github.com/majiayu000/claude-skill-registry.git ~/.claude/skills/ctl-releaseこのコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします
ドキュメント
Option: CTL Release
Initiation (I)
Invoke when:
- Source code changed in
packages/spikectl/orpackages/ctl/ - Need to rebuild CLI binaries for Nix distribution
- Updating CLI tools after refactoring
Observation Space (Y)
| Observable | How to Check |
|---|---|
| Source modified | git status packages/{spikectl,ctl}/src/ |
| Binary stale | Compare bin/ mtime vs src/ mtime |
| TypeScript valid | bunx tsc --noEmit |
Action Space (U)
| Action | Command | From Directory |
|---|---|---|
compile | bun build --compile --minify src/index.ts --outfile bin/<name> | packages/<pkg>/ |
build-nix | nix build '.?dir=packages/tmnl#<pkg>' | repo root |
test-binary | ./result/bin/<pkg> --version | repo root |
update-lock | nix flake update <pkg> | packages/tmnl/ |
Policy (π)
STATE: source_changed ∧ ¬binary_updated
→ ACTION: compile
STATE: binary_updated ∧ need_nix_build
→ ACTION: build-nix
STATE: flake_deps_changed
→ ACTION: update-lock → build-nix
STATE: build_complete
→ ACTION: test-binary → TERMINATE
Termination (β)
| Condition | Exit |
|---|---|
./result/bin/<pkg> --version succeeds | SUCCESS |
| TypeScript errors | FAIL: fix errors |
| Nix build fails | FAIL: check flake.nix |
Q-Heuristics
| Situation | Guidance |
|---|---|
| Source-only changes | Skip nix flake update - path: inputs evaluate live |
| New dependencies in flake.nix | Must run nix flake update <pkg> |
| Binary size changed significantly | Verify correct bundling |
Constraints
- □(compile_before_nix_build) — Always compile before Nix build
- □(test_after_build) — Always verify binary works after build
- ◇(version_incremented) — Eventually bump version for releases
Commands
Quick Rebuild
cd packages/spikectl
bun build --compile --minify src/index.ts --outfile bin/spikectl
Full Release
cd packages/spikectl
bun build --compile --minify src/index.ts --outfile bin/spikectl
git add bin/spikectl
git commit -m "build(spikectl): v0.x.x"
cd ../..
nix build '.?dir=packages/tmnl#spikectl'
./result/bin/spikectl --version
DevShell Access
nix develop '.?dir=packages/tmnl#tmnl-ctl'
# Now spikectl and ctl are in PATH
Why No Flake Update for Source Changes?
The tmnl flake uses path: inputs:
spikectl = { url = "path:../spikectl"; }
No hash lock → changes picked up on rebuild.
GitHub リポジトリ
関連スキル
content-collections
メタThis skill provides a production-tested setup for Content Collections, a TypeScript-first tool that transforms Markdown/MDX files into type-safe data collections with Zod validation. Use it when building blogs, documentation sites, or content-heavy Vite + React applications to ensure type safety and automatic content validation. It covers everything from Vite plugin configuration and MDX compilation to deployment optimization and schema validation.
creating-opencode-plugins
メタThis skill provides the structure and API specifications for creating OpenCode plugins that hook into 25+ event types like commands, files, and LSP operations. It offers implementation patterns for JavaScript/TypeScript modules that intercept and extend the AI assistant's lifecycle. Use it when you need to build event-driven plugins for monitoring, custom handling, or extending OpenCode's capabilities.
polymarket
メタThis skill enables developers to build applications with the Polymarket prediction markets platform, including API integration for trading and market data. It also provides real-time data streaming via WebSocket to monitor live trades and market activity. Use it for implementing trading strategies or creating tools that process live market updates.
langchain
メタLangChain is a framework for building LLM applications using agents, chains, and RAG pipelines. It supports multiple LLM providers, offers 500+ integrations, and includes features like tool calling and memory management. Use it for rapid prototyping and deploying production systems like chatbots, autonomous agents, and question-answering services.
