Choose which SkillNote skill collection is active for this Codex project. Use when the user says "change collection", "switch skills", "use frontend skills", or "show collections".
日本語の概要は準備中です。原文の説明を表示しています。
Create and push reusable skills to SkillNote from Codex when repeated instructions are detected or the user says "create a skill", "save this pattern", "push a skill". Guides drafting, review, collection selection, and publishing.
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
Create and push reusable skills to the SkillNote registry so every connected agent learns from repeated patterns.
HOST=$(cat ~/.skillnote/host 2>/dev/null | tr -d '[:space:]'); HOST=${HOST:-localhost}
API="http://${HOST}:8082"
(In Python: host = (open(os.path.expanduser('~/.skillnote/host')).read().strip() if os.path.exists(os.path.expanduser('~/.skillnote/host')) else 'localhost').)
Only suggest for PERSISTENT conventions, not temporary workarounds.
If the user did not explicitly ask to create a skill, you MUST ask first. Tell the user what you noticed in one sentence, then ask: "Want me to save this as a SkillNote skill?" Wait for an explicit yes before drafting anything.
Skip this step only when the user already said "create a skill for X" / "save this pattern" / "push a skill" in their own words.
Collaborate on three fields:
# Title, actionable with examples.Show the full draft to the user.
import urllib.request, json, os
host = open(os.path.expanduser('~/.skillnote/host')).read().strip() if os.path.exists(os.path.expanduser('~/.skillnote/host')) else 'localhost'
api = f"http://{host}:8082"
try:
resp = urllib.request.urlopen(f"{api}/v1/skills/<SLUG>")
print(f"EXISTS: v{json.loads(resp.read()).get('current_version', '?')}")
except urllib.error.HTTPError as e:
print("NEW" if e.code == 404 else f"ERROR: {e.code}")
import urllib.request, json, os
host = open(os.path.expanduser('~/.skillnote/host')).read().strip() if os.path.exists(os.path.expanduser('~/.skillnote/host')) else 'localhost'
api = f"http://{host}:8082"
try:
cols = json.loads(urllib.request.urlopen(f"{api}/v1/collections").read())
for c in cols: print(f" - {c['name']} ({c['count']} skills)")
if not cols: print(" (no collections yet)")
except Exception as e:
print(f"Could not fetch: {e}")
Every skill must belong to at least one collection. Present the list above and ask the user (plain text) which collection to use, or to type a new name. New names must match ^[a-z0-9_-]+$, 1–128 chars, and cannot contain anthropic or claude. A skill cannot be pushed without a collection.
Show the complete skill preview. Emphasize: "Does the description have good trigger keywords?" Wait for approval.
import json, urllib.request, os
host = open(os.path.expanduser('~/.skillnote/host')).read().strip() if os.path.exists(os.path.expanduser('~/.skillnote/host')) else 'localhost'
api = f"http://{host}:8082"
payload = json.dumps({"name": "<NAME>", "slug": "<NAME>", "description": "<DESC>", "content_md": "<CONTENT>", "collections": ["<COL>"]}).encode()
req = urllib.request.Request(f"{api}/v1/skills", data=payload, headers={"Content-Type": "application/json"}, method="POST")
try:
result = json.loads(urllib.request.urlopen(req).read())
print(f"Created: {result['slug']} v{result['current_version']}")
except urllib.error.HTTPError as e:
print(f"Error: {json.loads(e.read())}")
import json, urllib.request, os
host = open(os.path.expanduser('~/.skillnote/host')).read().strip() if os.path.exists(os.path.expanduser('~/.skillnote/host')) else 'localhost'
api = f"http://{host}:8082"
payload = json.dumps({"name": "<NAME>", "description": "<DESC>", "content_md": "<CONTENT>", "collections": ["<COL>"]}).encode()
req = urllib.request.Request(f"{api}/v1/skills/<SLUG>", data=payload, headers={"Content-Type": "application/json"}, method="PATCH")
try:
result = json.loads(urllib.request.urlopen(req).read())
print(f"Updated: {result['slug']} v{result['current_version']}")
except urllib.error.HTTPError as e:
print(f"Error: {json.loads(e.read())}")
After success: link to http://<host>:3000/skills/<slug> for viewing.
~/.skillnote/host)まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Choose which SkillNote skill collection is active for this Codex project. Use when the user says "change collection", "switch skills", "use frontend skills", or "show collections".
日本語の概要は準備中です。原文の説明を表示しています。
Choose which SkillNote skill collection is active for this project. Use when user says "change collection", "switch skills", "use frontend skills", "show collections", or at first session in a new project when recommended.
日本語の概要は準備中です。原文の説明を表示しています。
Rate a SkillNote skill after using it in Codex. Called after applying a skill to record a 1-5 rating and outcome.
日本語の概要は準備中です。原文の説明を表示しています。
Rate a SkillNote skill after using it. Called after applying a skill to provide 1-5 rating and outcome.
日本語の概要は準備中です。原文の説明を表示しています。
Create and push reusable skills to SkillNote when repeated instructions are detected or user says "create a skill", "save this pattern", "push a skill". Guides drafting, review, collection selection, and publishing.
日本語の概要は準備中です。原文の説明を表示しています。
Show the active SkillNote collection and the skills synced into this project for Codex. Use when the user says "skillnote", "what skills do I have", "show my collection", or wants a SkillNote status/dashboard.
日本語の概要は準備中です。原文の説明を表示しています。