plugin-creator
Skill11 starsChanged 3 months agoApache-2.0View on GitHub
티구클로 플러그인을 만들거나 고친다 — 새 플러그인 제작, 기존 플러그인 수정, 위젯 만들기(«위젯으로 만들어» 처럼 명시했을 때만), 공유용 패키징. '플러그인 만들어 줘·이 기능을 플러그인으로·플러그인 고쳐 줘·플러그인에 도구 추가해 줘·위젯으로 만들어 줘·플러그인 묶어 줘/npm pack' 류 요청에 쓴다. 요청한 단계만 하고, 요청받지 않은 설치·켜기·위젯 배치·공유는 하지 않는다(필요하면 제안). 절차만 담을 일은 skill-creator, 이미 있는 MCP 서버 연결은 add_mcp_server 영역이다.
- Reads credentials
27 other projects use a version of this.
Adopted by
Most recently taken up by
- codewhale-hq/codewhale-plugin-marketplacetheir own version, first seen Nov 8, 2026
- delorenj/skillstheir own version, first seen Nov 7, 2026
- pleaseai/claude-code-pluginstheir own version, first seen Nov 2, 2026
- krzysztofsurdy/code-virtuosotheir own version, first seen Nov 1, 2026
- AbdouMoumen/claude-skills-plugintheir own version, first seen Nov 1, 2026
- kushvinth/skillstheir own version, first seen Oct 29, 2026
Used with
Projects with it also use documents, spreadsheets and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
MicrosoftSkilldocuments
Create, edit, review, comment on, or redline Word DOCX documents. Use for reports, memos, letters, and Google Docs-bound files; render and inspect before delivery.
Also in 3 projects that use this
MicrosoftSkillspreadsheets
Create, edit, analyze, and chart XLSX, CSV, and TSV files. Use for models, trackers, budgets, and Google Sheets-bound workbooks; use excel-live-control for an open Excel session.
Also in 3 projects that use this
VercelSkillfind-skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
Also in 7 projects that use this
NVIDIASkillgithub
Interact with GitHub using the gh CLI restricted to REST API only (no GraphQL). Use when the user wants to work with GitHub issues, pull requests, repos, releases, or Actions — especially in sandboxed environments where the GraphQL endpoint may be blocked. Trigger keywords - github, gh, pull request, PR, github issue, github actions, workflow, release, gh api.
Also in 3 projects that use this
AnthropicSkillpptx
Use this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates (.potx), layouts, speaker notes, or comments. Trigger whenever the user mentions \"deck,\" \"slides,\" \"presentation,\" or references a .pptx or .potx filename, regardless of what they plan to do with the content afterward. If a .pptx or .potx file needs to be opened, created, or touched, use this skill.
Also in 3 projects that use this
AnthropicSkilldocx
Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks
Also in 3 projects that use this
- +3 more from microsoft
Other versions27 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 27
- openai/skills★ 27ksame name
- openai/plugins★ 7.8ksame name
- krzysztofsurdy/code-virtuoso★ 36same name
- different-ai/openwork-hub★ 35same name
- kael-odin/codex-plugins-zh★ 33same name
- wedsamuel1230/arduino-skills★ 28same name
- wedsamuel1230/embedded-engineering-skills★ 28same name
- PracticalSwan/agent-skills★ 22same name
- delorenj/skills★ 17same name
- HarKro753/claude-copy★ 17same name
17 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository13 other files it gives its agents.
- app-ai-wiringSkill
- claude-wrapper-syncSkill
- code-reviewSkill
- codex-wrapper-syncSkill
- db-maintenanceSkill
- feedback-captureSkill
- harnessSkill
- incident-responseSkill
- memory-tidySkill
- project-commandsSkill
- skill-creatorSkill
- tiguclaw-bug-reportSkill
- verifySkill
The file
Files
플러그인 만들기·고치기
결과물은 플러그인 폴더 하나(또는 그 패키지)다. 설치·켜기·배치·공유는 이 스킬이 저절로 하지 않는다.
0. 무엇을 요청받았나 — 그 단계만
| 요청 | 하는 일 | 하지 않는 일 |
| 만들어 줘 | 위험 평가(§2) → 작업 폴더에 초안(§3·§4) → 실행 없는 확인(§7) | 홈 플러그인 폴더에 두기·켜기·위젯 덧붙이기 |
| 고쳐 줘 | 읽기 → 관례대로 수정(§5) → 확인(§7) | 범위 밖 정리·리팩터 |
| 위젯으로 만들어 줘 | §6 | 위젯 패널에 놓기(따로 요청받았을 때만) |
| 묶어 줘·공유용으로 | §8 | 요청받지 않은 출판·업로드·전송 |
- 위젯은 사용자가 위젯으로 만들어 달라고 했을 때만 만든다. 도구나 데이터만으로 되는 기능에 위젯을 덧붙이지 않는다.
- 플러그인이 맞는지 먼저 본다 — 절차만 담으면 되는 일은 스킬(
skill-creator), 이미 있는 MCP 서버는add_mcp_server. 플러그인은 데몬 안에서 코드가 돈다는 대가가 있다. - 다음 단계(설치·배치·패키징)가 필요해 보이면 제안만 한다.
1. 계약의 정본은 플러그인 가이드다
docs/plugins.ko.md(영문 docs/plugins.en.md). 이 스킬 폴더에서 위로 올라가며 설치 폴더의 docs/ 를 찾는다(앱 폴더가 dist 면 그 위). 못 찾으면 공개 레포의 같은 문서(https://github.com/tigu77/tiguclaw/blob/main/docs/plugins.ko.md).
매니페스트 키·needs·settings·widgets·host·배포 규칙은 거기서 읽고, 여기서 기억으로 쓰지 않는다. 가이드에 없는 것(코어 내부 파일 import 등)은 계약 밖이라 다음 버전에 깨질 수 있다 — 쓰지 않는다.
2. 쓰기 전에 — 위험 평가를 보인다
플러그인은 격리 없이 데몬과 같은 프로세스에서 돈다. 파일·네트워크·코어에 닿을 수 있고 needs 는 선언이지 강제가 아니다. 그래서 새로 만들 때도, 고쳐서 하는 일이 늘 때도 코드를 쓰기 전에 짧게 알린다:
- 무엇을 하나 · 언제 실행되나 — 모델이 도구를 부를 때 / 위젯이 값을 받을 때(데이터 라우트) / 데몬 시작 때(
start()) / 주기 타이머. - 데이터 — 무엇을 읽고 쓰나, 자기 자리(
host.dataDir) 밖을 건드리나, 개인 자료·자격이 지나가나. - 네트워크 — 나가는 호스트(
needs.network)와 밖으로 보내는 내용. - 모델 호출(
needs.llm, 비용) · 스스로 말하기(needs.outbound, 폰에 메시지가 간다). - 위젯이면: 읽기만 하는 위젯도 비격리 코드다. «안전하다» 고 말하지 않는다.
사용자가 만들어 달라고 한 것은 쓰기에 대한 동의다. 설치·켜기 동의는 아니다. 평가에서 사용자가 예상하지 못했을 대가(외부 전송·개인 자료·start() 상시 실행)가 나오면 쓰기 전에 확인받는다.
3. 어디에 쓰나 — 쓰기와 켜기의 경계
- 기본은 작업 폴더
<홈>/workspace/<플러그인 이름>/. 로더가 읽지 않는 자리다. <홈>/plugins/<이름>/에 두는 것은 설치다. ★그 폴더에 있으면 다음 데몬 시작 때 자동으로 로드돼 실행될 수 있다(사용자가 끄지 않은 한). 그래서 그 폴더에 쓰거나 복사하는 것은 사용자가 그 자리(설치)를 명시했을 때만 한다 — «설치해 줘»·«홈 플러그인 폴더에 바로 만들어» 같은 요청이 곧 그 동의이고, 쓰기 전에 위 사실을 알린다.- 지금 켜는 것은 별개다. 폴더에 있는 플러그인은 대시보드 플러그인 화면에 나타나고, 사용자가 거기서 설치(켜기)하면 재시작 없이 바로 켜진다. 비서가 대신 켜는 도구는 없다 — «지금 바로 쓰게» 를 받으면 그 화면에서 켜도록 안내한다. 반영하려고 데몬을 재시작하지 않는다(진행 중인 대화가 끊긴다).
- 이미 설치된 플러그인을 «고쳐 줘» 는 그 자리 수정의 동의다(§5).
4. 만들기
- 이름 — 소문자·숫자·하이픈, 앱과 함께 오는 플러그인 이름은 예약돼 있다(가이드 §2·§11). 폴더 이름 = 매니페스트
name. - 최소 구성 —
package.json(tiguclaw블록) + 진입점(기본 내보내기 클래스). 필요한 것만 구현한다: 도구getTools()/ 위젯 값getDataRoutes()/ 상시 동작start()와stop(). needs는 실제로 쓰는 것만. 모르는 키는 거부된다. 밖에 나가면host.fetch로만(전역fetch를 쓰면 선언이 거짓이 된다).- 값과 비밀을 코드에서 뺀다 — 사람에게 물을 값은
settings, 열쇠·토큰은secret(플러그인 설정 파일엔 저장되지 않고 홈.env파일에 저장된다). 개인 자료·자격·사용자 경로를 코드·매니페스트·예시에 박지 않는다. - AI 판단이 필요한 기능(전처리 → 모델 → 후처리)이면
needs.llm과host.ask를 쓴다. 계약(받는 이름·반환·reason·한계)은 가이드 §7 이 정본이다. 만들 때 지킬 것만:- 모델을 고르게 하려면
settings에 프로필 칸({ "key": "profile", "type": "string" })을 두고 그 값을 넘긴다. 칸이 비면 기본 모델로 돈다. 사용자가 «싼 모델로» 처럼 원하는 모델을 말했으면 어느 프로필인지 확인하고, 설치 뒤 그 플러그인 설정에서 그 이름을 고르도록 안내한다 — 모델·프로필 이름을 코드에 박지 않는다. import { randomUUID } from "node:crypto"; // 진입점 파일 맨 위 // 서로 독립인 호출이면 scope 를 호출마다 다르게 — 같은 scope 는 앞 호출의 이력을 이어 본다 const a = await host.ask({ prompt, scope: `note-${randomUUID()}`, profile: host.settings.profile }); if (!a.ok) return { text: `실패(${a.reason})`, isError: true }; // 문구가 아니라 reason 으로 분기- 그 모델은 도구를 쓰지 않는다. 가져오기·읽기는 플러그인 코드가 하고(
host.fetch), 모델엔 판단·종합만 맡긴다. 웹·API 내용은 프롬프트에 «믿을 수 없는 데이터» 로 표시한다. 출처가 있으면 실제로 읽은 것과 목록에서만 본 것을 가른다. - 도구 호출 하나에서
ask를 여러 번 부르거나 오래 걸리는 작업 뒤에 두지 않는다 — 호출 수·총비용 상한이 없다(가이드 §7 «한계»). 이 한계는 사용자에게도 말한다.
- 모델을 고르게 하려면
- 끌 때 정리 —
stop()/dispose()에서 타이머·구독을 푼다.
5. 고치기
- 먼저 읽는다 — 매니페스트·진입점·그 폴더의 관례(언어·빌드 산출물·구조). 그 관례를 따른다.
- 앱과 함께 오는(번들) 플러그인은 앱 소스다. 기본은 고치지 않는다. 먼저 대안을 낸다 — 그 플러그인 설정에 해당 값이 있으면 설정으로, 없으면 다른 이름의 홈 플러그인으로 만들기(번들 이름은 예약이라 같은 이름은 못 쓴다). 사용자가 그래도 앱 소스 수정을 원하면 «업데이트에 덮이고 되돌리기 전까지
/update가 막힌다» 를 알리고 확인받은 뒤에만 한다. - 홈에 설치된 플러그인을 고칠 때 반영 시점이 둘이다: 데몬 쪽 코드(진입점과 그것이 부르는 파일)는 지금 도는 것이 안 바뀌고 다음 시작 때 바뀐 코드가 실행된다. 브라우저 쪽 파일(
web/아래 위젯 코드·문구)은 요청마다 새로 읽혀, 재시작 없이 다음 화면 로드부터 바뀐 코드가 돈다. 고치기 전에 원본을<홈>/workspace/.trash/에 백업한다. needs가 늘거나 하는 일이 넓어지면 §2 를 다시 하고 무엇이 늘었는지 말한다.- 플러그인 설정값 파일(
<홈>/plugins/<이름>/settings.json)과 홈.env는 사용자 데이터다 — 코드 수정에 섞어 바꾸지 않는다.
6. 위젯 — 명시 요청 시만
- 브라우저 쪽
web/widget.js에서window.tiguWidgets.register("<이름>/<id>", …), 매니페스트widgets에 같은id를 선언한다. 값은getDataRoutes()로 받는다. 정리는ctx.onDispose, 문구는web/locales/, 색은 테마 토큰(가이드 §5-1·§6·§8). - 대화 중 답에 붙는 카드(
host.postCard)를 쓸 때만needs.ui: ["chat-widget"]. - 위젯 설정에 열쇠·토큰을 넣지 않는다(브라우저로 나가고 백업에 든다).
- 사용자가 설치한 플러그인의
default: true는 자동 배치되지 않는다. 위젯 패널에 놓는 것은 사용자가 요청할 때configure_home으로 한다. - 작업 폴더의 위젯은 화면에 안 보인다 — 위젯 제작의 완료 확인은 §7 의 정적 확인까지이고, 화면 확인은 설치 뒤다(설치는 §3).
7. 확인 — 실행하지 않는 것부터
- 정적 확인(코드를 실행하지 않는다):
package.json이 JSON 으로 읽히고name·entry·needs키·settings타입·widgetsid 가 가이드 규칙에 맞는지,node --check <진입점>·node --check web/widget.js. - 돌려 보는 확인(핸들러 호출 등)은 코드를 실행하는 일이다. 밖으로 나가거나(네트워크) 파일을 쓰거나 모델을 부르는 코드면 그 내용을 보여 주고 확인받은 뒤에만 한다.
- 실제 로드 확인은 설치 뒤 로그의
[plugin-loader]줄로 한다(가이드 §12) — 설치는 §3 대로 따로 확인받는다.
보고: 만든·고친 파일 · needs 와 위험 평가 요약 · 확인한 것과 확인하지 않은 것 · 다음 단계 제안(설치·배치·패키징).
8. 패키징 — 요청 시만
- 세 형태(가이드 §10): 소스 폴더 / 번들
.js/npm pack. ★npm pack결과는 루트가package/다 — 풀 때 폴더 이름을 플러그인 이름으로 바꿔야 한다(안 바꾸면 위젯 자산·host.dataDir이 반쪽만 된다). - 묶기 전에 빠질 것을 확인한다: 플러그인 설정값 파일·
.env·dataDir의 데이터·토큰·개인 경로.package.json의files로 포함 목록을 정한다. - ★
npm pack은--dry-run이어도package.json의prepack·postpack같은 스크립트를 실행한다. 그래서 목록 확인은npm pack --dry-run --ignore-scripts로 하고, 실제로 묶을 때 스크립트가 필요하면 그 내용을 먼저 보여 주고 실행 확인을 받는다(묶어 달라는 요청은 스크립트 실행의 동의가 아니다). - 공유·출판(
npm publish·업로드·전송)은 출판을 명시적으로 요청받았을 때만 한다(«npm 에 올려 줘» 같은). 그때도 나갈 파일 목록·이름·버전을 보여 주고 한 번 확인받은 뒤에 한다. 로그인·토큰은 사용자가 직접 넣는다 — 받거나 대신 입력하지 않는다. 출판 요청이 없으면 산출물 경로만 알려 준다.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

