chill-agent 1.5.0 โ 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/contrast-mcp-launcher.mjs +31 -0
- package/.claude-plugin/plugin.json +8 -3
- package/.cline-plugin/plugin.js +6 -0
- package/.codex-plugin/plugin.json +4 -3
- package/.cursor-plugin/marketplace.json +16 -0
- package/.cursor-plugin/plugin.json +2 -2
- package/.devin-plugin/plugin.json +2 -2
- package/.kimi-plugin/plugin.json +11 -29
- package/.omp-plugin/marketplace.json +15 -0
- package/.openclaw/skills/ponytail/SKILL.md +2 -7
- package/.openclaw/skills/ponytail-audit/SKILL.md +3 -6
- package/.openclaw/skills/ponytail-debt/SKILL.md +3 -4
- package/.openclaw/skills/ponytail-gain/SKILL.md +3 -4
- package/.openclaw/skills/ponytail-help/SKILL.md +3 -3
- package/.openclaw/skills/ponytail-review/SKILL.md +3 -6
- package/.opencode/plugins/ponytail.mjs +1 -1
- package/.qoder-plugin/plugin.json +12 -26
- package/AGENTS.md +32 -19
- package/__init__.py +1 -1
- package/assets/antislop-banner.png +0 -0
- package/assets/band/band.png +0 -0
- package/assets/band/board.png +0 -0
- package/assets/benchmark-3model.svg +21 -0
- package/assets/benchmark-agentic.svg +62 -0
- package/assets/codex-icon.png +0 -0
- package/assets/compare/code/after.webp +0 -0
- package/assets/compare/code/before.webp +0 -0
- package/assets/compare/text/after.webp +0 -0
- package/assets/compare/text/before.webp +0 -0
- package/assets/compare/ui/w-all.webp +0 -0
- package/assets/compare/ui/w-antislop.webp +0 -0
- package/assets/compare/ui/w-design.webp +0 -0
- package/assets/compare/ui/without.webp +0 -0
- package/assets/logo-dark.png +0 -0
- package/assets/logo-dark.svg +115 -0
- package/assets/logo-greenpt-dark.svg +27 -0
- package/assets/logo-greenpt.svg +27 -0
- package/assets/logo.png +0 -0
- package/assets/photoreunion-logo-dark.svg +4 -0
- package/assets/photoreunion-logo-light.svg +4 -0
- package/assets/profile.png +0 -0
- package/assets/retriever-logo-dark.svg +4 -0
- package/assets/retriever-logo-light.svg +4 -0
- package/assets/stories-banner.png +0 -0
- package/assets/v5/audit-es.png +0 -0
- package/assets/v5/audit-ja.png +0 -0
- package/assets/v5/audit-ko.png +0 -0
- package/assets/v5/audit-zh-CN.png +0 -0
- package/assets/v5/audit.png +0 -0
- package/assets/v5/beforeafter-es.png +0 -0
- package/assets/v5/beforeafter-ja.png +0 -0
- package/assets/v5/beforeafter-ko.png +0 -0
- package/assets/v5/beforeafter-zh-CN.png +0 -0
- package/assets/v5/beforeafter.png +0 -0
- package/assets/v5/chart-es.png +0 -0
- package/assets/v5/chart-ja.png +0 -0
- package/assets/v5/chart-ko.png +0 -0
- package/assets/v5/chart-zh-CN.png +0 -0
- package/assets/v5/chart.png +0 -0
- package/assets/v5/hero-es.jpg +0 -0
- package/assets/v5/hero-ja.jpg +0 -0
- package/assets/v5/hero-ko.jpg +0 -0
- package/assets/v5/hero-zh-CN.jpg +0 -0
- package/assets/v5/hero.jpg +0 -0
- package/assets/v5/ladder-es.png +0 -0
- package/assets/v5/ladder-ja.png +0 -0
- package/assets/v5/ladder-ko.png +0 -0
- package/assets/v5/ladder-zh-CN.png +0 -0
- package/assets/v5/ladder.png +0 -0
- package/assets/v5/review-es.png +0 -0
- package/assets/v5/review-ja.png +0 -0
- package/assets/v5/review-ko.png +0 -0
- package/assets/v5/review-zh-CN.png +0 -0
- package/assets/v5/review.png +0 -0
- package/assets/v5/tests-es.png +0 -0
- package/assets/v5/tests-ja.png +0 -0
- package/assets/v5/tests-ko.png +0 -0
- package/assets/v5/tests-zh-CN.png +0 -0
- package/assets/v5/tests.png +0 -0
- package/assets/waitlist-banner-es.png +0 -0
- package/assets/waitlist-banner-ja.png +0 -0
- package/assets/waitlist-banner-ko.png +0 -0
- package/assets/waitlist-banner-zh-CN.png +0 -0
- package/assets/waitlist-banner.png +0 -0
- package/benchmarks/.env.example +2 -0
- package/benchmarks/agentic/README.md +201 -0
- package/benchmarks/agentic/answer.py +288 -0
- package/benchmarks/agentic/compare.py +93 -0
- package/benchmarks/agentic/complete.py +178 -0
- package/benchmarks/agentic/judge.py +198 -0
- package/benchmarks/agentic/run.py +543 -0
- package/benchmarks/agentic/tasks.py +1544 -0
- package/benchmarks/arms/baseline.js +2 -0
- package/benchmarks/arms/caveman-SKILL.md +67 -0
- package/benchmarks/arms/caveman.js +8 -0
- package/benchmarks/arms/ponytail.js +8 -0
- package/benchmarks/behavior.js +54 -0
- package/benchmarks/behavior.yaml +40 -0
- package/benchmarks/correctness.js +291 -0
- package/benchmarks/loc.js +17 -19
- package/benchmarks/promptfooconfig.gemini.yaml +32 -0
- package/benchmarks/promptfooconfig.gpt-newest.yaml +33 -0
- package/benchmarks/promptfooconfig.yaml +41 -0
- package/benchmarks/results/2026-06-12-caveman-vs-ponytail.md +71 -0
- package/benchmarks/results/2026-06-12-v4-hardening-vs-caveman.md +125 -0
- package/benchmarks/results/2026-06-15-llama3.2-local.md +82 -0
- package/benchmarks/results/2026-06-16-correctness-gate-fix.md +113 -0
- package/benchmarks/results/2026-06-16-robustness-audit.md +135 -0
- package/benchmarks/results/2026-06-17-agentic-safety.md +164 -0
- package/benchmarks/results/2026-06-17-cost-verification.md +93 -0
- package/benchmarks/results/2026-06-18-agentic.md +219 -0
- package/benchmarks/results/2026-06-22-issue-245-217-comprehension.md +98 -0
- package/benchmarks/results/2026-10-07-agentic.md +186 -0
- package/bin/chill-agent.js +6 -6
- package/bin/chill-agent.mjs +7 -0
- package/cli/index.mjs +241 -0
- package/cli/lib/banner.mjs +21 -0
- package/cli/lib/install.mjs +498 -0
- package/cli/lib/settings.mjs +48 -0
- package/cli/package-lock.json +87 -0
- package/cli/package.json +42 -0
- package/cli/scripts/smoke-test.mjs +95 -0
- package/cli/scripts/smoke-worker.mjs +411 -0
- package/cli/scripts/sync-skills.mjs +81 -0
- package/examples/email-validation.md +156 -0
- package/examples/group-by.md +35 -0
- package/examples/infinite-scroll.md +58 -0
- package/examples/number-formatting.md +37 -0
- package/examples/rate-limit.md +272 -0
- package/examples/react-countdown.md +390 -0
- package/examples/url-params.md +41 -0
- package/gemini-extension.json +2 -2
- package/hooks/band/board.ts +560 -0
- package/hooks/band/logo.ts +3 -0
- package/hooks/band/metrics.ts +311 -0
- package/hooks/band/register.tsx +495 -0
- package/hooks/band/types.d.ts +34 -0
- package/hooks/claude-band.json +6 -0
- package/hooks/claude-codex-hooks.json +34 -4
- package/hooks/copilot-hooks.json +12 -2
- package/hooks/cursor-hooks.json +2 -2
- package/hooks/ponytail-band-import.js +274 -0
- package/hooks/ponytail-config.js +175 -0
- package/hooks/ponytail-map.js +111 -0
- package/hooks/ponytail-subagent.js +94 -0
- package/hooks/qoder-hooks.json +19 -4
- package/i18n/README.ko.md +230 -0
- package/package.json +12 -7
- package/pi-extension/test/extension.test.js +367 -0
- package/pi-extension/test/helpers.test.js +179 -0
- package/plugin.yaml +21 -12
- package/rules/antislop.mdc +18 -0
- package/scripts/build-openclaw-skills.js +60 -0
- package/scripts/check-repo.mjs +389 -0
- package/scripts/publish-openclaw-skills.js +75 -0
- package/scripts/skill-index.mjs +81 -0
- package/skills/antislop/SKILL.md +700 -0
- package/skills/antislop/VERSION +1 -0
- package/skills/antislop-code/SKILL.md +128 -0
- package/skills/antislop-copywriting/SKILL.md +407 -0
- package/skills/antislop-human/LICENSE-web-quality-skills +21 -0
- package/skills/antislop-human/SKILL.md +204 -0
- package/skills/antislop-human/contrast-check.py +168 -0
- package/skills/antislop-human/contrast-mcp.py +121 -0
- package/skills/antislop-human/references/A11Y-PATTERNS.md +249 -0
- package/skills/antislop-human/references/WCAG.md +127 -0
- package/skills/antislop-layoutmobile/SKILL.md +170 -0
- package/skills/antislop-ui/LICENSE-web-quality-skills +21 -0
- package/skills/antislop-ui/SKILL.md +344 -0
- package/skills/antislop-ui/references/CORE-WEB-VITALS.md +181 -0
- package/skills/antislop-ui/references/WEB-BASELINE.md +28 -0
- package/skills/plugin.json +5 -0
- package/src/package.json +3 -0
- package/tests/activation-map.test.js +63 -0
- package/tests/band-import.test.js +111 -0
- package/tests/band.test.tsx +520 -0
- package/tests/behavior.test.js +80 -0
- package/tests/gemini-extension.test.js +2 -2
- package/tests/grok-plugin.test.js +1 -1
- package/tests/hermes-plugin.test.js +1 -1
- package/tests/hooks-windows.test.js +205 -0
- package/tests/kimi-plugin.test.js +1 -1
- package/tests/map.test.js +30 -0
- package/tests/package-scripts.test.js +35 -0
- package/tests/package.test.js +23 -0
- package/tests/uninstall.test.js +202 -0
- /package/tests/{manifests.test.js โ manifests.test.mjs} +0 -0
- /package/tests/{rules.test.js โ rules.test.mjs} +0 -0
package/hooks/qoder-hooks.json
CHANGED
|
@@ -1,10 +1,25 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"_comment": "Loaded live by .qoder-plugin/plugin.json (\"hooks\": \"./hooks/qoder-hooks.json\"). Qoder expands ${QODER_PLUGIN_ROOT} (the plugin install root) at runtime; see https://docs.qoder.com/en/cli/plugins#writing-plugin-hooks.",
|
|
3
3
|
"hooks": {
|
|
4
|
-
"
|
|
4
|
+
"UserPromptSubmit": [
|
|
5
5
|
{
|
|
6
|
-
"
|
|
7
|
-
|
|
6
|
+
"hooks": [
|
|
7
|
+
{
|
|
8
|
+
"type": "command",
|
|
9
|
+
"command": "node \"${QODER_PLUGIN_ROOT}/hooks/ponytail-mode-tracker.js\""
|
|
10
|
+
}
|
|
11
|
+
]
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"PreToolUse": [
|
|
15
|
+
{
|
|
16
|
+
"matcher": "task|Task",
|
|
17
|
+
"hooks": [
|
|
18
|
+
{
|
|
19
|
+
"type": "command",
|
|
20
|
+
"command": "node \"${QODER_PLUGIN_ROOT}/hooks/ponytail-subagent.js\""
|
|
21
|
+
}
|
|
22
|
+
]
|
|
8
23
|
}
|
|
9
24
|
]
|
|
10
25
|
}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<picture>
|
|
3
|
+
<source media="(prefers-color-scheme: dark)" srcset="../assets/logo-dark.png">
|
|
4
|
+
<img src="../assets/logo.png" width="220" alt="Ponytail, ๊ฒ์ผ๋ฅธ ์๋์ด ๊ฐ๋ฐ์">
|
|
5
|
+
</picture>
|
|
6
|
+
</p>
|
|
7
|
+
|
|
8
|
+
<h1 align="center">Ponytail</h1>
|
|
9
|
+
|
|
10
|
+
<p align="center">
|
|
11
|
+
<em>์๋ฌด ๋ง๋ ์ ํ๋ค. ํ ์ค ์ด๋ค. ๋์๊ฐ๋ค.</em>
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
<p align="center">
|
|
15
|
+
<a href="https://trendshift.io/repositories/50668?utm_source=repository-badge&utm_medium=badge&utm_campaign=badge-repository-50668" target="_blank" rel="noopener noreferrer"><img src="https://trendshift.io/api/badge/repositories/50668" alt="DietrichGebert%2Fponytail | Trendshift" width="250" height="55"/></a>
|
|
16
|
+
</p>
|
|
17
|
+
|
|
18
|
+
<p align="center">
|
|
19
|
+
<img src="https://img.shields.io/github/stars/DietrichGebert/ponytail?style=flat-square&color=111111&label=stars" alt="Stars">
|
|
20
|
+
<img src="https://img.shields.io/github/v/release/DietrichGebert/ponytail?style=flat-square&color=111111&label=release" alt="Release">
|
|
21
|
+
<img src="https://img.shields.io/npm/v/@dietrichgebert/ponytail?style=flat-square&color=111111&label=npm" alt="npm">
|
|
22
|
+
<img src="https://img.shields.io/badge/works%20with-20%20agents-111111?style=flat-square" alt="Works with 20 agents">
|
|
23
|
+
<img src="https://img.shields.io/badge/license-MIT-111111?style=flat-square" alt="MIT license">
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
<p align="center">
|
|
27
|
+
<a href="https://trendshift.io/repositories/50668" target="_blank" rel="noopener noreferrer"><img src="https://trendshift.io/api/badge/trendshift/repositories/50668/daily" alt="DietrichGebert/ponytail | Trendshift" width="250" height="55"/></a>
|
|
28
|
+
<a href="https://trendshift.io/repositories/50668" target="_blank" rel="noopener noreferrer"><img src="https://trendshift.io/api/badge/trendshift/repositories/50668/weekly" alt="DietrichGebert/ponytail | Trendshift" width="250" height="55"/></a>
|
|
29
|
+
<a href="https://trendshift.io/repositories/50668?utm_source=trendshift-badge&utm_medium=badge&utm_campaign=badge-trendshift-50668" target="_blank" rel="noopener noreferrer"><img src="https://trendshift.io/api/badge/trendshift/repositories/50668/monthly?language=JavaScript" alt="DietrichGebert%2Fponytail | Trendshift monthly ranking" width="250" height="55"/></a>
|
|
30
|
+
</p>
|
|
31
|
+
|
|
32
|
+
<p align="center">
|
|
33
|
+
<img src="../assets/v5/hero-ko.jpg" width="880" alt="Ponytail 5, ๋ฐ๋ฐ๋ฅ๋ถํฐ ๋ค์ ๋ง๋ค์๋ค: ์ฝ๋ -53%, ์๊ฐ -41%, ๋น์ฉ -26%, ํ ํฐ -45%. ๊ทธ๋ฐ๋ฐ๋ ์ํํ ๋ก์ง์ 98%๊ฐ ํ
์คํธ๋ฅผ ๋ฌ๊ณ ๋๊ฐ๋ค. Ponytail ์์ด๋ 68%.">
|
|
34
|
+
</p>
|
|
35
|
+
|
|
36
|
+
<p align="center">
|
|
37
|
+
<strong>Ponytail 5: ๋ฐ๋ฐ๋ฅ๋ถํฐ ๋ค์ ๋ง๋ค์๋ค.</strong><br>
|
|
38
|
+
<strong>์ฝ๋ -53% · ์๊ฐ -41% · ๋น์ฉ -26% · ํ ํฐ -45%</strong><br>
|
|
39
|
+
<strong>๊ทธ๋ฐ๋ฐ๋: ์ํํ ๋ก์ง์ 98%๊ฐ ํ
์คํธ๋ฅผ ๋ฌ๊ณ ๋๊ฐ๋ค.</strong> Ponytail ์์ด๋: 68%.<br>
|
|
40
|
+
<sub>Claude Code์์ ๊ฐ์ ์์ด์ ํธ๋ฅผ ์คํฌ์ด ์์ ๋์ ์์ ๋๋ก ๋ฒค์น๋งํฌํ๋ค: ์ค์ FastAPI + React ์ ์ฅ์๋ฅผ ํฌํจํ ์์
39๊ฐ, Opus 5.5, ๊ฐ 5ํ ์คํ. <a href="#numbers">์์ธํ</a>.</sub>
|
|
41
|
+
</p>
|
|
42
|
+
|
|
43
|
+
<p align="center">
|
|
44
|
+
<sub><a href="../README.md">English</a> · <a href="README.es.md">Espaรฑol</a> · ํ๊ตญ์ด · <a href="README.zh-CN.md">็ฎไฝไธญๆ</a> · <a href="README.ja.md">ๆฅๆฌ่ช</a></sub><br>
|
|
45
|
+
<sub>์์ด README์ ๋ฒ์ญ๋ณธ์ด๋ค. ๋ด์ฉ์ด ๋ค๋ฅด๋ฉด <a href="../README.md">์์ดํ</a>์ด ๊ธฐ์ค์ด๋ค.</sub>
|
|
46
|
+
</p>
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
<p align="center">
|
|
51
|
+
<a href="https://ponytail.dev/soon"><img src="../assets/waitlist-banner-ko.png" alt="๊ณง ๋ฌด์ธ๊ฐ๊ฐ ์จ๋ค, ๋๊ธฐ ๋ช
๋จ์ ๋ฑ๋กํ๊ธฐ" width="760"></a>
|
|
52
|
+
</p>
|
|
53
|
+
|
|
54
|
+
## Ponytail๋ก ์ด๋ฏธ ๋ง๋ ๊ฒ
|
|
55
|
+
|
|
56
|
+
<a href="https://theretriever.app">
|
|
57
|
+
<picture>
|
|
58
|
+
<source media="(prefers-color-scheme: dark)" srcset="../assets/retriever-logo-dark.svg">
|
|
59
|
+
<img src="../assets/retriever-logo-light.svg" height="128" alt="Retriever">
|
|
60
|
+
</picture>
|
|
61
|
+
</a>
|
|
62
|
+
<a href="https://photoreunion.app/?ref=ponytail-gh">
|
|
63
|
+
<picture>
|
|
64
|
+
<source media="(prefers-color-scheme: dark)" srcset="../assets/photoreunion-logo-dark.svg">
|
|
65
|
+
<img src="../assets/photoreunion-logo-light.svg" height="128" alt="PhotoReunion">
|
|
66
|
+
</picture>
|
|
67
|
+
</a>
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
๋๊ตฐ์ง ์ ๊ฒ์ด๋ค. ๊ธด ํฌ๋ํ
์ผ. ํ์ํ ์๊ฒฝ. ๋ฒ์ ๊ด๋ฆฌ ์์คํ
๋ณด๋ค ํ์ฌ์ ์ค๋ ์์๋ค. ์ฐ ์ค์ ๋ณด์ฌ ์ฃผ๋ฉด ๊ฐ๋งํ ๋ณด๋ค๊ฐ, ์๋ฌด ๋ง ์์ด ํ ์ค๋ก ๋ฐ๊ฟ ๋๋๋ค.
|
|
72
|
+
|
|
73
|
+
Ponytail์ ๊ทธ ์ฌ๋์ ๋น์ ์ AI ์์ด์ ํธ ์์ ๋ฃ๋๋ค.
|
|
74
|
+
|
|
75
|
+
<a id="numbers"></a>
|
|
76
|
+
## ์์น
|
|
77
|
+
|
|
78
|
+
<p align="center">
|
|
79
|
+
<img src="../assets/v5/chart-ko.png" width="880" alt="์คํฌ ์๋ ๊ธฐ์ค์ ๋๋น ๋น์จ. ์ฝ๋ ์ค ์: Ponytail v4.13 52%, Ponytail 5 47%. ์ถ๋ ฅ ํ ํฐ: 57%์ 55%. ๋น์ฉ: 84%์ 74%. ์๊ฐ: 62%์ 59%.">
|
|
80
|
+
</p>
|
|
81
|
+
|
|
82
|
+
<p align="center">
|
|
83
|
+
<img src="../assets/v5/tests-ko.png" width="880" alt="์ฝ๋๋ ์ ๋ฐ์ธ๋ฐ, ๊ทธ๋๋ ๋ ๋ซ๋ค: ์ํํ ๋ก์ง์ 98%๊ฐ ํ
์คํธ๋ฅผ ๋ฌ๊ณ ๋๊ฐ๋ค (์คํฌ ์์ 68%). ์์ด์ ํธ๊ฐ ์ง์ ์ด ํ
์คํธ๊ฐ ์ฃผ์
๋ ๋ฒ๊ทธ์ 66%๋ฅผ ์ก๋๋ค (์คํฌ ์์ 46%).">
|
|
84
|
+
</p>
|
|
85
|
+
|
|
86
|
+
์ฐจํธ๊ฐ ๋ณด์ฌ ์ฃผ์ง ์๋ ๊ฒ์ด ๋ ๊ฐ์ง ์๋ค. ๋ธ๋ผ์ธ๋ ๋น๊ต์์ Ponytail 5์ ๋ต๋ณ์ ์ด์ Ponytail์ ๋ต๋ณ์ 110 ๋ 67๋ก ์ด๊ฒผ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ณด์ ์์
6๊ฐ(SQL ์ธ์ ์
, ๊ฒฝ๋ก ํ์, ์์กฐ ํ ํฐ, ์์ฒญ ์๋ ์ ํ, ์๋ชป๋ CSV ํ, ์บ์ฑ)์์ 30ํ ์คํ์ ๋ชจ๋ ํต๊ณผํ๋ค: ์ฝ๋๋ ์ค์์ง๋ง, ์์ ์ฑ์ ๊ทธ๋๋ก๋ค. ๋ฐฉ๋ฒ, ์์
๋ณ ํ, ํ๊ณ: [benchmarks/results/2026-10-07-agentic.md](../benchmarks/results/2026-10-07-agentic.md).
|
|
87
|
+
|
|
88
|
+
**๊ท์น์ ์ฒ์๋ถํฐ "ํ ํฐ์ ๊ฐ์ฅ ์ ๊ฒ"๊ฐ ์๋์๋ค.** ๊ท์น์ ์ด๊ฒ์ด๋ค: ์์
์ ํ์ํ ๊ฒ๋ง ์ฐ๊ณ , ๊ฒ์ฆ, ์ค๋ฅ ์ฒ๋ฆฌ, ๋ณด์, ์ ๊ทผ์ฑ์ ์ ๋ ์๋ผ ๋ด์ง ์๋๋ค. ์ฝ๋๊ฐ ์์์ง๋ ๊ฒ์ ํ์ํ ๋งํผ์ด๊ธฐ ๋๋ฌธ์ด์ง, ์ต์ง๋ก ์ค์๊ธฐ ๋๋ฌธ์ด ์๋๋ค. ๋น์ฉ๊ณผ ์ง์ฐ ์๊ฐ์ด ์ค์ด๋๋ ๊ฒ์ ๋ถ์ ํจ๊ณผ๋ค.
|
|
89
|
+
|
|
90
|
+
## ์ / ํ
|
|
91
|
+
|
|
92
|
+
<p align="center">
|
|
93
|
+
<img src="../assets/v5/beforeafter-ko.png" width="880" alt="ํ๋ก ํธ์๋์ ๋ ์ง ์ ํ๊ธฐ๋ฅผ ์ถ๊ฐํด ์ค. ์คํฌ ์์: 335์ค, ๋ฌ๋ ฅ๊ณผ ๋ ์ง ์ ํ๊ธฐ๋ฅผ ์์ผ๋ก ๋ง๋ค์๋ค. Ponytail 5: ์ ์ฅ์์ Input์ type date๋ก ์ฌ์ฌ์ฉํ๋ 10์ค์ง๋ฆฌ ํ์ผ ํ๋, ๊ทธ๋์ ๋ฌ๋ ฅ์ ๋ธ๋ผ์ฐ์ ๊ฐ ๊ฐ์ ธ์จ๋ค.">
|
|
94
|
+
</p>
|
|
95
|
+
|
|
96
|
+
๋ ์ง ์ ํ๊ธฐ๋ฅผ ๋ถํํ๋ค. Ponytail์ด ์์ผ๋ฉด ์์ด์ ํธ๋ ๋ ์ง ์ ํ๊ธฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ฑฐ๋, ๋ฌ๋ ฅ ์ ์ฒด๋ฅผ ์์ผ๋ก ๋ง๋ ๋ค: 335์ค. Ponytail 5๋ ๋จผ์ ์ด๋ฏธ ์๋ ๊ฒ์ ๋ณธ๋ค: ์ ์ฅ์์๋ `Input` ์ปดํฌ๋ํธ๊ฐ ์๊ณ , ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์๋ ๋ ์ง ์ ํ๊ธฐ๊ฐ ์๋ค. ๊ทธ ๋์ ํฉ์น๋ค. 10์ค.
|
|
97
|
+
|
|
98
|
+
์ด์๋จ์ ์์ ๋ [examples/](../examples/)์ ๋ ์๋ค.
|
|
99
|
+
|
|
100
|
+
## ๋ค์ ๋ง๋ ๋ฆฌ๋ทฐ
|
|
101
|
+
|
|
102
|
+
<p align="center">
|
|
103
|
+
<img src="../assets/v5/review-ko.png" width="880" alt="๋ค์ ๋ง๋ ๋ฆฌ๋ทฐ. ๋ฒค์น๋งํฌ์์ ๋์จ ์ค์ /ponytail-review ์ง์ : ๋ณ๊ฒฝ์ด ํ๋ ์ด๋ฆ์ ๋ฐ๊ฟจ๊ณ , ์๋์ง ์์ ํ์ผ src/routes/feed.js๊ฐ ์ด์ ํฌ๋์๊ฐ ๋๋ค. ๋ฐ๋์ ๊ณ ์น ๊ฒ: ์ด์ Atom ํผ๋๊ฐ ์์ฒญ๋ง๋ค ํฌ๋์๊ฐ ๋๋ค. ์ด๊ฒ์ด ๋ฌด์์ธ์ง, ๋ฌธ์ , ๊ณ ์น๋ ๋ฐฉ๋ฒ, ๋์ด๊ฐ๋ฉด ์๊ธฐ๋ ์ผ๊น์ง ํจ๊ป ์ ํ ์๋ค. ์ฌ์ด ๋ ๋ฌธ์ 100% ๋ฐ๊ฒฌ, ์คํฌ ์์ 87%. diff ๋ฐ์ ๋ฌธ์ 100% ๋ฐ๊ฒฌ, ์คํฌ ์์ 78%.">
|
|
104
|
+
</p>
|
|
105
|
+
|
|
106
|
+
`/ponytail-review`๋ ์๋ ์๋ผ ๋ผ ์ฝ๋๋ง ์ฐพ์๋ค. ์ด์ ๋ ์ฅ์ ๊ฐ ๋๋ฉด ํธ์ถ๋๋ ์๋์ด ๊ฐ๋ฐ์์ฒ๋ผ ๋ฆฌ๋ทฐํ๋ค: diff๋ง ๋ณด์ง ์๊ณ ๋ณ๊ฒฝ์ด ๋ฟ๋ ์ฝ๋๊น์ง ์ฝ๊ณ , ๋ฒ๊ทธ, ๋ณด์, ์ค์ ๋ถํ, ๋น ์ง ํ
์คํธ, ์๋, ์๋ผ ๋ผ ๊ฒ์ ํ์ธํ๋ค. ์ง์ ๋ง๋ค ๊ทธ ์ฝ๋๊ฐ ํ๋ ์ผ, ๋ฌด์์ด ์๋ชป๋๋์ง, ๊ณ ์น๋ ๋ฐฉ๋ฒ, ๊ณ ์น์ง ์์ผ๋ฉด ์๊ธฐ๋ ์ผ์ ์ ๋๋ค.
|
|
107
|
+
|
|
108
|
+
## ๋ค์ ๋ง๋ ๊ฐ์ฌ
|
|
109
|
+
|
|
110
|
+
<p align="center">
|
|
111
|
+
<img src="../assets/v5/audit-ko.png" width="880" alt="์ ์ฅ์ ์ ์ฒด๋ฅผ, ์์๋๋ก. ์ด๊ฒ๋ถํฐ ๊ณ ์ณ๋ผ. ์ฐฝ๊ณ ์ฌ๊ณ ์ ์ฅ์์ ๋ฒค์น๋งํฌ๋ก ๋๋ฆฐ ์ค์ /ponytail-audit: 1 ๋ฐ๋์ ๊ณ ์น ๊ฒ, 1,200์ด ๋ค์ด๊ฐ ์ฌ๋ฌด์ค ๋ฐฐ์น๊ฐ ํต์งธ๋ก ์คํจํ๋ค. 2 ๋ฐ๋์ ๊ณ ์น ๊ฒ, ๊ฐ์ ธ์ค๊ธฐ๊ฐ ์๋ชป๋ ํ์ ์กฐ์ฉํ ๊ฑด๋๋ด๋ค. 3 ๋ฐ๋์ ๊ณ ์น ๊ฒ, ์ฌ๋ฌด์ค ๋ฐฐ์น์์ SKU๋ฅผ ์๋ชป ์
๋ ฅํ๋ฉด ์กฐ์ฉํ ๋ฌด์๋๋ค. 4 ๊ณ ์น๋ ๊ฒ ์ข์, ์ํํ ์ฝ๋ ๊ฒฝ๋ก์ ํ
์คํธ๊ฐ ์๋ค. 5 ์์ผ๋ฉด ์ข์, ๋ณธ๋ฌธ์ด ๊ฐ์ฒด๊ฐ ์๋๋ฉด API๊ฐ ํฌ๋์๊ฐ ๋๋ค. ๊ฒฐ๋ก : 1๋ฒ๋ถํฐ ๊ณ ์น๋ค.">
|
|
112
|
+
</p>
|
|
113
|
+
|
|
114
|
+
`/ponytail-audit`๋ ๊ฐ์ ์ ๊ฒ์ ์ ์ฅ์ ์ ์ฒด์ ํ๋ค. ๋จผ์ ์ฝ๋์ ์ง๋๋ฅผ ๊ทธ๋ฆฐ๋ค: ์ง์
์ , ๋ฐ์ดํฐ๊ฐ ํ๋ฌ๊ฐ๋ ๊ธธ, ํ๋ก์ ํธ๊ฐ ์์ํ๋ ๋ถํ. ๊ทธ๋ค์ ์ฐพ์ ๊ฒ์ ์์๋ฅผ ๋งค๊ธฐ๊ณ ๋ฌด์๋ถํฐ ๊ณ ์น ์ง ์๋ ค ์ค๋ค. ์์ ๊ฐ์ฌ ๊ธฐ๋ฅ์ ์ง์ธ ๊ฒ๋ง ๋์ดํ๋ค.
|
|
115
|
+
|
|
116
|
+
## 5.3์ ์ ๊ธฐ๋ฅ: ๋ฐด๋
|
|
117
|
+
|
|
118
|
+
<p align="center">
|
|
119
|
+
<img src="../assets/band/band.png" width="880" alt="Claude Code ํ๋กฌํํธ ์์ ponytail ๋ฐด๋. ์์ธํ ๋ณด๊ธฐ: ๋น์ฉ $23.80, ๋ง์ง๋ง ํด $1.14, ํด๋น ํ๊ท $0.72; ํ ํฐ 56.7M, ์ถ๋ ฅ 168k, 33ํด; ์์ด์ ํธ ์๊ฐ 52m 14s; ์ฌ์ฌ์ฉ 71%, 5๊ฐ ์ฌ์ฌ์ฉ, 2๊ฐ ์๋ก ์์ฑ; ๋ง์ง๋ง ๋ณ๊ฒฝ ๋ค ํ
์คํธ ํต๊ณผ. ๊ฐ๋จํ ๋ณด๊ธฐ๋ ๊ฐ์ ๋ด์ฉ์ ํ ์ค๋ก ๋ณด์ฌ ์ค๋ค.">
|
|
120
|
+
</p>
|
|
121
|
+
|
|
122
|
+
์ด์ Claude Code์์ ponytail์ ํ๋กฌํํธ ์์ ๋ฐด๋๋ฅผ ๋ณด์ฌ ์ค๋ค: ์ง๊ธ ์์
์ ๋ ๋น์ฉ, ์ฌ์ฉํ ํ ํฐ๊ณผ ์์ด์ ํธ ์๊ฐ, ์ ์ฝ๋๋ฅผ ์ฐ๋ ๋์ ๊ธฐ์กด ์ฝ๋๋ฅผ ์ผ๋ง๋ ์ฌ์ฌ์ฉํ๋์ง, ๋ง์ง๋ง ๋ณ๊ฒฝ ๋ค์ ํ
์คํธ๊ฐ ํต๊ณผํ๋์ง. ๋ฒํผ์ผ๋ก ๋ ๋ฒจ์ ๋ฐ๊พธ๊ณ , `/ponytail-review`๋ `/ponytail-audit`๋ฅผ ์คํํ๊ณ , ์์
์ Markdown์ผ๋ก ๋ณต์ฌํ๊ณ , ๋ฐด๋๋ฅผ ํ ์ค๋ก ์ ์ ์ ์๋ค. ํ์ ์๋ค๋ฉด `/ponytail band`๋ก ์จ๊ธฐ๊ณ , ๊ฐ์ ๋ช
๋ น์ผ๋ก ๋ค์ ์ผค ์ ์๋ค. Claude Code 2.1.290 ์ด์์ด ํ์ํ๋ฉฐ, ํฐ๋ฏธ๋์ด๋ ๋ฐ์คํฌํฑ ์ฑ์์ ๋ณด์ธ๋ค. VS Code ์ฑํ
ํจ๋, ํด๋ผ์ฐ๋ ์ธ์
, `claude -p`์์๋ ๋ณด์ด์ง ์๋๋ค.
|
|
123
|
+
|
|
124
|
+
<p align="center">
|
|
125
|
+
<img src="../assets/band/board.png" width="880" alt="ponytail ๋ณด๋, ๋ก์ปฌ ํ์ด์ง: ์ต๊ทผ 30์ผ ๋์ ์ธ์
61๊ฐ, ์์ด์ ํธ ์๊ฐ 20h 13m, $285.30, ํ ํฐ 492.5M; ํ๋ก์ ํธ๋ณ ์์ด์ ํธ ์๊ฐ ์ถ์ด; ํ
์คํธ ๊ฒฐ๊ณผ๊ฐ ๋ถ์ ์ต๊ทผ ์ธ์
; ํ๋ํ ๋ ๊ณผ ์ฐ์ ๊ธฐ๋ก.">
|
|
126
|
+
</p>
|
|
127
|
+
|
|
128
|
+
**Board**๋ ๋ชจ๋ ํ๋ก์ ํธ์ ์์
์ ๋ชจ์ ๋ก์ปฌ ํ์ด์ง๋ฅผ ์ฐ๋ค: ์๊ฐ์ ๋ฐ๋ฅธ ๋น์ฉ, ์์ด์ ํธ ์๊ฐ, ํ ํฐ, ํ
์คํธ ๊ฒฐ๊ณผ๊ฐ ๋ถ์ ์ธ์
๋ชฉ๋ก, ์์
ํ ๋ . ๊ธฐ๋ณธ ์ค์ ์์๋ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ๋ด ์ปดํจํฐ์ `~/.config/ponytail/band/`์๋ง ๋จ๋๋ค. `/ponytail band import`๋ ์ง๋ Claude Code ์ธ์
์ ๋น์ฉ, ์์ด์ ํธ ์๊ฐ, ํ ํฐ๊ณผ ํจ๊ป ๋ณด๋์ ์ถ๊ฐํ๋ค.
|
|
129
|
+
|
|
130
|
+
## ์๋ ๋ฐฉ์
|
|
131
|
+
|
|
132
|
+
<p align="center">
|
|
133
|
+
<img src="../assets/v5/ladder-ko.png" width="880" alt="์ฝ๋๋ฅผ ์ฐ๊ธฐ ์ ์, ์ฑ๋ฆฝํ๋ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์์ ๋ฉ์ถ๋ค: 1 ์ด๊ฒ ๊ผญ ์์ด์ผ ํ๋, 2 ์ด๋ฏธ ์ด ์ฝ๋๋ฒ ์ด์ค์ ์๋, 3 ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํด ์ฃผ๋, 4 ํ๋ซํผ ๊ธฐ๋ณธ ๊ธฐ๋ฅ, 5 ์ด๋ฏธ ์ค์น๋ ์์กด์ฑ, 6 ํ ์ค๋ก ๋๋, 7 ๊ทธ๋ค์์์ผ ๋์๊ฐ๋ ์ต์ํ์ ์ฝ๋, ๋ก์ง์ด ์์ผ๋ฉด ์์ ํ
์คํธ ํ๋๋ ํจ๊ป.">
|
|
134
|
+
</p>
|
|
135
|
+
|
|
136
|
+
์ด ์ฌ๋ค๋ฆฌ๋ ๋ฌธ์ ๋ฅผ ์ดํดํ *๋ค์์* ๋๋ค. ์ดํด๋ฅผ ๋์ ํ์ง ์๋๋ค. ๋ณ๊ฒฝ์ด ๋ฟ๋ ์ฝ๋๋ฅผ ์ฝ๊ณ ์ค์ ํ๋ฆ์ ๋ฐ๋ผ๊ฐ ๋ค์ ๋จ๊ณ๋ฅผ ๊ณ ๋ฅธ๋ค. ํด๊ฒฐ์ฑ
์๋ ๊ฒ์ผ๋ฅด๊ณ , ์ฝ๊ธฐ์๋ ์ ๋ ๊ฒ์ผ๋ฅด์ง ์๋ค.
|
|
137
|
+
|
|
138
|
+
๊ฒ์ผ๋ฅด์ง๋ง ๋ฌด์ฑ
์ํ์ง๋ ์๋ค. ์ ๋ขฐ ๊ฒฝ๊ณ์ ์
๋ ฅ ๊ฒ์ฆ, ๋ฐ์ดํฐ ์์ค ์ฒ๋ฆฌ, ๋ณด์, ์ ๊ทผ์ฑ์ ์ ๋ ์๋ผ ๋ด์ง ์๋๋ค.
|
|
139
|
+
|
|
140
|
+
๋ถ๊ธฐ, ๋ฐ๋ณต๋ฌธ, ํ์, ๋์ด๋ ๋ณด์์ด ๋ค์ด๊ฐ ๋ก์ง์ ์์ ํ
์คํธ ํ๋๋ฅผ ๋จ๊ธด๋ค. ๋ชจ๋ ๋ต๋ณ์ ๊ฑด๋๋ด ๊ฒ์ด๋ ํ์ธํ์ง ์์ ๊ฒ, ๊ทธ๋ฆฌ๊ณ ์์์ผ ํ ์ํ์ผ๋ก ๋๋๋ค.
|
|
141
|
+
|
|
142
|
+
## ํ๋กฌํํธ
|
|
143
|
+
|
|
144
|
+
Ponytail์ ํ๋กฌํํธ ํ๋๋ค: [`skills/ponytail/SKILL.md`](../skills/ponytail/SKILL.md). ๊ท์น ํ์ผ์ ์ฝ๋ ์์ด์ ํธ์ฉ ์์ถํ์ [`AGENTS.md`](../AGENTS.md)๋ค. ์ด ์ ์ฅ์์ ๋๋จธ์ง๋ ์ ๋ถ ๊ทธ ํ๋กฌํํธ๋ฅผ ์ฌ๋ฌ ์์ด์ ํธ์ ๋ฃ๊ธฐ ์ํ ๊ฒ์ด๋ค.
|
|
145
|
+
|
|
146
|
+
## ์ค์น
|
|
147
|
+
|
|
148
|
+
**Claude Code**, ํ๋กฌํํธ ๋ ๊ฐ๋ก ๋๋ ์:
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
/plugin marketplace add DietrichGebert/ponytail
|
|
152
|
+
```
|
|
153
|
+
```
|
|
154
|
+
/plugin install ponytail@ponytail
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
**Codex:**
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
codex plugin marketplace add DietrichGebert/ponytail
|
|
161
|
+
codex plugin add ponytail@ponytail
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
๊ทธ๋ค์ Codex์์ `/hooks`๋ฅผ ์ด์ด ๋ผ์ดํ์ฌ์ดํด ํ
๋ ๊ฐ๋ฅผ ์ ๋ขฐํ๊ณ , ์ ์ค๋ ๋๋ฅผ ์์ํ๋ค.
|
|
165
|
+
|
|
166
|
+
**๊ทธ ๋ฐ์ ์์ด์ ํธ:** [`AGENTS.md`](../AGENTS.md)๋ฅผ ํ๋ก์ ํธ์ ๋ณต์ฌํ๊ฑฐ๋, ์์ด์ ํธ์๊ฒ [`skills/ponytail/SKILL.md`](../skills/ponytail/SKILL.md)๋ฅผ ์คํฌ๋ก ์ค์นํด ๋ฌ๋ผ๊ณ ํ๋ฉด ๋๋ค. Copilot, Cursor, OpenCode, Gemini ๋ฑ์ ๋จ๊ณ๋ณ ์ค์น ๋ฐฉ๋ฒ(์์ด): **[INSTALL.md](../INSTALL.md)**.
|
|
167
|
+
|
|
168
|
+
์ด๊ฒ ๋ค๋ค. ๊ทธ ์ฌ๋์ด๋ผ๋ฉด ๋ฟ๋ฏํดํ ๊ฒ์ด๋ค. ๋ง์ ์ ํ๊ฒ ์ง๋ง.
|
|
169
|
+
|
|
170
|
+
๋ชจ๋ ์ธ์
์์ ์ผ์ ธ ์๊ณ , ๋ช
๋ น์ด๊ฐ ๋ช ๊ฐ ์๋ค ([๋ช
๋ น์ด](#commands) ์ฐธ๊ณ ). `/ponytail ultra`๋ ์ฝ๋๋ฒ ์ด์ค๊ฐ ๋น์ ์ ๊ฐ์ธ์ ์ผ๋ก ํ๋๊ฒ ํ์ ๋๋ฅผ ์ํ ๊ฒ์ด๋ค. ์์ํ ๋์ ๋ชจ๋๋ฅผ ๋ฐ๊ฟ ๋ ํ์ฌ ๋ชจ๋๊ฐ ํ์๋๋ค.
|
|
171
|
+
|
|
172
|
+
ponytail์ GitHub์ `DietrichGebert/ponytail`์ด๋ npm์ `@dietrichgebert/ponytail`์์๋ง ์ค์นํ๋ค. `.exe`๋ `.dll` ํ์ผ์ ์ ๋ ๋ค์ด ์์ง ์๋ค. ๊ทธ๋ฐ ํ์ผ์ด ๋ค์ด ์๋ ์ฌ๋ณธ์ ๋ด ๊ฒ์ด ์๋๋ค.
|
|
173
|
+
|
|
174
|
+
<a id="commands"></a>
|
|
175
|
+
## ๋ช
๋ น์ด
|
|
176
|
+
|
|
177
|
+
| ๋ช
๋ น์ด | ํ๋ ์ผ |
|
|
178
|
+
|--------|---------|
|
|
179
|
+
| `/ponytail [lite \| full \| ultra \| off]` | ๊ฐ๋๋ฅผ ์ ํ๊ฑฐ๋ ๋๋ค. ์ธ์ ์์ด ์ฐ๋ฉด, ๊บผ์ ธ ์์ ๋๋ ๊ธฐ๋ณธ ๋ ๋ฒจ๋ก ์ผ๊ณ , ์ผ์ ธ ์์ ๋๋ ํ์ฌ ๋ ๋ฒจ์ ์๋ ค ์ค๋ค. |
|
|
180
|
+
| `/ponytail band [on \| off]` | Claude Code ์ ์ฉ: ํ๋กฌํํธ ์์ ๋ฐด๋๋ฅผ ์จ๊ธฐ๊ฑฐ๋ ๋ค์ ๋ณด์ฌ ์ค๋ค. ์ธ์ ์์ด ์ฐ๋ฉด ์ ํํ๋ค. ๋ ๋ฒจ์ ๋ฐ๋์ง ์๋๋ค. |
|
|
181
|
+
| `/ponytail band import` | Claude Code ์ ์ฉ: ์ง๋ ์ธ์
์ ๋น์ฉ, ์์ด์ ํธ ์๊ฐ, ํ ํฐ๊ณผ ํจ๊ป ๋ณด๋์ ์ถ๊ฐํ๋ค. |
|
|
182
|
+
| `/ponytail-review` | ์ฅ์ ๊ฐ ๋๋ฉด ํธ์ถ๋๋ ์๋์ด ๊ฐ๋ฐ์์ฒ๋ผ ํ์ฌ diff๋ฅผ ๋ฆฌ๋ทฐํ๋ค: ๋ฒ๊ทธ, ๋ณด์, ์ค์ ๋ถํ, ํ
์คํธ ์๋ ์ํํ ์ฝ๋, ๋๋ฆฐ ๋ถ๋ถ, ์ง์ธ ์ ์๋ ๊ฒ. ์ง์ ๋ง๋ค ๊ทธ ์ฝ๋๊ฐ ํ๋ ์ผ, ๋ฌด์์ด ์๋ชป๋๋์ง, ๊ณ ์น๋ ๋ฐฉ๋ฒ, ๊ณ ์น์ง ์์ผ๋ฉด ์๊ธฐ๋ ์ผ์ ์ ๋๋ค. ๋ฒ์๋ฅผ ์ขํ๊ฑฐ๋ ๋ํ๋ ค๋ฉด ๋์์ ํ๋ฒํ ๋ง๋ก ์ ๋๋ค: `uncommitted`, `staged`, `branch`, ๋๋ PR ๋งํฌ. |
|
|
183
|
+
| `/ponytail-audit` | ๊ฐ์ ์ ๊ฒ์ ์ ์ฅ์ ์ ์ฒด์ ํ๊ณ , ์ค์ํ ๊ฒ๋ถํฐ ๋ณด์ฌ ์ค๋ค. |
|
|
184
|
+
| `/ponytail-debt` | ๋ฏธ๋ค ๋ `shortcut:` ์ง๋ฆ๊ธธ์ ๋ชฉ๋ก์ผ๋ก ๋ชจ์, "๋์ค์"๊ฐ "์ ๋ ์ ํจ"์ด ๋์ง ์๊ฒ ํ๋ค. |
|
|
185
|
+
| `/ponytail-gain` | ๋ฒค์น๋งํฌ์์ ์ธก์ ํ ํจ๊ณผ(์ฝ๋ ๊ฐ์, ๋น์ฉ ๊ฐ์, ์๋ ํฅ์)๋ฅผ ์ ์ํ์ผ๋ก ๋ณด์ฌ ์ค๋ค. |
|
|
186
|
+
| `/ponytail-help` | ์ ๋ช
๋ น์ด๋ค์ ๋น ๋ฅธ ์ฐธ๊ณ . |
|
|
187
|
+
|
|
188
|
+
๋ช
๋ น์ด๋ ์คํฌ์ ์ง์ํ๋ ํธ์คํธ๊ฐ ์์ด์ผ ํ๋ค (Claude Code, Codex, Devin CLI, OpenCode, Gemini, Antigravity CLI, pi, Hermes Agent, Qoder, Grok Build). Codex CLI์ IDE ํ์ฅ์์๋ ํ๋ฌ๊ทธ์ธ ๋ค์์คํ์ด์ค ์๋์ ์คํฌ์ด๋ฏ๋ก `$ponytail:ponytail-review`์ฒ๋ผ ๋ถ๋ฅธ๋ค. [ํ
](../INSTALL.md#cursor)์ ์ฐ๋ Cursor๋ `/ponytail` ๋ ๋ฒจ ์ ํ๋ง ๋๊ณ , ์ผ๋ฐ ๋ฉ์์ง๋ก ์
๋ ฅํ๋ค. ์ง์๋ฌธ๋ง ์ฐ๋ ์ด๋ํฐ(Cursor ๊ท์น ํ์ผ, Windsurf, Cline, Copilot, Kiro, Antigravity์ `AGENTS.md` ๋์ฒด ๋ชจ๋)๋ ๋ช
๋ น์ด ์์ด ํญ์ ์ผ์ง ๊ท์น๋ง ๋ถ๋ฌ์จ๋ค.
|
|
189
|
+
|
|
190
|
+
## ์์ฃผ ๋ฌป๋ ์ง๋ฌธ
|
|
191
|
+
|
|
192
|
+
**์ค์ ํ์ผ์ด ํ์ํ๊ฐ?**
|
|
193
|
+
์๋๋ค. ์ ํ ์ฌํญ์ธ `~/.config/ponytail/config.json`์ด๋ `PONYTAIL_DEFAULT_MODE` ํ๊ฒฝ ๋ณ์๋ก ๊ธฐ๋ณธ ๋ ๋ฒจ์ ์ ํ ์ ์์ง๋ง, ํ์ํ ๊ฒ์ ์๋ค.
|
|
194
|
+
|
|
195
|
+
**์ `shortcut:` ์ฃผ์์ ์ฐ๋?**
|
|
196
|
+
์๋ํ ์ง๋ฆ๊ธธ๊ณผ ์ธ์ ๋ค์ ๋ณผ์ง๋ฅผ ํ์ํ๊ณ , `/ponytail-debt`๊ฐ ์ด๋ฅผ ๋ชฉ๋ก์ผ๋ก ๋ชจ์๋ค. ๋ค๋ฅธ ๋จ์ด๋ฅผ ์ฐ๊ฑฐ๋ ์์ ๋นผ๊ณ ์ถ๋ค๋ฉด? ํ๋ก์ ํธ์ `CLAUDE.md`๋ `AGENTS.md`์ ๊ทธ๋ ๊ฒ ์ ๊ณ , `/ponytail-debt <์ํ๋ ๋จ์ด>`๋ฅผ ์คํํ๋ฉด ๋๋ค.
|
|
197
|
+
|
|
198
|
+
**120์ค์ง๋ฆฌ ์บ์ ํด๋์ค๊ฐ ์ ๋ง ํ์ํ๋ฉด?**
|
|
199
|
+
ํ์ ์๋ค. ๊ทธ๋๋ ๊ณ ์งํ๋ฉด ๋ง๋ค์ด ์ค๋ค. ์ฒ์ฒํ. ์ ํํ๊ฒ. ๋น์ ์ ์ณ๋ค๋ณด๋ฉด์.
|
|
200
|
+
|
|
201
|
+
**ํ์ฅ์ฑ์?**
|
|
202
|
+
์ฐ์ง ์์ ์ฝ๋๋ ๋ฌดํํ ํ์ฅ๋๋ค. ๋ฒ๊ทธ 0๊ฐ, CVE 0๊ฐ, ํ์ด๋ถํฐ ๊ฐ๋๋ฅ 100%.
|
|
203
|
+
|
|
204
|
+
**์ "ponytail"์ธ๊ฐ?**
|
|
205
|
+
์์ธ์ง ์ ํํ ์ ๊ฒ์ด๋ค.
|
|
206
|
+
|
|
207
|
+
## ํ์
|
|
208
|
+
|
|
209
|
+
<p align="center">
|
|
210
|
+
<a href="https://greenpt.com/">
|
|
211
|
+
<picture>
|
|
212
|
+
<source media="(prefers-color-scheme: dark)" srcset="../assets/logo-greenpt-dark.svg">
|
|
213
|
+
<img src="../assets/logo-greenpt.svg" width="260" alt="GreenPT">
|
|
214
|
+
</picture>
|
|
215
|
+
</a>
|
|
216
|
+
</p>
|
|
217
|
+
|
|
218
|
+
## ๋ผ์ด์ ์ค
|
|
219
|
+
|
|
220
|
+
[MIT](../LICENSE). ๋์๊ฐ๋ ๊ฐ์ฅ ์งง์ ๋ผ์ด์ ์ค.
|
|
221
|
+
|
|
222
|
+
## ์คํ ๊ธฐ๋ก
|
|
223
|
+
|
|
224
|
+
<a href="https://www.star-history.com/dietrichgebert/ponytail#history">
|
|
225
|
+
<picture>
|
|
226
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=DietrichGebert/ponytail&type=Date&theme=dark" />
|
|
227
|
+
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=DietrichGebert/ponytail&type=Date" />
|
|
228
|
+
<img alt="Star History Chart" src="https://api.star-history.com/chart?repos=DietrichGebert/ponytail&type=Date" />
|
|
229
|
+
</picture>
|
|
230
|
+
</a>
|
package/package.json
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chill-agent",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.1",
|
|
4
4
|
"description": "Zero-bloat Anti-Slop 2.0 Engine & Pragmatic Senior Developer Standard. Fuses Anti-Slop visual craftsmanship with Ponytail YAGNI minimalism across all coding agents.",
|
|
5
|
-
"type": "module",
|
|
6
5
|
"bin": {
|
|
7
|
-
"chill-agent": "bin/chill-agent.js"
|
|
8
|
-
"ponytail": "bin/chill-agent.js"
|
|
6
|
+
"chill-agent": "./bin/chill-agent.js"
|
|
9
7
|
},
|
|
10
8
|
"main": "./src/index.js",
|
|
11
9
|
"scripts": {
|
|
12
10
|
"start": "node ./bin/chill-agent.js",
|
|
13
|
-
"test": "node --test tests/manifests.test.
|
|
11
|
+
"test": "node --test tests/manifests.test.mjs tests/rules.test.mjs test/auditor.test.mjs && npm test --prefix pi-extension",
|
|
14
12
|
"audit": "node ./bin/chill-agent.js audit",
|
|
15
13
|
"lint": "node ./bin/chill-agent.js audit"
|
|
16
14
|
},
|
|
@@ -32,7 +30,10 @@
|
|
|
32
30
|
"code-cleanup",
|
|
33
31
|
"accessibility"
|
|
34
32
|
],
|
|
35
|
-
"author":
|
|
33
|
+
"author": {
|
|
34
|
+
"name": "sann",
|
|
35
|
+
"url": "https://github.com/sann"
|
|
36
|
+
},
|
|
36
37
|
"license": "MIT",
|
|
37
38
|
"files": [
|
|
38
39
|
"bin/",
|
|
@@ -76,6 +77,10 @@
|
|
|
76
77
|
"gemini-extension.json",
|
|
77
78
|
"opencode.json",
|
|
78
79
|
"README.md",
|
|
79
|
-
"LICENSE"
|
|
80
|
+
"LICENSE",
|
|
81
|
+
"scripts/uninstall.js",
|
|
82
|
+
"scripts/cursor-hooks.js",
|
|
83
|
+
"assets/",
|
|
84
|
+
"cli/"
|
|
80
85
|
]
|
|
81
86
|
}
|