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

Tencent/SkillHone

Continual agent skill evolution through persistent decision history. Whole-skill optimisation (SKILL.md + scripts + references) with every decision landing as a local Git issue / PR / wiki. Runs on any agentskills.io runtime — Claude Code, Codex, OpenClaw, Hermes.

対応Claude CodeCodex CLI~Cursor
npx skills add Tencent/SkillHone

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

ドキュメント

Forgejo

Thin wrapper around the Forgejo REST API. Each resource lives in its own script so the agent can discover and invoke them individually. SkillHone depends on this as a VCS backend skill, but it stays independent so another backend such as GitLab or Gitea can provide the same workflow surface.

Scripts

ScriptResourceRepresentative usage
scripts/issue.pyIssuespython3 scripts/issue.py create --title "Bug"
scripts/pr.pyPull requestspython3 scripts/pr.py merge 1
scripts/wiki.pyWiki pagespython3 scripts/wiki.py get --title "Analysis"
scripts/repo.pyRepo metadatapython3 scripts/repo.py branches
scripts/summary.pyAggregate dashboardpython3 scripts/summary.py

Every script supports --help. Run it before guessing flags.

Configuration

Resolved in this order (first match wins):

  1. Environment variables: FORGEJO_URL, FORGEJO_TOKEN, FORGEJO_OWNER, FORGEJO_REPO
  2. ~/.skillhone/settings.json + ~/.skillhone/identities.conf
  3. _data/forgejo_config.txt in the current working directory

If nothing is set, the script exits with a clear message naming the missing variable.

Usage By Resource

Issues

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"

Pull Requests

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"

Repo Metadata

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

Combined Summary

python3 scripts/summary.py
# open issues + open PRs + latest observation wiki page

Invocation From Other Skills

Other skills living under ~/.skillhone/skills/ call these scripts via their absolute path:

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

This keeps the VCS backend replaceable. A GitLab or Gitea skill can expose an equivalent command surface without changing SkillHone's optimization logic.

Gotchas

  • Tokens with @ characters break git clone URL injection. Use a token without @ or URL-encode it.
  • merge --method squash is not supported by older Forgejo versions. If you hit Unknown method, fall back to merge.
  • Wiki pages are stored as .md files in a separate git repo (<repo>.wiki.git). wiki.py hides that, but if you need custom editing, clone the wiki repo directly.

Hard Rules

  • Never print the Forgejo token to stdout/stderr logs. The scripts already redact; don't paste it into --body fields.
  • Do not call Forgejo's REST API directly with curl or handcrafted HTTP from SkillHone workflows. Use these backend scripts so credential loading, redaction, and backend replacement stay centralized.
  • Do not cat _data/forgejo_config.txt, ~/.skillhone/settings.json, or identities.conf to discover credentials. The scripts resolve credentials internally.
  • Do not push directly to main via any of these scripts. PRs only.
  • When you get a 401/403, re-check the config resolution order above before changing the script.

関連スキル

steipete/notion

Notion CLI/API for pages, Markdown content, data sources, files, comments, search, Workers, and raw API calls.

community

affaan-m/seo

Audit, plan, and implement SEO improvements across technical SEO, on-page optimization, structured data, Core Web Vitals, and content strategy. Use when the user wants better search visibility, SEO remediation, schema markup, sitemap/robots work, or keyword mapping.

community

affaan-m/brand-voice

Build a source-derived writing style profile from real posts, essays, launch notes, docs, or site copy, then reuse that profile across content, outreach, and social workflows. Use when the user wants voice consistency without generic AI writing tropes.

community

affaan-m/crosspost

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

community

affaan-m/x-api

X/Twitter API integration for posting tweets, threads, reading timelines, search, and analytics. Covers OAuth auth patterns, rate limits, and platform-native content posting. Use when the user wants to interact with X programmatically.

community

affaan-m/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

community