Skip to content
Back to skills

Cli Tech Stack

ASecurity

CLIツール開発の技術スタック・規約定義

  • 666 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added February 8, 2026
toolstypescriptgobash

Works with

  • cli

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill cli-tech-stack --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Cli Tech Stack?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Cli Tech Stack
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-cli-tech-stack/badge)](https://www.skillsdirectory.com/skills/majiayu000-cli-tech-stack)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
description: CLIツール開発の技術スタック・規約定義
---

# CLI Tech Stack

CLIツール開発で使用する技術スタックと規約の定義。

## 技術スタック

全て必須。指定バージョン以上の最新版を使用すること。

| 項目 | 技術 | バージョン | 備考 |
|------|------|-----------|------|
| 言語 | TypeScript | - | - |
| 実行環境 | Bun | - | - |
| 型チェック | @typescript/native-preview (tsgo) | v7以上 | tsc禁止 |
| linter/formatter | @biomejs/biome | v2以上 | - |
| CLIフレームワーク | citty | v0.1.6以上 | - |
| 色付き出力 | chalk | v5.6.2以上 | - |
| プログレスバー | cli-progress | v3.12.0以上 | - |
| 未使用コード検出 | knip | - | - |

使用していない技術スタックがあった場合は重大な問題として通知する必要がある。

## TypeScript 規約

- `any`の使用禁止
- `interface`ではなく`type`を使用(既存ライブラリ型の拡張時のみ例外、コメント必須)
- barrel import/exportの禁止
- 無駄なオプション・デフォルト値を設定しない

## スクリプト規約

- Bunで実行可能なTypeScriptファイルとして作成
- シェバン設定で単体実行可能にする
- 引数を取る時は全てオプション形式にする。位置引数は使わない。
  - サブコマンドを指定する時は例外的に許可。

```bash
# OK
./hoge.ts

# NG
bun run hoge.ts

# 引数あり
# OK
./hoge.ts --fuga "fuga" --piyo

# NG
./hoge.ts "fuga" piyo
```

## コード品質

- 関数型スタイルを意識(map/filterを優先、array.pushを避ける)
- fail fast. 無駄に catch して console.error するなどをせず、素直にエラー終了させること。
- 暗黙のフォールバック禁止
- ダミーコード・NO-OP実装の禁止

### ダミーコード・NO-OPの例

```typescript
// NG: 何もしない関数
function doSomething() {
  // TODO: 後で実装
}

// NG: 常にtrueを返す検証
function validate(input: string): boolean {
  return true; // 実際の検証なし
}

// NG: エラーを握りつぶす
try {
  riskyOperation();
} catch {
  // 何もしない
}
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.