MCP HubMCP Hub
スキル一覧に戻る

state-directory-manager

vamseeachanta
更新日 Today
9 閲覧
3
2
3
GitHubで表示
その他bashstatepersistenceconfigdirectoryxdg

について

このスキルは、bashスクリプト向けにXDG準拠の永続的状態ディレクトリ管理を提供し、パスの解決とクリーンアップを自動的に処理します。実行間で設定、キャッシュデータ、ログの保持を必要とするCLIツールに最適です。開発者は、実行をまたいだ状態の永続化が必要な移植性の高いスクリプトを構築する際に使用すべきです。

クイックインストール

Claude Code

推奨
メイン
npx skills add vamseeachanta/workspace-hub
プラグインコマンド代替
/plugin add https://github.com/vamseeachanta/workspace-hub
Git クローン代替
git clone https://github.com/vamseeachanta/workspace-hub.git ~/.claude/skills/state-directory-manager

このコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします

ドキュメント

State Directory Manager

When to Use This Skill

Use when:

  • Scripts need to persist data between runs
  • Storing user preferences or configuration
  • Caching results for performance
  • Managing log files with rotation
  • Creating portable CLI tools

Avoid when:

  • One-time scripts that don't need state
  • Scripts that should be purely stateless
  • When environment variables are sufficient

Complete Example: State Manager Module

#!/bin/bash
# ABOUTME: Complete state directory manager
# ABOUTME: Reusable module for bash scripts

# ─────────────────────────────────────────────────────────────────
# State Directory Manager v1.0.0
# ─────────────────────────────────────────────────────────────────

# Application identity (override in your script)
: "${STATE_APP_NAME:=my-app}"

# Directory setup
STATE_BASE_DIR="${HOME}/.${STATE_APP_NAME}"
STATE_CONFIG_DIR="$STATE_BASE_DIR/config"
STATE_DATA_DIR="$STATE_BASE_DIR/data"
STATE_CACHE_DIR="$STATE_BASE_DIR/cache"
STATE_LOG_DIR="$STATE_BASE_DIR/logs"
STATE_TMP_DIR="$STATE_BASE_DIR/tmp"

# File paths
STATE_CONFIG_FILE="$STATE_CONFIG_DIR/config"
STATE_STATE_FILE="$STATE_DATA_DIR/state"
STATE_LOG_FILE="$STATE_LOG_DIR/app.log"


*See sub-skills for full details.*

## Usage in Scripts

```bash
#!/bin/bash
# Your script that uses the state manager

# Set app name before sourcing
STATE_APP_NAME="my-tool"

# Source the state manager
source /path/to/state-manager.sh

# Now use it
state_config_set "api_key" "abc123"
api_key=$(state_config_get "api_key")

state_set "last_run" "$(date -Iseconds)"
state_log "INFO" "Script started"

# Use cache
if ! result=$(state_cache_get "api_response"); then
    result=$(curl -s https://api.example.com/data)
    state_cache_set "api_response" "$result"
fi

Resources


Version History

  • 1.0.0 (2026-01-14): Initial release - extracted from workspace-hub patterns

Sub-Skills

GitHub リポジトリ

vamseeachanta/workspace-hub
パス: .claude/skills/_core/bash/state-directory-manager

関連スキル

usage-tracker

その他

The usage-tracker skill enables developers to track and analyze tool or resource usage over time through timestamped logging and reporting. It's designed for generating periodic usage reports, monitoring quotas, and detecting usage trends, but is not suitable for real-time or high-frequency event tracking. Key capabilities include daily/weekly/monthly breakdowns and pattern analysis for building dashboards.

スキルを見る

parallel-batch-executor

その他

This skill enables parallel task execution in bash using xargs and job control for significant performance gains. It's ideal for batch operations on independent items like multiple files or repositories, particularly for I/O-bound tasks. Developers should use it when order doesn't matter and avoid it for tasks with dependencies or shared resource requirements.

スキルを見る

cross-platform-compat

その他

This skill provides canonical bash patterns and command replacements for writing portable scripts across Windows Git Bash, Linux, and macOS. It includes OS detection and fixes for common breaking commands like `bc`, `python3`, `nproc`, and `sed -i`. Use it when writing or auditing scripts that need to run reliably on different development machines.

スキルを見る

json-config-loader

その他

This skill provides bash configuration parsing patterns for INI, key=value, and JSON files using tools like jq. It's ideal for loading configs into bash scripts, generating JSON reports, and managing settings with associative arrays. Avoid it for complex nested configurations where Python would be more suitable.

スキルを見る