01
このSkillでできること
- ✓アクティブなMCPサーバーとスキルを監査し、会議・カレンダー・メールなどの能力別に整理する
- ✓各能力グループのツール名、ノート保存先、プロバイダー、関連スキルを対話的に確認する
- ✓pm-init、pm-start、pm-status、pm-endのスキルを生成する
- ✓個人設定、フレームワークライブラリ、ランタイム状態を所定の場所に作成する
02
使い方
01
STEP 1
PMフレームワークを自分のツール構成向けに初期設定したいときに呼び出す
02
STEP 2
対話形式で能力ごとのツール対応、ノートルート、プロバイダー、関連スキルを指定する
03
STEP 3
生成されたPMスキルと個人設定の内容を確認する
04
STEP 4
既存の個人設定がある場合は、上書き確認を明示してから進める
03
Skillのインストール
初心者におすすめ
AIにこのSkillを追加してもらう
GitHub URLごとCodexやClaude Codeへ渡し、現在の環境に合う方法を判断してもらいます。
このGitHubリポジトリにあるSkillを確認し、現在の環境に適した方法でインストールしてください。
インストール後、正常に利用できることを確認し、基本的な使い方も簡潔に説明してください。
Repository:
https://github.com/eimaj/project-manager手動でインストールする
README / SKILL.mdから機械抽出できたコマンドのみ表示しています。推測したコマンドではありません。
CONFIG_DST="${PM_CONFIG:-$HOME/.config/pm/config.json}"
mkdir -p "$(dirname "$CONFIG_DST")"
if [[ -f "$CONFIG_DST" && "${CONFIRM_CONFIG_OVERWRITE:-no}" != "yes" ]]; then
echo "GUARD: config exists at $CONFIG_DST — confirm overwrite to proceed."
echo "STOP and ask the user. Safe paths: set CONFIRM_CONFIG_OVERWRITE=yes to overwrite,"
echo "or back up first: cp \"$CONFIG_DST\" \"$CONFIG_DST.bak\"."
return 10 2>/dev/null || exit 10
fi
TOOLS_NDJSON="$(mktemp)"
add_tool() {
local name="$1" provider="$2" root="$3"; shift 3
local skills_json='[]'
[[ "$#" -gt 0 ]] && skills_json=$(printf '%s\n' "$@" | jq -R . | jq -s .)
jq -nc \
--arg name "$name" --arg provider "$provider" --arg root "$root" \
--argjson skills "$skills_json" \
'{name:$name, value:({provider:$provider}
+ (if $root=="" then {} else {root:$root} end)
+ {skills:$skills})}' >> "$TOOLS_NDJSON"
}
TOOLS_OBJ=$(jq -s 'reduce .[] as $t ({}; .[$t.name] = $t.value)' "$TOOLS_NDJSON")
jq -n \
--arg fw "$FRAMEWORK_ROOT" --arg notes "$NOTES_ROOT" \
--argjson tools "$TOOLS_OBJ" \
'{version:"2.0", paths:{framework_root:$fw, notes_root:$notes}, tools:$tools}' > "$CONFIG_DST"
rm -f "$TOOLS_NDJSON"
echo "wrote $CONFIG_DST"
mkdir -p "$NOTES_ROOT"mkdir -p "$FRAMEWORK_ROOT/lib" "$FRAMEWORK_ROOT/sessions"
for f in session.sh with-lock.sh scaffold.sh handoff-write.sh config.sh commit-paths.sh \
session-commit.sh churn-sweep.sh prune-markers.sh active-panes.sh \
herdr-tabs.sh herdr-goto.sh; do
install -m 0755 "$REPO/lib/$f" "$FRAMEWORK_ROOT/lib/$f"
done
[[ -f "$FRAMEWORK_ROOT/registry.jsonl" ]] || : > "$FRAMEWORK_ROOT/registry.jsonl"
echo "installed lib + state under $FRAMEWORK_ROOT"SKILLS_DIR="$HOME/.claude/skills"
render_skill() {
local skill="$1"
local tdir="$REPO/templates/$skill"
local src="$tdir/SKILL.md"
[[ -f "$tdir/SKILL.local.md" ]] && src="$tdir/SKILL.local.md"
local dst_dir="$SKILLS_DIR/$skill"
local dst="$dst_dir/SKILL.md"
if [[ -e "$dst_dir" ]]; then
if [[ -L "$dst_dir" ]]; then
echo "GUARD: $dst_dir is a symlink (managed by another package). STOP — ask the user before replacing."; return 10
fi
if [[ -f "$dst" ]] && ! grep -q 'Rendered by `/pm-generate`' "$dst"; then
echo "GUARD: $dst exists and was NOT generated by pm-generate. STOP — ask the user before overwriting."; return 10
fi
fi
mkdir -p "$dst_dir"
esc() { printf '%s' "$1" | sed -e 's/[\\&#]/\\&/g'; }
subst() { # subst <src> <dst> — the 2-placeholder render, shared by SKILL.md + companions
sed \
-e "s#{{framework_root}}#$(esc "${FRAMEWORK_ROOT}")#g" \
-e "s#{{notes_root}}#$(esc "${NOTES_ROOT}")#g" \
"$1" > "$2"
}
subst "$src" "$dst"
echo "rendered $dst"
local f base osrc
for f in "$tdir"/*.md; do
[[ -e "$f" ]] || continue
base="$(basename "$f")"
case "$base" in SKILL.md|*.local.md) continue ;; esac
osrc="$f"
[[ -f "$tdir/${base%.md}.local.md" ]] && osrc="$tdir/${base%.md}.local.md"
subst "$osrc" "$dst_dir/$base"
echo "rendered $dst_dir/$base"
done
}
for s in pm-init pm-start pm-status pm-end; do
render_skill "$s" || { echo "Rendering halted on $s (guard tripped). Resolve with the userpm/
install.sh # idempotent installer (symlink + lib + state + starter config)
lib/ # tool-agnostic bash, installed into the framework dir
session.sh # resolve a stable per-session id (read-only)
with-lock.sh # reusable atomic mkdir lock (retry/stale-break/fail-loud)
scaffold.sh # scaffold a project's files; upsert the registry
handoff-write.sh # atomic per-session LAST-SESSION.md block update
commit-paths.sh # frozen-HEAD commit primitive (scratch-index, no checkout)
session-commit.sh # per-session pm-end commit branch, via commit-paths.sh
config.sh # read the personal config, expose generic tool accessors
templates/pm-{init,start,status,end}/SKILL.md # placeholder skills, RENDERED by pm-generate
skills/pm-generate/ # the generator skill itself (symlinked by install.sh)
docs/ # ARCHITECTURE.md, SLOTS.md
config/config.example.json # personal-config template (schema v2, named-tool registry)
tests/run.sh # pure-bash test suite (bash + jq only)04
このSkillを使うプロンプト例
Skill名を明示すると、意図したSkillを使わせやすくなります。自動発動型では必須とは限りません。
自分のツール構成に合わせてPMスキルを生成して。利用中のMCPサーバーとスキルを監査し、各ツールの対応を確認したい。出力例を見る
接続されたツールを能力別に整理し、確認したマッピングに基づいてpm-init、pm-start、pm-status、pm-endと個人設定を生成しました。05
安全性チェック
自動解析による参考情報です。Skillの安全性を保証するものではありません。
外部API通信検出あり
Shellコマンド実行明確な記述なし
ファイル読み取り明確な記述なし
ファイル書き込み検出あり
ネットワークアクセス検出あり
認証情報明確な記述なし
検出根拠を見る
- file_write: ONFIG_DST="${PM_CONFIG:-$HOME/.config/pm/config.json}" mkdir -p "$(dirname "$CONFIG_DST")" # GUARD: never silently clobber an existing personal config
- file_write: OVERWRITE=yes to overwrite," echo "or back up first: cp \"$CONFIG_DST\" \"$CONFIG_DST.bak\"." return 10 2>/dev/null || exit 10 fi TOOLS_NDJSON=
- network: { "name": "Jane Doe", "role": "Backend", "slack": "https:// .slack.com/team/U0123ABC", "github": "janedoe", "email": "jane.doe@company.com" } ] [
06
関連Skill
create-verification-skill
create-verification-skill
実際のアプリをユーザー操作に近い形で起動・検証し、証拠取得と機能マップを行うプロジェクトローカルスキルを生成します。
agent-development-environmentai-agentsautomation
asd-ste100
asd-ste100
AIやシステムが誤読しやすい英語を、ASD-STE100の考え方で明確な技術英語に書き換えます。
評価確度:暫定ai-toolsanthropicclaude-ai
mintlify
Mintlifyドキュメント作成・管理
MintlifyでMDXベースのドキュメントサイトを作成・管理し、設定、ナビゲーション、コンポーネント、APIリファレンスを扱うスキル。
評価確度:暫定