Communityライティング&編集github.com

Tencent/SkillHone

持続的なエージェントスキル進化を実現する、決定履歴に基づくスキル全体最適化(SKILL.md + スクリプト + 参照ファイル)。各決定をローカルのGit Issue/PR/ウィキに着地させます。Claude Code、Codex、OpenClaw、Hermesなど、任意のagentskills.ioランタイムで動作します。

SkillHone とは?

SkillHoneは、AIエージェントのスキルを継続的に進化させるためのフレームワークです。エージェントが下した各決定の履歴を永続的に保存し、それを基にスキル全体(SKILL.md、スクリプト、参照ファイル)を最適化します。最適化結果は自動的にローカルGitリポジトリ上でIssue、Pull Request、Wikiページとして記録されるため、チームでのレビューや変更追跡が容易です。SkillHone自体は特定のVCS(バージョン管理システム)バックエンドに依存しておらず、標準的なREST APIラッパーであるForgejoスキルを介して動作します。この設計により、GitLabやGiteaなど他のVCSバックエンドに容易に差し替えが可能です。対応プラットフォームはClaude Code、Codex、OpenClaw、Hermesなど、agentskills.ioランタイムを採用するすべてのエージェントです。開発者は、環境変数や設定ファイルで認証情報を管理し、用意されたスクリプト群(Issue、PR、Wiki、リポジトリメタデータ、サマリー操作用)を呼び出すことで、スキル進化のワークフローを効率的に実行できます。

対応✓Claude Code✓Codex CLI~Cursor
npx skills add Tencent/SkillHone

Installed? Explore more ライティング&編集 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Forgejo

Forgejo REST APIのシンプルなラッパーです。各リソースは個別のスクリプトに分かれているため、エージェントは個別に発見・実行できます。SkillHoneはこれをVCSバックエンドスキルとして利用しますが、Forgejoスキル自体は独立しているため、GitLabやGiteaなどの他のバックエンドでも同じワークフロー表面を提供できます。

スクリプト

スクリプトリソース代表的な使用例
scripts/issue.pyIssuepython3 scripts/issue.py create --title "Bug"
scripts/pr.pyプルリクエストpython3 scripts/pr.py merge 1
scripts/wiki.pyWikiページpython3 scripts/wiki.py get --title "Analysis"
scripts/repo.pyリポジトリメタデータpython3 scripts/repo.py branches
scripts/summary.py集約ダッシュボードpython3 scripts/summary.py

すべてのスクリプトは --help をサポートしています。フラグを推測する前に実行してください。

設定

以下の順序で解決されます(最初に見つかったものが優先):

  1. 環境変数: FORGEJO_URL, FORGEJO_TOKEN, FORGEJO_OWNER, FORGEJO_REPO
  2. ~/.skillhone/settings.json + ~/.skillhone/identities.conf
  3. カレントワーキングディレクトリの _data/forgejo_config.txt

何も設定されていない場合、スクリプトは不足している変数を明示したメッセージとともに終了します。

リソースごとの使用法

Issue

python3 scripts/issue.py list
python3 scripts/issue.py view <N>
python3 scripts/issue.py create --title "Fix: timeout" --body "## Problem\n..."
python3 scripts/issue.py close <N>
python3 scripts/issue.py comment <N> --body "Done"

プルリクエスト

python3 scripts/pr.py list
python3 scripts/pr.py view <M>
python3 scripts/pr.py create --title "Fix timeout" --head fix/timeout --base main --body "Closes #1"
python3 scripts/pr.py review <M> --approve
python3 scripts/pr.py merge <M> --method merge
python3 scripts/pr.py comment <M> --body "LGTM"

Wiki

python3 scripts/wiki.py list
python3 scripts/wiki.py get --title "Iteration-1-Observation"
python3 scripts/wiki.py create --title "Page" --body "content"
python3 scripts/wiki.py edit --title "Page" --body "updated content"

リポジトリメタデータ

python3 scripts/repo.py info
python3 scripts/repo.py branches

複合サマリー

python3 scripts/summary.py
# オープンIssue + オープンPR + 最新の観察Wikiページ

他のスキルからの呼び出し

~/.skillhone/skills/ 配下にある他のスキルは、絶対パスでこれらのスクリプトを呼び出します:

python3 ~/.skillhone/skills/forgejo/scripts/issue.py list

これにより、VCSバックエンドを交換可能に保ちます。GitLabやGiteaのスキルも同等のコマンド表面を公開でき、SkillHoneの最適化ロジックを変更する必要はありません。

落とし穴

  • @ 文字を含むトークンはgit clone URLの注入を壊します。@ を含まないトークンを使用するか、URLエンコードしてください。
  • merge --method squash は古いバージョンのForgejoではサポートされていません。Unknown method が発生した場合は merge にフォールバックしてください。
  • Wikiページは別のgitリポジトリ(<repo>.wiki.git)内に .md ファイルとして保存されます。wiki.py はそれを隠蔽しますが、カスタム編集が必要な場合はWikiリポジトリを直接クローンしてください。

ハードルール

  • Forgejoトークンをstdout/stderrログに絶対に出力しないでください。スクリプトはすでにトークンをマスクしますが、--body フィールドに貼り付けないでください。
  • SkillHoneワークフロー内で curl や手書きのHTTPを使って直接ForgejoのREST APIを呼び出さないでください。認証情報の読み込み、マスク、バックエンドの交換が一元化されるよう、これらのバックエンドスクリプトを使用してください。
  • 認証情報を発見するために _data/forgejo_config.txt、~/.skillhone/settings.json、または identities.conf を cat しないでください。スクリプトが内部で認証情報を解決します。
  • どのスクリプトを使用しても main に直接プッシュしないでください。PRのみを使用してください。
  • 401/403エラーが発生した場合は、スクリプトを変更する前に上記の設定解決順序を再確認してください。

関連スキル